[*] Binary protection state of iconv

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


[*] Function printf 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);
                                         | }
    ; 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 @ 0x10ce4 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) main ()                                          | int32_t main (int32_t argc, char ** argv) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     r0 = argc;
                                                             |     r1 = argv;
                                                             |     /* [10] -r-x section size 8808 named .text */
    0x00010ce4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010ce8 ldr r6, [pc, 0xa08]                           |     r6 = *(0x116f4);
    0x00010cec sub sp, sp, 0x3c                              |     
    0x00010cf0 mov sl, r0                                    |     sl = r0;
    0x00010cf4 ldr r0, [r1]                                  |     r0 = *(r1);
    0x00010cf8 str r1, [sp, 0xc]                             |     var_ch = r1;
    0x00010cfc bl 0x1298c                                    |     fcn_0001298c (r0);
    0x00010d00 ldr r1, [pc, 0x9f4]                           |     r1 = *(0x116f8);
    0x00010d04 mov r0, 0                                     |     r0 = 0;
    0x00010d08 bl 0x10c24                                    |     setlocale (r0, r1);
    0x00010d0c mov r3, 0                                     |     r3 = 0;
    0x00010d10 mov r4, 1                                     |     r4 = 1;
    0x00010d14 mov r8, r3                                    |     r8 = r3;
    0x00010d18 mov sb, r3                                    |     sb = r3;
    0x00010d1c str r3, [sp, 0x10]                            |     var_10h = r3;
                                                             |     do {
                                                             | label_1:
    0x00010d20 cmp r4, sl                                    |         
                                                             |         if (r4 < sl) {
    0x00010d24 bge 0x10d5c                                   |             
    0x00010d28 lsl r3, r4, 2                                 |             r3 = r4 << 2;
    0x00010d2c str r3, [sp, 0x14]                            |             var_14h = r3;
    0x00010d30 ldr r3, [sp, 0xc]                             |             r3 = var_ch;
    0x00010d34 ldr r5, [r3, r4, lsl 2]                       |             offset_0 = r4 << 2;
                                                             |             r5 = *((r3 + offset_0));
    0x00010d38 mov r0, r5                                    |             r0 = r5;
    0x00010d3c bl 0x10c9c                                    |             strlen (r0);
    0x00010d40 ldr r1, [pc, 0x9b8]                           |             r1 = *(0x116fc);
    0x00010d44 mov r7, r0                                    |             r7 = r0;
    0x00010d48 mov r0, r5                                    |             r0 = r5;
    0x00010d4c bl 0x10c0c                                    |             r0 = strcmp (r0, r1);
    0x00010d50 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00010d54 bne 0x10db8                                   |                 goto label_23;
                                                             |             }
    0x00010d58 add r4, r4, 1                                 |             r4++;
                                                             |         }
    0x00010d5c ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00010d60 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00010d64 beq 0x1142c                                   |             goto label_24;
                                                             |         }
    0x00010d68 cmp r4, sl                                    |         
    0x00010d6c cmpeq r4, 2                                   |         __asm ("cmpeq r4, 2");
                                                             |         if (r4 == sl) {
    0x00010d70 movne r5, 1                                   |             r5 = 1;
                                                             |         }
                                                             |         if (r4 != sl) {
    0x00010d74 moveq r5, 0                                   |             r5 = 0;
                                                             |         }
                                                             |         if (r4 != sl) {
    0x00010d78 bne 0x10eb0                                   |             goto label_3;
                                                             |         }
    0x00010d7c mov r1, r5                                    |         r1 = r5;
    0x00010d80 ldr r0, [pc, 0x97c]                           |         r0 = *(0x11700);
    0x00010d84 bl 0x10c84                                    |         libiconvlist ();
                                                             | label_22:
    0x00010d88 ldr r4, [pc, 0x978]                           |         r4 = *(0x11704);
    0x00010d8c ldr r0, [r4]                                  |         r0 = *(0x11704);
    0x00010d90 bl 0x10bb8                                    |         r0 = ferror (r0);
    0x00010d94 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010d98 beq 0x113ec                                   |             goto label_25;
                                                             |         }
                                                             | label_16:
    0x00010d9c mov r1, 0                                     |         r1 = 0;
    0x00010da0 ldr r2, [pc, 0x964]                           |         r2 = stdout;
    0x00010da4 mov r0, r1                                    |         r0 = r1;
    0x00010da8 bl 0x10c30                                    |         error (r0, r1, r2);
    0x00010dac mov r5, 1                                     |         r5 = 1;
                                                             | label_17:
    0x00010db0 mov r0, r5                                    |         r0 = r5;
    0x00010db4 b 0x11024                                     |         goto label_26;
                                                             | label_23:
    0x00010db8 ldr r1, [pc, 0x950]                           |         r1 = "I_O_error";
    0x00010dbc mov r0, r5                                    |         r0 = r5;
    0x00010dc0 bl 0x10c0c                                    |         r0 = strcmp (r0, "I_O_error");
    0x00010dc4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010dc8 beq 0x10e9c                                   |             goto label_27;
                                                             |         }
    0x00010dcc sub fp, r7, 3                                 |         
    0x00010dd0 cmp fp, 8                                     |         
                                                             |         if (fp > 8) {
    0x00010dd4 bhi 0x10e68                                   |             goto label_28;
                                                             |         }
    0x00010dd8 mov r2, r7                                    |         r2 = r7;
    0x00010ddc ldr r1, [pc, 0x930]                           |         r1 = "_f";
    0x00010de0 mov r0, r5                                    |         r0 = r5;
    0x00010de4 bl 0x10bd0                                    |         r0 = strncmp (r0, "_f", r2);
    0x00010de8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010dec beq 0x10ea4                                   |             goto label_29;
                                                             |         }
                                                             | label_0:
    0x00010df0 ldr r1, [pc, 0x920]                           |         r1 = "--from-code";
    0x00010df4 mov r0, r5                                    |         r0 = r5;
    0x00010df8 bl 0x10c0c                                    |         r0 = strcmp (r0, "--from-code");
    0x00010dfc cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010e00 beq 0x10ee8                                   |             goto label_30;
                                                             |         }
    0x00010e04 cmp fp, 6                                     |         
                                                             |         if (fp > 6) {
    0x00010e08 bhi 0x10eb8                                   |             goto label_31;
                                                             |         }
    0x00010e0c mov r2, r7                                    |         r2 = r7;
    0x00010e10 ldr r1, [pc, 0x904]                           |         r1 = "_t";
    0x00010e14 mov r0, r5                                    |         r0 = r5;
    0x00010e18 bl 0x10bd0                                    |         r0 = strncmp (r0, "_t", r2);
    0x00010e1c cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00010e20 beq 0x10ef0                                   |             goto label_32;
                                                             |         }
                                                             | label_2:
    0x00010e24 ldr r1, [pc, 0x8f4]                           |         r1 = "--to-code";
    0x00010e28 mov r0, r5                                    |         r0 = r5;
    0x00010e2c bl 0x10c0c                                    |         r0 = strcmp (r0, "--to-code");
    0x00010e30 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00010e34 beq 0x10e58                                   |             
    0x00010e38 cmp fp, 3                                     |             
                                                             |             if (fp > 3) {
    0x00010e3c bhi 0x10f18                                   |                 goto label_33;
                                                             |             }
    0x00010e40 mov r2, r7                                    |             r2 = r7;
    0x00010e44 ldr r1, [pc, 0x8d8]                           |             r1 = "_l";
    0x00010e48 mov r0, r5                                    |             r0 = r5;
    0x00010e4c bl 0x10bd0                                    |             r0 = strncmp (r0, "_l", r2);
    0x00010e50 cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00010e54 bne 0x10f18                                   |                 goto label_33;
                                                             |             }
                                                             |         }
    0x00010e58 mov r3, 1                                     |         r3 = 1;
    0x00010e5c add r4, r4, 1                                 |         r4++;
    0x00010e60 str r3, [sp, 0x10]                            |         var_10h = r3;
    0x00010e64 b 0x10d20                                     |         
                                                             |     } while (1);
                                                             | label_28:
    0x00010e68 cmp r7, 0xb                                   |     
                                                             |     if (r7 < 0xb) {
    0x00010e6c bls 0x10df0                                   |         goto label_0;
                                                             |     }
    0x00010e70 mov r2, 0xc                                   |     r2 = 0xc;
    0x00010e74 ldr r1, [pc, 0x8ac]                           |     r1 = "__list";
    0x00010e78 mov r0, r5                                    |     r0 = r5;
    0x00010e7c bl 0x10bd0                                    |     r0 = strncmp (r0, "__list", r2);
    0x00010e80 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010e84 bne 0x10df0                                   |         goto label_0;
                                                             |     }
                                                             |     do {
    0x00010e88 cmp sb, 0                                     |         
                                                             |         if (sb != 0) {
    0x00010e8c bne 0x10eb0                                   |             goto label_3;
                                                             |         }
    0x00010e90 add sb, r5, 0xc                               |         sb = r5 + 0xc;
                                                             | label_4:
    0x00010e94 add r4, r4, 1                                 |         r4++;
    0x00010e98 b 0x10d20                                     |         goto label_1;
                                                             | label_27:
    0x00010e9c cmp r7, 0xb                                   |         
    0x00010ea0 bhi 0x10e88                                   |         
                                                             |     } while (r7 > 0xb);
                                                             | label_29:
    0x00010ea4 sub r3, sl, 1                                 |     r3 = sl - 1;
    0x00010ea8 cmp r3, r4                                    |     
                                                             |     if (r3 != r4) {
    0x00010eac bne 0x11400                                   |         goto label_34;
                                                             |     }
                                                             | label_3:
    0x00010eb0 mov r0, 1                                     |     r0 = 1;
                                                             | label_6:
    0x00010eb4 bl 0x12038                                    |     fcn_00012038 (r0);
                                                             | label_31:
    0x00010eb8 cmp r7, 9                                     |     
                                                             |     if (r7 < 9) {
    0x00010ebc bls 0x10e24                                   |         goto label_2;
                                                             |     }
    0x00010ec0 mov r2, 0xa                                   |     r2 = 0xa;
    0x00010ec4 ldr r1, [pc, 0x860]                           |     r1 = "--from-code=";
    0x00010ec8 mov r0, r5                                    |     r0 = r5;
    0x00010ecc bl 0x10bd0                                    |     r0 = strncmp (r0, "--from-code=", r2);
    0x00010ed0 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010ed4 bne 0x10e24                                   |         goto label_2;
                                                             |     }
                                                             | label_5:
    0x00010ed8 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00010edc bne 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x00010ee0 add r8, r5, 0xa                               |     r8 = r5 + 0xa;
    0x00010ee4 b 0x10e94                                     |     goto label_4;
                                                             | label_30:
    0x00010ee8 cmp r7, 9                                     |     
                                                             |     if (r7 > 9) {
    0x00010eec bhi 0x10ed8                                   |         goto label_5;
                                                             |     }
                                                             | label_32:
    0x00010ef0 sub r3, sl, 1                                 |     r3 = sl - 1;
    0x00010ef4 cmp r3, r4                                    |     
                                                             |     if (r3 == r4) {
    0x00010ef8 beq 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x00010efc cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x00010f00 bne 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x00010f04 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00010f08 lsl r2, r4, 2                                 |     r2 = r4 << 2;
    0x00010f0c add r3, r3, r2                                |     r3 += r2;
    0x00010f10 ldr r8, [r3, 4]                               |     r8 = *((r3 + 4));
    0x00010f14 b 0x11418                                     |     goto label_35;
                                                             | label_33:
    0x00010f18 sub r3, r7, 4                                 |     r3 = r7 - 4;
    0x00010f1c cmp r3, 8                                     |     
                                                             |     if (r3 > 8) {
    0x00010f20 bhi 0x11028                                   |         goto label_36;
                                                             |     }
    0x00010f24 mov r2, r7                                    |     r2 = r7;
    0x00010f28 ldr r1, [pc, 0x800]                           |     r1 = "--to-code=";
    0x00010f2c mov r0, r5                                    |     r0 = r5;
    0x00010f30 bl 0x10bd0                                    |     r0 = strncmp (r0, "--to-code=", r2);
    0x00010f34 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010f38 beq 0x11058                                   |         goto label_37;
                                                             |     }
                                                             | label_7:
    0x00010f3c cmp fp, 0xd                                   |     
                                                             |     if (fp > 0xd) {
    0x00010f40 bhi 0x11090                                   |         goto label_38;
                                                             |     }
    0x00010f44 mov r2, r7                                    |     r2 = r7;
    0x00010f48 ldr r1, [pc, 0x7e4]                           |     r1 = "--byte-subst";
    0x00010f4c mov r0, r5                                    |     r0 = r5;
    0x00010f50 bl 0x10bd0                                    |     r0 = strncmp (r0, "--byte-subst", r2);
    0x00010f54 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010f58 beq 0x11120                                   |         goto label_39;
                                                             |     }
    0x00010f5c cmp fp, 0xc                                   |     
                                                             |     if (fp > 0xc) {
    0x00010f60 bhi 0x110b0                                   |         goto label_40;
                                                             |     }
    0x00010f64 mov r2, r7                                    |     r2 = r7;
    0x00010f68 ldr r1, [pc, 0x7c8]                           |     r1 = "__widechar_subst";
    0x00010f6c mov r0, r5                                    |     r0 = r5;
    0x00010f70 bl 0x10bd0                                    |     r0 = strncmp (r0, "__widechar_subst", r2);
    0x00010f74 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010f78 beq 0x11168                                   |         goto label_41;
                                                             |     }
    0x00010f7c cmp fp, 5                                     |     
                                                             |     if (fp > 5) {
    0x00010f80 bhi 0x110d0                                   |         goto label_42;
                                                             |     }
    0x00010f84 mov r2, r7                                    |     r2 = r7;
    0x00010f88 ldr r1, [pc, 0x7ac]                           |     r1 = "--unicode-subst";
    0x00010f8c mov r0, r5                                    |     r0 = r5;
    0x00010f90 bl 0x10bd0                                    |     r0 = strncmp (r0, "--unicode-subst", r2);
    0x00010f94 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010f98 moveq r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r0 != 0) {
    0x00010f9c streq r3, [r6, 0x54]                          |         *((r6 + 0x54)) = r3;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010fa0 addeq r4, r4, r3                              |         r4 += r3;
                                                             |         goto label_43;
                                                             |     }
                                                             |     if (r0 == 0) {
                                                             | label_43:
    0x00010fa4 beq 0x10d20                                   |         goto label_1;
                                                             |     }
    0x00010fa8 cmp fp, 3                                     |     
                                                             |     if (fp > 3) {
    0x00010fac bhi 0x10fc8                                   |         goto label_8;
                                                             |     }
    0x00010fb0 mov r2, r7                                    |     r2 = r7;
    0x00010fb4 ldr r1, [pc, 0x784]                           |     r1 = "__silent";
    0x00010fb8 mov r0, r5                                    |     r0 = r5;
    0x00010fbc bl 0x10bd0                                    |     r0 = strncmp (r0, "__silent", r2);
    0x00010fc0 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010fc4 beq 0x10eb4                                   |         goto label_6;
                                                             |     }
                                                             | label_8:
    0x00010fc8 mov r2, r7                                    |     r2 = r7;
    0x00010fcc ldr r1, [pc, 0x770]                           |     r1 = "--help";
    0x00010fd0 mov r0, r5                                    |     r0 = r5;
    0x00010fd4 bl 0x10bd0                                    |     r0 = strncmp (r0, "--help", r2);
    0x00010fd8 subs r7, r0, 0                                |     r7 = r0 - 0;
                                                             |     if (r7 != r0) {
    0x00010fdc bne 0x110d8                                   |         goto label_44;
                                                             |     }
    0x00010fe0 ldr r3, [pc, 0x760]                           |     r3 = "__version";
    0x00010fe4 ldr r0, [pc, 0x760]                           |     r0 = _libiconv_version;
    0x00010fe8 ldr r1, [r3]                                  |     r1 = "__version";
    0x00010fec and r2, r1, 0xff                              |     r2 = r1 & 0xff;
    0x00010ff0 asr r1, r1, 8                                 |     r1 >>= 8;
    0x00010ff4 bl 0x10b28                                    |     printf (r0, "__version", r2, "__version")
    0x00010ff8 ldr r1, [pc, 0x750]                           |     r1 = "iconv__GNU_libiconv__d._d_";
    0x00010ffc ldr r0, [pc, 0x750]                           |     r0 = "_000_2017";
    0x00011000 bl 0x10b28                                    |     printf ("_000_2017", "iconv__GNU_libiconv__d._d_")
    0x00011004 ldr r3, [pc, 0x6fc]                           |     r3 = *(0x11704);
    0x00011008 ldr r0, [pc, 0x748]                           |     r0 = "Copyright__C___s_Free_Software_Foundation__Inc.";
    0x0001100c ldr r1, [r3]                                  |     r1 = *(0x11704);
    0x00011010 bl 0x10ca8                                    |     fputs ("Copyright__C___s_Free_Software_Foundation__Inc.", r1);
    0x00011014 ldr r1, [pc, 0x740]                           |     r1 = "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n";
    0x00011018 ldr r0, [pc, 0x740]                           |     r0 = "Bruno Haible";
    0x0001101c bl 0x10b28                                    |     printf ("Bruno Haible", "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n")
    0x00011020 mov r0, r7                                    |     r0 = r7;
                                                             | label_26:
    0x00011024 bl 0x10c6c                                    |     exit (r0);
                                                             | label_36:
    0x00011028 cmp r7, 0xc                                   |     
                                                             |     if (r7 < 0xc) {
    0x0001102c bls 0x10f3c                                   |         goto label_7;
                                                             |     }
    0x00011030 mov r2, 0xd                                   |     r2 = 0xd;
    0x00011034 ldr r1, [pc, 0x728]                           |     r1 = "Written_by__s.";
    0x00011038 mov r0, r5                                    |     r0 = r5;
    0x0001103c bl 0x10bd0                                    |     r0 = strncmp (r0, "Written_by__s.", r2);
    0x00011040 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00011044 bne 0x10f3c                                   |         goto label_7;
                                                             |     }
    0x00011048 add r5, r5, 0xd                               |     r5 += 0xd;
    0x0001104c str r5, [r6, 0x28]                            |     *((r6 + 0x28)) = r5;
    0x00011050 add r4, r4, 1                                 |     r4++;
    0x00011054 b 0x1107c                                     |     goto label_45;
                                                             | label_37:
    0x00011058 sub r3, sl, 1                                 |     r3 = sl - 1;
    0x0001105c cmp r3, r4                                    |     
                                                             |     if (r3 == r4) {
    0x00011060 beq 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x00011064 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00011068 lsl r2, r4, 2                                 |     r2 = r4 << 2;
    0x0001106c add r3, r3, r2                                |     r3 += r2;
    0x00011070 ldr r3, [r3, 4]                               |     r3 = *((r3 + 4));
    0x00011074 add r4, r4, 2                                 |     r4 += 2;
    0x00011078 str r3, [r6, 0x28]                            |     *((r6 + 0x28)) = r3;
                                                             | label_45:
    0x0001107c ldr r1, [pc, 0x6ac]                           |     r1 = "--to-code=";
    0x00011080 ldr r0, [r6, 0x28]                            |     r0 = *((r6 + 0x28));
    0x00011084 bl 0x11cb8                                    |     fcn_00011cb8 (r0, "--to-code=");
    0x00011088 str r0, [r6, 0x34]                            |     *((r6 + 0x34)) = r0;
    0x0001108c b 0x10d20                                     |     goto label_1;
                                                             | label_38:
    0x00011090 cmp r7, 0x10                                  |     
                                                             |     if (r7 >= 0x10) {
    0x00011094 bls 0x110b0                                   |         
    0x00011098 mov r2, 0x11                                  |         r2 = 0x11;
    0x0001109c ldr r1, [pc, 0x6c4]                           |         r1 = "__byte_subst";
    0x000110a0 mov r0, r5                                    |         r0 = r5;
    0x000110a4 bl 0x10bd0                                    |         r0 = strncmp (r0, "__byte_subst", r2);
    0x000110a8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000110ac beq 0x11158                                   |             goto label_46;
                                                             |         }
                                                             |     }
                                                             | label_40:
    0x000110b0 cmp r7, 0xf                                   |     
                                                             |     if (r7 >= 0xf) {
    0x000110b4 bls 0x110d0                                   |         
    0x000110b8 mov r2, 0x10                                  |         r2 = 0x10;
    0x000110bc ldr r1, [pc, 0x6a8]                           |         r1 = "--widechar-subst=";
    0x000110c0 mov r0, r5                                    |         r0 = r5;
    0x000110c4 bl 0x10bd0                                    |         r0 = strncmp (r0, "--widechar-subst=", r2);
    0x000110c8 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000110cc beq 0x111a0                                   |             goto label_47;
                                                             |         }
                                                             |     }
                                                             | label_42:
    0x000110d0 cmp fp, 6                                     |     
                                                             |     if (fp < 6) {
    0x000110d4 bls 0x10fc8                                   |         goto label_8;
                                                             |     }
                                                             | label_44:
    0x000110d8 ldrb r3, [r5]                                 |     r3 = *(r5);
    0x000110dc cmp r3, 0x2d                                  |     
                                                             |     if (r3 != 0x2d) {
    0x000110e0 bne 0x11420                                   |         goto label_48;
                                                             |     }
    0x000110e4 ldrb r3, [r5, 1]                              |     r3 = *((r5 + 1));
    0x000110e8 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000110ec beq 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x000110f0 ldr r1, [r6, 0x54]                            |     r1 = *((r6 + 0x54));
    0x000110f4 ldr r0, [r6, 0x58]                            |     r0 = *((r6 + 0x58));
    0x000110f8 mov r3, 0                                     |     r3 = 0;
    0x000110fc mov r2, r3                                    |     r2 = r3;
                                                             | label_9:
    0x00011100 ldrb ip, [r5, 1]!                             |     ip = *((r5 += 1));
    0x00011104 cmp ip, 0                                     |     
                                                             |     if (ip != 0) {
    0x00011108 bne 0x111b0                                   |         goto label_49;
                                                             |     }
    0x0001110c cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00011110 strne r0, [r6, 0x58]                          |         *((r6 + 0x58)) = r0;
                                                             |     }
    0x00011114 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00011118 strne r1, [r6, 0x54]                          |         *((r6 + 0x54)) = r1;
                                                             |     }
    0x0001111c b 0x10e94                                     |     goto label_4;
                                                             | label_39:
    0x00011120 sub r3, sl, 1                                 |     r3 = sl - 1;
    0x00011124 cmp r3, r4                                    |     
                                                             |     if (r3 == r4) {
    0x00011128 beq 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x0001112c ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00011130 lsl r2, r4, 2                                 |     r2 = r4 << 2;
    0x00011134 add r3, r3, r2                                |     r3 += r2;
    0x00011138 ldr r3, [r3, 4]                               |     r3 = *((r3 + 4));
    0x0001113c add r4, r4, 2                                 |     r4 += 2;
    0x00011140 str r3, [r6]                                  |     *(r6) = r3;
                                                             |     do {
    0x00011144 ldr r1, [pc, 0x5e8]                           |         r1 = "--byte-subst";
    0x00011148 ldr r0, [r6]                                  |         r0 = *(r6);
    0x0001114c bl 0x11cb8                                    |         fcn_00011cb8 (r0, "--byte-subst");
    0x00011150 str r0, [r6, 0xc]                             |         *((r6 + 0xc)) = r0;
    0x00011154 b 0x10d20                                     |         goto label_1;
                                                             | label_46:
    0x00011158 add r5, r5, 0x11                              |         r5 += 0x11;
    0x0001115c str r5, [r6]                                  |         *(r6) = r5;
    0x00011160 add r4, r4, 1                                 |         r4++;
    0x00011164 b 0x11144                                     |         
                                                             |     } while (1);
                                                             | label_41:
    0x00011168 sub r3, sl, 1                                 |     r3 = sl - 1;
    0x0001116c cmp r3, r4                                    |     
                                                             |     if (r3 == r4) {
    0x00011170 beq 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x00011174 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00011178 lsl r2, r4, 2                                 |     r2 = r4 << 2;
    0x0001117c add r3, r3, r2                                |     r3 += r2;
    0x00011180 ldr r3, [r3, 4]                               |     r3 = *((r3 + 4));
    0x00011184 add r4, r4, 2                                 |     r4 += 2;
    0x00011188 str r3, [r6, 0x14]                            |     *((r6 + 0x14)) = r3;
                                                             |     do {
    0x0001118c ldr r1, [pc, 0x5a4]                           |         r1 = "__widechar_subst";
    0x00011190 ldr r0, [r6, 0x14]                            |         r0 = *((r6 + 0x14));
    0x00011194 bl 0x11cb8                                    |         fcn_00011cb8 (r0, "__widechar_subst");
    0x00011198 str r0, [r6, 0x20]                            |         *((r6 + 0x20)) = r0;
    0x0001119c b 0x10d20                                     |         goto label_1;
                                                             | label_47:
    0x000111a0 add r5, r5, 0x10                              |         r5 += 0x10;
    0x000111a4 str r5, [r6, 0x14]                            |         *((r6 + 0x14)) = r5;
    0x000111a8 add r4, r4, 1                                 |         r4++;
    0x000111ac b 0x1118c                                     |         
                                                             |     } while (1);
                                                             | label_49:
    0x000111b0 cmp ip, 0x63                                  |     
                                                             |     if (ip == 0x63) {
    0x000111b4 beq 0x111dc                                   |         goto label_50;
                                                             |     }
    0x000111b8 cmp ip, 0x73                                  |     
                                                             |     if (ip != 0x73) {
    0x000111bc moveq r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (ip == 0x73) {
    0x000111c0 moveq r1, r3                                  |         r1 = r3;
                                                             |         goto label_51;
                                                             |     }
                                                             |     if (ip == 0x73) {
                                                             | label_51:
    0x000111c4 beq 0x11100                                   |         goto label_9;
                                                             |     }
    0x000111c8 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x000111cc strne r0, [r6, 0x58]                          |         *((r6 + 0x58)) = r0;
                                                             |     }
    0x000111d0 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x000111d4 strne r1, [r6, 0x54]                          |         *((r6 + 0x54)) = r1;
                                                             |     }
    0x000111d8 b 0x10eb0                                     |     goto label_3;
                                                             | label_50:
    0x000111dc mov r2, 1                                     |     r2 = 1;
    0x000111e0 mov r0, r2                                    |     r0 = r2;
    0x000111e4 b 0x11100                                     |     goto label_9;
                                                             | label_18:
    0x000111e8 mov r1, 0                                     |     r1 = 0;
    0x000111ec str r8, [sp]                                  |     *(sp) = r8;
    0x000111f0 mov r3, sb                                    |     r3 = sb;
    0x000111f4 ldr r2, [pc, 0x574]                           |     r2 = "--unicode-subst=";
    0x000111f8 mov r0, r1                                    |     r0 = r1;
    0x000111fc bl 0x10c30                                    |     error (r0, r1, "--unicode-subst=");
    0x00011200 b 0x1149c                                     |     goto label_52;
                                                             | label_19:
    0x00011204 cmp r3, 0x47                                  |     
                                                             |     if (r3 != 0x47) {
    0x00011208 bne 0x112c0                                   |         goto label_53;
                                                             |     }
    0x0001120c ldrb r3, [r0, 1]                              |     r3 = *((r0 + 1));
    0x00011210 cmp r3, 0x42                                  |     
                                                             |     if (r3 != 0x42) {
    0x00011214 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x00011218 ldrb r3, [r0, 2]                              |     r3 = *((r0 + 2));
    0x0001121c cmp r3, 0x32                                  |     
                                                             |     if (r3 == 0x32) {
    0x00011220 bne 0x11250                                   |         
    0x00011224 ldrb r3, [r0, 3]                              |         r3 = *((r0 + 3));
    0x00011228 cmp r3, 0x33                                  |         
                                                             |         if (r3 != 0x33) {
    0x0001122c bne 0x1125c                                   |             goto label_10;
                                                             |         }
    0x00011230 ldrb r3, [r0, 4]                              |         r3 = *((r0 + 4));
    0x00011234 cmp r3, 0x31                                  |         
                                                             |         if (r3 != 0x31) {
    0x00011238 bne 0x1125c                                   |             goto label_10;
                                                             |         }
    0x0001123c ldrb r3, [r0, 5]                              |         r3 = *((r0 + 5));
    0x00011240 cmp r3, 0x32                                  |         
                                                             |         if (r3 != 0x32) {
                                                             | label_11:
    0x00011244 ldrbeq r3, [r0, 6]                            |             r3 = *((r0 + 6));
                                                             |         }
                                                             |         if (r3 != 0x32) {
    0x00011248 bne 0x1125c                                   |             goto label_10;
                                                             |         }
    0x0001124c b 0x112f0                                     |         goto label_12;
                                                             |     }
    0x00011250 cmp r3, 0x4b                                  |     
                                                             |     if (r3 != 0x4b) {
    0x00011254 ldrbeq r3, [r0, 3]                            |         r3 = *((r0 + 3));
                                                             |     }
                                                             |     if (r3 == 0x4b) {
    0x00011258 beq 0x112f0                                   |         goto label_12;
                                                             |     }
                                                             |     do {
                                                             | label_10:
    0x0001125c mov r0, sb                                    |         r0 = sb;
    0x00011260 bl 0x10b34                                    |         iconv_canonicalize ();
    0x00011264 str r0, [r5, 0x5c]                            |         *((r5 + 0x5c)) = r0;
    0x00011268 b 0x11518                                     |         goto label_54;
                                                             | label_20:
    0x0001126c ldrb r3, [r0, 3]                              |         r3 = *((r0 + 3));
    0x00011270 cmp r3, 0x2d                                  |         
                                                             |         if (r3 == 0x2d) {
    0x00011274 bne 0x1129c                                   |             
    0x00011278 ldrb r3, [r0, 4]                              |             r3 = *((r0 + 4));
    0x0001127c cmp r3, 0x54                                  |             
                                                             |             if (r3 != 0x54) {
    0x00011280 bne 0x1129c                                   |                 goto label_55;
                                                             |             }
    0x00011284 ldrb r3, [r0, 5]                              |             r3 = *((r0 + 5));
    0x00011288 cmp r3, 0x57                                  |             
                                                             |             if (r3 != 0x57) {
    0x0001128c bne 0x1129c                                   |                 goto label_55;
                                                             |             }
    0x00011290 ldrb r3, [r0, 6]                              |             r3 = *((r0 + 6));
    0x00011294 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00011298 beq 0x11518                                   |                 goto label_54;
                                                             |             }
                                                             |         }
                                                             | label_55:
    0x0001129c ldrb r3, [r0, 3]                              |         r3 = *((r0 + 3));
    0x000112a0 cmp r3, 0x2d                                  |         
    0x000112a4 bne 0x1125c                                   |         
                                                             |     } while (r3 != 0x2d);
    0x000112a8 ldrb r3, [r0, 4]                              |     r3 = *((r0 + 4));
    0x000112ac cmp r3, 0x4b                                  |     
                                                             |     if (r3 != 0x4b) {
    0x000112b0 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x000112b4 ldrb r3, [r0, 5]                              |     r3 = *((r0 + 5));
    0x000112b8 cmp r3, 0x52                                  |     
    0x000112bc b 0x11244                                     |     goto label_11;
                                                             | label_53:
    0x000112c0 cmp r3, 0x42                                  |     
                                                             |     if (r3 != 0x42) {
    0x000112c4 bne 0x112fc                                   |         goto label_56;
                                                             |     }
    0x000112c8 ldrb r3, [r0, 1]                              |     r3 = *((r0 + 1));
    0x000112cc cmp r3, 0x49                                  |     
                                                             |     if (r3 != 0x49) {
    0x000112d0 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x000112d4 ldrb r3, [r0, 2]                              |     r3 = *((r0 + 2));
    0x000112d8 cmp r3, 0x47                                  |     
                                                             |     if (r3 != 0x47) {
    0x000112dc bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x000112e0 ldrb r3, [r0, 3]                              |     r3 = *((r0 + 3));
    0x000112e4 cmp r3, 0x35                                  |     
                                                             |     if (r3 == 0x35) {
    0x000112e8 ldrbeq r3, [r0, 4]                            |         r3 = *((r0 + 4));
                                                             |         goto label_57;
                                                             |     }
                                                             |     if (r3 != 0x35) {
                                                             | label_57:
    0x000112ec bne 0x1125c                                   |         goto label_10;
                                                             |     }
                                                             | label_12:
    0x000112f0 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x000112f4 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x000112f8 b 0x11518                                     |     goto label_54;
                                                             | label_56:
    0x000112fc cmp r3, 0x43                                  |     
                                                             |     if (r3 != 0x43) {
    0x00011300 bne 0x1133c                                   |         goto label_58;
                                                             |     }
    0x00011304 ldrb r3, [r0, 1]                              |     r3 = *((r0 + 1));
    0x00011308 cmp r3, 0x50                                  |     
                                                             |     if (r3 != 0x50) {
    0x0001130c bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x00011310 ldrb r3, [r0, 2]                              |     r3 = *((r0 + 2));
    0x00011314 cmp r3, 0x39                                  |     
                                                             |     if (r3 != 0x39) {
    0x00011318 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x0001131c ldrb r3, [r0, 3]                              |     r3 = *((r0 + 3));
    0x00011320 cmp r3, 0x34                                  |     
                                                             |     if (r3 != 0x34) {
    0x00011324 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x00011328 ldrb r3, [r0, 4]                              |     r3 = *((r0 + 4));
    0x0001132c cmp r3, 0x39                                  |     
                                                             |     if (r3 != 0x39) {
                                                             | label_13:
    0x00011330 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x00011334 ldrb r3, [r0, 5]                              |     r3 = *((r0 + 5));
    0x00011338 b 0x112f0                                     |     goto label_12;
                                                             | label_58:
    0x0001133c cmp r3, 0x4a                                  |     
                                                             |     if (r3 != 0x4a) {
    0x00011340 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x00011344 ldrb r3, [r0, 1]                              |     r3 = *((r0 + 1));
    0x00011348 cmp r3, 0x4f                                  |     
                                                             |     if (r3 != 0x4f) {
    0x0001134c bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x00011350 ldrb r3, [r0, 2]                              |     r3 = *((r0 + 2));
    0x00011354 cmp r3, 0x48                                  |     
                                                             |     if (r3 != 0x48) {
    0x00011358 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x0001135c ldrb r3, [r0, 3]                              |     r3 = *((r0 + 3));
    0x00011360 cmp r3, 0x41                                  |     
                                                             |     if (r3 != 0x41) {
    0x00011364 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x00011368 ldrb r3, [r0, 4]                              |     r3 = *((r0 + 4));
    0x0001136c cmp r3, 0x42                                  |     
    0x00011370 b 0x11330                                     |     goto label_13;
                                                             |     do {
    0x00011374 ldr r3, [sp, 0xc]                             |         r3 = var_ch;
    0x00011378 mov r1, sb                                    |         r1 = sb;
    0x0001137c ldr r7, [r3, r4, lsl 2]                       |         offset_1 = r4 << 2;
                                                             |         r7 = *((r3 + offset_1));
    0x00011380 mov r0, r7                                    |         r0 = r7;
    0x00011384 bl 0x10cd8                                    |         r0 = fopen64 ();
    0x00011388 subs r8, r0, 0                                |         r8 = r0 - 0;
                                                             |         if (r8 != r0) {
    0x0001138c bne 0x113bc                                   |             goto label_59;
                                                             |         }
    0x00011390 bl 0x10c60                                    |         errno_location ();
    0x00011394 mov r3, r7                                    |         r3 = r7;
    0x00011398 mov r2, fp                                    |         r2 = fp;
    0x0001139c mov r5, 1                                     |         r5 = 1;
    0x000113a0 ldr r1, [r0]                                  |         r1 = *(r0);
    0x000113a4 mov r0, r8                                    |         r0 = r8;
    0x000113a8 bl 0x10c30                                    |         error (r0, r1, r2);
                                                             | label_14:
    0x000113ac add r4, r4, 1                                 |         r4++;
                                                             | label_15:
    0x000113b0 cmp r4, sl                                    |         
    0x000113b4 blt 0x11374                                   |         
                                                             |     } while (r4 < sl);
    0x000113b8 b 0x116ec                                     |     goto label_60;
                                                             | label_59:
    0x000113bc bl 0x10c90                                    |     fileno (r0);
    0x000113c0 mov r2, r7                                    |     r2 = r7;
    0x000113c4 mov r1, r0                                    |     r1 = r0;
    0x000113c8 mov r0, r6                                    |     r0 = r6;
    0x000113cc bl 0x123b8                                    |     r0 = fcn_000123b8 (r0, r1, r2, r3, r4, r5, r6);
    0x000113d0 orr r5, r5, r0                                |     r5 |= r0;
    0x000113d4 mov r0, r8                                    |     r0 = r8;
    0x000113d8 bl 0x10c00                                    |     fclose (r0);
    0x000113dc b 0x113ac                                     |     goto label_14;
                                                             | label_21:
    0x000113e0 ldr sb, [pc, 0x38c]                           |     sb = "conversion_from__s_to__s_unsupported";
    0x000113e4 ldr fp, [pc, 0x38c]                           |     fp = "_s";
    0x000113e8 b 0x113b0                                     |     goto label_15;
                                                             | label_25:
    0x000113ec ldr r0, [r4]                                  |     r0 = *(r4);
    0x000113f0 bl 0x10c00                                    |     r0 = fclose (r0);
    0x000113f4 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x000113f8 bne 0x10d9c                                   |         goto label_16;
                                                             |     }
    0x000113fc b 0x10db0                                     |     goto label_17;
                                                             | label_34:
    0x00011400 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x00011404 bne 0x10eb0                                   |         goto label_3;
                                                             |     }
    0x00011408 ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x0001140c lsl r2, r4, 2                                 |     r2 = r4 << 2;
    0x00011410 add r3, r3, r2                                |     r3 += r2;
    0x00011414 ldr sb, [r3, 4]                               |     sb = *((r3 + 4));
                                                             | label_35:
    0x00011418 add r4, r4, 2                                 |     r4 += 2;
    0x0001141c b 0x10d20                                     |     goto label_1;
                                                             | label_48:
    0x00011420 ldr r3, [sp, 0x10]                            |     r3 = var_10h;
    0x00011424 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00011428 bne 0x10eb0                                   |         goto label_3;
                                                             |     }
                                                             | label_24:
    0x0001142c ldr r3, [pc, 0x348]                           |     r3 = "_s";
    0x00011430 cmp sb, 0                                     |     
                                                             |     if (sb != 0) {
    0x00011434 moveq sb, r3                                  |         sb = r3;
                                                             |     }
    0x00011438 cmp r8, 0                                     |     
                                                             |     if (r8 != 0) {
    0x0001143c moveq r8, r3                                  |         r8 = r3;
                                                             |     }
    0x00011440 mov r1, sb                                    |     r1 = sb;
    0x00011444 mov r0, r8                                    |     r0 = r8;
    0x00011448 bl 0x10b70                                    |     r0 = libiconv_open ();
    0x0001144c cmn r0, 1                                     |     
    0x00011450 mov r6, r0                                    |     r6 = r0;
                                                             |     if (r0 != 1) {
    0x00011454 bne 0x114b4                                   |         goto label_61;
                                                             |     }
    0x00011458 mov r1, sb                                    |     r1 = sb;
    0x0001145c ldr r0, [pc, 0x31c]                           |     r0 = "char";
    0x00011460 bl 0x10b70                                    |     r0 = libiconv_open ();
    0x00011464 cmn r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x00011468 moveq r3, sb                                  |         r3 = sb;
                                                             |     }
                                                             |     if (r0 != 1) {
    0x0001146c ldreq r2, [pc, 0x310]                         |         r2 = "conversion from %s unsupported";
                                                             |     }
                                                             |     if (r0 == 1) {
    0x00011470 beq 0x11490                                   |         goto label_62;
                                                             |     }
    0x00011474 ldr r1, [pc, 0x304]                           |     r1 = "char";
    0x00011478 mov r0, r8                                    |     r0 = r8;
    0x0001147c bl 0x10b70                                    |     r0 = libiconv_open ();
    0x00011480 cmn r0, 1                                     |     
                                                             |     if (r0 != 1) {
    0x00011484 bne 0x111e8                                   |         goto label_18;
                                                             |     }
    0x00011488 ldr r2, [pc, 0x2f8]                           |     r2 = "conversion from %s unsupported";
    0x0001148c mov r3, r8                                    |     r3 = r8;
                                                             | label_62:
    0x00011490 mov r1, 0                                     |     r1 = 0;
    0x00011494 mov r0, r1                                    |     r0 = r1;
    0x00011498 bl 0x10c30                                    |     error (r0, r1, r2);
                                                             | label_52:
    0x0001149c ldr r3, [pc, 0x2e8]                           |     
    0x000114a0 ldr r2, [pc, 0x2e8]                           |     r2 = *(0x1178c);
    0x000114a4 ldr r3, [r3]                                  |     r3 = "conversion to %s unsupported";
    0x000114a8 mov r1, 0                                     |     r1 = 0;
    0x000114ac mov r0, 1                                     |     r0 = 1;
    0x000114b0 bl 0x10c30                                    |     error (r0, r1, r2);
                                                             | label_61:
    0x000114b4 mov r0, r8                                    |     r0 = r8;
    0x000114b8 bl 0x10b34                                    |     iconv_canonicalize ();
    0x000114bc ldr r5, [pc, 0x234]                           |     r5 = *(0x116f4);
    0x000114c0 ldrb r3, [r0]                                 |     r3 = *(r0);
    0x000114c4 str r0, [r5, 0x5c]                            |     *((r5 + 0x5c)) = r0;
    0x000114c8 cmp r3, 0x45                                  |     
                                                             |     if (r3 != 0x45) {
    0x000114cc bne 0x11204                                   |         goto label_19;
                                                             |     }
    0x000114d0 ldrb r3, [r0, 1]                              |     r3 = *((r0 + 1));
    0x000114d4 cmp r3, 0x55                                  |     
                                                             |     if (r3 != 0x55) {
    0x000114d8 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x000114dc ldrb r3, [r0, 2]                              |     r3 = *((r0 + 2));
    0x000114e0 cmp r3, 0x43                                  |     
                                                             |     if (r3 != 0x43) {
    0x000114e4 bne 0x1125c                                   |         goto label_10;
                                                             |     }
    0x000114e8 ldrb r3, [r0, 3]                              |     r3 = *((r0 + 3));
    0x000114ec cmp r3, 0x2d                                  |     
                                                             |     if (r3 != 0x2d) {
    0x000114f0 bne 0x1126c                                   |         goto label_20;
                                                             |     }
    0x000114f4 ldrb r3, [r0, 4]                              |     r3 = *((r0 + 4));
    0x000114f8 cmp r3, 0x4a                                  |     
                                                             |     if (r3 != 0x4a) {
    0x000114fc bne 0x1126c                                   |         goto label_20;
                                                             |     }
    0x00011500 ldrb r3, [r0, 5]                              |     r3 = *((r0 + 5));
    0x00011504 cmp r3, 0x50                                  |     
                                                             |     if (r3 != 0x50) {
    0x00011508 bne 0x1126c                                   |         goto label_20;
                                                             |     }
    0x0001150c ldrb r3, [r0, 6]                              |     r3 = *((r0 + 6));
    0x00011510 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00011514 bne 0x1126c                                   |         goto label_20;
                                                             |     }
                                                             | label_54:
    0x00011518 ldr r3, [r5, 0x28]                            |     r3 = *((r5 + 0x28));
    0x0001151c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00011520 beq 0x11534                                   |         
    0x00011524 ldr r0, [r5, 0x34]                            |         r0 = *((r5 + 0x34));
    0x00011528 add r0, r0, 1                                 |         r0++;
    0x0001152c bl 0x12e88                                    |         fcn_00012e88 (r0);
    0x00011530 str r0, [r5, 0x2c]                            |         *((r5 + 0x2c)) = r0;
                                                             |     }
    0x00011534 ldr r3, [r5, 0x58]                            |     r3 = *((r5 + 0x58));
    0x00011538 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001153c bne 0x116a0                                   |         
    0x00011540 ldr r3, [r5]                                  |         r3 = *(r5);
    0x00011544 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011548 beq 0x1155c                                   |             
    0x0001154c ldr r0, [r5, 0xc]                             |             r0 = *((r5 + 0xc));
    0x00011550 add r0, r0, 1                                 |             r0++;
    0x00011554 bl 0x12e88                                    |             fcn_00012e88 (r0);
    0x00011558 str r0, [r5, 4]                               |             *((r5 + 4)) = r0;
                                                             |         }
    0x0001155c ldr r3, [r5, 0x14]                            |         r3 = *((r5 + 0x14));
    0x00011560 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011564 beq 0x11578                                   |             
    0x00011568 ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x0001156c add r0, r0, 1                                 |             r0++;
    0x00011570 bl 0x12e88                                    |             fcn_00012e88 (r0);
    0x00011574 str r0, [r5, 0x18]                            |             *((r5 + 0x18)) = r0;
                                                             |         }
    0x00011578 ldr r3, [r5, 0x28]                            |         r3 = *((r5 + 0x28));
    0x0001157c cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011580 beq 0x115e4                                   |             
    0x00011584 ldr r1, [pc, 0x1f0]                           |             r1 = "_s";
    0x00011588 ldr r0, [pc, 0x204]                           |             r0 = "try '%s -l' to get the list of supported encodings";
    0x0001158c bl 0x10b70                                    |             libiconv_open ();
    0x00011590 str r0, [r5, 0x40]                            |             *((r5 + 0x40)) = r0;
    0x00011594 ldr r0, [r5, 0x34]                            |             r0 = *((r5 + 0x34));
    0x00011598 lsl r0, r0, 2                                 |             r0 <<= 2;
    0x0001159c bl 0x12e88                                    |             fcn_00012e88 (r0);
    0x000115a0 ldr r1, [pc, 0x1d4]                           |             r1 = "_s";
    0x000115a4 str r0, [r5, 0x3c]                            |             *((r5 + 0x3c)) = r0;
    0x000115a8 ldr r0, [pc, 0x1e8]                           |             r0 = "UCS_4_INTERNAL";
    0x000115ac bl 0x10b70                                    |             libiconv_open ();
    0x000115b0 str r0, [r5, 0x38]                            |             *((r5 + 0x38)) = r0;
    0x000115b4 ldr r0, [r5, 0x34]                            |             r0 = *((r5 + 0x34));
    0x000115b8 lsl r0, r0, 2                                 |             r0 <<= 2;
    0x000115bc bl 0x12e88                                    |             fcn_00012e88 (r0);
    0x000115c0 ldr r1, [pc, 0x1b4]                           |             r1 = "_s";
    0x000115c4 str r0, [r5, 0x30]                            |             *((r5 + 0x30)) = r0;
    0x000115c8 mov r0, r8                                    |             r0 = r8;
    0x000115cc bl 0x10b70                                    |             libiconv_open ();
    0x000115d0 str r0, [r5, 0x50]                            |             *((r5 + 0x50)) = r0;
    0x000115d4 ldr r0, [r5, 0x34]                            |             r0 = *((r5 + 0x34));
    0x000115d8 lsl r0, r0, 2                                 |             r0 <<= 2;
    0x000115dc bl 0x12e88                                    |             fcn_00012e88 (r0);
    0x000115e0 str r0, [r5, 0x4c]                            |             *((r5 + 0x4c)) = r0;
                                                             |         }
    0x000115e4 ldr r3, [r5]                                  |         r3 = *(r5);
    0x000115e8 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000115ec beq 0x11610                                   |             
    0x000115f0 ldr r1, [pc, 0x184]                           |             r1 = "_s";
    0x000115f4 mov r0, r8                                    |             r0 = r8;
    0x000115f8 bl 0x10b70                                    |             libiconv_open ();
    0x000115fc str r0, [r5, 0x10]                            |             *((r5 + 0x10)) = r0;
    0x00011600 ldr r0, [r5, 0xc]                             |             r0 = *((r5 + 0xc));
    0x00011604 lsl r0, r0, 2                                 |             r0 <<= 2;
    0x00011608 bl 0x12e88                                    |             fcn_00012e88 (r0);
    0x0001160c str r0, [r5, 8]                               |             *((r5 + 8)) = r0;
                                                             |         }
    0x00011610 ldr r3, [r5, 0x14]                            |         r3 = *((r5 + 0x14));
    0x00011614 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00011618 beq 0x1163c                                   |             
    0x0001161c ldr r1, [pc, 0x158]                           |             r1 = "_s";
    0x00011620 mov r0, r8                                    |             r0 = r8;
    0x00011624 bl 0x10b70                                    |             libiconv_open ();
    0x00011628 str r0, [r5, 0x24]                            |             *((r5 + 0x24)) = r0;
    0x0001162c ldr r0, [r5, 0x20]                            |             r0 = *((r5 + 0x20));
    0x00011630 lsl r0, r0, 2                                 |             r0 <<= 2;
    0x00011634 bl 0x12e88                                    |             fcn_00012e88 (r0);
    0x00011638 str r0, [r5, 0x1c]                            |             *((r5 + 0x1c)) = r0;
                                                             |         }
    0x0001163c ldr r2, [r5, 0x28]                            |         r2 = *((r5 + 0x28));
    0x00011640 ldr r3, [pc, 0x154]                           |         r3 = "wchar_t";
    0x00011644 cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00011648 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x0001164c str r3, [sp, 0x24]                            |         var_24h = r3;
    0x00011650 ldr r3, [r5, 0x14]                            |         r3 = *((r5 + 0x14));
    0x00011654 mov r1, 6                                     |         r1 = 6;
    0x00011658 cmp r3, 0                                     |         
    0x0001165c ldr r3, [pc, 0x13c]                           |         r3 = *(0x1179c);
                                                             |         if (r3 != 0) {
    0x00011660 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x00011664 str r3, [sp, 0x28]                            |         var_28h = r3;
    0x00011668 ldr r3, [pc, 0x134]                           |         r3 = *(0x117a0);
    0x0001166c cmp r2, 0                                     |         
                                                             |         if (r2 != 0) {
    0x00011670 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x00011674 str r3, [sp, 0x2c]                            |         var_2ch = r3;
    0x00011678 ldr r3, [r5]                                  |         r3 = *(r5);
    0x0001167c add r2, sp, 0x24                              |         r2 += var_24h;
    0x00011680 cmp r3, 0                                     |         
    0x00011684 ldr r3, [pc, 0x11c]                           |         r3 = *(0x117a4);
                                                             |         if (r3 != 0) {
    0x00011688 moveq r3, 0                                   |             r3 = 0;
                                                             |         }
    0x0001168c str r3, [sp, 0x30]                            |         var_30h = r3;
    0x00011690 mov r0, r6                                    |         r0 = r6;
    0x00011694 mov r3, 0                                     |         r3 = 0;
    0x00011698 str r3, [sp, 0x34]                            |         var_34h = r3;
    0x0001169c bl 0x10c78                                    |         libiconvctl ();
                                                             |     }
    0x000116a0 ldr r3, [pc, 0x104]                           |     r3 = *(0x117a8);
    0x000116a4 mov r5, 0                                     |     r5 = 0;
    0x000116a8 add r2, sp, 0x18                              |     r2 += var_18h;
    0x000116ac mov r1, 5                                     |     r1 = 5;
    0x000116b0 mov r0, r6                                    |     r0 = r6;
    0x000116b4 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x000116b8 str r5, [sp, 0x1c]                            |     var_1ch = r5;
    0x000116bc str r5, [sp, 0x20]                            |     var_20h = r5;
    0x000116c0 bl 0x10c78                                    |     libiconvctl ();
    0x000116c4 cmp sl, r4                                    |     
                                                             |     if (sl != r4) {
    0x000116c8 bne 0x113e0                                   |         goto label_21;
                                                             |     }
    0x000116cc ldr r3, [pc, 0xdc]                            |     r3 = *(0x117ac);
    0x000116d0 ldr r0, [r3]                                  |     r0 = *(0x117ac);
    0x000116d4 bl 0x10c90                                    |     fileno (r0);
    0x000116d8 ldr r2, [pc, 0xd4]                            |     r2 = stdin;
    0x000116dc mov r1, r0                                    |     r1 = r0;
    0x000116e0 mov r0, r6                                    |     r0 = r6;
    0x000116e4 bl 0x123b8                                    |     r0 = fcn_000123b8 (r0, r1, r2, r3, r4, r5, r6);
    0x000116e8 mov r5, r0                                    |     r5 = r0;
                                                             | label_60:
    0x000116ec mov r0, r6                                    |     r0 = r6;
    0x000116f0 bl 0x10b7c                                    |     libiconv_close ();
    0x000116f4 b 0x10d88                                     |     goto label_22;
                                                             | }

[*] Function printf used 8 times iconv