[*] Binary protection state of getconf

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


[*] Function printf tear down of getconf

    ; 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/getconf @ 0x10cb0 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00010cb0 ()                      | void fcn_00010cb0 () {
    0x00010cb0 push {r4, lr}                     |     
    0x00010cb4 ldr r5, [pc, 0x28]                |     r5 = *(0x10ce0);
    0x00010cb8 ldr r4, [pc, 0x28]                |     r4 = __progname;
    0x00010cbc ldr r2, [r5]                      |     r2 = *(0x10ce0);
    0x00010cc0 ldr r1, [pc, 0x24]                |     r1 = stderr;
    0x00010cc4 ldr r0, [r4]                      |     r0 = __progname;
    0x00010cc8 bl 0x106d8                        |     fprintf (r0, r1, r2, r3, r4, r5)
    0x00010ccc ldr r2, [r5]                      |     r2 = *(0x10ce0);
    0x00010cd0 ldr r1, [pc, 0x18]                |     r1 = "Usage:__s___v_specification__variable_name__pathname_";
    0x00010cd4 ldr r0, [r4]                      |     r0 = __progname;
    0x00010cd8 bl 0x106d8                        |     fprintf (r0, "Usage:__s___v_specification__variable_name__pathname_", r2)
    0x00010cdc mov r0, 2                         |     r0 = 2;
    0x00010ce0 bl 0x10720                        |     r0 = exit (r0);
                                                 |     if (? != ?) {
    0x00010ce4 andeq r4, r2, r0, ror r0          |         r4 = r2 & (r0 >>> r0);
                                                 |     }
                                                 |     if (? != ?) {
    0x00010ce8 andeq r4, r2, r4, ror r0          |         r4 = r2 & (r4 >>> r0);
                                                 |     }
                                                 |     if (? != ?) {
    0x00010cec muleq r1, r0, sp                  |         r1 = r0 * sp;
                                                 |     }
                                                 |     /* Beware that this jump is a conditional jump.
                                                 |      * r2dec transformed it as a return, due being the
                                                 |      * last instruction. Please, check 'pdda' output
                                                 |      * for more hints. */
    0x00010cf0 andeq r1, r1, r7, asr 27          |     return r1 &= (r7 >> 27);
                                                 | }
    ; 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/getconf @ 0x10cf4 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00010cf4 ()              | void fcn_00010cf4 (int32_t arg1) {
                                         |     r0 = arg1;
    0x00010cf4 ldr r4, [pc, 0x10c]       |     r4 = *(0x10e04);
    0x00010cf8 ldr r8, [pc, 0x10c]       |     r8 = "_POSIX_LINK_MAX";
    0x00010cfc ldr sb, [pc, 0x10c]       |     sb = "%.*s\n";
    0x00010d00 ldr r6, [pc, 0x10c]       |     r6 = "%.*s\n";
    0x00010d04 push {r7, lr}             |     
    0x00010d08 mov r7, r0                |     r7 = r0;
                                         |     do {
    0x00010d0c ldr r1, [r4, -0xc]        |         r1 = *((r4 - 0xc));
    0x00010d10 cmp r1, 0                 |         
                                         |         if (r1 != 0) {
    0x00010d14 moveq r0, r1              |             r0 = r1;
                                         |         }
                                         |         if (r1 == 0) {
    0x00010d18 beq 0x10dcc               |             goto label_4;
                                         |         }
    0x00010d1c mov r0, r8                |         r0 = r8;
    0x00010d20 bl 0x10660                |         printf (r0)
    0x00010d24 ldr r3, [r4, -4]          |         r3 = *((r4 - 4));
    0x00010d28 cmp r3, 1                 |         
                                         |         if (r3 == 1) {
    0x00010d2c beq 0x10d98               |             goto label_5;
                                         |         }
                                         |         if (r3 <= 1) {
    0x00010d30 blo 0x10d6c               |             goto label_6;
                                         |         }
    0x00010d34 cmp r3, 2                 |         
                                         |         if (r3 == 2) {
    0x00010d38 bne 0x10d64               |             
    0x00010d3c ldr r1, [r4, -8]          |             r1 = *((r4 - 8));
    0x00010d40 mov r0, r7                |             r0 = r7;
    0x00010d44 bl 0x1066c                |             r0 = pathconf ();
    0x00010d48 cmn r0, 1                 |             
    0x00010d4c mov r1, r0                |             r1 = r0;
                                         |             if (r0 != 1) {
    0x00010d50 beq 0x10d5c               |                 
                                         | label_0:
    0x00010d54 mov r0, r6                |                 r0 = r6;
                                         | label_2:
    0x00010d58 bl 0x10660                |                 printf (r0)
                                         |             }
                                         | label_1:
    0x00010d5c ldr r0, [pc, 0xb4]        |             r0 = "_ld";
    0x00010d60 bl 0x10660                |             printf ("_ld")
                                         |         }
                                         | label_3:
    0x00010d64 add r4, r4, 0xc           |         r4 += 0xc;
    0x00010d68 b 0x10d0c                 |         
                                         |     } while (1);
                                         | label_6:
    0x00010d6c ldr r0, [r4, -8]          |     r0 = *((r4 - 8));
    0x00010d70 bl 0x10654                |     r0 = sysconf ();
    0x00010d74 cmn r0, 1                 |     
    0x00010d78 mov r1, r0                |     r1 = r0;
                                         |     if (r0 != 1) {
    0x00010d7c bne 0x10d54               |         goto label_0;
                                         |     }
    0x00010d80 ldr r3, [r4, -8]          |     r3 = *((r4 - 8));
    0x00010d84 sub r3, r3, 0x74          |     r3 -= 0x74;
    0x00010d88 cmp r3, 1                 |     
                                         |     if (r3 <= 1) {
    0x00010d8c ldrls r0, [pc, 0x88]      |         r0 = *(0x00010e1c);
                                         |         goto label_7;
                                         |     }
                                         |     if (r3 > 1) {
                                         | label_7:
    0x00010d90 bhi 0x10d5c               |         goto label_1;
                                         |     }
    0x00010d94 b 0x10d58                 |     goto label_2;
                                         | label_5:
    0x00010d98 mov r2, 0                 |     r2 = 0;
    0x00010d9c mov r1, r2                |     r1 = r2;
    0x00010da0 ldr r0, [r4, -8]          |     r0 = *((r4 - 8));
    0x00010da4 bl 0x106b4                |     r0 = confstr ();
    0x00010da8 mov sl, r0                |     sl = r0;
    0x00010dac bl 0x106a8                |     r0 = malloc (r0);
    0x00010db0 subs r5, r0, 0            |     r5 = r0 - 0;
                                         |     if (r5 != r0) {
    0x00010db4 bne 0x10dd0               |         goto label_8;
                                         |     }
    0x00010db8 ldr r1, [pc, 0x60]        |     r1 = *(0x10e1c);
                                         |     do {
    0x00010dbc ldr r3, [pc, 0x60]        |         r3 = "memory_exhausted";
    0x00010dc0 ldr r0, [r3]              |         r0 = "memory_exhausted";
    0x00010dc4 bl 0x106d8                |         fprintf ("memory_exhausted", r1, r2, "memory_exhausted")
    0x00010dc8 mov r0, 3                 |         r0 = 3;
                                         | label_4:
    0x00010dcc bl 0x10720                |         exit (r0);
                                         | label_8:
    0x00010dd0 mov r1, r5                |         r1 = r5;
    0x00010dd4 mov r2, sl                |         r2 = sl;
    0x00010dd8 ldr r0, [r4, -8]          |         r0 = *((r4 - 8));
    0x00010ddc bl 0x106b4                |         r0 = confstr ();
    0x00010de0 cmp r0, sl                |         
    0x00010de4 mov r1, r0                |         r1 = r0;
                                         |         if (r0 == sl) {
    0x00010de8 ldrne r1, [pc, 0x38]      |             r1 = "confstr";
                                         |         }
    0x00010dec bne 0x10dbc               |         
                                         |     } while (r0 != sl);
    0x00010df0 mov r2, r5                |     r2 = r5;
    0x00010df4 mov r0, sb                |     r0 = sb;
    0x00010df8 bl 0x10660                |     printf (r0, r1, r2)
    0x00010dfc mov r0, r5                |     r0 = r5;
    0x00010e00 bl 0x10750                |     free (r0);
    0x00010e04 b 0x10d64                 |     goto label_3;
                                         | }
    ; 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/getconf @ 0x1075c */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) main ()                                          | int32_t main (uint32_t argc, char ** argv) {
                                                             |     char * s1;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_20h_2;
                                                             |     int32_t var_20h;
                                                             |     r0 = argc;
                                                             |     r1 = argv;
                                                             |     /* [10] -r-x section size 1744 named .text */
    0x0001075c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00010760 cmp r0, 1                                     |     
    0x00010764 add fp, sp, 0x20                              |     
    0x00010768 sub sp, sp, 0x1c                              |     
    0x0001076c mov r4, r0                                    |     r4 = r0;
    0x00010770 mov r6, r1                                    |     r6 = r1;
                                                             |     if (r0 <= 1) {
    0x00010774 ble 0x107f4                                   |         goto label_11;
                                                             |     }
    0x00010778 ldr r5, [r1, 4]                               |     r5 = *((r1 + 4));
    0x0001077c ldr r1, [pc, 0x394]                           |     r1 = *(0x10b14);
    0x00010780 mov r0, r5                                    |     r0 = r5;
    0x00010784 bl 0x10708                                    |     r0 = strcmp (r0, r1);
    0x00010788 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001078c bne 0x107c4                                   |         goto label_12;
                                                             |     }
    0x00010790 ldr r2, [pc, 0x384]                           |     r2 = "__version";
    0x00010794 ldr r1, [pc, 0x384]                           |     r1 = *(0x10b1c);
    0x00010798 ldr r0, [pc, 0x384]                           |     r0 = "getconf_regression_test";
    0x0001079c bl 0x10660                                    |     printf ("getconf_regression_test", r1, "__version")
    0x000107a0 ldr r1, [pc, 0x380]                           |     r1 = "getconf__GNU__s___s";
    0x000107a4 ldr r0, [pc, 0x380]                           |     r0 = "2009";
    0x000107a8 bl 0x10660                                    |     printf ("2009", "getconf__GNU__s___s")
    0x000107ac ldr r1, [pc, 0x37c]                           |     r1 = "Copyright__C___s_Free_Software_Foundation__Inc.This_is_free_software__see_the_source_for_copying_conditions.__There_is_NOwarranty__not_even_for_MERCHANTABILITY_or_FITNESS_FOR_A_PARTICULAR_PURPOSE.";
    0x000107b0 ldr r0, [pc, 0x37c]                           |     r0 = "Roland_McGrath";
    0x000107b4 bl 0x10660                                    |     printf ("Roland_McGrath", "Copyright__C___s_Free_Software_Foundation__Inc.This_is_free_software__see_the_source_for_copying_conditions.__There_is_NOwarranty__not_even_for_MERCHANTABILITY_or_FITNESS_FOR_A_PARTICULAR_PURPOSE.")
                                                             |     do {
    0x000107b8 mov r0, 0                                     |         r0 = 0;
    0x000107bc sub sp, fp, 0x20                              |         
    0x000107c0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_12:
    0x000107c4 ldr r1, [pc, 0x36c]                           |         r1 = "Written by %s.\n";
    0x000107c8 mov r0, r5                                    |         r0 = r5;
    0x000107cc bl 0x10708                                    |         r0 = strcmp (r0, "Written by %s.\n");
    0x000107d0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000107d4 bne 0x107f4                                   |             goto label_11;
                                                             |         }
    0x000107d8 ldr r0, [pc, 0x35c]                           |         r0 = "--help";
    0x000107dc bl 0x10660                                    |         printf ("--help")
    0x000107e0 ldr r3, [pc, 0x358]                           |         r3 = "Usage:_getconf___v_SPEC__VAR__or:__getconf___v_SPEC__PATH_VAR_PATHGet_the_configuration_value_for_variable_VAR__or_for_variable_PATH_VARfor_path_PATH.__If_SPEC_is_given__give_values_for_compilationenvironment_SPEC.";
    0x000107e4 ldr r0, [pc, 0x358]                           |         r0 = stdout;
    0x000107e8 ldr r1, [r3]                                  |         r1 = "Usage:_getconf___v_SPEC__VAR__or:__getconf___v_SPEC__PATH_VAR_PATHGet_the_configuration_value_for_variable_VAR__or_for_variable_PATH_VARfor_path_PATH.__If_SPEC_is_given__give_values_for_compilationenvironment_SPEC.";
    0x000107ec bl 0x10738                                    |         fputs (r0, "Usage:_getconf___v_SPEC__VAR__or:__getconf___v_SPEC__PATH_VAR_PATHGet_the_configuration_value_for_variable_VAR__or_for_variable_PATH_VARfor_path_PATH.__If_SPEC_is_given__give_values_for_compilationenvironment_SPEC.");
    0x000107f0 b 0x107b8                                     |         
                                                             |     } while (1);
                                                             | label_11:
    0x000107f4 ldr r0, [pc, 0x34c]                           |     r0 = "For_bug_reporting_instructions__please_see:_http:__www.gnu.org_software_libc_bugs.html_.";
    0x000107f8 bl 0x10678                                    |     getenv ("For_bug_reporting_instructions__please_see:_http:__www.gnu.org_software_libc_bugs.html_.");
    0x000107fc ldr r7, [pc, 0x348]                           |     r7 = "GETCONF_DIR";
    0x00010800 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010804 movne r7, r0                                  |         r7 = r0;
                                                             |     }
    0x00010808 mov r0, r7                                    |     r0 = r7;
    0x0001080c bl 0x1072c                                    |     strlen (r0);
    0x00010810 cmp r4, 1                                     |     
    0x00010814 mov sb, r0                                    |     sb = r0;
                                                             |     if (r4 <= 1) {
    0x00010818 ble 0x1089c                                   |         goto label_13;
                                                             |     }
    0x0001081c ldr r5, [r6, 4]                               |     r5 = *((r6 + 4));
    0x00010820 mov r2, 2                                     |     r2 = 2;
    0x00010824 ldr r1, [pc, 0x324]                           |     r1 = "/sam9x5/buildroot-kt400/output/build/uclibc-1.0.31/utils";
    0x00010828 mov r0, r5                                    |     r0 = r5;
    0x0001082c bl 0x106f0                                    |     r0 = strncmp (r0, "/sam9x5/buildroot-kt400/output/build/uclibc-1.0.31/utils", r2);
    0x00010830 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00010834 bne 0x1089c                                   |         goto label_13;
                                                             |     }
    0x00010838 ldrb r3, [r5, 2]                              |     r3 = *((r5 + 2));
    0x0001083c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00010840 bne 0x10858                                   |         goto label_14;
                                                             |     }
    0x00010844 cmp r4, 2                                     |     
                                                             |     if (r4 == 2) {
    0x00010848 ldrne r5, [r6, 8]!                            |         r5 = *((r6 += 8));
                                                             |     }
                                                             |     if (r4 == 2) {
    0x0001084c subne r4, r4, 2                               |         r4 -= 2;
                                                             |     }
                                                             |     if (r4 != 2) {
    0x00010850 bne 0x108f4                                   |         goto label_15;
                                                             |     }
                                                             |     do {
                                                             | label_1:
    0x00010854 bl 0x10cb0                                    |         fcn_00010cb0 ();
                                                             | label_14:
    0x00010858 adds r5, r5, 2                                |         r5 += 2;
    0x0001085c add r6, r6, 4                                 |         r6 += 4;
    0x00010860 add r4, r4, 1                                 |         r4++;
                                                             |         if (r5 != r5) {
    0x00010864 bne 0x10ae4                                   |             goto label_16;
                                                             |         }
                                                             | label_0:
    0x00010868 ldr r5, [r6, 4]                               |         r5 = *((r6 + 4));
    0x0001086c ldr r1, [pc, 0x2e0]                           |         r1 = *(0x10b50);
    0x00010870 mov r0, r5                                    |         r0 = r5;
    0x00010874 bl 0x10708                                    |         r0 = strcmp (r0, r1);
    0x00010878 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001087c bne 0x1090c                                   |             goto label_17;
                                                             |         }
    0x00010880 cmp r4, 2                                     |         
                                                             |         if (r4 != 2) {
    0x00010884 ldreq r0, [pc, 0x2cc]                         |             r0 = *(0x00010b58);
                                                             |         }
                                                             |         if (r4 == 2) {
    0x00010888 beq 0x10898                                   |             goto label_18;
                                                             |         }
    0x0001088c cmp r4, 3                                     |         
    0x00010890 bne 0x10854                                   |         
                                                             |     } while (r4 != 3);
    0x00010894 ldr r0, [r6, 8]                               |     r0 = *((r6 + 8));
                                                             | label_18:
    0x00010898 bl 0x10cf4                                    |     fcn_00010cf4 (r0);
                                                             | label_13:
    0x0001089c add r3, sb, 0x10                              |     r3 = sb + 0x10;
    0x000108a0 bic r3, r3, 7                                 |     r3 = BIT_MASK (r3, 7);
    0x000108a4 mov r8, sp                                    |     r8 = sp;
    0x000108a8 sub sp, sp, r3                                |     
    0x000108ac mov r2, sb                                    |     r2 = sb;
    0x000108b0 mov r1, r7                                    |     r1 = r7;
    0x000108b4 mov r0, sp                                    |     r0 = sp;
    0x000108b8 bl 0x106c0                                    |     mempcpy ();
    0x000108bc mov r2, 9                                     |     r2 = 9;
    0x000108c0 ldr r1, [pc, 0x294]                           |     r1 = *(0x10b58);
    0x000108c4 bl 0x10684                                    |     memcpy (r0, r1, r2);
    0x000108c8 mov r0, sp                                    |     r0 = sp;
    0x000108cc mov r2, 0x15                                  |     r2 = 0x15;
    0x000108d0 sub r1, fp, 0x3c                              |     r1 -= s1;
    0x000108d4 bl 0x10690                                    |     readlink ();
    0x000108d8 mov r5, 0                                     |     r5 = 0;
    0x000108dc cmp r0, 0                                     |     
                                                             |     if (r0 <= 0) {
    0x000108e0 subgt r3, fp, 0x24                            |         r3 -= var_24h;
                                                             |     }
                                                             |     if (r0 <= 0) {
    0x000108e4 addgt r0, r3, r0                              |         r0 = r3 + r0;
                                                             |     }
                                                             |     if (r0 <= 0) {
    0x000108e8 strbgt r5, [r0, -0x18]                        |         *((r0 - 0x18)) = r5;
                                                             |     }
                                                             |     if (r0 <= 0) {
    0x000108ec subgt r5, fp, 0x3c                            |         r5 -= s1;
                                                             |     }
    0x000108f0 mov sp, r8                                    |     
                                                             | label_15:
    0x000108f4 cmp r5, 0                                     |     
                                                             |     if (r5 != 0) {
    0x000108f8 bne 0x10ae4                                   |         goto label_16;
                                                             |     }
                                                             | label_8:
    0x000108fc cmp r4, 1                                     |     
                                                             |     if (r4 > 1) {
    0x00010900 bgt 0x10868                                   |         goto label_0;
                                                             |     }
    0x00010904 mov r3, 1                                     |     r3 = 1;
    0x00010908 b 0x10924                                     |     goto label_19;
                                                             | label_17:
    0x0001090c ldr r1, [pc, 0x24c]                           |     r1 = "_default";
    0x00010910 mov r0, r5                                    |     r0 = r5;
    0x00010914 bl 0x10708                                    |     r0 = strcmp (r0, "_default");
    0x00010918 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001091c moveq r3, 2                                   |         r3 = 2;
                                                             |     }
                                                             |     if (r0 == 0) {
    0x00010920 movne r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             | label_19:
    0x00010924 sub r4, r4, r3                                |     r4 -= r3;
    0x00010928 sub r2, r4, 1                                 |     r2 = r4 - 1;
    0x0001092c cmp r2, 1                                     |     
                                                             |     if (r2 > 1) {
    0x00010930 bhi 0x10854                                   |         goto label_1;
                                                             |     }
    0x00010934 ldr sb, [r6, r3, lsl 2]                       |     offset_0 = r3 << 2;
                                                             |     sb = *((r6 + offset_0));
    0x00010938 ldr r5, [pc, 0x224]                           |     r5 = "__";
    0x0001093c ldr sl, [pc, 0x224]                           |     sl = "_POSIX_";
    0x00010940 lsl r8, r3, 2                                 |     r8 = r3 << 2;
                                                             | label_7:
    0x00010944 ldr r7, [r5]                                  |     r7 = *(r5);
    0x00010948 cmp r7, 0                                     |     
                                                             |     if (r7 == 0) {
    0x0001094c bne 0x1096c                                   |         
    0x00010950 ldr r1, [pc, 0x214]                           |         r1 = "_POSIX_";
    0x00010954 mov r2, sb                                    |         r2 = sb;
                                                             | label_10:
    0x00010958 ldr r3, [pc, 0x210]                           |         r3 = "Unrecognized variable `%s'\n";
    0x0001095c ldr r0, [r3]                                  |         r0 = "Unrecognized variable `%s'\n";
    0x00010960 bl 0x106d8                                    |         fprintf ("Unrecognized variable `%s'\n", "_POSIX_", r2, "Unrecognized variable `%s'\n")
    0x00010964 mov r0, 2                                     |         r0 = 2;
    0x00010968 b 0x10a20                                     |         goto label_4;
                                                             |     }
    0x0001096c mov r1, sb                                    |     r1 = sb;
    0x00010970 mov r0, r7                                    |     r0 = r7;
    0x00010974 bl 0x10708                                    |     r0 = strcmp (r0, r1);
    0x00010978 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x0001097c beq 0x109ac                                   |         
    0x00010980 mov r2, 7                                     |         r2 = 7;
    0x00010984 mov r1, sl                                    |         r1 = sl;
    0x00010988 mov r0, r7                                    |         r0 = r7;
    0x0001098c bl 0x106f0                                    |         r0 = strncmp (r0, r1, r2);
    0x00010990 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00010994 bne 0x10adc                                   |             goto label_20;
                                                             |         }
    0x00010998 mov r1, sb                                    |         r1 = sb;
    0x0001099c add r0, r7, 7                                 |         r0 = r7 + 7;
    0x000109a0 bl 0x10708                                    |         r0 = strcmp (r0, r1);
    0x000109a4 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x000109a8 bne 0x10adc                                   |             goto label_20;
                                                             |         }
                                                             |     }
    0x000109ac ldr r3, [r5, 8]                               |     r3 = *((r5 + 8));
    0x000109b0 cmp r3, 1                                     |     
                                                             |     if (r3 == 1) {
    0x000109b4 beq 0x10a70                                   |         goto label_21;
                                                             |     }
                                                             |     if (r3 <= 1) {
    0x000109b8 blo 0x10a30                                   |         goto label_22;
                                                             |     }
    0x000109bc cmp r3, 2                                     |     
                                                             |     if (r3 != 2) {
    0x000109c0 bne 0x10adc                                   |         goto label_20;
                                                             |     }
    0x000109c4 cmp r4, 1                                     |     
                                                             |     if (r4 == 1) {
    0x000109c8 beq 0x10854                                   |         goto label_1;
                                                             |     }
    0x000109cc bl 0x10714                                    |     errno_location ();
    0x000109d0 add r8, r8, 4                                 |     r8 += 4;
    0x000109d4 mov r3, 0                                     |     r3 = 0;
    0x000109d8 add r7, r6, r8                                |     r7 = r6 + r8;
    0x000109dc str r3, [r0]                                  |     *(r0) = r3;
    0x000109e0 mov r4, r0                                    |     r4 = r0;
    0x000109e4 ldr r1, [r5, 4]                               |     r1 = *((r5 + 4));
    0x000109e8 ldr r0, [r6, r8]                              |     r0 = *((r6 + r8));
    0x000109ec bl 0x1066c                                    |     r0 = pathconf ();
    0x000109f0 cmn r0, 1                                     |     
    0x000109f4 mov r1, r0                                    |     r1 = r0;
                                                             |     if (r0 == 1) {
    0x000109f8 bne 0x10a24                                   |         
    0x000109fc ldr r3, [r4]                                  |         r3 = *(r4);
    0x00010a00 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x00010a04 beq 0x10a60                                   |             goto label_23;
                                                             |         }
    0x00010a08 ldr r3, [pc, 0x160]                           |         r3 = "Unrecognized variable `%s'\n";
    0x00010a0c ldr r2, [r7]                                  |         r2 = *(r7);
    0x00010a10 ldr r1, [pc, 0x15c]                           |         r1 = stderr;
    0x00010a14 ldr r0, [r3]                                  |         r0 = "Unrecognized variable `%s'\n";
    0x00010a18 bl 0x106d8                                    |         fprintf ("Unrecognized variable `%s'\n", r1, r2, "Unrecognized variable `%s'\n")
                                                             | label_5:
    0x00010a1c mov r0, 3                                     |         r0 = 3;
                                                             | label_4:
    0x00010a20 bl 0x10720                                    |         exit (r0);
                                                             |     }
                                                             | label_2:
    0x00010a24 ldr r0, [pc, 0x14c]                           |     r0 = "pathconf: %s\n";
                                                             | label_3:
    0x00010a28 bl 0x10660                                    |     printf ("pathconf: %s\n")
    0x00010a2c b 0x10a68                                     |     goto label_6;
                                                             | label_22:
    0x00010a30 cmp r4, 2                                     |     
                                                             |     if (r4 == 2) {
    0x00010a34 beq 0x10854                                   |         goto label_1;
                                                             |     }
    0x00010a38 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00010a3c bl 0x10654                                    |     r0 = sysconf ();
    0x00010a40 cmn r0, 1                                     |     
    0x00010a44 mov r1, r0                                    |     r1 = r0;
                                                             |     if (r0 != 1) {
    0x00010a48 bne 0x10a24                                   |         goto label_2;
                                                             |     }
    0x00010a4c ldr r3, [r5, 4]                               |     r3 = *((r5 + 4));
    0x00010a50 sub r3, r3, 0x74                              |     r3 -= 0x74;
    0x00010a54 cmp r3, 1                                     |     
                                                             |     if (r3 <= 1) {
    0x00010a58 ldrls r0, [pc, 0x11c]                         |         r0 = "%lu\n";
                                                             |         goto label_24;
                                                             |     }
                                                             |     if (r3 < 1) {
                                                             | label_24:
    0x00010a5c bls 0x10a28                                   |         goto label_3;
                                                             |     }
                                                             | label_23:
    0x00010a60 ldr r0, [pc, 0x118]                           |     r0 = "%lu\n";
    0x00010a64 bl 0x1069c                                    |     puts ("%lu\n");
                                                             | label_6:
    0x00010a68 mov r0, 0                                     |     r0 = 0;
    0x00010a6c b 0x10a20                                     |     goto label_4;
                                                             | label_21:
    0x00010a70 cmp r4, 2                                     |     
                                                             |     if (r4 == 2) {
    0x00010a74 beq 0x10854                                   |         goto label_1;
                                                             |     }
    0x00010a78 mov r2, 0                                     |     r2 = 0;
    0x00010a7c mov r1, r2                                    |     r1 = r2;
    0x00010a80 ldr r0, [r5, 4]                               |     r0 = *((r5 + 4));
    0x00010a84 bl 0x106b4                                    |     confstr ();
    0x00010a88 ldr r6, [pc, 0xe0]                            |     r6 = "Unrecognized variable `%s'\n";
    0x00010a8c mov r7, r0                                    |     r7 = r0;
    0x00010a90 bl 0x106a8                                    |     r0 = malloc (r0);
    0x00010a94 subs r4, r0, 0                                |     r4 = r0 - 0;
                                                             |     if (r4 != r0) {
    0x00010a98 ldreq r1, [pc, 0xe4]                          |         r1 = "memory_exhausted";
                                                             |     }
                                                             |     if (r4 != r0) {
    0x00010a9c beq 0x10ac0                                   |         
    0x00010aa0 mov r1, r4                                    |         r1 = r4;
    0x00010aa4 mov r2, r7                                    |         r2 = r7;
    0x00010aa8 ldr r0, [r5, 4]                               |         r0 = *((r5 + 4));
    0x00010aac bl 0x106b4                                    |         r0 = confstr ();
    0x00010ab0 cmp r0, r7                                    |         
    0x00010ab4 mov r1, r0                                    |         r1 = r0;
                                                             |         if (r0 == r7) {
    0x00010ab8 beq 0x10acc                                   |             goto label_25;
                                                             |         }
    0x00010abc ldr r1, [pc, 0xc4]                            |         r1 = "memory_exhausted";
                                                             |     }
    0x00010ac0 ldr r0, [r6]                                  |     r0 = *(r6);
    0x00010ac4 bl 0x106d8                                    |     fprintf (r0, "memory_exhausted")
    0x00010ac8 b 0x10a1c                                     |     goto label_5;
                                                             | label_25:
    0x00010acc mov r2, r4                                    |     r2 = r4;
    0x00010ad0 ldr r0, [pc, 0xb4]                            |     r0 = "confstr";
    0x00010ad4 bl 0x10660                                    |     printf ("confstr", r1, r2)
    0x00010ad8 b 0x10a68                                     |     goto label_6;
                                                             | label_20:
    0x00010adc add r5, r5, 0xc                               |     r5 += 0xc;
    0x00010ae0 b 0x10944                                     |     goto label_7;
                                                             | label_16:
    0x00010ae4 ldr r8, [pc, 0xa4]                            |     r8 = "%.*s\n";
    0x00010ae8 mov r7, 0                                     |     r7 = 0;
                                                             | label_9:
    0x00010aec ldr r1, [r8, r7, lsl 3]                       |     offset_1 = r7 << 3;
                                                             |     r1 = *((r8 + offset_1));
    0x00010af0 mov r0, r5                                    |     r0 = r5;
    0x00010af4 bl 0x10708                                    |     r0 = strcmp (r0, r1);
    0x00010af8 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00010afc beq 0x108fc                                   |         goto label_8;
                                                             |     }
    0x00010b00 add r7, r7, 1                                 |     r7++;
    0x00010b04 cmp r7, 0xc                                   |     
                                                             |     if (r7 != 0xc) {
    0x00010b08 bne 0x10aec                                   |         goto label_9;
                                                             |     }
    0x00010b0c mov r2, r5                                    |     r2 = r5;
    0x00010b10 ldr r1, [pc, 0x7c]                            |     r1 = "XBS5_ILP32_OFF32";
    0x00010b14 b 0x10958                                     |     goto label_10;
                                                             | }

[*] Function printf used 17 times getconf