[*] Binary protection state of ntpd

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


[*] Function strcpy tear down of ntpd

    ; 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/sbin/ntpd @ 0x45000 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00045000 ()                                  | void fcn_00045000 (int32_t arg_0h, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     char * src;
                                                             |     char * dest;
                                                             |     void * s1;
                                                             |     int32_t var_f8h;
                                                             |     int32_t var_fch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00045000 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00045004 ldr r4, [pc, 0x140]                           |     r4 = *(0x45148);
    0x00045008 sub sp, sp, 0xfc                              |     
    0x0004500c add r1, r4, r1, lsl 2                         |     r1 = r4 + (r1 << 2);
    0x00045010 mov sl, r0                                    |     sl = r0;
    0x00045014 mov r0, r2                                    |     r0 = r2;
    0x00045018 ldr r6, [r1, 0x434]                           |     r6 = *((r1 + 0x434));
    0x0004501c mov r8, r2                                    |     r8 = r2;
    0x00045020 bl 0x14a88                                    |     strlen (r0);
    0x00045024 ldr fp, [pc, 0x124]                           |     fp = obj.__ctype_b;
    0x00045028 mov sb, r8                                    |     sb = r8;
    0x0004502c str r0, [sp, 4]                               |     var_4h = r0;
    0x00045030 mov r0, r6                                    |     r0 = r6;
    0x00045034 bl 0x14a88                                    |     strlen (r0);
    0x00045038 mov r1, r6                                    |     r1 = r6;
    0x0004503c mov r5, r0                                    |     r5 = r0;
    0x00045040 add r0, sp, 0x10                              |     r0 += dest;
    0x00045044 bl 0x15514                                    |     strcpy (r0, r1)
    0x00045048 add r1, r4, 0x450                             |     r1 = r4 + 0x450;
    0x0004504c add r3, sp, 0x10                              |     r3 += dest;
    0x00045050 mov r2, 0x84                                  |     r2 = 0x84;
    0x00045054 add r1, r1, 8                                 |     r1 += 8;
    0x00045058 add r0, sp, 0x74                              |     r0 += s1;
    0x0004505c add r7, r3, r5                                |     r7 = r3 + r5;
    0x00045060 bl 0x147dc                                    |     memcpy (r0, r1, r2);
    0x00045064 rsb r6, r5, 0x64                              |     r6 = 0x64 - r5;
    0x00045068 mov r4, 0                                     |     r4 = 0;
                                                             |     do {
    0x0004506c ldr r2, [sp, 4]                               |         r2 = var_4h;
    0x00045070 sub r3, sb, r8                                |         r3 = sb - r8;
    0x00045074 cmp r2, r3                                    |         
    0x00045078 cmphi r6, r4                                  |         __asm ("cmphi r6, r4");
                                                             |         if (r2 >= r3) {
    0x0004507c bls 0x450a4                                   |             
    0x00045080 ldrb r3, [sb], 1                              |             r3 = *(sb);
                                                             |             sb++;
    0x00045084 ldr r1, [fp]                                  |             r1 = *(fp);
    0x00045088 lsl r2, r3, 1                                 |             r2 = r3 << 1;
    0x0004508c ldrh r2, [r1, r2]                             |             r2 = *((r1 + r2));
    0x00045090 tst r2, 0x40                                  |             
                                                             |             if ((r2 & 0x40) == 0) {
    0x00045094 beq 0x450dc                                   |                 goto label_2;
                                                             |             }
    0x00045098 add r2, r4, 1                                 |             r2 = r4 + 1;
    0x0004509c cmp r6, r2                                    |             
                                                             |             if (r6 > r2) {
    0x000450a0 bhi 0x450cc                                   |                 goto label_3;
                                                             |             }
                                                             |         }
                                                             | label_0:
    0x000450a4 rsb r5, r5, 0x63                              |         r5 = 0x63 - r5;
    0x000450a8 cmp r5, r4                                    |         
                                                             |         if (r5 < r4) {
    0x000450ac movhs r5, r4                                  |             r5 = r4;
                                                             |         }
    0x000450b0 mov r3, 0                                     |         r3 = 0;
    0x000450b4 strb r3, [r7, r5]                             |         *((r7 + r5)) = r3;
    0x000450b8 add r1, sp, 0x10                              |         r1 += dest;
    0x000450bc add r0, sl, 0x10                              |         r0 = sl + 0x10;
    0x000450c0 bl 0x3ea30                                    |         fcn_0003ea30 (r0, r1);
    0x000450c4 add sp, sp, 0xfc                              |         
    0x000450c8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_3:
    0x000450cc strb r3, [r7, r4]                             |         *((r7 + r4)) = r3;
    0x000450d0 mov r3, 1                                     |         r3 = 1;
                                                             | label_1:
    0x000450d4 add r4, r4, r3                                |         r4 += r3;
    0x000450d8 b 0x4506c                                     |         
                                                             |     } while (1);
                                                             | label_2:
    0x000450dc cmp r3, 0x20                                  |     
                                                             |     if (r3 > 0x20) {
    0x000450e0 bhi 0x45128                                   |         goto label_4;
                                                             |     }
    0x000450e4 add r2, sp, 0xf8                              |     r2 += var_f8h;
    0x000450e8 add r3, r2, r3, lsl 2                         |     r3 = r2 + (r3 << 2);
    0x000450ec ldr r1, [r3, -0x84]                           |     r1 = *((r3 - 0x84));
    0x000450f0 mov r0, r1                                    |     r0 = r1;
    0x000450f4 str r1, [sp, 0xc]                             |     src = r1;
    0x000450f8 bl 0x14a88                                    |     strlen (r0);
    0x000450fc add r2, r4, 1                                 |     r2 = r4 + 1;
    0x00045100 add r2, r2, r0                                |     r2 += r0;
    0x00045104 cmp r6, r2                                    |     
    0x00045108 str r0, [sp, 8]                               |     var_8h = r0;
                                                             |     if (r6 < r2) {
    0x0004510c bls 0x450a4                                   |         goto label_0;
                                                             |     }
    0x00045110 sub r2, r6, r4                                |     r2 = r6 - r4;
    0x00045114 ldr r1, [sp, 0xc]                             |     r1 = src;
    0x00045118 add r0, r7, r4                                |     r0 = r7 + r4;
    0x0004511c bl 0x1477c                                    |     strlcpy (r0, r1, r2);
    0x00045120 ldr r3, [sp, 8]                               |     r3 = var_8h;
    0x00045124 b 0x450d4                                     |     goto label_1;
                                                             | label_4:
    0x00045128 add r2, r4, 6                                 |     r2 = r4 + 6;
    0x0004512c cmp r6, r2                                    |     
                                                             |     if (r6 < r2) {
    0x00045130 bls 0x450a4                                   |         goto label_0;
                                                             |     }
    0x00045134 ldr r2, [pc, 0x18]                            |     r2 = __ctype_b;
    0x00045138 sub r1, r6, r4                                |     r1 = r6 - r4;
    0x0004513c add r0, r7, r4                                |     r0 = r7 + r4;
    0x00045140 bl 0x5e950                                    |     fcn_0005e950 ();
    0x00045144 mov r3, 5                                     |     r3 = 5;
    0x00045148 b 0x450d4                                     |     goto label_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/sbin/ntpd @ 0x6c86c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.0006c86c ()                                      | void fcn_0006c86c (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_8h;
                                                                 |     int32_t var_ch;
                                                                 |     char * src;
                                                                 |     size_t size;
                                                                 |     int32_t var_1h;
                                                                 |     int32_t var_18h;
                                                                 |     int32_t var_1000h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0006c86c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0006c870 sub sp, sp, 0x1000                                |     
    0x0006c874 sub sp, sp, 0x1c                                  |     
    0x0006c878 mov fp, r0                                        |     
    0x0006c87c mov sb, r1                                        |     sb = r1;
    0x0006c880 mov r7, 0                                         |     r7 = 0;
                                                                 | label_1:
    0x0006c884 cmp fp, 0                                         |     
    0x0006c888 bne 0x6c8a0                                       |     
                                                                 |     while (r0 < r7) {
                                                                 | label_0:
    0x0006c88c mov r4, 0                                         |         r4 = 0;
                                                                 | label_2:
    0x0006c890 mov r0, r4                                        |         r0 = r4;
    0x0006c894 add sp, sp, 0x1000                                |         
    0x0006c898 add sp, sp, 0x1c                                  |         
    0x0006c89c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
    0x0006c8a0 mov r0, fp                                        |         r0 = fp;
    0x0006c8a4 bl 0x14a88                                        |         r0 = strlen (r0);
    0x0006c8a8 cmp r0, r7                                        |         
    0x0006c8ac bls 0x6c88c                                       |         
                                                                 |     }
    0x0006c8b0 add r7, fp, r7                                    |     r7 = fp + r7;
                                                                 | label_3:
    0x0006c8b4 ldrb r3, [r7]                                     |     r3 = *(r7);
    0x0006c8b8 add r2, r7, 1                                     |     r2 = r7 + 1;
    0x0006c8bc cmp r3, 0x3a                                      |     
                                                                 |     if (r3 == 0x3a) {
    0x0006c8c0 beq 0x6c988                                       |         goto label_12;
                                                                 |     }
    0x0006c8c4 add r6, sp, 0x18                                  |     r6 += var_18h;
    0x0006c8c8 sub r3, r6, 4                                     |     r3 -= src;
    0x0006c8cc mov r8, r3                                        |     r8 = r3;
                                                                 | label_4:
    0x0006c8d0 ldrb r2, [r7], 1                                  |     r2 = *(r7);
                                                                 |     r7++;
    0x0006c8d4 mov r1, r3                                        |     r1 = r3;
    0x0006c8d8 cmp r2, 0                                         |     
    0x0006c8dc strb r2, [r3], 1                                  |     *(r3) = r2;
                                                                 |     r3++;
                                                                 |     if (r2 != 0) {
    0x0006c8e0 beq 0x6c8f4                                       |         
    0x0006c8e4 cmp r2, 0x3a                                      |         
                                                                 |         if (r2 != 0x3a) {
    0x0006c8e8 bne 0x6c990                                       |             goto label_13;
                                                                 |         }
    0x0006c8ec mov r3, 0                                         |         r3 = 0;
    0x0006c8f0 strb r3, [r1]                                     |         *(r1) = r3;
                                                                 |     }
                                                                 | label_5:
    0x0006c8f4 ldrb r3, [r6, -4]                                 |     r3 = src;
    0x0006c8f8 sub r7, r7, fp                                    |     r7 -= fp;
    0x0006c8fc cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0006c900 beq 0x6c88c                                       |         goto label_0;
                                                                 |     }
    0x0006c904 mov r0, r8                                        |     r0 = r8;
    0x0006c908 bl 0x14ab8                                        |     opendir ();
    0x0006c90c subs r3, r0, 0                                    |     r3 -= src;
    0x0006c910 str r3, [sp, 4]                                   |     var_4h = r3;
                                                                 |     if (r3 == src) {
    0x0006c914 beq 0x6c884                                       |         goto label_1;
                                                                 |     }
                                                                 |     do {
    0x0006c918 ldr r0, [sp, 4]                                   |         r0 = var_4h;
    0x0006c91c bl 0x1549c                                        |         r0 = readdir64 ();
    0x0006c920 subs r4, r0, 0                                    |         r4 = r0 - 0;
                                                                 |         if (r4 == r0) {
    0x0006c924 beq 0x6c974                                       |             goto label_14;
                                                                 |         }
    0x0006c928 mov r1, sb                                        |         r1 = sb;
    0x0006c92c add r0, r4, 0x13                                  |         r0 = r4 + 0x13;
    0x0006c930 bl 0x152ec                                        |         r0 = strcmp (r0, r1);
    0x0006c934 subs r5, r0, 0                                    |         r5 = r0 - 0;
    0x0006c938 bne 0x6c918                                       |         
                                                                 |     } while (r5 != r0);
    0x0006c93c ldrb r3, [sb]                                     |     r3 = *(sb);
    0x0006c940 mov r0, sb                                        |     r0 = sb;
    0x0006c944 cmp r3, 0x2f                                      |     
                                                                 |     if (r3 != 0x2f) {
    0x0006c948 bne 0x6c9a4                                       |         goto label_15;
                                                                 |     }
    0x0006c94c bl 0x1543c                                        |     r0 = strdup (r0);
    0x0006c950 mov r6, r0                                        |     r6 = r0;
                                                                 | label_6:
    0x0006c954 mov r1, 5                                         |     r1 = 5;
    0x0006c958 mov r0, r6                                        |     r0 = r6;
    0x0006c95c bl 0x14c38                                        |     r0 = access (r0, r1);
    0x0006c960 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0006c964 bge 0x6ca40                                       |         goto label_16;
                                                                 |     }
                                                                 | label_8:
    0x0006c968 mov r4, 0                                         |     r4 = 0;
                                                                 | label_9:
    0x0006c96c mov r0, r6                                        |     r0 = r6;
    0x0006c970 bl 0x15370                                        |     free (r0);
                                                                 | label_14:
    0x0006c974 ldr r0, [sp, 4]                                   |     r0 = var_4h;
    0x0006c978 bl 0x14e00                                        |     closedir ();
    0x0006c97c cmp r4, 0                                         |     
                                                                 |     if (r4 == 0) {
    0x0006c980 beq 0x6c884                                       |         goto label_1;
                                                                 |     }
    0x0006c984 b 0x6c890                                         |     goto label_2;
                                                                 | label_12:
    0x0006c988 mov r7, r2                                        |     r7 = r2;
    0x0006c98c b 0x6c8b4                                         |     goto label_3;
                                                                 | label_13:
    0x0006c990 ldr r1, [pc, 0x204]                               |     r1 = *(0x6cb98);
    0x0006c994 sub r2, r3, r8                                    |     r2 = r3 - r8;
    0x0006c998 cmp r2, r1                                        |     
                                                                 |     if (r2 < r1) {
    0x0006c99c bls 0x6c8d0                                       |         goto label_4;
                                                                 |     }
    0x0006c9a0 b 0x6c8f4                                         |     goto label_5;
                                                                 | label_15:
    0x0006c9a4 bl 0x14a88                                        |     strlen (r0);
    0x0006c9a8 ldrb r3, [r6, -4]                                 |     r3 = src;
    0x0006c9ac cmp r3, 0                                         |     
    0x0006c9b0 mov r4, r0                                        |     r4 = r0;
                                                                 |     if (r3 == 0) {
    0x0006c9b4 beq 0x6ca1c                                       |         goto label_17;
                                                                 |     }
    0x0006c9b8 mov r0, r8                                        |     r0 = r8;
    0x0006c9bc bl 0x14a88                                        |     strlen (r0);
    0x0006c9c0 add r4, r4, 2                                     |     r4 += 2;
    0x0006c9c4 add r0, r4, r0                                    |     r0 = r4 + r0;
    0x0006c9c8 bl 0x14998                                        |     malloc (r0);
    0x0006c9cc subs r6, r0, 0                                    |     r6 -= size;
    0x0006c9d0 bne 0x6c9dc                                       |     
                                                                 |     while (r6 == r0) {
    0x0006c9d4 mov r6, 0                                         |         r6 = 0;
    0x0006c9d8 b 0x6c954                                         |         goto label_6;
    0x0006c9dc mov r1, r8                                        |         r1 = r8;
    0x0006c9e0 bl 0x15514                                        |         strcpy (r0, r1)
    0x0006c9e4 mov r0, r6                                        |         r0 = r6;
    0x0006c9e8 bl 0x14a88                                        |         r0 = strlen (r0);
    0x0006c9ec add r2, r6, r0                                    |         r2 = r6 + r0;
    0x0006c9f0 ldrb r2, [r2, -1]                                 |         r2 = *((r2 - 1));
    0x0006c9f4 mov r3, r0                                        |         r3 = r0;
    0x0006c9f8 cmp r2, 0x2f                                      |         
                                                                 |         if (r2 == 0x2f) {
    0x0006c9fc addne r0, r0, 1                                   |             r0 += var_1h;
                                                                 |         }
                                                                 |         if (r2 == 0x2f) {
    0x0006ca00 movne r2, 0x2f                                    |             r2 = 0x2f;
                                                                 |         }
                                                                 |         if (r2 == 0x2f) {
    0x0006ca04 strbne r2, [r6, r3]                               |             *((r6 + r3)) = r2;
                                                                 |         }
                                                                 |         if (r2 == 0x2f) {
    0x0006ca08 strbne r5, [r6, r0]                               |             *((r6 + r0)) = r5;
                                                                 |         }
                                                                 | label_7:
    0x0006ca0c mov r1, sb                                        |         r1 = sb;
    0x0006ca10 add r0, r6, r0                                    |         r0 = r6 + r0;
    0x0006ca14 bl 0x15514                                        |         strcpy (r0, r1)
    0x0006ca18 b 0x6c954                                         |         goto label_6;
                                                                 | label_17:
    0x0006ca1c add r0, r0, 3                                     |         r0 += 3;
    0x0006ca20 bl 0x14998                                        |         r0 = malloc (r0);
    0x0006ca24 subs r6, r0, 0                                    |         r6 = r0 - 0;
    0x0006ca28 beq 0x6c9d4                                       |         
                                                                 |     }
    0x0006ca2c ldr r3, [pc, 0x16c]                               |     r3 = *(0x6cb9c);
    0x0006ca30 strb r5, [r6, 2]                                  |     *((r6 + 2)) = r5;
    0x0006ca34 strh r3, [r6]                                     |     *(r6) = r3;
    0x0006ca38 mov r0, 2                                         |     r0 = 2;
    0x0006ca3c b 0x6ca0c                                         |     goto label_7;
                                                                 | label_16:
    0x0006ca40 mov r0, r6                                        |     r0 = r6;
    0x0006ca44 bl 0x1543c                                        |     r0 = strdup (r0);
    0x0006ca48 subs r4, r0, 0                                    |     r4 = r0 - 0;
                                                                 |     if (r4 == r0) {
    0x0006ca4c beq 0x6c968                                       |         goto label_8;
                                                                 |     }
    0x0006ca50 ldrb sl, [r6]                                     |     sl = *(r6);
    0x0006ca54 cmp sl, 0x2f                                      |     
                                                                 |     if (sl == 0x2f) {
    0x0006ca58 movne sl, 0x2e                                    |         sl = 0x2e;
                                                                 |     }
                                                                 | label_10:
    0x0006ca5c ldrb r2, [r4, r5]                                 |     r2 = *((r4 + r5));
    0x0006ca60 add r3, r4, r5                                    |     r3 = r4 + r5;
    0x0006ca64 cmp r2, 0                                         |     
                                                                 |     if (r2 != 0) {
    0x0006ca68 bne 0x6ca74                                       |         goto label_18;
                                                                 |     }
    0x0006ca6c b 0x6cb24                                         |     goto label_19;
                                                                 |     do {
    0x0006ca70 mov r5, r8                                        |         r5 = r8;
                                                                 | label_18:
    0x0006ca74 ldrb r1, [r3]                                     |         r1 = *(r3);
    0x0006ca78 mov r2, r3                                        |         r2 = r3;
    0x0006ca7c cmp r1, 0                                         |         
    0x0006ca80 cmpne r1, 0x2f                                    |         __asm ("cmpne r1, 0x2f");
    0x0006ca84 add r3, r3, 1                                     |         r3++;
    0x0006ca88 add r8, r5, 1                                     |         r8 = r5 + 1;
    0x0006ca8c bne 0x6ca70                                       |         
                                                                 |     } while (r1 != 0);
    0x0006ca90 cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0006ca94 beq 0x6cb24                                       |         goto label_19;
                                                                 |     }
    0x0006ca98 add r3, r4, r8                                    |     r3 = r4 + r8;
    0x0006ca9c mov r0, r3                                        |     r0 = r3;
                                                                 |     do {
    0x0006caa0 mov r1, r0                                        |         r1 = r0;
    0x0006caa4 ldrb lr, [r1]                                     |         
    0x0006caa8 sub ip, r0, r4                                    |         
    0x0006caac cmp lr, 0x2f                                      |         
    0x0006cab0 add r0, r0, 1                                     |         r0++;
    0x0006cab4 beq 0x6caa0                                       |         
                                                                 |     } while (lr == 0x2f);
    0x0006cab8 cmp ip, r8                                        |     
                                                                 |     if (ip != r8) {
    0x0006cabc beq 0x6cad8                                       |         
    0x0006cac0 add r0, r4, r8                                    |         r0 = r4 + r8;
    0x0006cac4 str r2, [sp, 0xc]                                 |         var_ch = r2;
    0x0006cac8 str r3, [sp, 8]                                   |         var_8h = r3;
    0x0006cacc bl 0x15514                                        |         strcpy (r0, r1)
    0x0006cad0 ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x0006cad4 ldr r2, [sp, 0xc]                                 |         r2 = var_ch;
                                                                 |     }
    0x0006cad8 cmp r5, 0                                         |     
                                                                 |     if (r5 != 0) {
    0x0006cadc beq 0x6cafc                                       |         
    0x0006cae0 add r1, r4, r5                                    |         r1 = r4 + r5;
    0x0006cae4 ldrb r1, [r1, -1]                                 |         r1 = *((r1 - 1));
    0x0006cae8 cmp r1, 0x5c                                      |         
                                                                 |         if (r1 == 0x5c) {
    0x0006caec beq 0x6cb4c                                       |             goto label_11;
                                                                 |         }
    0x0006caf0 ldrb r1, [r3]                                     |         r1 = *(r3);
    0x0006caf4 cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x0006caf8 beq 0x6cb1c                                       |             goto label_20;
                                                                 |         }
                                                                 |     }
    0x0006cafc ldrb r1, [r3]                                     |     r1 = *(r3);
    0x0006cb00 cmp r1, 0x2e                                      |     
                                                                 |     if (r1 != 0x2e) {
    0x0006cb04 bne 0x6cb4c                                       |         goto label_11;
                                                                 |     }
    0x0006cb08 add r0, r8, 1                                     |     r0 = r8 + 1;
    0x0006cb0c add r1, r4, r0                                    |     r1 = r4 + r0;
    0x0006cb10 ldrb r0, [r4, r0]                                 |     r0 = *((r4 + r0));
    0x0006cb14 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x0006cb18 bne 0x6cb38                                       |         
                                                                 | label_20:
    0x0006cb1c mov r3, 0                                         |         r3 = 0;
    0x0006cb20 strb r3, [r2]                                     |         *(r2) = r3;
                                                                 | label_19:
    0x0006cb24 ldrb r3, [r4]                                     |         r3 = *(r4);
    0x0006cb28 cmp r3, 0                                         |         
                                                                 |         if (r3 != 0) {
    0x0006cb2c strbeq sl, [r4]                                   |             *(r4) = sl;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0006cb30 strbeq r3, [r4, 1]                                |             *((r4 + 1)) = r3;
                                                                 |         }
    0x0006cb34 b 0x6c96c                                         |         goto label_9;
                                                                 |     }
    0x0006cb38 cmp r0, 0x2f                                      |     
                                                                 |     if (r0 != 0x2f) {
    0x0006cb3c bne 0x6cb54                                       |         goto label_21;
                                                                 |     }
    0x0006cb40 mov r0, r3                                        |     r0 = r3;
    0x0006cb44 bl 0x15514                                        |     strcpy (r0, r1)
    0x0006cb48 mov r8, r5                                        |     r8 = r5;
                                                                 |     do {
                                                                 | label_11:
    0x0006cb4c mov r5, r8                                        |         r5 = r8;
    0x0006cb50 b 0x6ca5c                                         |         goto label_10;
                                                                 | label_21:
    0x0006cb54 cmp r0, 0x2e                                      |         
    0x0006cb58 bne 0x6cb4c                                       |         
                                                                 |     } while (r0 != 0x2e);
    0x0006cb5c add r3, r8, 2                                     |     r3 = r8 + 2;
    0x0006cb60 add r1, r4, r3                                    |     r1 = r4 + r3;
    0x0006cb64 ldrb r3, [r4, r3]                                 |     r3 = *((r4 + r3));
    0x0006cb68 cmp r3, 0                                         |     
    0x0006cb6c cmpne r3, 0x2f                                    |     __asm ("cmpne r3, 0x2f");
                                                                 |     if (r3 != 0) {
    0x0006cb70 bne 0x6cb4c                                       |         goto label_11;
                                                                 |     }
                                                                 |     do {
    0x0006cb74 subs r5, r5, 1                                    |         r5--;
                                                                 |         if (r5 <= r5) {
    0x0006cb78 blo 0x6cb88                                       |             goto label_22;
                                                                 |         }
    0x0006cb7c ldrb r3, [r4, r5]                                 |         r3 = *((r4 + r5));
    0x0006cb80 cmp r3, 0x2f                                      |         
    0x0006cb84 bne 0x6cb74                                       |         
                                                                 |     } while (r3 != 0x2f);
                                                                 | label_22:
    0x0006cb88 add r0, r5, 1                                     |     r0 = r5 + 1;
    0x0006cb8c add r0, r4, r0                                    |     r0 = r4 + r0;
    0x0006cb90 bl 0x15514                                        |     strcpy (r0, r1)
    0x0006cb94 bic r8, r5, r5, asr 31                            |     r8 = BIT_MASK (r5, r5);
    0x0006cb98 b 0x6cb4c                                         |     goto label_11;
                                                                 | }
    ; 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/sbin/ntpd @ 0x6f37c */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) fcn.0006f37c ()                                                  | void fcn_0006f37c (int32_t arg1, int32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_ch;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
    0x0006f37c push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0006f380 mov r5, r0                                                    |     r5 = r0;
    0x0006f384 mov r0, r2                                                    |     r0 = r2;
    0x0006f388 mov r6, r1                                                    |     r6 = r1;
    0x0006f38c mov r4, r2                                                    |     r4 = r2;
    0x0006f390 mov r8, r3                                                    |     r8 = r3;
    0x0006f394 bl 0x14a88                                                    |     r0 = strlen (r0);
    0x0006f398 cmp r0, 0                                                     |     
    0x0006f39c cmpne r6, r0                                                  |     __asm ("cmpne r6, r0");
                                                                             |     if (r0 > 0) {
    0x0006f3a0 movls sb, 1                                                   |         sb = 1;
                                                                             |     }
                                                                             |     if (r0 <= 0) {
    0x0006f3a4 movhi sb, 0                                                   |         sb = 0;
                                                                             |     }
                                                                             |     if (r0 <= 0) {
    0x0006f3a8 bhi 0x6f3bc                                                   |         
                                                                             | label_0:
    0x0006f3ac mov sb, 0                                                     |         sb = 0;
                                                                             | label_1:
    0x0006f3b0 mov r0, sb                                                    |         r0 = sb;
    0x0006f3b4 add sp, sp, 0xc                                               |         
    0x0006f3b8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |         
                                                                             |     }
    0x0006f3bc ldrb r3, [r4]                                                 |     r3 = *(r4);
    0x0006f3c0 cmp r3, 0x24                                                  |     
                                                                             |     if (r3 == 0x24) {
    0x0006f3c4 beq 0x6f3f4                                                   |         goto label_3;
                                                                             |     }
    0x0006f3c8 sub r1, r5, 1                                                 |     r1 = r5 - 1;
    0x0006f3cc mov r2, r4                                                    |     r2 = r4;
                                                                             |     do {
    0x0006f3d0 ldrb r3, [r2], 1                                              |         r3 = *(r2);
                                                                             |         r2++;
    0x0006f3d4 cmp r3, 0                                                     |         
    0x0006f3d8 strb r3, [r1, 1]!                                             |         *((r1 += 1)) = r3;
                                                                             |         if (r3 == 0) {
    0x0006f3dc beq 0x6f4ec                                                   |             goto label_2;
                                                                             |         }
    0x0006f3e0 sub r3, r6, r2                                                |         r3 = r6 - r2;
    0x0006f3e4 add r3, r4, r3                                                |         r3 = r4 + r3;
    0x0006f3e8 cmp r3, 0                                                     |         
    0x0006f3ec bgt 0x6f3d0                                                   |         
                                                                             |     } while (r3 > 0);
    0x0006f3f0 b 0x6f3ac                                                     |     goto label_0;
                                                                             | label_3:
    0x0006f3f4 ldrb r3, [r4, 1]                                              |     r3 = *((r4 + 1));
    0x0006f3f8 cmp r3, 0x24                                                  |     
                                                                             |     if (r3 == 0x24) {
    0x0006f3fc beq 0x6f438                                                   |         goto label_4;
                                                                             |     }
    0x0006f400 cmp r3, 0x40                                                  |     
                                                                             |     if (r3 == 0x40) {
    0x0006f404 beq 0x6f514                                                   |         goto label_5;
                                                                             |     }
    0x0006f408 cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x0006f40c movne r2, r5                                                  |         r2 = r5;
                                                                             |     }
                                                                             |     if (r3 != 0) {
    0x0006f410 ldrne r8, [pc, 0x1b4]                                         |         r8 = *(0x0006f5cc);
                                                                             |         goto label_6;
                                                                             |     }
                                                                             |     if (r3 == 0) {
                                                                             | label_6:
    0x0006f414 beq 0x6f3b0                                                   |         goto label_1;
                                                                             |     }
                                                                             |     do {
    0x0006f418 ldrb r7, [r4, 1]!                                             |         r7 = *((r4 += 1));
    0x0006f41c mov r1, r8                                                    |         r1 = r8;
    0x0006f420 mov r0, r7                                                    |         r0 = r7;
    0x0006f424 bl 0x69148                                                    |         r0 = fcn_00069148 (r0, r1);
    0x0006f428 cmp r0, 0                                                     |         
                                                                             |         if (r0 == 0) {
    0x0006f42c beq 0x6f554                                                   |             goto label_7;
                                                                             |         }
    0x0006f430 strb r7, [r2], 1                                              |         *(r2) = r7;
                                                                             |         r2++;
    0x0006f434 b 0x6f418                                                     |         
                                                                             |     } while (1);
                                                                             | label_4:
    0x0006f438 ldrb r3, [r4, 2]                                              |     r3 = *((r4 + 2));
    0x0006f43c cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x0006f440 beq 0x6f454                                                   |         goto label_8;
                                                                             |     }
    0x0006f444 cmp r3, 0x2f                                                  |     
                                                                             |     if (r3 != 0x2f) {
    0x0006f448 bne 0x6f3b0                                                   |         goto label_1;
                                                                             |     }
    0x0006f44c mov fp, 3                                                     |     
    0x0006f450 b 0x6f458                                                     |     goto label_9;
                                                                             | label_8:
    0x0006f454 mov fp, 2                                                     |     
                                                                             | label_9:
    0x0006f458 mov r1, 0x2f                                                  |     r1 = 0x2f;
    0x0006f45c mov r0, r8                                                    |     r0 = r8;
    0x0006f460 bl 0x153ac                                                    |     r0 = strchr (r0, r1);
    0x0006f464 cmp r0, 0                                                     |     
                                                                             |     if (r0 == 0) {
    0x0006f468 movne sl, r8                                                  |         sl = r8;
                                                                             |     }
                                                                             |     if (r0 != 0) {
    0x0006f46c bne 0x6f48c                                                   |         goto label_10;
                                                                             |     }
    0x0006f470 ldr r0, [pc, 0x158]                                           |     r0 = *(0x6f5cc);
    0x0006f474 add r0, pc, r0                                                |     r0 = pc + r0;
    0x0006f478 bl 0x14770                                                    |     getenv (r0);
    0x0006f47c mov r1, r8                                                    |     r1 = r8;
    0x0006f480 bl 0x6c86c                                                    |     r0 = fcn_0006c86c (r0, r1);
    0x0006f484 subs sl, r0, 0                                                |     sl = r0 - 0;
                                                                             |     if (sl == r0) {
    0x0006f488 beq 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
                                                                             | label_10:
    0x0006f48c mov r1, 0x2f                                                  |     r1 = 0x2f;
    0x0006f490 mov r0, sl                                                    |     r0 = sl;
    0x0006f494 bl 0x149c8                                                    |     r0 = strrchr (r0, r1);
    0x0006f498 subs r7, r0, 0                                                |     r7 = r0 - 0;
                                                                             |     if (r7 == r0) {
    0x0006f49c beq 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
    0x0006f4a0 add r4, r4, fp                                                |     r4 += fp;
    0x0006f4a4 mov r0, r4                                                    |     r0 = r4;
    0x0006f4a8 bl 0x14a88                                                    |     strlen (r0);
    0x0006f4ac sub r7, r7, sl                                                |     r7 -= sl;
    0x0006f4b0 add r7, r7, 1                                                 |     r7++;
    0x0006f4b4 add r0, r0, r7                                                |     r0 += r7;
    0x0006f4b8 cmp r6, r0                                                    |     
                                                                             |     if (r6 < r0) {
    0x0006f4bc bls 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
    0x0006f4c0 mov r2, r7                                                    |     r2 = r7;
    0x0006f4c4 mov r1, sl                                                    |     r1 = sl;
    0x0006f4c8 mov r0, r5                                                    |     r0 = r5;
    0x0006f4cc bl 0x147dc                                                    |     memcpy (r0, r1, r2);
    0x0006f4d0 mov r1, r4                                                    |     r1 = r4;
    0x0006f4d4 add r0, r5, r7                                                |     r0 = r5 + r7;
    0x0006f4d8 bl 0x15514                                                    |     strcpy (r0, r1)
    0x0006f4dc cmp r8, sl                                                    |     
                                                                             |     if (r8 != sl) {
    0x0006f4e0 beq 0x6f4ec                                                   |         
    0x0006f4e4 mov r0, sl                                                    |         r0 = sl;
    0x0006f4e8 bl 0x15370                                                    |         free (r0);
                                                                             |     }
                                                                             | label_2:
    0x0006f4ec mov r0, r5                                                    |     r0 = r5;
    0x0006f4f0 bl 0x14710                                                    |     r0 = canonicalize_file_name ();
    0x0006f4f4 subs r4, r0, 0                                                |     r4 = r0 - 0;
                                                                             |     if (r4 == r0) {
    0x0006f4f8 beq 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
    0x0006f4fc bl 0x14a88                                                    |     r0 = strlen (r0);
    0x0006f500 cmp r6, r0                                                    |     
                                                                             |     if (r6 > r0) {
    0x0006f504 bhi 0x6f5ac                                                   |         goto label_11;
                                                                             |     }
    0x0006f508 mov r0, r4                                                    |     r0 = r4;
    0x0006f50c bl 0x15370                                                    |     free (r0);
    0x0006f510 b 0x6f3b0                                                     |     goto label_1;
                                                                             | label_5:
    0x0006f514 ldr r3, [pc, 0xb8]                                            |     
    0x0006f518 add r3, pc, r3                                                |     r3 = pc + r3;
    0x0006f51c ldr r3, [r3]                                                  |     r3 = *(0x6f5d0);
    0x0006f520 ldrb r2, [r3]                                                 |     r2 = *(r3);
    0x0006f524 cmp r2, 0                                                     |     
                                                                             |     if (r2 == 0) {
    0x0006f528 beq 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
    0x0006f52c ldr r2, [pc, 0xa4]                                            |     r2 = *(0x6f5d4);
    0x0006f530 add r4, r4, 2                                                 |     r4 += 2;
    0x0006f534 str r4, [sp]                                                  |     *(sp) = r4;
    0x0006f538 add r2, pc, r2                                                |     r2 = pc + r2;
    0x0006f53c mov r1, r6                                                    |     r1 = r6;
    0x0006f540 mov r0, r5                                                    |     r0 = r5;
    0x0006f544 bl 0x5e950                                                    |     r0 = fcn_0005e950 ();
    0x0006f548 cmp r0, r6                                                    |     
                                                                             |     if (r0 < r6) {
    0x0006f54c blt 0x6f4ec                                                   |         goto label_2;
                                                                             |     }
    0x0006f550 b 0x6f3ac                                                     |     goto label_0;
                                                                             | label_7:
    0x0006f554 cmp r5, r2                                                    |     
                                                                             |     if (r5 == r2) {
    0x0006f558 beq 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
    0x0006f55c strb r0, [r2]                                                 |     *(r2) = r0;
    0x0006f560 mov r0, r5                                                    |     r0 = r5;
    0x0006f564 bl 0x14770                                                    |     r0 = getenv (r0);
    0x0006f568 subs r8, r0, 0                                                |     r8 = r0 - 0;
                                                                             |     if (r8 == r0) {
    0x0006f56c beq 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
    0x0006f570 bl 0x14a88                                                    |     r0 = strlen (r0);
    0x0006f574 mov r7, r0                                                    |     r7 = r0;
    0x0006f578 mov r0, r4                                                    |     r0 = r4;
    0x0006f57c bl 0x14a88                                                    |     r0 = strlen (r0);
    0x0006f580 add r0, r7, r0                                                |     r0 = r7 + r0;
    0x0006f584 add r0, r0, 1                                                 |     r0++;
    0x0006f588 cmp r6, r0                                                    |     
                                                                             |     if (r6 < r0) {
    0x0006f58c bls 0x6f3ac                                                   |         goto label_0;
                                                                             |     }
    0x0006f590 ldr r1, [pc, 0x44]                                            |     r1 = *(0x6f5d8);
    0x0006f594 mov r3, r4                                                    |     r3 = r4;
    0x0006f598 mov r2, r8                                                    |     r2 = r8;
    0x0006f59c add r1, pc, r1                                                |     r1 = pc + r1;
    0x0006f5a0 mov r0, r5                                                    |     r0 = r5;
    0x0006f5a4 bl 0x15178                                                    |     sprintf (r0, r1, r2);
    0x0006f5a8 b 0x6f4ec                                                     |     goto label_2;
                                                                             | label_11:
    0x0006f5ac add r2, r0, 1                                                 |     r2 = r0 + 1;
    0x0006f5b0 mov r1, r4                                                    |     r1 = r4;
    0x0006f5b4 mov r0, r5                                                    |     r0 = r5;
    0x0006f5b8 bl 0x147dc                                                    |     memcpy (r0, r1, r2);
    0x0006f5bc mov r0, r4                                                    |     r0 = r4;
    0x0006f5c0 bl 0x15370                                                    |     free (r0);
    0x0006f5c4 mov sb, 1                                                     |     sb = 1;
    0x0006f5c8 b 0x6f3b0                                                     |     goto label_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/sbin/ntpd @ 0x73884 */
                                                         | #include <stdint.h>
                                                         |  
    ; (fcn) fcn.00073884 ()                              | void fcn_00073884 (int32_t arg1, uint32_t arg2) {
                                                         |     char * s;
                                                         |     int32_t var_1h;
                                                         |     int32_t var_2h;
                                                         |     int32_t var_18h;
                                                         |     r0 = arg1;
                                                         |     r1 = arg2;
    0x00073884 push {r4, r5, r6, r7, r8, sb, sl, lr}     |     
    0x00073888 ldr r7, [pc, 0x5cc]                       |     r7 = *(0x73e58);
    0x0007388c ldr r3, [pc, 0x5cc]                       |     r3 = "P";
    0x00073890 cmp r1, r7                                |     
    0x00073894 mov sb, 0                                 |     sb = 0;
                                                         |     if (r1 == r7) {
    0x00073898 movne r7, r1                              |         r7 = r1;
                                                         |     }
    0x0007389c add r3, pc, r3                            |     r3 = pc + r3;
    0x000738a0 mov r4, r0                                |     r4 = r0;
    0x000738a4 sub sp, sp, 0x18                          |     
    0x000738a8 mov r8, r1                                |     r8 = r1;
    0x000738ac ldr r6, [pc, 0x5b0]                       |     r6 = "ion_command";
    0x000738b0 mov r1, sb                                |     r1 = sb;
    0x000738b4 add r0, r0, 0xc                           |     r0 += 0xc;
                                                         |     if (r1 != r7) {
    0x000738b8 moveq r7, sb                              |         r7 = sb;
                                                         |     }
    0x000738bc strb sb, [r3, 0x10c]                      |     *((r3 + 0x10c)) = sb;
    0x000738c0 bl 0x717f0                                |     fcn_000717f0 (r0, r1);
    0x000738c4 ldr r1, [pc, 0x59c]                       |     r1 = *(0x73e64);
    0x000738c8 add r6, pc, r6                            |     r6 = pc + r6;
    0x000738cc cmp r7, sb                                |     
    0x000738d0 ldr r3, [pc, 0x594]                       |     r3 = *(0x73e68);
    0x000738d4 ldr r2, [r4]                              |     r2 = *(r4);
    0x000738d8 ldr r5, [r6, r1]                          |     r5 = "ion_command";
                                                         |     if (r7 != sb) {
    0x000738dc bne 0x73928                               |         goto label_8;
                                                         |     }
    0x000738e0 cmp r2, r3                                |     
    0x000738e4 ldr r3, [r5]                              |     r3 = *(r5);
                                                         |     if (r2 <= r3) {
    0x000738e8 ldrgt r0, [r4, 0x6c]                      |         r0 = *((r4 + 0x6c));
                                                         |     }
                                                         |     if (r2 > r3) {
    0x000738ec movle r0, r7                              |         r0 = r7;
                                                         |     }
    0x000738f0 cmp r3, 0                                 |     
                                                         |     if (r3 != 0) {
    0x000738f4 bne 0x73940                               |         goto label_9;
                                                         |     }
    0x000738f8 ldr r3, [pc, 0x570]                       |     r3 = *(0x73e6c);
    0x000738fc add r3, pc, r3                            |     r3 = pc + r3;
    0x00073900 ldrb r3, [r3, 4]                          |     r3 = *((r3 + 4));
    0x00073904 cmp r3, 0                                 |     
    0x00073908 beq 0x73914                               |     
                                                         |     while (r3 == 0) {
    0x0007390c ldr r3, [pc, 0x560]                       |         r3 = "n_int";
    0x00073910 b 0x73918                                 |         goto label_10;
    0x00073914 ldr r3, [pc, 0x55c]                       |         r3 = *(0x73e74);
                                                         | label_10:
    0x00073918 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x0007391c ldr r3, [r3]                              |         r3 = *(r3);
    0x00073920 str r3, [r5]                              |         *(r5) = r3;
    0x00073924 b 0x73940                                 |         goto label_9;
                                                         | label_8:
    0x00073928 cmp r2, r3                                |         
    0x0007392c ldr r3, [r5]                              |         r3 = *(r5);
                                                         |         if (r2 <= r3) {
    0x00073930 ldrgt r0, [r4, 0x70]                      |             r0 = *((r4 + 0x70));
                                                         |         }
                                                         |         if (r2 > r3) {
    0x00073934 movle r0, sb                              |             r0 = sb;
                                                         |         }
    0x00073938 cmp r3, 0                                 |         
    0x0007393c beq 0x7390c                               |         
                                                         |     }
                                                         | label_9:
    0x00073940 ldr r2, [r4, 0xc]                         |     r2 = *((r4 + 0xc));
    0x00073944 ldr ip, [r5]                              |     ip = *(r5);
    0x00073948 lsr r3, r2, 0x14                          |     r3 = r2 >> 0x14;
    0x0007394c eor r3, r3, 1                             |     r3 ^= 1;
    0x00073950 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00073954 moveq r3, 0                               |         r3 = 0;
                                                         |     }
                                                         |     if (r0 == 0) {
    0x00073958 andne r3, r3, 1                           |         r3 &= 1;
                                                         |     }
    0x0007395c cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00073960 beq 0x739cc                               |         goto label_11;
                                                         |     }
    0x00073964 tst r2, 0x2000                            |     
                                                         |     if ((r2 & 0x2000) == 0) {
    0x00073968 beq 0x739c0                               |         goto label_12;
                                                         |     }
    0x0007396c mov r2, ip                                |     r2 = ip;
    0x00073970 mov r1, 1                                 |     r1 = 1;
    0x00073974 bl 0x73734                                |     fcn_00073734 (r0, r1, r2);
                                                         |     do {
                                                         | label_0:
    0x00073978 ldr r0, [r5]                              |         r0 = *(r5);
    0x0007397c bl 0x15028                                |         fflush (r0);
    0x00073980 ldr r0, [r5]                              |         r0 = *(r5);
    0x00073984 bl 0x14ec0                                |         r0 = ferror (r0);
    0x00073988 cmp r0, 0                                 |         
                                                         |         if (r0 == 0) {
    0x0007398c beq 0x73e54                               |             goto label_13;
                                                         |         }
    0x00073990 ldr r2, [pc, 0x4e0]                       |         
    0x00073994 ldr r3, [pc, 0x4e0]                       |         r3 = *(0x73e78);
    0x00073998 ldr r2, [r6, r2]                          |         r2 = *((r6 + r2));
    0x0007399c ldr ip, [r5]                              |         ip = *(r5);
    0x000739a0 ldr r2, [r2]                              |         r2 = *(0x73e74);
    0x000739a4 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x000739a8 cmp ip, r2                                |         
    0x000739ac ldr r0, [r4, 0x1c]                        |         r0 = *((r4 + 0x1c));
    0x000739b0 ldr r1, [r3, 0xe4]                        |         r1 = *(0x73f5c);
                                                         |         if (ip != r2) {
    0x000739b4 bne 0x73c78                               |             goto label_14;
                                                         |         }
                                                         | label_1:
    0x000739b8 ldr r2, [r3, 0xdc]                        |         r2 = *((r3 + 0xdc));
                                                         | label_2:
    0x000739bc bl 0x6a574                                |         fcn_0006a574 (r0, r1);
                                                         | label_12:
    0x000739c0 mov r1, ip                                |         r1 = ip;
    0x000739c4 bl 0x14fa4                                |         fputs (r0, r1);
    0x000739c8 b 0x73978                                 |         
                                                         |     } while (1);
                                                         | label_11:
    0x000739cc ldr r2, [r4, 0x1c]                        |     r2 = *((r4 + 0x1c));
    0x000739d0 ldr r1, [r4, 0x38]                        |     r1 = *((r4 + 0x38));
    0x000739d4 mov r0, ip                                |     r0 = ip;
    0x000739d8 bl 0x150dc                                |     fprintf (r0, r1, r2);
    0x000739dc cmp r7, 0                                 |     
    0x000739e0 ldr r0, [r4, 0xc]                         |     r0 = *((r4 + 0xc));
                                                         |     if (r7 != 0) {
    0x000739e4 beq 0x739f0                               |         
    0x000739e8 tst r0, 0x4000                            |         
                                                         |         if ((r0 & 0x4000) != 0) {
    0x000739ec bne 0x73d48                               |             goto label_15;
                                                         |         }
                                                         |     }
    0x000739f0 mov r3, 0                                 |     r3 = 0;
    0x000739f4 add r1, sp, 0x18                          |     r1 += var_18h;
    0x000739f8 str r3, [r1, -0x18]!                      |     *((r1 -= 0x18)) = r3;
    0x000739fc ldr r3, [pc, 0x47c]                       |     r3 = *(0x73e7c);
    0x00073a00 tst r0, 0x1000                            |     
    0x00073a04 ldr sl, [r6, r3]                          |     sl = *((r6 + r3));
                                                         |     if ((r0 & 0x1000) == 0) {
    0x00073a08 beq 0x73c98                               |         goto label_16;
                                                         |     }
    0x00073a0c bl 0x6a5e0                                |     fcn_0006a5e0 (r0, r1);
    0x00073a10 add r1, sl, 0x21                          |     r1 = sl + 0x21;
    0x00073a14 mov r2, r0                                |     r2 = r0;
    0x00073a18 mov sb, r0                                |     sb = r0;
    0x00073a1c ldr r0, [pc, 0x460]                       |     
    0x00073a20 add r0, pc, r0                            |     r0 = pc + r0;
    0x00073a24 add r0, r0, 0x10c                         |     r0 = 0x73f8c;
    0x00073a28 add r0, r0, 1                             |     r0++;
    0x00073a2c bl 0x15178                                |     sprintf (r0, r1, r2);
    0x00073a30 ldr r1, [r5]                              |     r1 = *(r5);
    0x00073a34 ldr r3, [r1, 0x34]                        |     r3 = *((r1 + 0x34));
    0x00073a38 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00073a3c beq 0x73c8c                               |         goto label_17;
                                                         |     }
    0x00073a40 ldr r3, [r1, 0x10]                        |     r3 = *((r1 + 0x10));
    0x00073a44 ldr r2, [r1, 0x1c]                        |     r2 = *((r1 + 0x1c));
    0x00073a48 cmp r3, r2                                |     
                                                         |     if (r3 >= r2) {
    0x00073a4c bhs 0x73c80                               |         goto label_18;
                                                         |     }
    0x00073a50 add r2, r3, 1                             |     r2 = r3 + 1;
    0x00073a54 str r2, [r1, 0x10]                        |     *((r1 + 0x10)) = r2;
    0x00073a58 mov r2, 0xa                               |     r2 = 0xa;
    0x00073a5c strb r2, [r3]                             |     *(r3) = r2;
                                                         | label_3:
    0x00073a60 adds r0, sb, 0xf                          |     r0 = sb + 0xf;
                                                         |     if (r0 >= sb) {
    0x00073a64 addmi r0, sb, 0x16                        |         r0 = sb + 0x16;
                                                         |     }
    0x00073a68 asr r0, r0, 3                             |     r0 >>= 3;
    0x00073a6c rsb r0, r0, 4                             |     r0 = 4 - r0;
    0x00073a70 cmp r0, 0                                 |     
                                                         |     if (r0 <= 0) {
    0x00073a74 ldrgt r3, [pc, 0x40c]                     |         r3 = *((pc + 0x40c));
                                                         |     }
                                                         |     if (r0 <= 0) {
    0x00073a78 addgt r3, pc, r3                          |         r3 = pc + r3;
                                                         |     }
                                                         |     if (r0 <= 0) {
    0x00073a7c strgt r0, [r3, 0x108]                     |         *((r3 + 0x108)) = r0;
                                                         |     }
    0x00073a80 ldr r2, [sp]                              |     r2 = *(sp);
    0x00073a84 mov r1, r8                                |     r1 = r8;
    0x00073a88 mov r0, r4                                |     r0 = r4;
    0x00073a8c bl 0x6c064                                |     fcn_0006c064 (r0, r1, r2);
    0x00073a90 ldr r3, [r4, 0xc]                         |     r3 = *((r4 + 0xc));
    0x00073a94 and r3, r3, 3                             |     r3 &= 3;
    0x00073a98 cmp r3, 1                                 |     
                                                         |     if (r3 == 1) {
    0x00073a9c beq 0x73ce4                               |         goto label_19;
                                                         |     }
                                                         |     if (r3 <= 1) {
    0x00073aa0 blo 0x73cf8                               |         goto label_20;
                                                         |     }
    0x00073aa4 cmp r3, 3                                 |     
                                                         |     if (r3 == 3) {
    0x00073aa8 bne 0x73ac0                               |         
    0x00073aac ldr r3, [pc, 0x3c8]                       |         r3 = *(0x73e78);
    0x00073ab0 ldr r1, [r5]                              |         r1 = *(r5);
    0x00073ab4 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00073ab8 ldr r0, [r3, 0x120]                       |         r0 = *(0x73f98);
                                                         | label_4:
    0x00073abc bl 0x14fa4                                |         fputs (r0, r1);
                                                         |     }
    0x00073ac0 ldr r3, [r4, 0xc]                         |     r3 = *((r4 + 0xc));
    0x00073ac4 tst r3, 0x20                              |     
                                                         |     if ((r3 & 0x20) != 0) {
    0x00073ac8 beq 0x73ae0                               |         
    0x00073acc ldr r3, [pc, 0x3a8]                       |         r3 = *(0x73e78);
    0x00073ad0 ldr r1, [r5]                              |         r1 = *(r5);
    0x00073ad4 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00073ad8 ldr r0, [r3, 0x14c]                       |         r0 = *(0x73fc4);
    0x00073adc bl 0x14fa4                                |         fputs (r0, r1);
                                                         |     }
    0x00073ae0 ldr r3, [r4, 0xc]                         |     r3 = *((r4 + 0xc));
    0x00073ae4 tst r3, 0x800                             |     
                                                         |     if ((r3 & 0x800) != 0) {
    0x00073ae8 beq 0x73b00                               |         
    0x00073aec ldr r3, [pc, 0x388]                       |         r3 = *(0x73e78);
    0x00073af0 ldr r1, [r5]                              |         r1 = *(r5);
    0x00073af4 ldr r3, [r6, r3]                          |         r3 = *((r6 + r3));
    0x00073af8 ldr r0, [r3, 0x18c]                       |         r0 = *(0x74004);
    0x00073afc bl 0x14fa4                                |         fputs (r0, r1);
                                                         |     }
    0x00073b00 ldr r0, [r4, 0x3c]                        |     r0 = *((r4 + 0x3c));
    0x00073b04 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00073b08 beq 0x73b14                               |         
    0x00073b0c ldr r1, [r5]                              |         r1 = *(r5);
    0x00073b10 bl 0x14fa4                                |         fputs (r0, r1);
                                                         |     }
    0x00073b14 cmp r8, 0                                 |     
                                                         |     if (r8 != 0) {
    0x00073b18 bne 0x73c14                               |         goto label_21;
                                                         |     }
    0x00073b1c ldr r8, [r4, 0x34]                        |     r8 = *((r4 + 0x34));
    0x00073b20 cmp r8, 0                                 |     
                                                         |     if (r8 != 0) {
    0x00073b24 beq 0x73b38                               |         
    0x00073b28 ldr r2, [r4, 0x18]                        |         r2 = *((r4 + 0x18));
    0x00073b2c ldr r1, [r4, 0x24]                        |         r1 = *((r4 + 0x24));
    0x00073b30 mov r0, r8                                |         r0 = r8;
    0x00073b34 bl 0x6f5e0                                |         fcn_0006f5e0 (r0, r1);
                                                         |     }
    0x00073b38 ldr r3, [r4, 0xc]                         |     r3 = *((r4 + 0xc));
    0x00073b3c tst r3, 0x100                             |     
                                                         |     if ((r3 & 0x100) != 0) {
    0x00073b40 beq 0x73b70                               |         
    0x00073b44 ldr r3, [pc, 0x330]                       |         r3 = *(0x73e78);
    0x00073b48 cmp r8, 0                                 |         
    0x00073b4c ldr r8, [r6, r3]                          |         r8 = *((r6 + r3));
                                                         |         if (r8 == 0) {
    0x00073b50 bne 0x73b60                               |             
    0x00073b54 ldr r1, [r5]                              |             r1 = *(r5);
    0x00073b58 ldr r0, [r8, 0x160]                       |             r0 = *((r8 + 0x160));
    0x00073b5c bl 0x14fa4                                |             fputs (r0, r1);
                                                         |         }
    0x00073b60 ldr r2, [r4, 0x20]                        |         r2 = *((r4 + 0x20));
    0x00073b64 ldr r1, [r8, 0x114]                       |         r1 = *((r8 + 0x114));
    0x00073b68 ldr r0, [r5]                              |         r0 = *(r5);
    0x00073b6c bl 0x150dc                                |         fprintf (r0, r1, r2);
                                                         |     }
    0x00073b70 ldr r3, [pc, 0x314]                       |     r3 = *(0x73e88);
    0x00073b74 add r3, pc, r3                            |     r3 = pc + r3;
    0x00073b78 ldrb r3, [r3, 0x10c]                      |     r3 = *((r3 + 0x10c));
    0x00073b7c cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00073b80 beq 0x73c00                               |         goto label_22;
                                                         |     }
    0x00073b84 ldr r1, [r5]                              |     r1 = *(r5);
    0x00073b88 ldr r8, [r4, 0x64]                        |     r8 = *((r4 + 0x64));
    0x00073b8c ldr r3, [r1, 0x34]                        |     r3 = *((r1 + 0x34));
    0x00073b90 ldr sb, [r4, 0x44]                        |     sb = *((r4 + 0x44));
    0x00073b94 cmp r3, 0                                 |     
                                                         |     if (r3 == 0) {
    0x00073b98 beq 0x73d18                               |         goto label_23;
                                                         |     }
    0x00073b9c ldr r3, [r1, 0x10]                        |     r3 = *((r1 + 0x10));
    0x00073ba0 ldr r2, [r1, 0x1c]                        |     r2 = *((r1 + 0x1c));
    0x00073ba4 cmp r3, r2                                |     
                                                         |     if (r3 >= r2) {
    0x00073ba8 bhs 0x73d0c                               |         goto label_24;
                                                         |     }
    0x00073bac add r2, r3, 1                             |     r2 = r3 + 1;
    0x00073bb0 str r2, [r1, 0x10]                        |     *((r1 + 0x10)) = r2;
    0x00073bb4 mov r2, 0xa                               |     r2 = 0xa;
    0x00073bb8 strb r2, [r3]                             |     *(r3) = r2;
                                                         | label_5:
    0x00073bbc ldr r0, [r5]                              |     r0 = *(r5);
    0x00073bc0 bl 0x15028                                |     fflush (r0);
                                                         |     do {
    0x00073bc4 ldr r3, [sb, 0x10]                        |         r3 = *((sb + 0x10));
    0x00073bc8 lsr r3, r3, 0xc                           |         r3 >>= 0xc;
    0x00073bcc and r3, r3, 0xf                           |         r3 &= 0xf;
    0x00073bd0 cmp r3, 2                                 |         
                                                         |         if (r3 != 2) {
    0x00073bd4 beq 0x73be0                               |             
    0x00073bd8 cmp r3, 4                                 |             
                                                         |             if (r3 != 4) {
    0x00073bdc bne 0x73bf0                               |                 goto label_25;
                                                         |             }
                                                         |         }
    0x00073be0 ldr r3, [sb, 0x28]                        |         r3 = *((sb + 0x28));
    0x00073be4 mov r1, sb                                |         r1 = sb;
    0x00073be8 mov r0, 1                                 |         r0 = 1;
    0x00073bec blx r3                                    |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
                                                         | label_25:
    0x00073bf0 sub r8, r8, 1                             |         r8--;
    0x00073bf4 cmp r8, 0                                 |         
    0x00073bf8 add sb, sb, 0x40                          |         sb += 0x40;
    0x00073bfc bgt 0x73bc4                               |         
                                                         |     } while (r8 > 0);
                                                         | label_22:
    0x00073c00 ldr r0, [r4, 0x40]                        |     r0 = *((r4 + 0x40));
    0x00073c04 cmp r0, 0                                 |     
                                                         |     if (r0 != 0) {
    0x00073c08 beq 0x73c14                               |         
    0x00073c0c ldr r1, [r5]                              |         r1 = *(r5);
    0x00073c10 bl 0x14fa4                                |         fputs (r0, r1);
                                                         |     }
                                                         | label_21:
    0x00073c14 ldr r2, [r4]                              |     r2 = *(r4);
    0x00073c18 ldr r3, [r5]                              |     r3 = *(r5);
    0x00073c1c cmp r2, 0x22000                           |     
                                                         |     if (r2 < 0x22000) {
    0x00073c20 blt 0x73d24                               |         goto label_26;
                                                         |     }
    0x00073c24 ldr r0, [r4, 0x80]                        |     r0 = *((r4 + 0x80));
    0x00073c28 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00073c2c beq 0x73d24                               |         goto label_26;
                                                         |     }
    0x00073c30 mov r1, r3                                |     r1 = r3;
    0x00073c34 bl 0x14fa4                                |     fputs (r0, r1);
                                                         | label_6:
    0x00073c38 ldr r0, [r5]                              |     r0 = *(r5);
    0x00073c3c bl 0x15028                                |     fflush (r0);
    0x00073c40 ldr r0, [r5]                              |     r0 = *(r5);
    0x00073c44 bl 0x14ec0                                |     r0 = ferror (r0);
    0x00073c48 cmp r0, 0                                 |     
                                                         |     if (r0 == 0) {
    0x00073c4c beq 0x73978                               |         goto label_0;
                                                         |     }
    0x00073c50 ldr r2, [pc, 0x21c]                       |     
    0x00073c54 ldr r3, [pc, 0x220]                       |     r3 = *(0x73e78);
    0x00073c58 ldr r2, [r6, r2]                          |     r2 = *((r6 + r2));
    0x00073c5c ldr ip, [r5]                              |     ip = *(r5);
    0x00073c60 ldr r2, [r2]                              |     r2 = "n_int";
    0x00073c64 ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x00073c68 cmp ip, r2                                |     
    0x00073c6c ldr r0, [r4, 0x1c]                        |     r0 = *((r4 + 0x1c));
    0x00073c70 ldr r1, [r3, 0xe4]                        |     r1 = *(0x73f5c);
                                                         |     if (ip != r2) {
    0x00073c74 bne 0x739b8                               |         goto label_1;
                                                         |     }
                                                         | label_14:
    0x00073c78 ldr r2, [r3, 0xe0]                        |     r2 = *((r3 + 0xe0));
    0x00073c7c b 0x739bc                                 |     goto label_2;
                                                         | label_18:
    0x00073c80 mov r0, 0xa                               |     r0 = 0xa;
    0x00073c84 bl 0x14c2c                                |     fputc_unlocked ();
    0x00073c88 b 0x73a60                                 |     goto label_3;
                                                         | label_17:
    0x00073c8c mov r0, 0xa                               |     r0 = 0xa;
    0x00073c90 bl 0x14e54                                |     fputc (r0, r1);
    0x00073c94 b 0x73a60                                 |     goto label_3;
                                                         | label_16:
    0x00073c98 bl 0x6a710                                |     fcn_0006a710 (r0, r1);
    0x00073c9c add r1, sl, 0x21                          |     r1 = sl + 0x21;
    0x00073ca0 mov r2, r0                                |     r2 = r0;
    0x00073ca4 mov sb, r0                                |     sb = r0;
    0x00073ca8 ldr r0, [pc, 0x1e0]                       |     
    0x00073cac add r0, pc, r0                            |     r0 = pc + r0;
    0x00073cb0 add r0, r0, 0x10c                         |     r0 = 0x73f98;
    0x00073cb4 add r0, r0, 1                             |     r0++;
    0x00073cb8 bl 0x15178                                |     sprintf (r0, r1, r2);
    0x00073cbc cmp r8, 0                                 |     
                                                         |     if (r8 != 0) {
    0x00073cc0 bne 0x73cd4                               |         goto label_27;
                                                         |     }
    0x00073cc4 ldr r3, [r4, 0x44]                        |     r3 = *((r4 + 0x44));
    0x00073cc8 ldr r3, [r3, 0x10]                        |     r3 = *((r3 + 0x10));
    0x00073ccc tst r3, 0x200000                          |     
                                                         |     if ((r3 & 0x200000) != 0) {
    0x00073cd0 bne 0x73a60                               |         goto label_3;
                                                         |     }
                                                         | label_27:
    0x00073cd4 ldr r1, [r5]                              |     r1 = *(r5);
    0x00073cd8 ldr r0, [sp]                              |     r0 = *(sp);
    0x00073cdc bl 0x14fa4                                |     fputs (r0, r1);
    0x00073ce0 b 0x73a60                                 |     goto label_3;
                                                         | label_19:
    0x00073ce4 ldr r3, [pc, 0x190]                       |     r3 = *(0x73e78);
    0x00073ce8 ldr r1, [r5]                              |     r1 = *(r5);
    0x00073cec ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x00073cf0 ldr r0, [r3, 0x134]                       |     r0 = *(0x73fac);
    0x00073cf4 b 0x73abc                                 |     goto label_4;
                                                         | label_20:
    0x00073cf8 ldr r3, [pc, 0x17c]                       |     r3 = *(0x73e78);
    0x00073cfc ldr r1, [r5]                              |     r1 = *(r5);
    0x00073d00 ldr r3, [r6, r3]                          |     r3 = *((r6 + r3));
    0x00073d04 ldr r0, [r3, 0x150]                       |     r0 = *(0x73fc8);
    0x00073d08 b 0x73abc                                 |     goto label_4;
                                                         | label_24:
    0x00073d0c mov r0, 0xa                               |     r0 = 0xa;
    0x00073d10 bl 0x14c2c                                |     fputc_unlocked ();
    0x00073d14 b 0x73bbc                                 |     goto label_5;
                                                         | label_23:
    0x00073d18 mov r0, 0xa                               |     r0 = 0xa;
    0x00073d1c bl 0x14e54                                |     fputc (r0, r1);
    0x00073d20 b 0x73bbc                                 |     goto label_5;
                                                         | label_26:
    0x00073d24 ldr r2, [r4, 0x48]                        |     r2 = *((r4 + 0x48));
    0x00073d28 cmp r2, 0                                 |     
                                                         |     if (r2 == 0) {
    0x00073d2c beq 0x73c38                               |         goto label_6;
                                                         |     }
    0x00073d30 ldr r1, [pc, 0x144]                       |     
    0x00073d34 mov r0, r3                                |     r0 = r3;
    0x00073d38 ldr r1, [r6, r1]                          |     r1 = *((r6 + r1));
    0x00073d3c ldr r1, [r1, 0x158]                       |     r1 = *(0x73fd0);
    0x00073d40 bl 0x150dc                                |     fprintf (r0, r1);
    0x00073d44 b 0x73c38                                 |     goto label_6;
                                                         | label_15:
    0x00073d48 ldr r3, [r4]                              |     r3 = *(r4);
    0x00073d4c cmp r3, 0x26000                           |     
                                                         |     if (r3 < 0x26000) {
    0x00073d50 ldrge r2, [r4, 0x68]                      |         r2 = *((r4 + 0x68));
                                                         |     }
                                                         |     if (r3 < 0x26000) {
    0x00073d54 ldrge r3, [r4, 0x44]                      |         r3 = *((r4 + 0x44));
                                                         |     }
                                                         |     if (r3 < 0x26000) {
    0x00073d58 addge r3, r3, r2, lsl 6                   |         r3 += (r2 << 6);
                                                         |     }
                                                         |     if (r3 >= 0x26000) {
    0x00073d5c bge 0x73db0                               |         goto label_28;
                                                         |     }
    0x00073d60 and r3, r0, 3                             |     r3 = r0 & 3;
    0x00073d64 cmp r3, 2                                 |     
    0x00073d68 mov r0, sp                                |     r0 = sp;
                                                         |     if (r3 == 2) {
    0x00073d6c beq 0x73e38                               |         goto label_29;
                                                         |     }
    0x00073d70 cmp r3, 3                                 |     
                                                         |     if (r3 != 3) {
    0x00073d74 beq 0x73d80                               |         
    0x00073d78 cmp r3, 1                                 |         
                                                         |         if (r3 != 1) {
    0x00073d7c bne 0x73e48                               |             goto label_30;
                                                         |         }
                                                         |     }
    0x00073d80 ldr r1, [pc, 0x10c]                       |     r1 = "er";
    0x00073d84 add r1, pc, r1                            |     r1 = pc + r1;
    0x00073d88 b 0x73e40                                 |     goto label_7;
                                                         |     do {
    0x00073d8c ldr r1, [r4, 0x64]                        |         r1 = *((r4 + 0x64));
    0x00073d90 add r2, r2, 1                             |         r2++;
    0x00073d94 cmp r2, r1                                |         
                                                         |         if (r2 >= r1) {
    0x00073d98 blt 0x73dac                               |             
    0x00073d9c ldr r3, [pc, 0xd8]                        |             r3 = *(0x73e78);
    0x00073da0 ldr r3, [r6, r3]                          |             r3 = *((r6 + r3));
    0x00073da4 ldr r0, [r3, 0x38]                        |             r0 = *(0x73eb0);
    0x00073da8 bl 0x6a1cc                                |             fcn_0006a1cc (r0);
                                                         |         }
    0x00073dac add r3, r3, 0x40                          |         r3 += 0x40;
                                                         | label_28:
    0x00073db0 ldr r1, [r3, 0x14]                        |         r1 = *((r3 + 0x14));
    0x00073db4 cmp r1, 3                                 |         
    0x00073db8 bne 0x73d8c                               |         
                                                         |     } while (r1 != 3);
    0x00073dbc and r0, r0, 3                             |     r0 &= 3;
    0x00073dc0 cmp r0, 2                                 |     
                                                         |     if (r0 != 2) {
    0x00073dc4 beq 0x73e00                               |         
    0x00073dc8 cmp r0, 3                                 |         
                                                         |         if (r0 != 3) {
    0x00073dcc beq 0x73de4                               |             
    0x00073dd0 cmp r0, 1                                 |             
                                                         |             if (r0 == 1) {
    0x00073dd4 movne r2, 0x14                            |                 r2 = 0x14;
                                                         |             }
                                                         |             if (r0 == 1) {
    0x00073dd8 ldrne r1, [r3, 0x34]                      |                 r1 = *((r3 + 0x34));
                                                         |             }
                                                         |             if (r0 == 1) {
    0x00073ddc movne r0, sp                              |                 r0 = sp;
                                                         |             }
                                                         |             if (r0 != 1) {
    0x00073de0 bne 0x73df8                               |                 goto label_31;
                                                         |             }
                                                         |         }
    0x00073de4 ldr r2, [pc, 0xac]                        |         r2 = *(0x73e94);
    0x00073de8 add r0, sp, 2                             |         r0 += var_2h;
    0x00073dec strh r2, [sp]                             |         *(sp) = r2;
    0x00073df0 ldr r1, [r3, 0x34]                        |         r1 = *((r3 + 0x34));
    0x00073df4 mov r2, 0x14                              |         r2 = 0x14;
                                                         | label_31:
    0x00073df8 bl 0x14f20                                |         strncpy (r0, r1, r2);
    0x00073dfc b 0x73e18                                 |         
                                                         |     } else {
    0x00073e00 mov r2, 0x2d                              |         r2 = 0x2d;
    0x00073e04 strb r2, [sp]                             |         *(sp) = r2;
    0x00073e08 ldrh r3, [r3, 2]                          |         r3 = *((r3 + 2));
    0x00073e0c strb r3, [sp, 1]                          |         var_1h = r3;
    0x00073e10 mov r3, 0                                 |         r3 = 0;
    0x00073e14 strb r3, [sp, 2]                          |         var_2h = r3;
                                                         |     }
                                                         |     do {
    0x00073e18 ldr r3, [pc, 0x5c]                        |         r3 = *(0x73e78);
    0x00073e1c ldr r2, [r4, 0x1c]                        |         r2 = *((r4 + 0x1c));
    0x00073e20 ldr r1, [r6, r3]                          |         r1 = *((r6 + r3));
    0x00073e24 ldr r0, [r5]                              |         r0 = *(r5);
    0x00073e28 mov r3, sp                                |         r3 = sp;
    0x00073e2c ldr r1, [r1, 0xd4]                        |         r1 = *((r1 + 0xd4));
    0x00073e30 bl 0x150dc                                |         fprintf (r0, r1, r2, r3);
    0x00073e34 b 0x73978                                 |         goto label_0;
                                                         | label_29:
    0x00073e38 ldr r1, [pc, 0x5c]                        |         r1 = *(0x73e98);
    0x00073e3c add r1, pc, r1                            |         r1 = pc + r1;
                                                         | label_7:
    0x00073e40 bl 0x15514                                |         strcpy (r0, r1)
    0x00073e44 b 0x73e18                                 |         
                                                         |     } while (1);
                                                         | label_30:
    0x00073e48 ldr r1, [pc, 0x50]                        |     r1 = *(0x73e9c);
    0x00073e4c add r1, pc, r1                            |     r1 = pc + r1;
    0x00073e50 b 0x73e40                                 |     goto label_7;
                                                         | label_13:
    0x00073e54 mov r0, r7                                |     r0 = r7;
    0x00073e58 bl 0x6a190                                |     r0 = fcn_0006a190 (r0);
                                                         |     if (r0 != 1) {
    0x00073e5c andeq r2, r0, r0, asr r7                  |         r2 = r0 & (r0 >> r7);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e60 andeq sl, r7, r8, asr 27                  |         sl = r7 & (r8 >> 27);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e64 andeq sl, r2, r0, lsr r7                  |         sl = r2 & (r0 >> r7);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e68 andeq r0, r0, r8, asr r5                  |         r0 &= (r8 >> r5);
                                                         |     }
    0x00073e6c strdeq sp, lr, [r1], -pc                  |     __asm ("strdeq sp, lr, [r1], -pc");
                                                         |     if (r0 != 1) {
    0x00073e70 andeq sl, r7, r8, ror 26                  |         sl = r7 & (r8 >>> 26);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e74 andeq r0, r0, r8, lsr r5                  |         r0 &= (r8 >> r5);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e78 andeq r0, r0, r0, lsr r5                  |         r0 &= (r0 >> r5);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e7c andeq r0, r0, r0, ror 10                  |         r0 &= (r0 >>> 10);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e80 andeq r0, r0, r0, asr 10                  |         r0 &= (r0 >> 10);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e84 andeq sl, r7, r4, asr 24                  |         sl = r7 & (r4 >> 24);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e88 andeq sl, r7, ip, ror 23                  |         sl = r7 & (ip >>> 23);
                                                         |     }
    0x00073e8c strdeq sl, fp, [r7], -r0                  |     __asm ("strdeq sl, fp, [r7], -r0");
    0x00073e90 strheq sl, [r7], -r8                      |     __asm ("strheq sl, [r7], -r8");
    0x00073e94 strdeq sb, sl, [r1], -r3                  |     __asm ("strdeq sb, sl, [r1], -r3");
                                                         |     if (r0 != 1) {
    0x00073e98 andeq r2, r0, sp, lsr 26                  |         r2 = r0 & (sp >> 26);
                                                         |     }
                                                         |     if (r0 != 1) {
    0x00073e9c andeq sb, r1, r8, lsr r1                  |         sb = r1 & (r8 >> r1);
                                                         |     }
                                                         |     /* 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. */
    0x00073ea0 andeq sb, r1, sp, lsr 2                   |     return sb = r1 & (sp >> 2);
                                                         | }

[*] Function strcpy used 9 times ntpd