[*] Binary protection state of chronyc

  
  	Full RELRO     Canary found      NX enabled   PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of chronyc

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/chronyc @ 0x233c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0000233c ()                                  | void fcn_0000233c (int16_t arg_0h, int16_t arg_ch, int16_t arg4) {
                                                             |     int16_t var_0h;
                                                             |     r3 = arg4;
                                                             |     do {
                                                             | label_7:
    0x00001e68 add sp, 0x14                                  |         
    0x00001e6a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_8:
    0x00001e80 str r5, [sp, 0xc]                             |         *(arg_ch) = r5;
    0x00001e82 add r4, pc                                    |         r4 += pc;
    0x00001e84 str r3, [r7]                                  |         *(r7) = r3;
    0x00001e86 invalid                                       |         
    0x00001e88 mov r1, sl                                    |         r1 = sl;
    0x00001e8a mov r0, r6                                    |         r0 = r6;
    0x00001e8c blx 0x1bbc                                    |         r0 = memcpy (r0, r1, r2);
    0x00001e90 adds r3, r0, 1                                |         r3 = r0 + 1;
                                                             |         if (r3 == r0) {
    0x00001e92 beq.w 0x204e                                  |             goto label_9;
                                                             |         }
    0x00001e96 sub.w r3, r0, 0x34                            |         r3 = r0 - 0x34;
    0x00001e9a cmp r3, 0x42                                  |         
                                                             |         if (r3 <= 0x42) {
    0x00001e9c bhi.w 0x1fcc                                  |             
    0x00001ea0 adr r2, 8                                     |             r2 = 8;
    0x00001ea2 ldr.w r3, [r2, r3, lsl 2]                     |             offset_0 = r3 << 2;
                                                             |             r3 = *((r2 + offset_0));
    0x00001ea6 add r2, r3                                    |             r2 += r3;
                                                             |             /* switch table (67 cases) at 0x1eac */
    0x00001ea8 bx r2                                         |             return uint32_t (*r2)() ();
                                                             |         }
    0x00001fcc ldr r3, [pc, 0x2b8]                           |         
    0x00001fce movw r4, 0x143                                |         r4 = 0x143;
    0x00001fd2 ldr r1, [pc, 0x2b8]                           |         
    0x00001fd4 movs r0, 1                                    |         r0 = 1;
    0x00001fd6 ldr r2, [sp, 8]                               |         r2 = *(arg_0h);
    0x00001fd8 add r3, pc                                    |         r3 = 0x4264;
    0x00001fda str r4, [sp]                                  |         *(sp) = r4;
    0x00001fdc add r1, pc                                    |         r1 = 0x426e;
    0x00001fde blx 0x1a60                                    |         printf_chk ()
    0x00001fe2 movs r0, 1                                    |         r0 = 1;
    0x00001fe4 b 0x1e68                                      |         
                                                             |     } while (1);
                                                             | label_9:
    0x0000204e movs r0, 0                                    |     r0 = 0;
    0x00002050 blx 0x1b8c                                    |     r0 = strlen (r0);
    0x00002054 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00002056 bne.w 0x217c                                  |         goto label_10;
                                                             |     }
                                                             | label_2:
    0x0000205a ldr r3, [pc, 0x254]                           |     
    0x0000205c add r3, pc                                    |     
    0x0000205e ldr r3, [r3, 0x28]                            |     r3 = *(0x433a);
    0x00002060 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00002062 bne.w 0x219c                                  |         goto label_11;
                                                             |     }
    0x00002064 strh r3, [r3, 4]                              |     *((r3 + 4)) = r3;
                                                             | label_3:
    0x00002066 mov r0, r5                                    |     r0 = r5;
    0x00002068 bl 0x8fc8                                     |     fcn_00008fc8 (r0);
    0x0000206c cmp.w r8, 0                                   |     
    0x0000206e lsrs r0, r0, 0x1c                             |     r0 >>= 0x1c;
                                                             |     if (r0 == r0) {
    0x00002070 beq.w 0x21c4                                  |         goto label_12;
                                                             |     }
                                                             | label_5:
    0x00002074 ldr r0, [pc, 0x23c]                           |     
    0x00002076 movs r1, 0                                    |     r1 = 0;
    0x00002078 ldr r4, [pc, 0x23c]                           |     
    0x0000207a add r0, pc                                    |     r0 = 0x4332;
    0x0000207c bl 0xc7d4                                     |     fcn_0000c7d4 (r0, r1);
    0x00002080 movs r0, 0                                    |     r0 = 0;
    0x00002082 add r4, pc                                    |     r4 = 0x433e;
    0x00002084 bl 0x98e0                                     |     fcn_000098e0 (r0);
    0x00002088 mov r1, sb                                    |     r1 = sb;
    0x0000208a mov r0, r8                                    |     r0 = r8;
    0x0000208c bl 0x384c                                     |     fcn_0000384c (r0, r1, r2, r3);
    0x00002090 str r0, [r4, 0x18]                            |     *((r4 + 0x18)) = r0;
    0x00002092 bl 0x36ac                                     |     r0 = fcn_000036ac (r0, r1);
    0x00002096 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002098 beq.w 0x2240                                  |         goto label_13;
                                                             |     }
    0x0000209c ldr r0, [r7]                                  |     r0 = *(r7);
    0x0000209e cmp r0, r6                                    |     
                                                             |     if (r0 < r6) {
    0x000020a0 blt.w 0x21b4                                  |         goto label_14;
                                                             |     }
    0x000020a4 ldr.w sl, [pc, 0x214]                         |     
    0x000020a8 movs r5, 1                                    |     r5 = 1;
    0x000020aa ldr.w sb, [pc, 0x214]                         |     
    0x000020ae add.w r7, r4, 0x30                            |     r7 = r4 + 0x30;
    0x000020b2 ldr.w r8, [pc, 0x210]                         |     
    0x000020b6 add sl, pc                                    |     sl = 0x4376;
    0x000020b8 add sb, pc                                    |     sb = 0x437e;
    0x000020ba add.w r3, sl, 0x30                            |     r3 = sl + 0x30;
    0x000020be add r8, pc                                    |     r8 = 0x4388;
    0x000020c0 mov r6, sb                                    |     r6 = sb;
    0x000020c2 str r3, [sp, 8]                               |     *(arg_0h) = r3;
    0x000020c4 b 0x2108                                      |     
                                                             |     while (r3 != 0) {
    0x000020c6 ldr r3, [pc, 0x200]                           |         r3 = *(0x22ca);
    0x000020c8 ldr r0, [pc, 0x200]                           |         
    0x000020ca ldr.w r3, [fp, r3]                            |         r3 = *((fp + r3));
    0x000020ce add r0, pc                                    |         r0 = 0x439e;
    0x000020d0 str r6, [r3]                                  |         *(r3) = r6;
    0x000020d2 ldr r3, [pc, 0x1fc]                           |         r3 = *(0x22d2);
    0x000020d4 ldr.w r3, [fp, r3]                            |         r3 = *((fp + r3));
    0x000020d8 str.w r8, [r3]                                |         __asm ("str.w r8, [r3]");
    0x000020dc blx 0x1c6c                                    |         r0 = fcn_00001c6c ();
    0x000020e0 mov sb, r0                                    |         sb = r0;
                                                             |         if (r0 == 0) {
    0x000020e2 cbz r0, 0x2124                                |             goto label_15;
                                                             |         }
    0x000020e4 ldrb r3, [r0]                                 |         r3 = *(r0);
    0x000020e6 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000020e8 bne.w 0x21fc                                  |             goto label_16;
                                                             |         }
    0x000020ec strb.w r3, [r4, 0x30]                         |         *((r4 + 0x30)) = r3;
                                                             | label_0:
    0x000020f0 ldr.w r3, [sl]                                |         r3 = *(sl);
    0x000020f4 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000020f6 beq 0x21cc                                    |             goto label_17;
                                                             |         }
    0x000020f8 ldr.w r3, [sl, 0x28]                          |         r3 = *((sl + 0x28));
    0x000020fc cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x000020fe bne 0x21f4                                    |             goto label_18;
                                                             |         }
                                                             | label_6:
    0x00002100 ldr r3, [pc, 0x1d0]                           |         
    0x00002102 add r3, pc                                    |         
    0x00002104 ldr r3, [r3]                                  |         r3 = *(0x43da);
                                                             |         if (r3 != 0) {
    0x00002106 cbnz r3, 0x212a                               |             goto label_4;
                                                             |         }
    0x00002108 ldr r3, [r4, 0x28]                            |         r3 = *((r4 + 0x28));
    0x0000210a cmp r3, 0                                     |         
    0x0000210c bne 0x20c6                                    |         
                                                             |     }
    0x0000210e ldr r3, [pc, 0x1c8]                           |     r3 = *(0x22da);
    0x00002110 mov.w r1, 0x800                               |     r1 = 0x800;
    0x00002114 mov r0, r7                                    |     r0 = r7;
    0x00002116 ldr.w r3, [fp, r3]                            |     r3 = *((fp + r3));
    0x0000211a ldr r2, [r3]                                  |     r2 = *(0x22da);
    0x0000211c blx 0x1a48                                    |     r0 = fgets (r0, r1, r2);
    0x00002120 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00002122 bne 0x20f0                                    |         goto label_0;
                                                             |     }
                                                             | label_15:
    0x00002124 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x00002126 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00002128 bne 0x221c                                    |         goto label_19;
                                                             |     }
                                                             | label_4:
    0x0000212a ldr r4, [pc, 0x1b0]                           |     
    0x0000212c add r4, pc                                    |     r4 = 0x440e;
    0x0000212e ldr.w r0, [r4, 0x118]                         |     r0 = *(0x4526);
    0x00002132 cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00002134 blt 0x214a                                    |         
    0x00002136 bl 0xa04c                                     |         fcn_0000a04c (r0, r1, r2);
    0x0000213a ldr.w r0, [r4, 0x118]                         |         r0 = *((r4 + 0x118));
    0x0000213e bl 0xa49c                                     |         fcn_0000a49c ();
    0x00002142 mov.w r3, -1                                  |         r3 = -1;
    0x00002146 str.w r3, [r4, 0x118]                         |         __asm ("str.w r3, [r4, 0x118]");
                                                             |     }
    0x0000214a ldr r3, [pc, 0x194]                           |     
    0x0000214c movs r4, 0                                    |     r4 = 0;
    0x0000214e add r3, pc                                    |     r3 = 0x4434;
    0x00002150 ldr r6, [r3, 0x18]                            |     r6 = *(0x444c);
    0x00002152 b 0x2156                                      |     
                                                             |     while (r3 != 2) {
                                                             | label_1:
    0x00002154 adds r4, 1                                    |         r4++;
    0x00002156 mov r0, r6                                    |         r0 = r6;
    0x00002158 bl 0x25c8                                     |         r0 = fcn_000025c8 (r0);
    0x0000215c cmp r4, r0                                    |         
                                                             |         if (r4 >= r0) {
    0x0000215e bhs 0x21e2                                    |             goto label_20;
                                                             |         }
    0x00002160 mov r1, r4                                    |         r1 = r4;
    0x00002162 mov r0, r6                                    |         r0 = r6;
    0x00002164 bl 0x24f8                                     |         r0 = fcn_000024f8 (r0, r1);
    0x00002168 ldr r3, [r0]                                  |         r3 = *(r0);
    0x0000216a cmp r3, 2                                     |         
    0x0000216c bne 0x2154                                    |         
                                                             |     }
    0x0000216e ldr r0, [r0, 4]                               |     r0 = *((r0 + 4));
    0x00002170 blx 0x1b04                                    |     fcn_00001b04 ();
    0x00002174 b 0x2154                                      |     goto label_1;
                                                             | label_10:
    0x0000217c movs r0, 1                                    |     r0 = 1;
    0x0000217e blx 0x1b8c                                    |     r0 = strlen (r0);
    0x00002182 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002184 beq.w 0x205a                                  |         goto label_2;
                                                             |     }
    0x00002188 movs r0, 2                                    |     r0 = 2;
    0x0000218a blx 0x1b8c                                    |     r0 = strlen (r0);
    0x0000218e cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00002190 beq.w 0x205a                                  |         goto label_2;
                                                             |     }
    0x00002194 ldr r3, [pc, 0x14c]                           |     
    0x00002196 movs r2, 1                                    |     r2 = 1;
    0x00002198 add r3, pc                                    |     r3 = 0x4480;
    0x0000219a str r2, [r3, 0x28]                            |     *((r3 + 0x28)) = r2;
                                                             | label_11:
    0x0000219c ldr r3, [r7]                                  |     r3 = *(r7);
    0x0000219e cmp r3, r6                                    |     
                                                             |     if (r3 != r6) {
    0x000021a0 bne.w 0x2066                                  |         goto label_3;
                                                             |     }
    0x000021a4 ldr r2, [pc, 0x140]                           |     
    0x000021a6 movs r0, 1                                    |     r0 = 1;
    0x000021a8 ldr r1, [pc, 0x140]                           |     
    0x000021aa add r2, pc                                    |     r2 = 0x4496;
    0x000021ac add r1, pc                                    |     r1 = 0x449c;
    0x000021ae blx 0x1a60                                    |     printf_chk ()
    0x000021b2 b 0x2066                                      |     goto label_3;
                                                             | label_14:
    0x000021b4 add.w r1, sl, r0, lsl 2                       |     r1 = sl + (r0 << 2);
    0x000021b8 ldr r2, [sp, 0xc]                             |     r2 = *(arg_ch);
    0x000021ba subs r0, r6, r0                               |     r0 = r6 - r0;
    0x000021bc bl 0x70d8                                     |     r0 = fcn_000070d8 (r0, r1, r2, r3, r4, r5);
    0x000021c0 mov r5, r0                                    |     r5 = r0;
    0x000021c2 b 0x212a                                      |     goto label_4;
                                                             | label_12:
    0x000021c4 ldr.w r8, [pc, 0x128]                         |     
    0x000021c8 add r8, pc                                    |     r8 = 0x44bc;
    0x000021ca b 0x2074                                      |     goto label_5;
                                                             | label_17:
    0x000021cc ldr r0, [sp, 8]                               |     r0 = *(arg_0h);
    0x000021ce bl 0x71e8                                     |     fcn_000071e8 (r0);
    0x000021d2 ldrb.w r3, [sl, 0x30]                         |     r3 = *((sl + 0x30));
                                                             |     do {
    0x000021d4 adds r0, 0x30                                 |         r0 += 0x30;
                                                             |         if (r3 != 0) {
    0x000021d6 cbz r3, 0x2224                                |             
    0x000021d8 ldr r0, [sp, 8]                               |             r0 = *(arg_0h);
    0x000021da bl 0x4710                                     |             r0 = fcn_00004710 (r0);
    0x000021de mov r5, r0                                    |             r5 = r0;
    0x000021e0 b 0x2100                                      |             goto label_6;
                                                             | label_20:
    0x000021e2 mov r0, r6                                    |             r0 = r6;
    0x000021e4 bl 0x24c0                                     |             r0 = fcn_000024c0 (r0);
    0x000021e8 bl 0x9978                                     |             r0 = fcn_00009978 ();
    0x000021ec clz r0, r5                                    |             r0 &= r5;
    0x000021f0 lsrs r0, r0, 5                                |             r0 >>= 5;
    0x000021f2 b 0x1e68                                      |             goto label_7;
                                                             | label_18:
    0x000021f4 movs r0, 0xa                                  |             r0 = 0xa;
    0x000021f6 blx 0x1a78                                    |             putchar (r0);
    0x000021fa b 0x2100                                      |             goto label_6;
                                                             | label_16:
    0x000021fc mov r1, r0                                    |             r1 = r0;
    0x000021fe movw r2, 0x7ff                                |             r2 = 0x7ff;
    0x00002202 mov r0, r7                                    |             r0 = r7;
    0x00002204 blx 0x1a30                                    |             strncpy (r0, r1, r2);
    0x00002208 movs r3, 0                                    |             r3 = 0;
    0x0000220a mov r0, sb                                    |             r0 = sb;
    0x0000220c strb.w r3, [r4, 0x82f]                        |             *((r4 + 0x82f)) = r3;
    0x00002210 blx 0x1d60                                    |             getsockopt ();
    0x00002214 mov r0, sb                                    |             r0 = sb;
    0x00002216 blx 0x1b04                                    |             fcn_00001b04 ();
    0x0000221a b 0x20f0                                      |             goto label_0;
                                                             | label_19:
    0x0000221c movs r0, 0xa                                  |             r0 = 0xa;
    0x0000221e blx 0x1a78                                    |             putchar (r0);
    0x00002222 b 0x212a                                      |             goto label_4;
                                                             |         }
    0x00002224 ldr r3, [pc, 0xcc]                            |         r3 = *(0x22f4);
    0x00002226 movs r5, 1                                    |         r5 = 1;
    0x00002228 ldr.w r3, [fp, r3]                            |         r3 = *((fp + r3));
    0x0000222c ldr r0, [r3]                                  |         r0 = *(0x22f4);
    0x0000222e blx 0x1b74                                    |         setuid ();
    0x00002232 ldr r3, [pc, 0xc4]                            |         r3 = *(0x22fa);
    0x00002234 ldr.w r3, [fp, r3]                            |         r3 = *((fp + r3));
    0x00002238 ldr r0, [r3]                                  |         r0 = *(0x22fa);
    0x0000223a blx 0x1b74                                    |         setuid ();
    0x0000223e b 0x2100                                      |         goto label_6;
                                                             | label_13:
    0x00002240 ldr r3, [pc, 0xb8]                            |         
    0x00002242 movs r0, 3                                    |         r0 = 3;
    0x00002244 ldr r4, [pc, 0xb8]                            |         
    0x00002246 movw r1, 0xd64                                |         r1 = 0xd64;
    0x0000224a ldr r2, [pc, 0xb8]                            |         
    0x0000224c add r3, pc                                    |         r3 = 0x454c;
    0x0000224e add r4, pc                                    |         r4 = 0x4552;
    0x00002250 adds r3, 0x80                                 |         r3 += 0x80;
    0x00002252 add r2, pc                                    |         r2 = 0x455c;
    0x00002254 str r4, [sp]                                  |         *(sp) = r4;
    0x00002256 bl 0x37d8                                     |         fcn_000037d8 (r0);
    0x0000225a movs r0, 1                                    |         r0 = 1;
    0x0000225c blx 0x1dc0                                    |         fdelt_chk ();
    0x00002260 adds r0, 0x2e                                 |         r0 += 0x2e;
    0x00002262 movs r1, r0                                   |         r1 = r0;
    0x00002264 lsls r0, r2, 6                                |         r0 = r2 << 6;
    0x00002266 movs r0, r0                                   |         
    0x00002268 b 0x21d4                                      |         
                                                             |     } while (1);
    0x0000233c adds r0, 0x14                                 |     r0 += 0x14;
    0x0000233e b 0x1e80                                      |     goto label_8;
                                                             | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/chronyc @ 0x28e0 */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.000028e0 ()                                      | void fcn_000028e0 (int16_t arg_4h) {
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_12ch;
                                                                 |     int16_t var_158h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_4h_2;
                                                                 |     int16_t var_4h_3;
    0x000028e0 push {r0, r1, r2, r3}                             |     
    0x000028e2 ldr.w r1, [pc, 0x90c]                             |     
    0x000028e6 ldr.w r2, [pc, 0x90c]                             |     r2 = *(0x31f6);
    0x000028ea push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x000028ee sub sp, 0x134                                     |     
    0x000028f0 add r3, sp, 0x158                                 |     r3 += var_158h;
    0x000028f2 add r1, pc                                        |     r1 = 0x5ae8;
    0x000028f4 mov.w r8, 0                                       |     r8 = 0;
    0x000028f6 lsrs r0, r0, 0x20                                 |     r0 >>= 0x20;
    0x000028f8 add r7, sp, 0x2c                                  |     r7 += var_2ch;
    0x000028fa ldr r2, [r1, r2]                                  |     
    0x000028fc mov r6, r8                                        |     r6 = r8;
    0x000028fe ldr r4, [r3], 4                                   |     r4 = *(r3);
                                                                 |     r3 += 4;
    0x00002902 add.w lr, sp, 0x28                                |     lr += var_28h;
    0x00002906 ldr.w sl, [pc, 0x8f0]                             |     
    0x0000290a ldr.w fp, [pc, 0x8f0]                             |     
    0x0000290e ldr r2, [r2]                                      |     r2 = *(0x5ae8);
    0x00002910 str r2, [sp, 0x12c]                               |     var_12ch = r2;
    0x00002912 mov.w r2, 0                                       |     r2 = 0;
    0x00002916 mov sb, r3                                        |     sb = r3;
    0x00002918 str r3, [sp, 0x28]                                |     var_28h = r3;
    0x0000291a ldr.w r3, [pc, 0x8e4]                             |     
    0x0000291e add sl, pc                                        |     sl = 0x5b1c;
    0x00002920 add fp, pc                                        |     fp = 0x5b22;
    0x00002922 str.w lr, [sp, 0x18]                              |     __asm ("str.w lr, [var_18h]");
    0x00002926 add r3, pc                                        |     r3 = 0x5b2c;
    0x00002928 str r3, [sp, 0x1c]                                |     var_1ch = r3;
                                                                 | label_0:
    0x0000292a mov r2, r4                                        |     r2 = r4;
    0x0000292c mov r1, r7                                        |     r1 = r7;
    0x0000292e movs r5, 0                                        |     r5 = 0;
    0x00002930 b 0x293e                                          |     
                                                                 |     while (r3 != 0) {
    0x00002932 adds r5, 1                                        |         r5++;
    0x00002934 strb r3, [r1], 1                                  |         *(r1) = r3;
                                                                 |         r1++;
    0x00002938 cmp.w r5, 0x100                                   |         
                                                                 |         if (r5 == 0x100) {
    0x0000293c beq 0x29fa                                        |             goto label_16;
                                                                 |         }
    0x0000293e mov r8, r2                                        |         r8 = r2;
    0x00002940 ldrb r3, [r2], 1                                  |         r3 = *(r2);
                                                                 |         r2++;
    0x00002944 cmp r3, 0                                         |         
    0x00002946 it ne                                             |         
                                                                 |         if (r3 != 0) {
    0x00002948 cmpne r3, 0x25                                    |             __asm ("cmpne r3, 0x25");
                                                                 |         }
    0x0000294a ite ne                                            |         
                                                                 |         if (r3 == 0) {
    0x0000294c movne r0, 1                                       |             r0 = 1;
                                                                 |         }
                                                                 |         if (r3 != 0) {
    0x0000294e moveq r0, 0                                       |             r0 = 0;
                                                                 |         }
    0x00002950 bne 0x2932                                        |         
                                                                 |     }
    0x00002952 ldr.w r2, [sl, 4]                                 |     r2 = *((sl + 4));
    0x00002956 strb r0, [r7, r5]                                 |     *((r7 + r5)) = r0;
    0x00002958 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x0000295a beq 0x29e8                                        |         goto label_17;
                                                                 |     }
    0x0000295c cmp r3, 0                                         |     
                                                                 |     if (r3 == 0) {
    0x0000295e beq 0x29fa                                        |         goto label_16;
                                                                 |     }
                                                                 |     do {
    0x00002960 adds r5, 1                                        |         r5++;
    0x00002962 ldrb.w r8, [r4, r5]                               |         r8 = *((r4 + r5));
    0x00002966 add r4, r5                                        |         r4 += r5;
    0x00002968 cmp.w r8, 0                                       |         
                                                                 |         if (r8 == 0) {
    0x0000296c beq 0x29fa                                        |             goto label_16;
                                                                 |         }
    0x0000296e sub.w r3, r8, 0x2b                                |         r3 = r8 - 0x2b;
    0x00002972 tst.w r3, 0xfd                                    |         
    0x00002976 itett eq                                          |         
                                                                 |         if ((r3 & 0xfd) != 0) {
    0x00002978 moveq r3, 1                                       |             r3 = 1;
                                                                 |         }
                                                                 |         if ((r3 & 0xfd) == 0) {
    0x0000297a movne r3, 0                                       |             r3 = 0;
                                                                 |         }
                                                                 |         if ((r3 & 0xfd) != 0) {
    0x0000297c ldrbeq r8, [r4, 1]                                |             r8 = *((r4 + 1));
                                                                 |         }
                                                                 |         if ((r3 & 0xfd) == 0) {
    0x00002980 adds r4, r4, r3                                   |             r4 += r3;
                                                                 |         }
    0x00002982 ite eq                                            |         
                                                                 |         if (r4 != r4) {
    0x00002984 streq r3, [sp, 0x14]                              |             var_14h = r3;
                                                                 |         }
                                                                 |         if (r4 == r4) {
    0x00002986 strne r3, [sp, 0x14]                              |             var_14h = r3;
                                                                 |         }
    0x00002988 blx 0x1c60                                        |         r0 = fcn_00001c60 ();
    0x0000298c ldr r1, [r0]                                      |         r1 = *(r0);
    0x0000298e mov r3, r0                                        |         r3 = r0;
    0x00002990 ldrh.w r5, [r1, r8, lsl 1]                        |         offset_0 = r8 << 1;
                                                                 |         r5 = *((r1 + offset_0));
    0x00002994 ands r5, r5, 0x800                                |         r5 &= 0x800;
                                                                 |         if (r5 != r5) {
    0x00002998 bne.w 0x2ae2                                      |             goto label_18;
                                                                 |         }
                                                                 | label_2:
    0x0000299c cmp.w r8, 0x2e                                    |         
    0x000029a0 it ne                                             |         
                                                                 |         if (r8 == 0x2e) {
    0x000029a2 movne r3, 5                                       |             r3 = 5;
                                                                 |         }
                                                                 |         if (r8 == 0x2e) {
    0x000029a4 beq.w 0x2b1a                                      |             goto label_19;
                                                                 |         }
                                                                 | label_3:
    0x000029a8 ldr.w r1, [fp, 4]                                 |         r1 = *(arg_4h);
    0x000029ac adds r4, 1                                        |         r4++;
    0x000029ae cmp r1, 0                                         |         
                                                                 |         if (r1 == 0) {
    0x000029b0 beq 0x2a3e                                        |             goto label_20;
                                                                 |         }
    0x000029b2 cmp r6, 0                                         |         
                                                                 |         if (r6 != 0) {
    0x000029b4 bne.w 0x2ad6                                      |             goto label_21;
                                                                 |         }
                                                                 | label_1:
    0x000029b8 sub.w r1, r8, 0x43                                |         r1 = r8 - 0x43;
    0x000029bc cmp r1, 0x11                                      |         
                                                                 |         if (r1 > 0x11) {
    0x000029be bhi 0x2a3a                                        |             goto label_22;
                                                                 |         }
                                                                 |         /* switch table (19 cases) at 0x29c4 */
    0x000029c0 tbh [pc, r1, lsl 1]                               |         __asm ("tbh [pc, r1, lsl 1]");
                                                                 | label_17:
    0x000029e8 ldr r1, [sp, 0x1c]                                |         r1 = var_1ch;
    0x000029ea mov r2, r7                                        |         r2 = r7;
    0x000029ec movs r0, 1                                        |         r0 = 1;
    0x000029ee blx 0x1a60                                        |         printf_chk ()
    0x000029f2 ldrb.w r3, [r8]                                   |         r3 = *(r8);
    0x000029f6 cmp r3, 0                                         |         
    0x000029f8 bne 0x2960                                        |         
                                                                 |     } while (r3 != 0);
                                                                 | label_16:
    0x000029fa ldr.w r2, [sb]                                    |     r2 = *(sb);
    0x000029fe movw r3, 0x1234                                   |     r3 = 0x1234;
    0x00002a02 cmp r2, r3                                        |     
                                                                 |     if (r2 != r3) {
    0x00002a04 bne.w 0x342c                                      |         goto label_23;
                                                                 |     }
    0x00002a08 ldr.w r3, [pc, 0x7f8]                             |     
    0x00002a0c add r3, pc                                        |     
    0x00002a0e ldr r3, [r3, 4]                                   |     r3 = *(0x5c18);
    0x00002a10 cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00002a12 bne.w 0x2f56                                      |         goto label_24;
                                                                 |     }
                                                                 | label_7:
    0x00002a16 ldr.w r2, [pc, 0x7f0]                             |     
    0x00002a1a ldr.w r3, [pc, 0x7d8]                             |     r3 = *(0x31f6);
    0x00002a1e add r2, pc                                        |     r2 = 0x5c2c;
    0x00002a20 ldr r3, [r2, r3]                                  |     r3 = *(0x5c2c);
    0x00002a22 ldr r2, [r3]                                      |     r2 = *(0x5c2c);
    0x00002a24 ldr r3, [sp, 0x12c]                               |     r3 = var_12ch;
    0x00002a26 eors r2, r3                                       |     r2 ^= r3;
    0x00002a28 mov.w r3, 0                                       |     r3 = 0;
                                                                 |     if (r2 != r3) {
    0x00002a2c bne.w 0x3428                                      |         goto label_25;
                                                                 |     }
    0x00002a30 add sp, 0x134                                     |     
    0x00002a32 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}        |     
    0x00002a36 add sp, 0x10                                      |     
    0x00002a38 bx lr                                             |     return;
                                                                 | label_22:
    0x00002a3a movs r5, 0                                        |     r5 = 0;
    0x00002a3c str r5, [sp, 0x14]                                |     var_14h = r5;
                                                                 | label_20:
    0x00002a3e sub.w r1, r8, 0x42                                |     r1 = r8 - 0x42;
    0x00002a42 cmp r1, 0x33                                      |     
                                                                 |     if (r1 <= 0x33) {
    0x00002a44 bhi 0x2ad2                                        |         
                                                                 |         /* switch table (53 cases) at 0x2a4a */
    0x00002a46 tbh [pc, r1, lsl 1]                               |         __asm ("tbh [pc, r1, lsl 1]");
    0x00002ab2 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00002ab4 add.w sb, sb, 4                                   |         sb += 4;
    0x00002ab8 ldr r0, [sb, -0x4]                                |         r0 = *((sb - 0x4));
    0x00002abc str.w sb, [r3]                                    |         __asm ("str.w sb, [r3]");
    0x00002ac0 bl 0xba78                                         |         fcn_0000ba78 (r0, r1);
    0x00002ac4 ldr.w r1, [pc, 0x744]                             |         
    0x00002ac8 mov r2, r0                                        |         r2 = r0;
    0x00002aca movs r0, 1                                        |         r0 = 1;
    0x00002acc add r1, pc                                        |         r1 = 0x5cdc;
    0x00002ace blx 0x1a60                                        |         printf_chk ()
                                                                 |     }
                                                                 | label_6:
    0x00002ad2 adds r6, 1                                        |     r6++;
    0x00002ad4 b 0x292a                                          |     goto label_0;
                                                                 | label_21:
    0x00002ad6 movs r0, 0x2c                                     |     r0 = 0x2c;
    0x00002ad8 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x00002ada blx 0x1a78                                        |     putchar (r0);
    0x00002ade ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00002ae0 b 0x29b8                                          |     goto label_1;
                                                                 | label_18:
    0x00002ae2 movs r1, 0                                        |     r1 = 0;
    0x00002ae4 str r0, [sp, 0x20]                                |     var_20h = r0;
    0x00002ae6 movs r2, 0xa                                      |     r2 = 0xa;
    0x00002ae8 mov r0, r4                                        |     r0 = r4;
    0x00002aea blx 0x1be4                                        |     fcn_00001be4 ();
    0x00002aee ldr r3, [sp, 0x20]                                |     r3 = var_20h;
    0x00002af0 mov r5, r0                                        |     r5 = r0;
    0x00002af2 ldrb.w r8, [r4]                                   |     r8 = *(r4);
    0x00002af6 ldr r0, [r3]                                      |     r0 = *(r3);
    0x00002af8 ldrh.w r1, [r0, r8, lsl 1]                        |     offset_1 = r8 << 1;
                                                                 |     r1 = *((r0 + offset_1));
    0x00002afc lsls r1, r1, 0x14                                 |     r1 <<= 0x14;
                                                                 |     if (r1 >= r1) {
    0x00002afe bpl.w 0x299c                                      |         goto label_2;
                                                                 |     }
                                                                 |     do {
    0x00002b02 ldrb r8, [r4, 1]!                                 |         r8 = *((r4 += 1));
    0x00002b06 ldrh.w r2, [r0, r8, lsl 1]                        |         offset_2 = r8 << 1;
                                                                 |         r2 = *((r0 + offset_2));
    0x00002b0a lsls r2, r2, 0x14                                 |         r2 <<= 0x14;
    0x00002b0c bmi 0x2b02                                        |         
                                                                 |     } while (r2 < r2);
    0x00002b0e cmp.w r8, 0x2e                                    |     
    0x00002b12 it ne                                             |     
                                                                 |     if (r8 != 0x2e) {
    0x00002b14 movne r3, 5                                       |         r3 = 5;
                                                                 |         goto label_26;
                                                                 |     }
                                                                 |     if (r8 != 0x2e) {
                                                                 | label_26:
    0x00002b16 bne.w 0x29a8                                      |         goto label_3;
                                                                 |     }
                                                                 | label_19:
    0x00002b1a str r3, [sp, 0x24]                                |     var_24h = r3;
    0x00002b1c adds r3, r4, 1                                    |     r3 = r4 + 1;
    0x00002b1e movs r2, 0xa                                      |     r2 = 0xa;
    0x00002b20 movs r1, 0                                        |     r1 = 0;
    0x00002b22 mov r0, r3                                        |     r0 = r3;
    0x00002b24 str r3, [sp, 0x20]                                |     var_20h = r3;
    0x00002b26 blx 0x1be4                                        |     fcn_00001be4 ();
    0x00002b2a ldr r3, [sp, 0x24]                                |     r3 = var_24h;
    0x00002b2c ldrb.w r8, [r4, 1]                                |     r8 = *((r4 + 1));
    0x00002b30 ldr r4, [sp, 0x20]                                |     r4 = var_20h;
    0x00002b32 ldr r2, [r3]                                      |     r2 = *(r3);
    0x00002b34 mov r3, r0                                        |     r3 = r0;
    0x00002b36 ldrh.w r1, [r2, r8, lsl 1]                        |     offset_3 = r8 << 1;
                                                                 |     r1 = *((r2 + offset_3));
    0x00002b3a lsls r1, r1, 0x14                                 |     r1 <<= 0x14;
                                                                 |     if (r1 >= r1) {
    0x00002b3c bpl.w 0x29a8                                      |         goto label_3;
                                                                 |     }
                                                                 |     do {
    0x00002b40 ldrb r8, [r4, 1]!                                 |         r8 = *((r4 += 1));
    0x00002b44 ldrh.w r1, [r2, r8, lsl 1]                        |         offset_4 = r8 << 1;
                                                                 |         r1 = *((r2 + offset_4));
    0x00002b48 lsls r0, r1, 0x14                                 |         r0 = r1 << 0x14;
    0x00002b4a bmi 0x2b40                                        |         
                                                                 |     } while (r0 < r1);
    0x00002b4c b 0x29a8                                          |     goto label_3;
    0x00002b4e movs r3, 9                                        |     r3 = 9;
    0x00002b50 movs r5, 0                                        |     r5 = 0;
    0x00002b52 str r5, [sp, 0x14]                                |     var_14h = r5;
    0x00002b54 add.w r2, sb, 7                                   |     r2 = sb + 7;
    0x00002b58 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00002b5a bic r2, r2, 7                                     |     r2 = BIT_MASK (r2, 7);
    0x00002b5e add.w sb, r2, 8                                   |     sb = r2 + 8;
    0x00002b62 vldr d16, [r2]                                    |     __asm ("vldr d16, [r2]");
    0x00002b66 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00002b68 str.w sb, [r1]                                    |     __asm ("str.w sb, [r1]");
    0x00002b6c cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00002b6e beq.w 0x3442                                      |         goto label_27;
                                                                 |     }
    0x00002b72 ldr.w r1, [pc, 0x69c]                             |     
    0x00002b76 add r1, pc                                        |     r1 = 0x5d8c;
    0x00002b78 b 0x2f7c                                          |     goto label_15;
    0x00002b7a add.w sb, sb, 7                                   |     sb += 7;
    0x00002b7e ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00002b80 bic sb, sb, 7                                     |     sb = BIT_MASK (sb, 7);
    0x00002b84 cmp.w r8, 0x4f                                    |     
    0x00002b88 vldr d16, [sb]                                    |     __asm ("vldr d16, [sb]");
    0x00002b8c add.w sb, sb, 8                                   |     sb += 8;
    0x00002b90 str.w sb, [r2]                                    |     __asm ("str.w sb, [r2]");
    0x00002b94 vabs.f64 d17, d16                                 |     __asm ("vabs.f64 d17, d16");
                                                                 |     if (r8 == 0x4f) {
    0x00002b98 beq.w 0x305c                                      |         goto label_28;
                                                                 |     }
    0x00002b9c ldr.w r1, [pc, 0x674]                             |     
    0x00002ba0 add r1, pc                                        |     r1 = 0x5db8;
                                                                 | label_10:
    0x00002ba2 vcmpe.f64 d16, 0                                  |     __asm ("vcmpe.f64 d16, 0");
    0x00002ba6 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
    0x00002baa ite gt                                            |     
                                                                 |     if (r8 <= 0x4f) {
    0x00002bac movgt r0, 1                                       |         r0 = 1;
                                                                 |     }
                                                                 |     if (r8 > 0x4f) {
    0x00002bae movle r0, 0                                       |         r0 = 0;
                                                                 |     }
    0x00002bb0 subs.w r2, r8, 0x4f                               |     r2 = r8 - 0x4f;
    0x00002bb4 it ne                                             |     
                                                                 |     if (r2 == r8) {
    0x00002bb6 movne r2, 1                                       |         r2 = 1;
                                                                 |     }
    0x00002bb8 cmp r0, r2                                        |     
                                                                 |     if (r0 == r2) {
    0x00002bba beq.w 0x3086                                      |         goto label_29;
                                                                 |     }
    0x00002bbe ldr.w r2, [pc, 0x658]                             |     
    0x00002bc2 add r2, pc                                        |     r2 = 0x5de0;
                                                                 | label_13:
    0x00002bc4 strd r1, r2, [sp, 8]                              |     __asm ("strd r1, r2, [sp, 8]");
    0x00002bc8 movs r0, 1                                        |     r0 = 1;
    0x00002bca ldr.w r1, [pc, 0x650]                             |     
    0x00002bce mov r2, r5                                        |     r2 = r5;
    0x00002bd0 vstr d17, [sp]                                    |     __asm ("vstr d17, [sp]");
    0x00002bd4 adds r6, 1                                        |     r6++;
    0x00002bd6 add r1, pc                                        |     r1 = 0x5df8;
    0x00002bd8 blx 0x1a60                                        |     printf_chk ()
    0x00002bdc b 0x292a                                          |     goto label_0;
    0x00002bde ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x00002be2 add.w sb, sb, 4                                   |     sb += var_4h_2;
    0x00002be6 ldr r2, [sp, 0x18]                                |     r2 = var_18h;
    0x00002be8 str.w sb, [r2]                                    |     __asm ("str.w sb, [r2]");
    0x00002bec cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00002bee bne.w 0x3056                                      |         goto label_30;
                                                                 |     }
    0x00002bf2 ldr.w r2, [pc, 0x62c]                             |     
    0x00002bf6 add r2, pc                                        |     r2 = 0x5e1c;
                                                                 | label_9:
    0x00002bf8 ldr.w r1, [pc, 0x628]                             |     r1 = "reload";
    0x00002bfc movs r0, 1                                        |     r0 = 1;
    0x00002bfe adds r6, 1                                        |     r6++;
    0x00002c00 add r1, pc                                        |     r1 += pc;
    0x00002c02 blx 0x1a60                                        |     printf_chk ()
    0x00002c06 b 0x292a                                          |     goto label_0;
    0x00002c08 ldr.w r2, [sb]                                    |     r2 = *(sb);
    0x00002c0c add.w r5, sb, 4                                   |     r5 += var_4h_3;
    0x00002c10 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00002c12 cmp r2, 0x7e                                      |     
    0x00002c14 str r5, [r3]                                      |     *(r3) = r5;
                                                                 |     if (r2 <= 0x7e) {
    0x00002c16 ble.w 0x3048                                      |         goto label_31;
                                                                 |     }
    0x00002c1a ldr.w r1, [pc, 0x60c]                             |     
    0x00002c1e movs r0, 1                                        |     r0 = 1;
    0x00002c20 add r1, pc                                        |     r1 = 0x5e4e;
    0x00002c22 blx 0x1a60                                        |     printf_chk ()
                                                                 | label_4:
    0x00002c26 mov sb, r5                                        |     sb = r5;
                                                                 |     do {
                                                                 | label_5:
    0x00002c28 adds r6, 1                                        |         r6++;
    0x00002c2a b 0x292a                                          |         goto label_0;
    0x00002c2c ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x00002c30 add.w sb, sb, 4                                   |         sb += 4;
    0x00002c34 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00002c36 cmp r3, 0x48                                      |         
    0x00002c38 str.w sb, [r2]                                    |         __asm ("str.w sb, [r2]");
                                                                 |         if (r3 == 0x48) {
    0x00002c3c beq.w 0x307a                                      |             goto label_32;
                                                                 |         }
    0x00002c40 cmp r3, 0x4b                                      |         
                                                                 |         if (r3 == 0x4b) {
    0x00002c42 beq.w 0x3068                                      |             goto label_33;
                                                                 |         }
    0x00002c46 cmp r3, 0x44                                      |         
                                                                 |         if (r3 == 0x44) {
    0x00002c48 beq.w 0x3062                                      |             goto label_34;
                                                                 |         }
    0x00002c4c ldr.w r2, [pc, 0x5dc]                             |         
    0x00002c50 add r2, pc                                        |         r2 = 0x5e80;
                                                                 | label_11:
    0x00002c52 ldr.w r1, [pc, 0x5dc]                             |         
    0x00002c56 movs r0, 1                                        |         r0 = 1;
    0x00002c58 adds r6, 1                                        |         r6++;
    0x00002c5a add r1, pc                                        |         r1 = 0x5e90;
    0x00002c5c blx 0x1a60                                        |         printf_chk ()
    0x00002c60 b 0x292a                                          |         goto label_0;
    0x00002c62 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x00002c66 add.w sb, sb, 4                                   |         sb += 4;
    0x00002c6a ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00002c6c cmp r3, 2                                         |         
    0x00002c6e str.w sb, [r2]                                    |         __asm ("str.w sb, [r2]");
                                                                 |         if (r3 == 2) {
    0x00002c72 beq.w 0x3080                                      |             goto label_35;
                                                                 |         }
    0x00002c76 cmp r3, 4                                         |         
                                                                 |         if (r3 == 4) {
    0x00002c78 beq.w 0x306e                                      |             goto label_36;
                                                                 |         }
    0x00002c7c cmp r3, 1                                         |         
                                                                 |         if (r3 == 1) {
    0x00002c7e beq.w 0x3074                                      |             goto label_37;
                                                                 |         }
    0x00002c82 ldr.w r2, [pc, 0x5b0]                             |         
    0x00002c86 add r2, pc                                        |         r2 = 0x5ec0;
                                                                 | label_12:
    0x00002c88 ldr.w r1, [pc, 0x5ac]                             |         
    0x00002c8c movs r0, 1                                        |         r0 = 1;
    0x00002c8e adds r6, 1                                        |         r6++;
    0x00002c90 add r1, pc                                        |         r1 = 0x5ecc;
    0x00002c92 blx 0x1a60                                        |         printf_chk ()
    0x00002c96 b 0x292a                                          |         goto label_0;
    0x00002c98 ldr.w r3, [sb]                                    |         r3 = *(sb);
    0x00002c9c add.w sb, sb, 4                                   |         sb += 4;
    0x00002ca0 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00002ca2 str.w sb, [r2]                                    |         __asm ("str.w sb, [r2]");
    0x00002ca6 cmp r3, 3                                         |         
                                                                 |         if (r3 > 3) {
    0x00002ca8 bhi.w 0x3448                                      |             goto label_38;
                                                                 |         }
                                                                 |         /* switch table (5 cases) at 0x2cb0 */
    0x00002cac tbh [pc, r3, lsl 1]                               |         __asm ("tbh [pc, r3, lsl 1]");
    0x00002cb8 ldr.w r2, [sb]                                    |         r2 = *(sb);
    0x00002cbc add.w r5, sb, 4                                   |         r5 = sb + 4;
    0x00002cc0 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00002cc2 adds r1, r2, 1                                    |         r1 = r2 + 1;
    0x00002cc4 str r5, [r3]                                      |         *(r3) = r5;
                                                                 |         if (r1 == r2) {
    0x00002cc6 beq.w 0x30ee                                      |             goto label_39;
                                                                 |         }
    0x00002cca cmp.w r2, 0x4b0                                   |         
                                                                 |         if (r2 <= 0x4b0) {
    0x00002cce blo.w 0x308c                                      |             goto label_40;
                                                                 |         }
    0x00002cd2 movw r3, 0x8c9f                                   |         r3 = 0x8c9f;
    0x00002cd6 cmp r2, r3                                        |         
                                                                 |         if (r2 < r3) {
    0x00002cd8 bls.w 0x3148                                      |             goto label_41;
                                                                 |         }
    0x00002cdc movw r3, 0x45ff                                   |         
    0x00002ce0 movt r3, 5                                        |         r3 = 0x545ff;
    0x00002ce4 cmp r2, r3                                        |         
                                                                 |         if (r2 < r3) {
    0x00002ce6 bls.w 0x30fc                                      |             goto label_42;
                                                                 |         }
    0x00002cea movw r3, 0x5bff                                   |         
    0x00002cee movt r3, 0x526                                    |         r3 = 0x5265bff;
    0x00002cf2 cmp r2, r3                                        |         
                                                                 |         if (r2 < r3) {
    0x00002cf4 bls.w 0x32dc                                      |             goto label_43;
                                                                 |         }
    0x00002cf8 movw r3, 0xa47b                                   |         
    0x00002cfc ldr.w r1, [pc, 0x53c]                             |         
    0x00002d00 movt r3, 0x4418                                   |         r3 = 0xa47b;
    0x00002d04 movs r0, 1                                        |         r0 = 1;
    0x00002d06 umull r2, r3, r3, r2                              |         r2:r3 = r3 * r2;
    0x00002d0a mov sb, r5                                        |         sb = r5;
    0x00002d0c add r1, pc                                        |         r1 = 0x5f4c;
    0x00002d0e lsrs r2, r3, 0x17                                 |         r2 = r3 >> 0x17;
    0x00002d10 blx 0x1a60                                        |         printf_chk ()
    0x00002d14 b 0x2c28                                          |         
                                                                 |     } while (1);
    0x00002d16 ldr r0, [sp, 0x18]                                |     r0 = var_18h;
    0x00002d18 add.w r1, sb, 4                                   |     r1 = sb + 4;
    0x00002d1c ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x00002d20 mov sb, r1                                        |     sb = r1;
    0x00002d22 mov r2, r5                                        |     r2 = r5;
    0x00002d24 adds r6, 1                                        |     r6++;
    0x00002d26 str r1, [r0]                                      |     *(r0) = r1;
    0x00002d28 movs r0, 1                                        |     r0 = 1;
    0x00002d2a ldr.w r1, [pc, 0x514]                             |     
    0x00002d2c asrs r4, r2, 0x14                                 |     r4 = r2 >> 0x14;
    0x00002d2e add r1, pc                                        |     r1 = 0x5f74;
    0x00002d30 blx 0x1a60                                        |     printf_chk ()
    0x00002d34 b 0x292a                                          |     goto label_0;
    0x00002d36 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00002d38 add.w sb, sb, 4                                   |     sb += 4;
    0x00002d3c ldr r3, [sb, -0x4]                                |     r3 = *((sb - 0x4));
    0x00002d40 mov r2, r5                                        |     r2 = r5;
    0x00002d42 movs r0, 1                                        |     r0 = 1;
    0x00002d44 adds r6, 1                                        |     r6++;
    0x00002d46 str.w sb, [r1]                                    |     __asm ("str.w sb, [r1]");
    0x00002d4a ldr.w r1, [pc, 0x4f8]                             |     
    0x00002d4e add r1, pc                                        |     r1 = 0x5f98;
    0x00002d50 blx 0x1a60                                        |     printf_chk ()
    0x00002d54 b 0x292a                                          |     goto label_0;
    0x00002d56 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00002d58 add.w r2, sb, 4                                   |     r2 = sb + 4;
    0x00002d5c mov r8, r2                                        |     r8 = r2;
    0x00002d5e ldr.w r3, [sb]                                    |     r3 = *(sb);
    0x00002d62 str r2, [r1]                                      |     *(r1) = r2;
    0x00002d64 ldr r2, [sp, 0x14]                                |     r2 = var_14h;
    0x00002d66 cmp r2, 0                                         |     
                                                                 |     if (r2 == 0) {
    0x00002d68 beq.w 0x2f8c                                      |         goto label_44;
                                                                 |     }
    0x00002d6c ldr.w r1, [pc, 0x4d8]                             |     
    0x00002d70 mov sb, r8                                        |     sb = r8;
    0x00002d72 mov r2, r5                                        |     r2 = r5;
    0x00002d74 movs r0, 1                                        |     r0 = 1;
    0x00002d76 add r1, pc                                        |     r1 = 0x5fc2;
    0x00002d78 blx 0x1a60                                        |     printf_chk ()
                                                                 | label_8:
    0x00002d7c adds r6, 1                                        |     r6++;
    0x00002d7e b 0x292a                                          |     goto label_0;
    0x00002d80 movs r5, 0                                        |     r5 = 0;
    0x00002d82 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00002d84 add.w sb, sb, 4                                   |     sb += var_4h_2;
    0x00002d88 ldr r3, [sb, -0x4]                                |     r3 = *((sb - 0x4));
    0x00002d8c mov r2, r5                                        |     r2 = r5;
    0x00002d8e movs r0, 1                                        |     r0 = 1;
    0x00002d90 adds r6, 1                                        |     r6++;
    0x00002d92 str.w sb, [r1]                                    |     __asm ("str.w sb, [r1]");
    0x00002d96 ldr.w r1, [pc, 0x4b4]                             |     
    0x00002d9a add r1, pc                                        |     r1 = 0x5fec;
    0x00002d9c blx 0x1a60                                        |     printf_chk ()
    0x00002da0 b 0x292a                                          |     goto label_0;
    0x00002da2 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00002da4 add.w sb, sb, 4                                   |     sb += 4;
    0x00002da8 ldr r0, [sb, -0x4]                                |     r0 = *((sb - 0x4));
    0x00002dac adds r6, 1                                        |     r6++;
    0x00002dae str.w sb, [r3]                                    |     __asm ("str.w sb, [r3]");
    0x00002db2 blx 0x1a78                                        |     putchar (r0);
    0x00002db6 b 0x292a                                          |     goto label_0;
    0x00002db8 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00002dba subs r5, r3, 1                                    |     r5 = r3 - 1;
    0x00002dbc add.w r2, sb, 4                                   |     r2 = sb + 4;
    0x00002dc0 ldr.w r8, [sb]                                    |     r8 = *(sb);
    0x00002dc4 str r2, [r1]                                      |     *(r1) = r2;
                                                                 |     if (r5 < r3) {
    0x00002dc6 bmi 0x2de0                                        |         goto label_45;
                                                                 |     }
    0x00002dc8 mov sb, r2                                        |     sb = r2;
                                                                 |     do {
    0x00002dca lsr.w r0, r8, r5                                  |         r0 = r8 >> r5;
    0x00002dce subs r5, 1                                        |         r5--;
    0x00002dd0 and r0, r0, 1                                     |         r0 &= 1;
    0x00002dd4 adds r0, 0x30                                     |         r0 += 0x30;
    0x00002dd6 blx 0x1a78                                        |         putchar (r0);
    0x00002dda adds r3, r5, 1                                    |         r3 = r5 + 1;
    0x00002ddc bne 0x2dca                                        |         
                                                                 |     } while (r3 != r5);
    0x00002dde mov r2, sb                                        |     r2 = sb;
                                                                 | label_45:
    0x00002de0 mov sb, r2                                        |     sb = r2;
    0x00002de2 adds r6, 1                                        |     r6++;
    0x00002de4 b 0x292a                                          |     goto label_0;
    0x00002de6 movs r5, 0                                        |     r5 = 0;
    0x00002de8 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00002dea add.w sb, sb, 4                                   |     sb += 4;
    0x00002dee ldr r3, [sb, -0x4]                                |     r3 = *((sb - 0x4));
    0x00002df2 mov r2, r5                                        |     r2 = r5;
    0x00002df4 movs r0, 1                                        |     r0 = 1;
    0x00002df6 adds r6, 1                                        |     r6++;
    0x00002df8 str.w sb, [r1]                                    |     __asm ("str.w sb, [r1]");
    0x00002dfc ldr.w r1, [pc, 0x450]                             |     
    0x00002e00 add r1, pc                                        |     r1 = 0x6054;
    0x00002e02 blx 0x1a60                                        |     printf_chk ()
    0x00002e06 b 0x292a                                          |     goto label_0;
    0x00002e08 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00002e0a add.w r5, sb, 4                                   |     r5 = sb + 4;
    0x00002e0e ldr.w r0, [sb]                                    |     r0 = *(sb);
    0x00002e12 str r5, [r3]                                      |     *(r3) = r5;
    0x00002e14 blx 0x1d2c                                        |     fcn_00001d2c ();
    0x00002e16 vmlal.s8 q1, d10, d0                              |     __asm ("vmlal.s8 q1, d10, d0");
                                                                 |     if (r6 == 1) {
    0x00002e1a beq.w 0x2c26                                      |         goto label_4;
                                                                 |     }
    0x00002e1e ldr.w r2, [pc, 0x434]                             |     
    0x00002e22 mov r3, r0                                        |     r3 = r0;
    0x00002e24 mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00002e28 mov r0, r7                                        |     r0 = r7;
    0x00002e2a mov sb, r5                                        |     sb = r5;
    0x00002e2c add r2, pc                                        |     r2 = 0x6086;
    0x00002e2e blx 0x1cd4                                        |     fcn_00001cd4 ();
    0x00002e32 ldr.w r1, [pc, 0x424]                             |     
    0x00002e36 mov r2, r7                                        |     r2 = r7;
    0x00002e38 movs r0, 1                                        |     r0 = 1;
    0x00002e3a add r1, pc                                        |     r1 = 0x6098;
    0x00002e3c blx 0x1a60                                        |     printf_chk ()
    0x00002e40 b 0x2c28                                          |     goto label_5;
    0x00002e42 ldr r3, [sp, 0x18]                                |     r3 = var_18h;
    0x00002e44 add.w sb, sb, 7                                   |     sb += 7;
    0x00002e48 bic sb, sb, 7                                     |     sb = BIT_MASK (sb, 7);
    0x00002e4c vldr d17, [sb]                                    |     __asm ("vldr d17, [sb]");
    0x00002e50 add.w sb, sb, 8                                   |     sb += 8;
    0x00002e54 str.w sb, [r3]                                    |     __asm ("str.w sb, [r3]");
    0x00002e58 ldr r3, [sp, 0x14]                                |     r3 = var_14h;
    0x00002e5a vabs.f64 d16, d17                                 |     __asm ("vabs.f64 d16, d17");
    0x00002e5e cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x00002e60 beq.w 0x2fb0                                      |         
    0x00002e64 vldr d18, [pc, 0x330]                             |         __asm ("vldr d18, [0x0000319c]");
    0x00002e68 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002e6c vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
    0x00002e6e lsls.w r1, r0, r0                                 |         r1 = r0 << r0;
    0x00002e72 strh r4, [r0, 0xc]                                |         *((r0 + 0xc)) = r4;
    0x00002e74 vldr d18, [pc, 0x328]                             |         __asm ("vldr d18, [0x000031a4]");
    0x00002e78 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002e7c vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r1 < r0) {
    0x00002e80 bmi.w 0x3118                                      |             goto label_46;
                                                                 |         }
    0x00002e84 vldr d18, [pc, 0x320]                             |         __asm ("vldr d18, [0x000031ac]");
    0x00002e88 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002e8c vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r1 < r0) {
    0x00002e90 bmi.w 0x3316                                      |             goto label_47;
                                                                 |         }
    0x00002e94 vldr d18, [pc, 0x318]                             |         __asm ("vldr d18, [0x000031b4]");
    0x00002e98 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002e9c vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r1 < r0) {
    0x00002ea0 bmi.w 0x3304                                      |             goto label_48;
                                                                 |         }
    0x00002ea4 vldr d18, [pc, 0x310]                             |         __asm ("vldr d18, [0x000031bc]");
    0x00002ea8 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002eac vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r1 < r0) {
    0x00002eb0 bmi.w 0x33ae                                      |             goto label_49;
                                                                 |         }
    0x00002eb4 vldr d18, [pc, 0x308]                             |         __asm ("vldr d18, [0x000031c4]");
    0x00002eb8 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002ebc vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r1 < r0) {
    0x00002ec0 bmi.w 0x3394                                      |             goto label_50;
                                                                 |         }
    0x00002ec4 vldr d18, [pc, 0x300]                             |         __asm ("vldr d18, [0x000031cc]");
    0x00002ec8 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002ecc vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r1 < r0) {
    0x00002ed0 bmi.w 0x340e                                      |             goto label_51;
                                                                 |         }
    0x00002ed4 vldr d18, [pc, 0x2f8]                             |         __asm ("vldr d18, [0x000031d4]");
    0x00002ed8 vcmpe.f64 d16, d18                                |         __asm ("vcmpe.f64 d16, d18");
    0x00002edc vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r1 >= r0) {
    0x00002ee0 bpl.w 0x33f4                                      |             goto label_52;
                                                                 |         }
    0x00002ee4 vldr d16, [pc, 0x2f0]                             |         __asm ("vldr d16, [0x000031dc]");
    0x00002ee8 movs r0, 1                                        |         r0 = 1;
    0x00002eea ldr r1, [pc, 0x370]                               |         
    0x00002eec vdiv.f64 d16, d17, d16                            |         __asm ("vdiv.f64 d16, d17, d16");
    0x00002ef0 add r1, pc                                        |         r1 = 0x6152;
    0x00002ef2 vmov r2, r3, d16                                  |         __asm ("vmov r2, r3, d16");
    0x00002ef6 blx 0x1a60                                        |         printf_chk ()
    0x00002efa b 0x2ad2                                          |         goto label_6;
    0x00002efc ldr r1, [pc, 0x360]                               |         
    0x00002efe add.w sb, sb, 4                                   |         sb += 4;
    0x00002f02 ldr r3, [sp, 0x18]                                |         r3 = var_18h;
    0x00002f04 movs r0, 1                                        |         r0 = 1;
    0x00002f06 ldr r2, [sb, -0x4]                                |         r2 = *((sb - 0x4));
    0x00002f0a adds r6, 1                                        |         r6++;
    0x00002f0c add r1, pc                                        |         r1 = 0x6170;
    0x00002f0e str.w sb, [r3]                                    |         __asm ("str.w sb, [r3]");
    0x00002f12 blx 0x1a60                                        |         printf_chk ()
    0x00002f16 b 0x292a                                          |         goto label_0;
    0x00002f18 ldr r2, [sp, 0x18]                                |         r2 = var_18h;
    0x00002f1a add.w r3, sb, 7                                   |         r3 = sb + 7;
    0x00002f1e bic r3, r3, 7                                     |         r3 = BIT_MASK (r3, 7);
    0x00002f22 vldr d17, [pc, 0x294]                             |         __asm ("vldr d17, [0x000031bc]");
    0x00002f26 add.w sb, r3, 8                                   |         sb = r3 + 8;
    0x00002f2a ldr r1, [sp, 0x14]                                |         r1 = var_14h;
    0x00002f2c str.w sb, [r2]                                    |         __asm ("str.w sb, [r2]");
    0x00002f30 ldrd r2, r3, [r3]                                 |         __asm ("ldrd r2, r3, [r3]");
    0x00002f34 vmov d16, r2, r3                                  |         __asm ("vmov d16, r2, r3");
    0x00002f38 vabs.f64 d16, d16                                 |         __asm ("vabs.f64 d16, d16");
    0x00002f3c vcmpe.f64 d16, d17                                |         __asm ("vcmpe.f64 d16, d17");
                                                                 |         if (r1 != 0) {
    0x00002f40 cbz r1, 0x2f9c                                    |             
    0x00002f42 vmrs apsr_nzcv, fpscr                             |             __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |             if (r1 >= 0) {
    0x00002f46 bpl.w 0x309a                                      |                 goto label_53;
                                                                 |             }
    0x00002f4a ldr r1, [pc, 0x318]                               |             
    0x00002f4c movs r0, 1                                        |             r0 = 1;
    0x00002f4e add r1, pc                                        |             r1 = 0x61b8;
    0x00002f50 blx 0x1a60                                        |             printf_chk ()
    0x00002f54 b 0x2ad2                                          |             goto label_6;
                                                                 | label_24:
    0x00002f56 movs r0, 0xa                                      |             r0 = 0xa;
    0x00002f58 blx 0x1a78                                        |             putchar (r0);
    0x00002f5c b 0x2a16                                          |             goto label_7;
    0x00002f5e ldr r1, [pc, 0x308]                               |             
    0x00002f60 add.w r3, sb, 7                                   |             r3 = sb + 7;
    0x00002f64 bic r3, r3, 7                                     |             r3 = BIT_MASK (r3, 7);
    0x00002f68 ldr r2, [sp, 0x18]                                |             r2 = var_18h;
    0x00002f6a add.w sb, r3, 8                                   |             sb = r3 + 8;
    0x00002f6e vldr d16, [r3]                                    |             __asm ("vldr d16, [r3]");
    0x00002f72 add r1, pc                                        |             r1 = 0x61e0;
    0x00002f74 movs r3, 3                                        |             r3 = 3;
    0x00002f76 movs r5, 0                                        |             r5 = 0;
    0x00002f78 str.w sb, [r2]                                    |             __asm ("str.w sb, [r2]");
                                                                 | label_15:
    0x00002f7c mov r2, r5                                        |             r2 = r5;
    0x00002f7e movs r0, 1                                        |             r0 = 1;
    0x00002f80 vstr d16, [sp]                                    |             __asm ("vstr d16, [sp]");
    0x00002f84 adds r6, 1                                        |             r6++;
    0x00002f86 blx 0x1a60                                        |             printf_chk ()
    0x00002f8a b 0x292a                                          |             goto label_0;
                                                                 | label_44:
    0x00002f8c ldr r1, [pc, 0x2dc]                               |             
    0x00002f8e mov r2, r5                                        |             r2 = r5;
    0x00002f90 movs r0, 1                                        |             r0 = 1;
    0x00002f92 mov sb, r8                                        |             sb = r8;
    0x00002f94 add r1, pc                                        |             r1 = 0x6204;
    0x00002f96 blx 0x1a60                                        |             printf_chk ()
    0x00002f9a b 0x2d7c                                          |             goto label_8;
                                                                 |         }
    0x00002f9c vmrs apsr_nzcv, fpscr                             |         __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |         if (r0 >= 1) {
    0x00002fa0 bpl.w 0x30a6                                      |             goto label_54;
                                                                 |         }
    0x00002fa4 ldr r1, [pc, 0x2c8]                               |         
    0x00002fa6 movs r0, 1                                        |         r0 = 1;
    0x00002fa8 add r1, pc                                        |         r1 = 0x621c;
    0x00002faa blx 0x1a60                                        |         printf_chk ()
    0x00002fae b 0x2ad2                                          |         goto label_6;
                                                                 |     }
    0x00002fb0 vldr d17, [pc, 0x1e4]                             |     __asm ("vldr d17, [0x0000319c]");
    0x00002fb4 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00002fb8 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 1) {
    0x00002fbc bmi.w 0x3164                                      |         goto label_55;
                                                                 |     }
    0x00002fc0 vldr d17, [pc, 0x1dc]                             |     __asm ("vldr d17, [0x000031a4]");
    0x00002fc4 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00002fc8 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 1) {
    0x00002fcc bmi.w 0x3130                                      |         goto label_56;
                                                                 |     }
    0x00002fd0 vldr d17, [pc, 0x1d4]                             |     __asm ("vldr d17, [0x000031ac]");
    0x00002fd4 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00002fd8 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 1) {
    0x00002fdc bmi.w 0x334e                                      |         goto label_57;
                                                                 |     }
    0x00002fe0 vldr d17, [pc, 0x1cc]                             |     __asm ("vldr d17, [0x000031b4]");
    0x00002fe4 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00002fe8 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 1) {
    0x00002fec bmi.w 0x333c                                      |         goto label_58;
                                                                 |     }
    0x00002ff0 vldr d17, [pc, 0x1c4]                             |     __asm ("vldr d17, [0x000031bc]");
    0x00002ff4 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00002ff8 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 1) {
    0x00002ffc bmi.w 0x3382                                      |         goto label_59;
                                                                 |     }
    0x00003000 vldr d17, [pc, 0x1bc]                             |     __asm ("vldr d17, [0x000031c4]");
    0x00003004 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00003008 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r0 < 1) {
    0x0000300c bmi.w 0x3368                                      |         goto label_60;
                                                                 |     }
    0x00003010 vldr d17, [pc, 0x1b4]                             |     __asm ("vldr d17, [0x000031cc]");
    0x00003014 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00003016 lsrs r1, r4, 0xf                                  |     r1 = r4 >> 0xf;
    0x00003018 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r1 < r4) {
    0x0000301c bmi.w 0x33da                                      |         goto label_61;
                                                                 |     }
    0x00003020 vldr d17, [pc, 0x1ac]                             |     __asm ("vldr d17, [0x000031d4]");
    0x00003024 vcmpe.f64 d16, d17                                |     __asm ("vcmpe.f64 d16, d17");
    0x00003028 vmrs apsr_nzcv, fpscr                             |     __asm ("vmrs apsr_nzcv, fpscr");
                                                                 |     if (r1 >= r4) {
    0x0000302c bpl.w 0x33c0                                      |         goto label_62;
                                                                 |     }
    0x00003030 vldr d17, [pc, 0x1a4]                             |     __asm ("vldr d17, [0x000031dc]");
    0x00003034 movs r0, 1                                        |     r0 = 1;
    0x00003036 ldr r1, [pc, 0x23c]                               |     
    0x00003038 vdiv.f64 d16, d16, d17                            |     __asm ("vdiv.f64 d16, d16, d17");
    0x0000303c add r1, pc                                        |     r1 = 0x62b6;
    0x0000303e vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x00003042 blx 0x1a60                                        |     printf_chk ()
    0x00003046 b 0x2ad2                                          |     goto label_6;
                                                                 | label_31:
    0x00003048 ldr r1, [pc, 0x22c]                               |     
    0x0000304a movs r0, 1                                        |     r0 = 1;
    0x0000304c mov sb, r5                                        |     sb = r5;
    0x0000304e add r1, pc                                        |     r1 = 0x62ca;
    0x00003050 blx 0x1a60                                        |     printf_chk ()
    0x00003054 b 0x2c28                                          |     goto label_5;
                                                                 | label_30:
    0x00003056 ldr r2, [pc, 0x224]                               |     
    0x00003058 add r2, pc                                        |     r2 = 0x62da;
    0x0000305a b 0x2bf8                                          |     goto label_9;
                                                                 | label_28:
    0x0000305c ldr r1, [pc, 0x220]                               |     
    0x0000305e add r1, pc                                        |     r1 = 0x62e2;
    0x00003060 b 0x2ba2                                          |     goto label_10;
                                                                 | label_34:
    0x00003062 ldr r2, [pc, 0x220]                               |     
    0x00003064 add r2, pc                                        |     r2 = 0x62ee;
    0x00003066 b 0x2c52                                          |     goto label_11;
                                                                 | label_33:
    0x00003068 ldr r2, [pc, 0x21c]                               |     
    0x0000306a add r2, pc                                        |     r2 = 0x62f6;
    0x0000306c b 0x2c52                                          |     goto label_11;
                                                                 | label_36:
    0x0000306e ldr r2, [pc, 0x21c]                               |     
    0x00003070 add r2, pc                                        |     r2 = 0x6302;
    0x00003072 b 0x2c88                                          |     goto label_12;
                                                                 | label_37:
    0x00003074 ldr r2, [pc, 0x218]                               |     
    0x00003076 add r2, pc                                        |     r2 = 0x630a;
    0x00003078 b 0x2c88                                          |     goto label_12;
                                                                 | label_32:
    0x0000307a ldr r2, [pc, 0x218]                               |     
    0x0000307c add r2, pc                                        |     r2 = 0x6316;
    0x0000307e b 0x2c52                                          |     goto label_11;
                                                                 | label_35:
    0x00003080 ldr r2, [pc, 0x214]                               |     
    0x00003082 add r2, pc                                        |     r2 = 0x631e;
    0x00003084 b 0x2c88                                          |     goto label_12;
                                                                 | label_29:
    0x00003086 ldr r2, [pc, 0x214]                               |     
    0x00003088 add r2, pc                                        |     r2 = 0x632a;
    0x0000308a b 0x2bc4                                          |     goto label_13;
                                                                 | label_40:
    0x0000308c ldr r1, [pc, 0x210]                               |     
    0x0000308e movs r0, 1                                        |     r0 = 1;
    0x00003090 mov sb, r5                                        |     sb = r5;
    0x00003092 add r1, pc                                        |     r1 = 0x6336;
    0x00003094 blx 0x1a60                                        |     printf_chk ()
    0x00003098 b 0x2c28                                          |     goto label_5;
                                                                 | label_53:
    0x0000309a ldr r1, [pc, 0x208]                               |     
    0x0000309c movs r0, 1                                        |     r0 = 1;
    0x0000309e add r1, pc                                        |     r1 = 0x6348;
    0x000030a0 blx 0x1a60                                        |     printf_chk ()
    0x000030a4 b 0x2ad2                                          |     goto label_6;
                                                                 | label_54:
    0x000030a6 ldr r1, [pc, 0x200]                               |     
    0x000030a8 movs r0, 1                                        |     r0 = 1;
    0x000030aa add r1, pc                                        |     r1 = 0x6358;
    0x000030ac blx 0x1a60                                        |     printf_chk ()
    0x000030b0 b 0x2ad2                                          |     goto label_6;
    0x000030b2 cmp r5, 1                                         |     
                                                                 |     if (r5 == 1) {
    0x000030b4 beq.w 0x3330                                      |         goto label_63;
                                                                 |     }
    0x000030b8 ldr r2, [pc, 0x1f0]                               |     
    0x000030ba add r2, pc                                        |     r2 = 0x636a;
                                                                 |     do {
                                                                 | label_14:
    0x000030bc ldr r1, [pc, 0x1f0]                               |         
    0x000030be movs r0, 1                                        |         r0 = 1;
    0x000030c0 adds r6, 1                                        |         r6++;
    0x000030c2 add r1, pc                                        |         r1 = 0x6376;
    0x000030c4 blx 0x1a60                                        |         printf_chk ()
    0x000030c8 b 0x292a                                          |         goto label_0;
    0x000030ca cmp r5, 1                                         |         
                                                                 |         if (r5 == 1) {
    0x000030cc beq.w 0x32fe                                      |             goto label_64;
                                                                 |         }
    0x000030d0 ldr r2, [pc, 0x1e0]                               |         
    0x000030d2 add r2, pc                                        |         r2 = 0x638a;
    0x000030d4 b 0x30bc                                          |         
                                                                 |     } while (1);
    0x000030d6 cmp r5, 1                                         |     
                                                                 |     if (r5 != 1) {
    0x000030d8 beq.w 0x3336                                      |         
    0x000030dc ldr r2, [pc, 0x1d8]                               |         
    0x000030de add r2, pc                                        |         r2 = 0x639a;
    0x000030e0 b 0x30bc                                          |         goto label_14;
    0x000030e2 cmp r5, 1                                         |         
                                                                 |         if (r5 != 1) {
    0x000030e4 beq.w 0x32f8                                      |             
    0x000030e8 ldr r2, [pc, 0x1d0]                               |             
    0x000030ea add r2, pc                                        |             r2 = 0x63aa;
    0x000030ec b 0x30bc                                          |             goto label_14;
                                                                 | label_39:
    0x000030ee ldr r1, [pc, 0x1d0]                               |             
    0x000030f0 movs r0, 1                                        |             r0 = 1;
    0x000030f2 mov sb, r5                                        |             sb = r5;
    0x000030f4 add r1, pc                                        |             r1 = 0x63ba;
    0x000030f6 blx 0x1a60                                        |             printf_chk ()
    0x000030fa b 0x2c28                                          |             goto label_5;
                                                                 | label_42:
    0x000030fc movw r3, 0xb3c5                                   |             
    0x00003100 ldr r1, [pc, 0x1c0]                               |             
    0x00003102 movt r3, 0x91a2                                   |             r3 = 0x91a2b3c5;
    0x00003106 movs r0, 1                                        |             r0 = 1;
    0x00003108 umull r2, r3, r3, r2                              |             r2:r3 = r3 * r2;
    0x0000310c mov sb, r5                                        |             sb = r5;
    0x0000310e add r1, pc                                        |             r1 = 0x63d6;
    0x00003110 lsrs r2, r3, 0xb                                  |             r2 = r3 >> 0xb;
    0x00003112 blx 0x1a60                                        |             printf_chk ()
    0x00003116 b 0x2c28                                          |             goto label_5;
                                                                 | label_46:
    0x00003118 vldr d16, [pc, 0xc4]                              |             __asm ("vldr d16, [0x000031e4]");
    0x0000311c movs r0, 1                                        |             r0 = 1;
    0x0000311e ldr r1, [pc, 0x1a8]                               |             
    0x00003120 vmul.f64 d16, d17, d16                            |             __asm ("vmul.f64 d16, d17, d16");
    0x00003124 add r1, pc                                        |             r1 = 0x63f2;
    0x00003126 vmov r2, r3, d16                                  |             __asm ("vmov r2, r3, d16");
    0x0000312a blx 0x1a60                                        |             printf_chk ()
    0x0000312e b 0x2ad2                                          |             goto label_6;
                                                                 | label_56:
    0x00003130 vldr d17, [pc, 0xac]                              |             __asm ("vldr d17, [0x000031e4]");
    0x00003134 movs r0, 1                                        |             r0 = 1;
    0x00003136 ldr r1, [pc, 0x194]                               |             
    0x00003138 vmul.f64 d16, d16, d17                            |             __asm ("vmul.f64 d16, d16, d17");
    0x0000313a lsrs r1, r4, 0xe                                  |             r1 = r4 >> 0xe;
    0x0000313c add r1, pc                                        |             r1 = 0x640e;
    0x0000313e vmov r2, r3, d16                                  |             __asm ("vmov r2, r3, d16");
    0x00003142 blx 0x1a60                                        |             printf_chk ()
    0x00003146 b 0x2ad2                                          |             goto label_6;
                                                                 | label_41:
    0x00003148 movw r3, 0x8889                                   |             
    0x0000314c ldr r1, [pc, 0x180]                               |             
                                                                 |             /* if there is a right shift of 8, then it's a division by 1/480 */
    0x0000314e movt r3, 0x8888                                   |             r3 = 0x88888889;
    0x00003152 movs r0, 1                                        |             r0 = 1;
    0x00003154 umull r2, r3, r3, r2                              |             r2:r3 = r3 * r2;
    0x00003158 mov sb, r5                                        |             sb = r5;
    0x0000315a add r1, pc                                        |             r1 = 0x642e;
    0x0000315c lsrs r2, r3, 5                                    |             r2 = r3 >> 5;
    0x0000315e blx 0x1a60                                        |             printf_chk ()
    0x00003162 b 0x2c28                                          |             goto label_5;
                                                                 | label_55:
    0x00003164 vldr d17, [pc, 0x80]                              |             __asm ("vldr d17, [0x000031ec]");
    0x00003168 movs r0, 1                                        |             r0 = 1;
    0x0000316a ldr r1, [pc, 0x168]                               |             
    0x0000316c vmul.f64 d16, d16, d17                            |             __asm ("vmul.f64 d16, d16, d17");
    0x00003170 add r1, pc                                        |             r1 = 0x644a;
    0x00003172 vmov r2, r3, d16                                  |             __asm ("vmov r2, r3, d16");
    0x00003176 blx 0x1a60                                        |             printf_chk ()
    0x0000317a b 0x2ad2                                          |             goto label_6;
    0x0000317c vldr d16, [pc, 0x68]                              |             __asm ("vldr d16, [0x000031ec]");
    0x00003180 movs r0, 1                                        |             r0 = 1;
    0x00003182 ldr r1, [pc, 0x154]                               |             
    0x00003184 vmul.f64 d16, d17, d16                            |             __asm ("vmul.f64 d16, d17, d16");
    0x00003188 add r1, pc                                        |             r1 = 0x6466;
    0x0000318a vmov r2, r3, d16                                  |             __asm ("vmov r2, r3, d16");
    0x0000318e blx 0x1a60                                        |             printf_chk ()
    0x00003192 b 0x2ad2                                          |             goto label_6;
                                                                 | label_43:
    0x000032dc movw r3, 0x4507                                   |             
    0x000032e0 ldr r1, [pc, 0x194]                               |             
    0x000032e2 movt r3, 0xc22e                                   |             r3 = 0xc22e4507;
    0x000032e6 movs r0, 1                                        |             r0 = 1;
    0x000032e8 umull r3, r2, r3, r2                              |             r3:r2 = r3 * r2;
    0x000032ec mov sb, r5                                        |             sb = r5;
    0x000032ee add r1, pc                                        |             r1 = 0x676a;
    0x000032f0 lsrs r2, r2, 0x10                                 |             r2 >>= 0x10;
    0x000032f2 blx 0x1a60                                        |             printf_chk ()
    0x000032f6 b 0x2c28                                          |             goto label_5;
                                                                 |         }
    0x000032f8 ldr r2, [pc, 0x180]                               |         
    0x000032fa add r2, pc                                        |         r2 = 0x677a;
    0x000032fc b 0x30bc                                          |         goto label_14;
                                                                 | label_64:
    0x000032fe ldr r2, [pc, 0x180]                               |         
    0x00003300 add r2, pc                                        |         r2 = 0x6786;
    0x00003302 b 0x30bc                                          |         goto label_14;
                                                                 | label_48:
    0x00003304 ldr r1, [pc, 0x17c]                               |         
    0x00003306 movs r0, 1                                        |         r0 = 1;
    0x00003308 vmov r2, r3, d17                                  |         __asm ("vmov r2, r3, d17");
    0x0000330c add r1, pc                                        |         r1 = 0x6794;
    0x0000330e blx 0x1a60                                        |         printf_chk ()
    0x00003312 b.w 0x2ad2                                        |         goto label_6;
                                                                 | label_47:
    0x00003316 vldr d16, [pc, 0x140]                             |         __asm ("vldr d16, [0x0000345c]");
    0x0000331a movs r0, 1                                        |         r0 = 1;
    0x0000331c ldr r1, [pc, 0x168]                               |         
    0x0000331e vmul.f64 d16, d17, d16                            |         __asm ("vmul.f64 d16, d17, d16");
    0x00003322 add r1, pc                                        |         r1 = 0x67ae;
    0x00003324 vmov r2, r3, d16                                  |         __asm ("vmov r2, r3, d16");
    0x00003328 blx 0x1a60                                        |         printf_chk ()
    0x0000332c b.w 0x2ad2                                        |         goto label_6;
                                                                 |         if (r1 != 0) {
    0x0000332e cbnz r1, 0x33a6                                   |             goto label_65;
                                                                 |         }
                                                                 | label_63:
    0x00003330 ldr r2, [pc, 0x158]                               |         
    0x00003332 add r2, pc                                        |         r2 = 0x67c2;
    0x00003334 b 0x30bc                                          |         goto label_14;
                                                                 |     }
    0x00003336 ldr r2, [pc, 0x158]                               |     
    0x00003338 add r2, pc                                        |     r2 = 0x67ce;
    0x0000333a b 0x30bc                                          |     goto label_14;
                                                                 | label_58:
    0x0000333c ldr r1, [pc, 0x154]                               |     
    0x0000333e movs r0, 1                                        |     r0 = 1;
    0x00003340 vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x00003344 add r1, pc                                        |     r1 = 0x67dc;
    0x00003346 blx 0x1a60                                        |     printf_chk ()
    0x0000334a b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_57:
    0x0000334e vldr d17, [pc, 0x108]                             |     __asm ("vldr d17, [0x0000345c]");
    0x00003352 movs r0, 1                                        |     r0 = 1;
    0x00003354 ldr r1, [pc, 0x140]                               |     
    0x00003356 vmul.f64 d16, d16, d17                            |     __asm ("vmul.f64 d16, d16, d17");
    0x0000335a add r1, pc                                        |     r1 = 0x67f6;
    0x0000335c vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x00003360 blx 0x1a60                                        |     printf_chk ()
    0x00003364 b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_60:
    0x00003368 vldr d17, [pc, 0xf4]                              |     __asm ("vldr d17, [0x00003464]");
    0x0000336c movs r0, 1                                        |     r0 = 1;
    0x0000336e ldr r1, [pc, 0x12c]                               |     
    0x00003370 vdiv.f64 d16, d16, d17                            |     __asm ("vdiv.f64 d16, d16, d17");
    0x00003374 add r1, pc                                        |     r1 = 0x6816;
    0x00003376 vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x0000337a blx 0x1a60                                        |     printf_chk ()
    0x0000337e b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_59:
    0x00003382 ldr r1, [pc, 0x11c]                               |     
    0x00003384 movs r0, 1                                        |     r0 = 1;
    0x00003386 vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x0000338a add r1, pc                                        |     r1 = 0x6830;
    0x0000338c blx 0x1a60                                        |     printf_chk ()
    0x00003390 b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_50:
    0x00003394 vldr d16, [pc, 0xc8]                              |     __asm ("vldr d16, [0x00003464]");
    0x00003398 movs r0, 1                                        |     r0 = 1;
    0x0000339a ldr r1, [pc, 0x108]                               |     
    0x0000339c vdiv.f64 d16, d17, d16                            |     __asm ("vdiv.f64 d16, d17, d16");
    0x000033a0 add r1, pc                                        |     r1 = 0x684a;
    0x000033a2 vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
                                                                 | label_65:
    0x000033a6 blx 0x1a60                                        |     printf_chk ()
    0x000033aa b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_49:
    0x000033ae ldr r1, [pc, 0xf8]                                |     
    0x000033b0 movs r0, 1                                        |     r0 = 1;
    0x000033b2 vmov r2, r3, d17                                  |     __asm ("vmov r2, r3, d17");
    0x000033b6 add r1, pc                                        |     r1 = 0x6864;
    0x000033b8 blx 0x1a60                                        |     printf_chk ()
    0x000033bc b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_62:
    0x000033c0 vldr d17, [pc, 0xa4]                              |     __asm ("vldr d17, [0x0000346c]");
    0x000033c4 movs r0, 1                                        |     r0 = 1;
    0x000033c6 ldr r1, [pc, 0xe4]                                |     
    0x000033c8 vdiv.f64 d16, d16, d17                            |     __asm ("vdiv.f64 d16, d16, d17");
    0x000033cc add r1, pc                                        |     r1 = 0x687e;
    0x000033ce vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x000033d2 blx 0x1a60                                        |     printf_chk ()
    0x000033d6 b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_61:
    0x000033da vldr d17, [pc, 0x94]                              |     __asm ("vldr d17, [0x00003474]");
    0x000033de movs r0, 1                                        |     r0 = 1;
    0x000033e0 ldr r1, [pc, 0xcc]                                |     
    0x000033e2 vdiv.f64 d16, d16, d17                            |     __asm ("vdiv.f64 d16, d16, d17");
    0x000033e6 add r1, pc                                        |     r1 = 0x689a;
    0x000033e8 vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x000033ec blx 0x1a60                                        |     printf_chk ()
    0x000033f0 b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_52:
    0x000033f4 vldr d16, [pc, 0x70]                              |     __asm ("vldr d16, [0x0000346c]");
    0x000033f8 movs r0, 1                                        |     r0 = 1;
    0x000033fa ldr r1, [pc, 0xb8]                                |     
    0x000033fc vdiv.f64 d16, d17, d16                            |     __asm ("vdiv.f64 d16, d17, d16");
    0x00003400 add r1, pc                                        |     r1 = 0x68ba;
    0x00003402 vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x00003406 blx 0x1a60                                        |     printf_chk ()
    0x0000340a b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_51:
    0x0000340e vldr d16, [pc, 0x60]                              |     __asm ("vldr d16, [0x00003474]");
    0x00003412 movs r0, 1                                        |     r0 = 1;
    0x00003414 ldr r1, [pc, 0xa0]                                |     
    0x00003416 vdiv.f64 d16, d17, d16                            |     __asm ("vdiv.f64 d16, d17, d16");
    0x0000341a add r1, pc                                        |     r1 = 0x68d6;
    0x0000341c vmov r2, r3, d16                                  |     __asm ("vmov r2, r3, d16");
    0x00003420 blx 0x1a60                                        |     printf_chk ()
    0x00003424 b.w 0x2ad2                                        |     goto label_6;
                                                                 | label_25:
    0x00003428 blx 0x1c98                                        |     fcn_00001c98 ();
                                                                 | label_23:
    0x0000342c ldr r3, [pc, 0x8c]                                |     
    0x0000342e movw r2, 0x736                                    |     r2 = 0x736;
    0x00003432 ldr r1, [pc, 0x8c]                                |     
    0x00003434 ldr r0, [pc, 0x8c]                                |     
    0x00003436 add r3, pc                                        |     r3 = 0x68f6;
    0x00003438 add r1, pc                                        |     r1 = 0x68fe;
    0x0000343a adds r3, 0x10                                     |     r3 += 0x10;
    0x0000343c add r0, pc                                        |     r0 = 0x6904;
    0x0000343e blx 0x1adc                                        |     fcn_00001adc ();
                                                                 | label_27:
    0x00003442 ldr r1, [pc, 0x84]                                |     
    0x00003444 add r1, pc                                        |     r1 = 0x6912;
    0x00003446 b 0x2f7c                                          |     goto label_15;
                                                                 | label_38:
    0x00003448 cmp r5, 1                                         |     
                                                                 |     if (r5 != 1) {
    0x0000344a beq 0x3452                                        |         
    0x0000344c ldr r2, [pc, 0x7c]                                |         
    0x0000344e add r2, pc                                        |         r2 = 0x691e;
    0x00003450 b 0x30bc                                          |         goto label_14;
                                                                 |     }
    0x00003452 ldr r2, [pc, 0x7c]                                |     
    0x00003454 add r2, pc                                        |     r2 = 0x692a;
    0x00003456 b 0x30bc                                          |     goto label_14;
                                                                 | }


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/chronyc @ 0x3cb0).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.


r2dec has crashed (info: /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/chronyc @ 0x4710).
Please report the bug at https://github.com/radareorg/r2dec-js/issues
Use the option '--issue' or the command 'pddi' to generate 
the needed data for the issue.

[*] Function printf used 49 times chronyc