[*] 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