[*] Binary protection state of system-rtc-sync

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


[*] Function fprintf tear down of system-rtc-sync

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/system-rtc-sync @ 0x1544 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.00001544 ()                                  | void fcn_00001544 (void * s, int16_t arg_ch, int16_t arg_10h, int16_t arg_14h, int16_t arg_20h, int16_t arg_24h, int16_t arg_30h, int16_t arg_34h, int16_t arg_38h, int16_t arg_3ch, int16_t arg_44h, int16_t arg_4ch, int16_t arg_54h, char * ptr, int16_t arg_60h, int16_t arg_64h, int16_t arg_68h, int16_t arg_70h, int16_t arg_74h, int16_t arg_7ch, int16_t arg_80h, int16_t arg_84h, int16_t arg_88h, int16_t arg_a8h, void * s1, int16_t arg_154h, int16_t arg2, int16_t arg4) {
                                                             |     r1 = arg2;
                                                             |     r3 = arg4;
                                                             | label_0:
    0x00000c6c movs r4, 0                                    |     r4 = 0;
    0x00000c6e add r3, sp, 0x4c                              |     r3 += arg_4ch;
    0x00000c70 movs r2, 0x2c                                 |     r2 = 0x2c;
    0x00000c72 mov r1, r4                                    |     r1 = r4;
    0x00000c74 ldr r0, [sp, 8]                               |     r0 = *(s);
    0x00000c76 add.w r8, sp, 0x5c                            |     r8 += ptr;
    0x00000c78 lsrs r4, r3, 1                                |     r4 = r3 >> 1;
    0x00000c7a str r3, [sp, 0x14]                            |     *(arg_14h) = r3;
    0x00000c7c strd r4, r4, [sp, 0x4c]                       |     __asm ("strd r4, r4, [sp, 0x4c]");
    0x00000c80 blx 0xb6c                                     |     memset (r0, r1, r2);
    0x00000c84 movs r0, 1                                    |     r0 = 1;
    0x00000c86 blx 0xad0                                     |     sched_get_priority_max ();
    0x00000c8a add r3, sp, 0x54                              |     r3 += arg_54h;
    0x00000c8c add r2, sp, 0x38                              |     r2 += arg_38h;
    0x00000c8e str r0, [sp, 0x38]                            |     *(arg_38h) = r0;
    0x00000c90 mov r1, r4                                    |     r1 = r4;
    0x00000c92 mov r0, r3                                    |     r0 = r3;
    0x00000c94 strd r4, r4, [sp, 0x5c]                       |     __asm ("strd r4, r4, [sp, 0x5c]");
    0x00000c98 str r3, [sp, 0x10]                            |     *(arg_10h) = r3;
    0x00000c9a str r2, [sp, 0xc]                             |     *(arg_ch) = r2;
    0x00000c9c blx 0xac4                                     |     r0 = gettimeofday ();
    0x00000ca0 cmp r0, r4                                    |     
                                                             |     if (r0 < r4) {
    0x00000ca2 blt.w 0xe34                                   |         goto label_18;
                                                             |     }
    0x00000ca6 ldr r0, [pc, 0x3b8]                           |     
    0x00000ca8 mov r1, r4                                    |     r1 = r4;
    0x00000caa add r0, pc                                    |     r0 = 0x1d10;
    0x00000cac blx 0xb3c                                     |     r0 = open (r0, r1, r2);
    0x00000cb0 subs r5, r0, 0                                |     r5 = r0 - 0;
                                                             |     if (r5 < r0) {
    0x00000cb2 blt.w 0xf82                                   |         goto label_19;
                                                             |     }
    0x00000cb6 movs r0, 1                                    |     r0 = 1;
    0x00000cb8 blx 0xaf4                                     |     r0 = mlockall ();
    0x00000cbc cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00000cbe blt.w 0xffa                                   |         goto label_20;
                                                             |     }
                                                             | label_4:
    0x00000cc2 ldr r2, [sp, 0xc]                             |     r2 = *(arg_ch);
    0x00000cc4 movs r1, 1                                    |     r1 = 1;
    0x00000cc6 movs r0, 0                                    |     r0 = 0;
    0x00000cc8 blx 0xbd8                                     |     r0 = sched_setscheduler ();
    0x00000ccc cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00000cce blt.w 0x1018                                  |         goto label_21;
                                                             |     }
                                                             | label_5:
    0x00000cd2 add r7, sp, 0x64                              |     r7 += arg_64h;
    0x00000cd4 movw r1, 0x7009                               |     
    0x00000cd8 movt r1, 0x8024                               |     r1 = 0x80247009;
    0x00000cdc mov r2, r7                                    |     r2 = r7;
    0x00000cde mov r0, r5                                    |     r0 = r5;
    0x00000ce0 blx 0xab8                                     |     r0 = ioctl (r0, r1);
    0x00000ce4 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00000ce6 blt.w 0xfa0                                   |         goto label_22;
                                                             |     }
    0x00000cea add r4, sp, 0x3c                              |     r4 += arg_3ch;
    0x00000cec movs r0, 1                                    |     r0 = 1;
    0x00000cee mov r1, r4                                    |     r1 = r4;
    0x00000cf0 ldr.w sb, [sp, 0x64]                          |     sb = *(arg_64h);
    0x00000cf4 blx 0xa7c                                     |     r0 = clock_gettime ();
    0x00000cf8 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00000cfa blt.w 0x11da                                  |         goto label_23;
                                                             |     }
    0x00000cfe vldr d9, [pc, 0x338]                          |     __asm ("vldr d9, [0x0000103c]");
    0x00000d02 movw fp, 0x7009                               |     
    0x00000d06 movt fp, 0x8024                               |     fp = 0x80247009;
                                                             | label_7:
    0x00000d0a vmov.f64 d8, 1.500000e+00                     |     __asm ("vmov.f64 d8, 1");
    0x00000d0e b 0xd70                                       |     
                                                             |     while (r0 >= 0) {
    0x00000d10 ldr r6, [sp, 0x64]                            |         r6 = *(arg_64h);
    0x00000d12 cmp sb, r6                                    |         
                                                             |         if (sb != r6) {
    0x00000d14 bne.w 0x10d0                                  |             goto label_24;
                                                             |         }
    0x00000d16 strh r4, [r3, 0xe]                            |         *((r3 + 0xe)) = r4;
    0x00000d18 add r6, sp, 0x44                              |         r6 += arg_44h;
    0x00000d1a movs r0, 1                                    |         r0 = 1;
    0x00000d1c mov r1, r6                                    |         r1 = r6;
    0x00000d1e blx 0xa7c                                     |         r0 = clock_gettime ();
    0x00000d22 cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x00000d24 blt.w 0x1184                                  |             goto label_25;
                                                             |         }
    0x00000d28 ldrd r3, r2, [r6]                             |         __asm ("ldrd r3, r2, [r6]");
    0x00000d2c ldr r1, [r4, 4]                               |         r1 = *((r4 + 4));
    0x00000d2e subs r2, r2, r1                               |         r2 -= r1;
    0x00000d30 vmov s15, r2                                  |         __asm ("vmov s15, r2");
    0x00000d34 vcvt.f64.s32 d16, s15                         |         __asm ("vcvt.f64.s32 d16, s15");
    0x00000d38 ldr r2, [r4]                                  |         r2 = *(r4);
    0x00000d3a vdiv.f64 d17, d16, d9                         |         __asm ("vdiv.f64 d17, d16, d9");
    0x00000d3e subs r3, r3, r2                               |         r3 -= r2;
    0x00000d40 vmov s15, r3                                  |         __asm ("vmov s15, r3");
    0x00000d44 vcvt.f64.s32 d16, s15                         |         __asm ("vcvt.f64.s32 d16, s15");
    0x00000d48 vadd.f64 d16, d17, d16                        |         __asm ("vadd.f64 d16, d17, d16");
    0x00000d4c vcmpe.f64 d16, d8                             |         __asm ("vcmpe.f64 d16, d8");
    0x00000d50 vmrs apsr_nzcv, fpscr                         |         __asm ("vmrs apsr_nzcv, fpscr");
                                                             |         if (r3 > r3) {
    0x00000d54 bgt.w 0x11a2                                  |             goto label_26;
                                                             |         }
    0x00000d58 movw r3, 0x9680                               |         
    0x00000d5c movs r1, 0                                    |         r1 = 0;
    0x00000d5e movt r3, 0x98                                 |         r3 = 0x989680;
    0x00000d62 mov r0, r8                                    |         r0 = r8;
    0x00000d64 str r3, [sp, 0x60]                            |         *(arg_60h) = r3;
    0x00000d66 blx 0xa70                                     |         r0 = nanosleep ();
    0x00000d6a cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x00000d6c blt.w 0x11b4                                  |             goto label_27;
                                                             |         }
    0x00000d70 mov r2, r7                                    |         r2 = r7;
    0x00000d72 mov r1, fp                                    |         r1 = fp;
    0x00000d74 mov r0, r5                                    |         r0 = r5;
    0x00000d76 blx 0xab8                                     |         r0 = ioctl (r0, r1);
    0x00000d7a cmp r0, 0                                     |         
    0x00000d7c bge 0xd10                                     |         
                                                             |     }
    0x00000d7e blx 0xb60                                     |     r0 = errno_location ();
    0x00000d82 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00000d84 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00000d88 blx 0xb0c                                     |     strerror (r0);
    0x00000d8c ldr r2, [pc, 0x2d4]                           |     
    0x00000d8e mov r3, r0                                    |     r3 = r0;
    0x00000d90 movs r1, 1                                    |     r1 = 1;
    0x00000d92 mov r0, r4                                    |     r0 = r4;
    0x00000d94 add r2, pc                                    |     r2 = 0x1dfc;
    0x00000d96 blx 0xb90                                     |     fprintf_chk ()
                                                             | label_1:
    0x00000d9a movs r4, 1                                    |     r4 = 1;
                                                             | label_15:
    0x00000d9c blx 0xa64                                     |     r0 = munlockall ();
    0x00000da0 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00000da2 blt.w 0xfdc                                   |         goto label_28;
                                                             |     }
                                                             | label_3:
    0x00000da6 ldr r3, [sp, 0xc]                             |     r3 = *(arg_ch);
    0x00000da8 movs r1, 0                                    |     r1 = 0;
    0x00000daa mov r0, r1                                    |     r0 = r1;
    0x00000dac mov r2, r3                                    |     r2 = r3;
    0x00000dae str r1, [r3]                                  |     *(r3) = r1;
    0x00000db0 blx 0xbd8                                     |     r0 = sched_setscheduler ();
    0x00000db4 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00000db6 blt.w 0xfbe                                   |         goto label_29;
                                                             |     }
                                                             | label_2:
    0x00000dba mov r0, r5                                    |     r0 = r5;
    0x00000dbc blx 0xbcc                                     |     close (r0);
    0x00000dc0 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00000dc2 beq.w 0xefc                                   |         goto label_30;
                                                             |     }
    0x00000dc6 b 0xe50                                       |     goto label_31;
                                                             | label_6:
    0x00000e20 mov r0, r5                                    |     r0 = r5;
    0x00000e22 movs r1, 1                                    |     r1 = 1;
    0x00000e24 blx 0xb90                                     |     fprintf_chk ()
    0x00000e28 add r3, sp, 0x88                              |     r3 += arg_88h;
    0x00000e2a str r3, [sp, 8]                               |     *(s) = r3;
    0x00000e2c mov r0, r4                                    |     r0 = r4;
    0x00000e2e blx 0xbcc                                     |     close (r0);
    0x00000e32 b 0xc6c                                       |     goto label_0;
                                                             | label_18:
    0x00000e34 blx 0xb60                                     |     r0 = errno_location ();
    0x00000e38 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00000e3a ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00000e3e blx 0xb0c                                     |     strerror (r0);
    0x00000e42 ldr r2, [pc, 0x22c]                           |     
    0x00000e44 mov r3, r0                                    |     r3 = r0;
    0x00000e46 movs r1, 1                                    |     r1 = 1;
    0x00000e48 mov r0, r4                                    |     r0 = r4;
    0x00000e4a add r2, pc                                    |     r2 = 0x1ec0;
    0x00000e4c blx 0xb90                                     |     fprintf_chk ()
                                                             |     do {
                                                             | label_31:
    0x00000e50 ldr r0, [pc, 0x220]                           |         
    0x00000e52 add r0, pc                                    |         r0 = 0x1eca;
    0x00000e54 blx 0xae8                                     |         r0 = getenv (r0);
    0x00000e58 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00000e5a beq 0xefa                                     |             
    0x00000e5c ldr r3, [sp, 0x10]                            |             r3 = *(arg_10h);
    0x00000e5e mov.w r5, -1                                  |             r5 = -1;
    0x00000e62 ldr r4, [pc, 0x214]                           |             
    0x00000e64 add r6, sp, 0x10c                             |             r6 += s1;
    0x00000e66 ldr r1, [pc, 0x214]                           |             
    0x00000e68 movs r2, 0x46                                 |             r2 = 0x46;
    0x00000e6a str r5, [r3]                                  |             *(r3) = r5;
    0x00000e6c mov r0, r6                                    |             r0 = r6;
    0x00000e6e add r4, pc                                    |             r4 = 0x1eec;
    0x00000e70 add r1, pc                                    |             r1 = 0x1ef2;
    0x00000e72 blx 0xa88                                     |             memcpy (r0, r1, r2);
    0x00000e76 movs r3, 0                                    |             r3 = 0;
    0x00000e78 ldr r1, [sp, 8]                               |             r1 = *(s);
    0x00000e7a mov r0, r4                                    |             r0 = r4;
    0x00000e7c str r3, [sp, 0x5c]                            |             *(ptr) = r3;
    0x00000e7e blx 0xb30                                     |             r0 = stat ();
    0x00000e82 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00000e84 beq.w 0x11f8                                  |                 goto label_32;
                                                             |             }
                                                             | label_16:
    0x00000e88 movs r7, 1                                    |             r7 = 1;
                                                             | label_8:
    0x00000e8a mov.w r0, 0x1a4                               |             r0 = 0x1a4;
    0x00000e8e blx 0xbb4                                     |             umask (r0);
    0x00000e92 mov r0, r6                                    |             r0 = r6;
    0x00000e94 blx 0xb54                                     |             mkstemp (r0);
    0x00000e98 ldr r3, [sp, 0x10]                            |             r3 = *(arg_10h);
    0x00000e9a cmp r0, 0                                     |             
    0x00000e9c mov r4, r0                                    |             r4 = r0;
    0x00000e9e str r0, [r3]                                  |             *(r3) = r0;
                                                             |             if (r0 < 0) {
    0x00000ea0 blt.w 0x123e                                  |                 goto label_33;
                                                             |             }
    0x00000ea4 ldr r2, [pc, 0x1d8]                           |             
    0x00000ea6 mov r0, r8                                    |             r0 = r8;
    0x00000ea8 mov r3, r7                                    |             r3 = r7;
    0x00000eaa movs r1, 1                                    |             r1 = 1;
    0x00000eac add r2, pc                                    |             r2 = 0x1f30;
    0x00000eae blx 0xadc                                     |             r0 = asprintf_chk ();
    0x00000eb2 subs r5, r0, 0                                |             r5 = r0 - 0;
                                                             |             if (r5 < r0) {
    0x00000eb4 blt.w 0x127a                                  |                 goto label_34;
                                                             |             }
    0x00000eb8 ldr r1, [sp, 0x5c]                            |             r1 = *(ptr);
    0x00000eba mov r2, r5                                    |             r2 = r5;
    0x00000ebc mov r0, r4                                    |             r0 = r4;
    0x00000ebe blx 0xb84                                     |             r0 = write (r0, r1, r2);
    0x00000ec2 cmp r5, r0                                    |             
                                                             |             if (r5 == r0) {
    0x00000ec4 beq.w 0x128c                                  |                 goto label_35;
                                                             |             }
    0x00000ec8 cmp r0, 0                                     |             
    0x00000eca ldr.w r5, [sl]                                |             r5 = *(sl);
                                                             |             if (r0 < 0) {
    0x00000ece blt.w 0x1230                                  |                 goto label_36;
                                                             |             }
    0x00000ed2 ldr r3, [pc, 0x1b0]                           |             
    0x00000ed4 add r3, pc                                    |             r3 = 0x1f5e;
                                                             | label_9:
    0x00000ed6 ldr r2, [pc, 0x1b0]                           |             
    0x00000ed8 mov r0, r5                                    |             r0 = r5;
    0x00000eda movs r1, 1                                    |             r1 = 1;
    0x00000edc add r2, pc                                    |             r2 = 0x1f6a;
    0x00000ede blx 0xb90                                     |             fprintf_chk ()
                                                             | label_12:
    0x00000ee2 mov r0, r4                                    |             r0 = r4;
    0x00000ee4 blx 0xbcc                                     |             close (r0);
                                                             | label_13:
    0x00000ee8 mov r0, r6                                    |             r0 = r6;
    0x00000eea blx 0xaa0                                     |             r0 = unlink (r0);
    0x00000eee cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00000ef0 bne.w 0x125c                                  |                 goto label_37;
                                                             |             }
                                                             | label_11:
    0x00000ef4 ldr r0, [sp, 0x5c]                            |             r0 = *(ptr);
    0x00000ef6 blx 0xa58                                     |             free (r0);
                                                             |         }
                                                             | label_10:
    0x00000efa movs r4, 1                                    |         r4 = 1;
                                                             | label_30:
    0x00000efc ldr r2, [pc, 0x18c]                           |         
    0x00000efe ldr r3, [pc, 0x14c]                           |         r3 = *(0x104e);
    0x00000f00 add r2, pc                                    |         r2 = 0x1f90;
    0x00000f02 ldr r3, [r2, r3]                              |         r3 = *(0x1f90);
    0x00000f04 ldr r2, [r3]                                  |         r2 = *(0x1f90);
    0x00000f06 ldr r3, [sp, 0x154]                           |         r3 = *(arg_154h);
    0x00000f08 eors r2, r3                                   |         r2 ^= r3;
    0x00000f0a mov.w r3, 0                                   |         r3 = 0;
                                                             |         if (r2 != r3) {
    0x00000f0e bne.w 0x14f6                                  |             goto label_38;
                                                             |         }
    0x00000f12 mov r0, r4                                    |         r0 = r4;
    0x00000f14 add sp, 0x15c                                 |         
    0x00000f16 vpop {d8, d9}                                 |         __asm ("vpop {d8, d9}");
    0x00000f1a pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}    |         
                                                             | label_19:
    0x00000f82 blx 0xb60                                     |         r0 = errno_location ();
    0x00000f86 ldr r0, [r0]                                  |         r0 = *(r0);
    0x00000f88 ldr.w r4, [sl]                                |         r4 = *(sl);
    0x00000f8c blx 0xb0c                                     |         strerror (r0);
    0x00000f90 ldr r2, [pc, 0x108]                           |         
    0x00000f92 mov r3, r0                                    |         r3 = r0;
    0x00000f94 movs r1, 1                                    |         r1 = 1;
    0x00000f96 mov r0, r4                                    |         r0 = r4;
    0x00000f98 add r2, pc                                    |         r2 = 0x2038;
    0x00000f9a blx 0xb90                                     |         fprintf_chk ()
    0x00000f9e b 0xe50                                       |         
                                                             |     } while (1);
                                                             | label_22:
    0x00000fa0 blx 0xb60                                     |     r0 = errno_location ();
    0x00000fa4 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00000fa6 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00000faa blx 0xb0c                                     |     strerror (r0);
    0x00000fae ldr r2, [pc, 0xf0]                            |     
    0x00000fb0 mov r3, r0                                    |     r3 = r0;
    0x00000fb2 movs r1, 1                                    |     r1 = 1;
    0x00000fb4 mov r0, r4                                    |     r0 = r4;
    0x00000fb6 add r2, pc                                    |     r2 = 0x205c;
    0x00000fb8 blx 0xb90                                     |     fprintf_chk ()
    0x00000fbc b 0xd9a                                       |     goto label_1;
                                                             | label_29:
    0x00000fbe blx 0xb60                                     |     r0 = errno_location ();
    0x00000fc2 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00000fc4 ldr.w r6, [sl]                                |     r6 = *(sl);
    0x00000fc8 blx 0xb0c                                     |     strerror (r0);
    0x00000fcc ldr r2, [pc, 0xd4]                            |     
    0x00000fce mov r3, r0                                    |     r3 = r0;
    0x00000fd0 movs r1, 1                                    |     r1 = 1;
    0x00000fd2 mov r0, r6                                    |     r0 = r6;
    0x00000fd4 add r2, pc                                    |     r2 = 0x207c;
    0x00000fd6 blx 0xb90                                     |     fprintf_chk ()
    0x00000fda b 0xdba                                       |     goto label_2;
                                                             | label_28:
    0x00000fdc blx 0xb60                                     |     r0 = errno_location ();
    0x00000fe0 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00000fe2 ldr.w r6, [sl]                                |     r6 = *(sl);
    0x00000fe6 blx 0xb0c                                     |     strerror (r0);
    0x00000fea ldr r2, [pc, 0xbc]                            |     
    0x00000fec mov r3, r0                                    |     r3 = r0;
    0x00000fee movs r1, 1                                    |     r1 = 1;
    0x00000ff0 mov r0, r6                                    |     r0 = r6;
    0x00000ff2 add r2, pc                                    |     r2 = 0x20a0;
    0x00000ff4 blx 0xb90                                     |     fprintf_chk ()
    0x00000ff8 b 0xda6                                       |     goto label_3;
                                                             | label_20:
    0x00000ffa blx 0xb60                                     |     r0 = errno_location ();
    0x00000ffe ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001000 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00001004 blx 0xb0c                                     |     strerror (r0);
    0x00001008 ldr r2, [pc, 0xa0]                            |     
    0x0000100a mov r3, r0                                    |     r3 = r0;
    0x0000100c movs r1, 1                                    |     r1 = 1;
    0x0000100e mov r0, r4                                    |     r0 = r4;
    0x00001010 add r2, pc                                    |     r2 = 0x20c0;
    0x00001012 blx 0xb90                                     |     fprintf_chk ()
    0x00001016 b 0xcc2                                       |     goto label_4;
                                                             | label_21:
    0x00001018 blx 0xb60                                     |     r0 = errno_location ();
    0x0000101c ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000101e ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00001022 blx 0xb0c                                     |     strerror (r0);
    0x00001026 ldr r2, [pc, 0x88]                            |     
    0x00001028 mov r3, r0                                    |     r3 = r0;
    0x0000102a movs r1, 1                                    |     r1 = 1;
    0x0000102c mov r0, r4                                    |     r0 = r4;
    0x0000102e add r2, pc                                    |     r2 = 0x20e4;
    0x00001030 blx 0xb90                                     |     fprintf_chk ()
    0x00001034 b 0xcd2                                       |     goto label_5;
                                                             | label_17:
    0x00001088 lsrs r0, r4, 0x12                             |     r0 = r4 >> 0x12;
    0x0000108a movs r0, r0                                   |     
    0x0000108c movs r0, 0x34                                 |     r0 = 0x34;
    0x0000108e movs r0, r0                                   |     
    0x00001090 lsrs r6, r4, 1                                |     r6 = r4 >> 1;
    0x00001092 movs r0, r0                                   |     
    0x00001094 lsrs r4, r7, 4                                |     r4 = r7 >> 4;
    0x00001096 movs r0, r0                                   |     
    0x00001098 lsrs r6, r4, 4                                |     r6 = r4 >> 4;
    0x0000109a movs r0, r0                                   |     
    0x0000109c lsrs r4, r3, 5                                |     r4 = r3 >> 5;
    0x0000109e movs r0, r0                                   |     
    0x000010a0 lsrs r6, r4, 6                                |     r6 = r4 >> 6;
    0x000010a2 movs r0, r0                                   |     
    0x000010a4 lsrs r4, r4, 5                                |     r4 >>= 5;
    0x000010a6 movs r0, r0                                   |     
    0x000010a8 lsrs r6, r7, 9                                |     r6 = r7 >> 9;
    0x000010aa movs r0, r0                                   |     
    0x000010ac lsrs r0, r1, 4                                |     r0 = r1 >> 4;
    0x000010ae movs r0, r0                                   |     
    0x000010b0 lsrs r2, r1, 4                                |     r2 = r1 >> 4;
    0x000010b2 movs r0, r0                                   |     
    0x000010b4 ldr r3, [pc, 0x358]                           |     r3 = *(0x1410);
    0x000010b6 ldr.w sl, [r6, r3]                            |     sl = *((r6 + r3));
    0x000010ba blx 0xb60                                     |     r0 = errno_location ();
    0x000010be ldr r0, [r0]                                  |     r0 = *(r0);
    0x000010c0 ldr.w r5, [sl]                                |     r5 = *(sl);
    0x000010c4 blx 0xb0c                                     |     strerror (r0);
    0x000010c8 ldr r2, [pc, 0x348]                           |     
    0x000010ca mov r3, r0                                    |     r3 = r0;
    0x000010cc add r2, pc                                    |     r2 = 0x24e4;
    0x000010ce b 0xe20                                       |     goto label_6;
                                                             | label_24:
    0x000010d0 mov.w r3, 0xe900                              |     r3 = 0xe900;
    0x000010d4 movs r1, 0                                    |     r1 = 0;
    0x000010d6 movt r3, 0x35a4                               |     r3 = (r3 & 0xFFFF) | 0x35a40000;
    0x000010da mov r0, r8                                    |     r0 = r8;
    0x000010dc str r3, [sp, 0x60]                            |     *(arg_60h) = r3;
    0x000010de blx 0xa70                                     |     r0 = nanosleep ();
    0x000010e2 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x000010e4 blt.w 0x1318                                  |         goto label_39;
                                                             |     }
                                                             | label_14:
    0x000010e8 mov r1, r4                                    |     r1 = r4;
    0x000010ea movs r0, 1                                    |     r0 = 1;
    0x000010ec blx 0xa7c                                     |     r0 = clock_gettime ();
    0x000010f0 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x000010f2 blt.w 0x13e6                                  |         goto label_40;
                                                             |     }
    0x000010f6 movw r2, 0x7009                               |     
    0x000010fa vldr d8, [pc, 0x30c]                          |     __asm ("vldr d8, [0x0000140c]");
    0x000010fe movt r2, 0x8024                               |     r2 = 0x80247009;
    0x00001102 add.w sb, sp, 0x44                            |     sb += arg_44h;
    0x00001106 mov fp, r2                                    |     
    0x00001108 b 0x1158                                      |     
                                                             |     while (r0 >= 0) {
    0x0000110a ldr r3, [sp, 0x64]                            |         r3 = *(arg_64h);
    0x0000110c cmp r6, r3                                    |         
                                                             |         if (r6 != r3) {
    0x0000110e bne.w 0x1336                                  |             goto label_41;
                                                             |         }
    0x00001112 mov r1, sb                                    |         r1 = sb;
    0x00001114 movs r0, 1                                    |         r0 = 1;
    0x00001116 blx 0xa7c                                     |         r0 = clock_gettime ();
    0x0000111a cmp r0, 0                                     |         
                                                             |         if (r0 < 0) {
    0x0000111c blt.w 0x13a4                                  |             goto label_42;
                                                             |         }
    0x00001120 ldr r2, [r4, 4]                               |         r2 = *((r4 + 4));
    0x00001122 ldr.w r3, [sb, 4]                             |         r3 = *((sb + 4));
    0x00001126 vmov.f64 d18, 1.500000e+00                    |         __asm ("vmov.f64 d18, 1");
    0x0000112a subs r3, r3, r2                               |         r3 -= r2;
    0x0000112c ldr r2, [r4]                                  |         r2 = *(r4);
    0x0000112e vmov s15, r3                                  |         __asm ("vmov s15, r3");
    0x00001132 vcvt.f64.s32 d16, s15                         |         __asm ("vcvt.f64.s32 d16, s15");
    0x00001136 ldr.w r3, [sb]                                |         r3 = *(sb);
    0x0000113a vdiv.f64 d17, d16, d8                         |         __asm ("vdiv.f64 d17, d16, d8");
    0x0000113e subs r3, r3, r2                               |         r3 -= r2;
    0x00001140 vmov s15, r3                                  |         __asm ("vmov s15, r3");
    0x00001144 vcvt.f64.s32 d16, s15                         |         __asm ("vcvt.f64.s32 d16, s15");
    0x00001148 vadd.f64 d16, d17, d16                        |         __asm ("vadd.f64 d16, d17, d16");
    0x0000114c vcmpe.f64 d16, d18                            |         __asm ("vcmpe.f64 d16, d18");
    0x00001150 vmrs apsr_nzcv, fpscr                         |         __asm ("vmrs apsr_nzcv, fpscr");
                                                             |         if (r3 > r3) {
    0x00001154 bgt.w 0x13c2                                  |             goto label_43;
                                                             |         }
    0x00001158 mov r2, r7                                    |         r2 = r7;
    0x0000115a mov r1, fp                                    |         r1 = fp;
    0x0000115c mov r0, r5                                    |         r0 = r5;
    0x0000115e blx 0xab8                                     |         r0 = ioctl (r0, r1);
    0x00001162 cmp r0, 0                                     |         
    0x00001164 bge 0x110a                                    |         
                                                             |     }
    0x00001166 blx 0xb60                                     |     r0 = errno_location ();
    0x0000116a ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000116c ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00001170 blx 0xb0c                                     |     strerror (r0);
    0x00001174 ldr r2, [pc, 0x2a0]                           |     
    0x00001176 mov r3, r0                                    |     r3 = r0;
    0x00001178 movs r1, 1                                    |     r1 = 1;
    0x0000117a mov r0, r4                                    |     r0 = r4;
    0x0000117c add r2, pc                                    |     r2 = 0x2598;
    0x0000117e blx 0xb90                                     |     fprintf_chk ()
    0x00001182 b 0xd9a                                       |     goto label_1;
                                                             | label_25:
    0x00001184 blx 0xb60                                     |     r0 = errno_location ();
    0x00001188 ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000118a ldr.w r4, [sl]                                |     r4 = *(sl);
    0x0000118e blx 0xb0c                                     |     strerror (r0);
    0x00001192 ldr r2, [pc, 0x288]                           |     
    0x00001194 mov r3, r0                                    |     r3 = r0;
    0x00001196 movs r1, 1                                    |     r1 = 1;
    0x00001198 mov r0, r4                                    |     r0 = r4;
    0x0000119a add r2, pc                                    |     r2 = 0x25bc;
    0x0000119c blx 0xb90                                     |     fprintf_chk ()
    0x000011a0 b 0xd9a                                       |     goto label_1;
                                                             | label_26:
    0x000011a2 ldr r0, [pc, 0x27c]                           |     
    0x000011a4 movs r2, 0x2c                                 |     r2 = 0x2c;
    0x000011a6 ldr.w r3, [sl]                                |     r3 = *(sl);
    0x000011aa movs r1, 1                                    |     r1 = 1;
    0x000011ac add r0, pc                                    |     r0 = 0x25d2;
    0x000011ae blx 0xaac                                     |     fwrite (r0, r1, r2, r3);
    0x000011b2 b 0xd9a                                       |     goto label_1;
                                                             | label_27:
    0x000011b4 blx 0xb60                                     |     r0 = errno_location ();
    0x000011b8 ldr r0, [r0]                                  |     r0 = *(r0);
    0x000011ba ldr.w r6, [sl]                                |     r6 = *(sl);
    0x000011be blx 0xb0c                                     |     strerror (r0);
    0x000011c2 ldr r2, [pc, 0x260]                           |     
    0x000011c4 mov r3, r0                                    |     r3 = r0;
    0x000011c6 movs r1, 1                                    |     r1 = 1;
    0x000011c8 mov r0, r6                                    |     r0 = r6;
    0x000011ca add r2, pc                                    |     r2 = 0x25f4;
    0x000011cc blx 0xb90                                     |     fprintf_chk ()
    0x000011d0 b 0xd0a                                       |     goto label_7;
                                                             | label_23:
    0x000011da blx 0xb60                                     |     r0 = errno_location ();
    0x000011de ldr r0, [r0]                                  |     r0 = *(r0);
    0x000011e0 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x000011e4 blx 0xb0c                                     |     strerror (r0);
    0x000011e8 ldr r2, [pc, 0x23c]                           |     
    0x000011ea mov r3, r0                                    |     r3 = r0;
    0x000011ec movs r1, 1                                    |     r1 = 1;
    0x000011ee mov r0, r4                                    |     r0 = r4;
    0x000011f0 add r2, pc                                    |     r2 = 0x261c;
    0x000011f2 blx 0xb90                                     |     fprintf_chk ()
    0x000011f6 b 0xd9a                                       |     goto label_1;
                                                             | label_32:
    0x000011f8 ldr r1, [pc, 0x230]                           |     
    0x000011fa mov r0, r4                                    |     r0 = r4;
    0x000011fc str r5, [sp, 0x64]                            |     *(arg_64h) = r5;
    0x000011fe add r1, pc                                    |     r1 = 0x262e;
    0x00001200 blx 0xa40                                     |     r0 = fopen (r0, r1);
    0x00001204 mov r4, r0                                    |     r4 = r0;
    0x00001206 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00001208 beq.w 0x13d4                                  |         goto label_44;
                                                             |     }
    0x0000120c ldr r1, [pc, 0x220]                           |     
    0x0000120e add r2, sp, 0x64                              |     r2 += arg_64h;
    0x00001210 add r1, pc                                    |     r1 = 0x2644;
    0x00001212 blx 0xa34                                     |     r0 = isoc99_fscanf ();
    0x00001216 mov r5, r0                                    |     r5 = r0;
    0x00001218 mov r0, r4                                    |     r0 = r4;
    0x0000121a blx 0xb9c                                     |     fclose (r0);
    0x0000121e cmp r5, 1                                     |     
                                                             |     if (r5 != 1) {
    0x00001220 bne.w 0x13d4                                  |         goto label_44;
                                                             |     }
    0x00001224 ldr r7, [sp, 0x64]                            |     r7 = *(arg_64h);
    0x00001226 cmp r7, 0                                     |     
                                                             |     if (r7 < 0) {
    0x00001228 blt.w 0x13d4                                  |         goto label_44;
                                                             |     }
    0x0000122c adds r7, 1                                    |     r7++;
    0x0000122e b 0xe8a                                       |     goto label_8;
                                                             | label_36:
    0x00001230 blx 0xb60                                     |     r0 = errno_location ();
    0x00001234 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001236 blx 0xb0c                                     |     r0 = strerror (r0);
    0x0000123a mov r3, r0                                    |     r3 = r0;
    0x0000123c b 0xed6                                       |     goto label_9;
                                                             | label_33:
    0x0000123e blx 0xb60                                     |     r0 = errno_location ();
    0x00001242 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001244 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00001248 blx 0xb0c                                     |     strerror (r0);
    0x0000124c ldr r2, [pc, 0x1e4]                           |     
    0x0000124e mov r3, r0                                    |     r3 = r0;
    0x00001250 movs r1, 1                                    |     r1 = 1;
    0x00001252 mov r0, r4                                    |     r0 = r4;
    0x00001254 add r2, pc                                    |     r2 = 0x268c;
    0x00001256 blx 0xb90                                     |     fprintf_chk ()
    0x0000125a b 0xefa                                       |     goto label_10;
                                                             | label_37:
    0x0000125c blx 0xb60                                     |     r0 = errno_location ();
    0x00001260 ldr r0, [r0]                                  |     r0 = *(r0);
    0x00001262 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x00001266 blx 0xb0c                                     |     strerror (r0);
    0x0000126a ldr r2, [pc, 0x1cc]                           |     
    0x0000126c mov r3, r0                                    |     r3 = r0;
    0x0000126e movs r1, 1                                    |     r1 = 1;
    0x00001270 mov r0, r4                                    |     r0 = r4;
    0x00001272 add r2, pc                                    |     r2 = 0x26b0;
    0x00001274 blx 0xb90                                     |     fprintf_chk ()
    0x00001278 b 0xef4                                       |     goto label_11;
                                                             | label_34:
    0x0000127a ldr r0, [pc, 0x1c0]                           |     
    0x0000127c movs r2, 0x29                                 |     r2 = 0x29;
    0x0000127e ldr.w r3, [sl]                                |     r3 = *(sl);
    0x00001282 movs r1, 1                                    |     r1 = 1;
    0x00001284 add r0, pc                                    |     r0 = 0x26c6;
    0x00001286 blx 0xaac                                     |     fwrite (r0, r1, r2, r3);
    0x0000128a b 0xee2                                       |     goto label_12;
                                                             | label_35:
    0x0000128c mov.w r1, 0x1a4                               |     r1 = 0x1a4;
    0x00001290 mov r0, r4                                    |     r0 = r4;
    0x00001292 blx 0xbe4                                     |     r0 = fchmod (r0, r1);
    0x00001296 cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00001298 blt.w 0x146c                                  |         goto label_45;
                                                             |     }
    0x0000129c ldr r1, [pc, 0x1a0]                           |     
    0x0000129e ldr r0, [sp, 0x10]                            |     r0 = *(arg_10h);
    0x000012a0 add r1, pc                                    |     r1 = 0x26e4;
    0x000012a2 bl 0x160c                                     |     r0 = fcn_0000160c (r0, r1);
    0x000012a6 mov r4, r0                                    |     r4 = r0;
                                                             |     if (r0 == 0) {
    0x000012a8 cbnz r0, 0x130c                               |         
    0x000012aa ldr r1, [pc, 0x198]                           |         
    0x000012ac mov r0, r6                                    |         r0 = r6;
    0x000012ae add r1, pc                                    |         r1 = 0x26f8;
    0x000012b0 blx 0xb48                                     |         r0 = rename (r0, r1);
    0x000012b4 cmp r0, 0                                     |         
                                                             |         if (r0 >= 0) {
    0x000012b6 blt 0x12f0                                    |             
    0x000012b8 ldr r0, [pc, 0x18c]                           |             
    0x000012ba mov r1, r4                                    |             r1 = r4;
    0x000012bc add r0, pc                                    |             r0 = 0x2708;
    0x000012be blx 0xb3c                                     |             open (r0, r1, r2);
    0x000012c2 ldr r3, [sp, 0x10]                            |             r3 = *(arg_10h);
    0x000012c4 cmp r0, 0                                     |             
    0x000012c6 str r0, [r3]                                  |             *(r3) = r0;
                                                             |             if (r0 < 0) {
    0x000012c8 blt.w 0x14ba                                  |                 goto label_46;
                                                             |             }
    0x000012cc ldr r1, [pc, 0x17c]                           |             
    0x000012ce ldr r0, [sp, 0x10]                            |             r0 = *(arg_10h);
    0x000012d0 add r1, pc                                    |             r1 = 0x2720;
    0x000012d2 bl 0x160c                                     |             r0 = fcn_0000160c (r0, r1);
                                                             |             if (r0 != 0) {
    0x000012d6 cbnz r0, 0x130c                               |                 goto label_47;
                                                             |             }
    0x000012d8 ldr r2, [pc, 0x174]                           |             
    0x000012da mov r3, r7                                    |             r3 = r7;
    0x000012dc ldr.w r0, [sl]                                |             r0 = *(sl);
    0x000012e0 movs r1, 1                                    |             r1 = 1;
    0x000012e2 add r2, pc                                    |             r2 = 0x2736;
    0x000012e4 blx 0xb90                                     |             fprintf_chk ()
    0x000012e8 ldr r0, [sp, 0x5c]                            |             r0 = *(ptr);
    0x000012ea blx 0xa58                                     |             free (r0);
    0x000012ee b 0xefa                                       |             goto label_10;
                                                             |         }
    0x000012f0 blx 0xb60                                     |         r0 = errno_location ();
    0x000012f4 ldr r0, [r0]                                  |         r0 = *(r0);
    0x000012f6 ldr.w r4, [sl]                                |         r4 = *(sl);
    0x000012fa blx 0xb0c                                     |         strerror (r0);
    0x000012fe ldr r2, [pc, 0x154]                           |         
    0x00001300 mov r3, r0                                    |         r3 = r0;
    0x00001302 movs r1, 1                                    |         r1 = 1;
    0x00001304 mov r0, r4                                    |         r0 = r4;
    0x00001306 add r2, pc                                    |         r2 = 0x2760;
    0x00001308 blx 0xb90                                     |         fprintf_chk ()
                                                             |     }
                                                             | label_47:
    0x0000130c ldr r3, [sp, 0x10]                            |     r3 = *(arg_10h);
    0x0000130e ldr r4, [r3]                                  |     r4 = *(r3);
    0x00001310 cmp r4, 0                                     |     
                                                             |     if (r4 < 0) {
    0x00001312 blt.w 0xee8                                   |         goto label_13;
                                                             |     }
    0x00001316 b 0xee2                                       |     goto label_12;
                                                             | label_39:
    0x00001318 blx 0xb60                                     |     r0 = errno_location ();
    0x0000131c ldr r0, [r0]                                  |     r0 = *(r0);
    0x0000131e ldr.w sb, [sl]                                |     sb = *(sl);
    0x00001322 blx 0xb0c                                     |     strerror (r0);
    0x00001326 ldr r2, [pc, 0x130]                           |     
    0x00001328 mov r3, r0                                    |     r3 = r0;
    0x0000132a movs r1, 1                                    |     r1 = 1;
    0x0000132c mov r0, sb                                    |     r0 = sb;
    0x0000132e add r2, pc                                    |     r2 = 0x278c;
    0x00001330 blx 0xb90                                     |     fprintf_chk ()
    0x00001334 b 0x10e8                                      |     goto label_14;
                                                             | label_41:
    0x00001336 ldrd r0, r1, [sp, 0x74]                       |     __asm ("ldrd r0, r1, [arg_74h]");
    0x0000133a ldr r2, [sp, 0x7c]                            |     r2 = *(arg_7ch);
    0x0000133c ldrd r4, r7, [sp, 0x68]                       |     __asm ("ldrd r4, r7, [arg_68h]");
    0x00001340 strd r0, r1, [sp, 0x28]                       |     __asm ("strd r0, r1, [sp, 0x28]");
    0x00001344 ldr r1, [sp, 0x80]                            |     r1 = *(arg_80h);
    0x00001346 str r2, [sp, 0x30]                            |     *(arg_30h) = r2;
    0x00001348 ldr r2, [sp, 0x70]                            |     r2 = *(arg_70h);
    0x0000134a str r1, [sp, 0x34]                            |     *(arg_34h) = r1;
    0x0000134c vldr d16, [sp, 0x28]                          |     __asm ("vldr d16, [sp, 0x28]");
    0x00001350 vldr d17, [sp, 0x30]                          |     __asm ("vldr d17, [sp, 0x30]");
    0x00001354 strd r3, r4, [sp, 0x18]                       |     __asm ("strd r3, r4, [sp, 0x18]");
    0x00001358 str r7, [sp, 0x20]                            |     *(arg_20h) = r7;
    0x0000135a ldr r3, [sp, 0x84]                            |     r3 = *(arg_84h);
    0x0000135c str r2, [sp, 0x24]                            |     *(arg_24h) = r2;
    0x0000135e vstr d16, [sp, 0x98]                          |     __asm ("vstr d16, [sp, 0x98]");
    0x00001362 vstr d17, [sp, 0xa0]                          |     __asm ("vstr d17, [sp, 0xa0]");
    0x00001366 ldr r0, [sp, 8]                               |     r0 = *(s);
    0x00001368 vldr d16, [sp, 0x18]                          |     __asm ("vldr d16, [sp, 0x18]");
    0x0000136c vldr d17, [sp, 0x20]                          |     __asm ("vldr d17, [sp, 0x20]");
    0x00001370 str r3, [sp, 0xa8]                            |     *(arg_a8h) = r3;
    0x00001372 vstr d16, [sp, 0x88]                          |     __asm ("vstr d16, [sp, 0x88]");
    0x00001376 vstr d17, [sp, 0x90]                          |     __asm ("vstr d17, [sp, 0x90]");
    0x0000137a blx 0xba8                                     |     timegm ();
    0x0000137e ldr r3, [sp, 0x14]                            |     r3 = *(arg_14h);
    0x00001380 cmp r0, 0                                     |     
    0x00001382 str r0, [r3]                                  |     *(r3) = r0;
                                                             |     if (r0 >= 0) {
    0x00001384 blt.w 0x149c                                  |         
    0x00001388 ldr r3, [sp, 0x10]                            |         r3 = *(arg_10h);
    0x0000138a adds r0, 0x78                                 |         r0 += 0x78;
    0x0000138c ldr r3, [r3]                                  |         r3 = *(r3);
    0x0000138e cmp r0, r3                                    |         
                                                             |         if (r0 >= r3) {
    0x00001390 blt 0x148a                                    |             
    0x00001392 ldr r0, [sp, 0x14]                            |             r0 = *(arg_14h);
    0x00001394 movs r1, 0                                    |             r1 = 0;
    0x00001396 blx 0xb00                                     |             r0 = settimeofday ();
    0x0000139a cmp r0, 0                                     |             
                                                             |             if (r0 < 0) {
    0x0000139c blt.w 0x14d8                                  |                 goto label_48;
                                                             |             }
    0x000013a0 movs r4, 0                                    |             r4 = 0;
    0x000013a2 b 0xd9c                                       |             goto label_15;
                                                             | label_42:
    0x000013a4 blx 0xb60                                     |             r0 = errno_location ();
    0x000013a8 ldr r0, [r0]                                  |             r0 = *(r0);
    0x000013aa ldr.w r4, [sl]                                |             r4 = *(sl);
    0x000013ae blx 0xb0c                                     |             strerror (r0);
    0x000013b2 ldr r2, [pc, 0xa8]                            |             
    0x000013b4 mov r3, r0                                    |             r3 = r0;
    0x000013b6 movs r1, 1                                    |             r1 = 1;
    0x000013b8 mov r0, r4                                    |             r0 = r4;
    0x000013ba add r2, pc                                    |             r2 = 0x281c;
    0x000013bc blx 0xb90                                     |             fprintf_chk ()
    0x000013c0 b 0xd9a                                       |             goto label_1;
                                                             | label_43:
    0x000013c2 ldr r0, [pc, 0x9c]                            |             
    0x000013c4 movs r2, 0x2c                                 |             r2 = 0x2c;
    0x000013c6 ldr.w r3, [sl]                                |             r3 = *(sl);
    0x000013ca movs r1, 1                                    |             r1 = 1;
    0x000013cc add r0, pc                                    |             r0 = 0x2832;
    0x000013ce blx 0xaac                                     |             fwrite (r0, r1, r2, r3);
    0x000013d2 b 0xd9a                                       |             goto label_1;
                                                             | label_44:
    0x000013d4 ldr r2, [pc, 0x8c]                            |             
    0x000013d6 movs r3, 1                                    |             r3 = 1;
    0x000013d8 ldr.w r0, [sl]                                |             r0 = *(sl);
    0x000013dc mov r1, r3                                    |             r1 = r3;
    0x000013de add r2, pc                                    |             r2 = 0x2846;
    0x000013e0 blx 0xb90                                     |             fprintf_chk ()
    0x000013e4 b 0xe88                                       |             goto label_16;
                                                             | label_40:
    0x000013e6 blx 0xb60                                     |             r0 = errno_location ();
    0x000013ea ldr r0, [r0]                                  |             r0 = *(r0);
    0x000013ec ldr.w r4, [sl]                                |             r4 = *(sl);
    0x000013f0 blx 0xb0c                                     |             strerror (r0);
    0x000013f4 ldr r2, [pc, 0x70]                            |             
    0x000013f6 mov r3, r0                                    |             r3 = r0;
    0x000013f8 movs r1, 1                                    |             r1 = 1;
    0x000013fa mov r0, r4                                    |             r0 = r4;
    0x000013fc add r2, pc                                    |             r2 = 0x2868;
    0x000013fe blx 0xb90                                     |             fprintf_chk ()
    0x00001402 b 0xd9a                                       |             goto label_1;
                                                             | label_45:
    0x0000146c blx 0xb60                                     |             r0 = errno_location ();
    0x00001470 ldr r0, [r0]                                  |             r0 = *(r0);
    0x00001472 ldr.w r5, [sl]                                |             r5 = *(sl);
    0x00001476 blx 0xb0c                                     |             strerror (r0);
    0x0000147a ldr r2, [pc, 0x80]                            |             
    0x0000147c mov r3, r0                                    |             r3 = r0;
    0x0000147e movs r1, 1                                    |             r1 = 1;
    0x00001480 mov r0, r5                                    |             r0 = r5;
    0x00001482 add r2, pc                                    |             r2 = 0x2984;
    0x00001484 blx 0xb90                                     |             fprintf_chk ()
    0x00001488 b 0xee2                                       |             goto label_12;
                                                             |         }
    0x0000148a ldr r0, [pc, 0x74]                            |         
    0x0000148c movs r2, 0x38                                 |         r2 = 0x38;
    0x0000148e ldr.w r3, [sl]                                |         r3 = *(sl);
    0x00001492 movs r1, 1                                    |         r1 = 1;
    0x00001494 add r0, pc                                    |         r0 = 0x299a;
    0x00001496 blx 0xaac                                     |         fwrite (r0, r1, r2, r3);
    0x0000149a b 0xd9a                                       |         goto label_1;
                                                             |     }
    0x0000149c blx 0xb60                                     |     r0 = errno_location ();
    0x000014a0 ldr r0, [r0]                                  |     r0 = *(r0);
    0x000014a2 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x000014a6 blx 0xb0c                                     |     strerror (r0);
    0x000014aa ldr r2, [pc, 0x58]                            |     
    0x000014ac mov r3, r0                                    |     r3 = r0;
    0x000014ae movs r1, 1                                    |     r1 = 1;
    0x000014b0 mov r0, r4                                    |     r0 = r4;
    0x000014b2 add r2, pc                                    |     r2 = 0x29bc;
    0x000014b4 blx 0xb90                                     |     fprintf_chk ()
    0x000014b8 b 0xd9a                                       |     goto label_1;
                                                             | label_46:
    0x000014ba blx 0xb60                                     |     r0 = errno_location ();
    0x000014be ldr r0, [r0]                                  |     r0 = *(r0);
    0x000014c0 ldr.w r4, [sl]                                |     r4 = *(sl);
    0x000014c4 blx 0xb0c                                     |     strerror (r0);
    0x000014c8 ldr r2, [pc, 0x3c]                            |     
    0x000014ca mov r3, r0                                    |     r3 = r0;
    0x000014cc movs r1, 1                                    |     r1 = 1;
    0x000014ce mov r0, r4                                    |     r0 = r4;
    0x000014d0 add r2, pc                                    |     r2 = 0x29dc;
    0x000014d2 blx 0xb90                                     |     fprintf_chk ()
    0x000014d6 b 0xee8                                       |     goto label_13;
                                                             | label_48:
    0x000014d8 blx 0xb60                                     |     r0 = errno_location ();
    0x000014dc ldr r0, [r0]                                  |     r0 = *(r0);
    0x000014de ldr.w r4, [sl]                                |     r4 = *(sl);
    0x000014e2 blx 0xb0c                                     |     strerror (r0);
    0x000014e6 ldr r2, [pc, 0x24]                            |     
    0x000014e8 mov r3, r0                                    |     r3 = r0;
    0x000014ea movs r1, 1                                    |     r1 = 1;
    0x000014ec mov r0, r4                                    |     r0 = r4;
    0x000014ee add r2, pc                                    |     r2 = 0x2a00;
    0x000014f0 blx 0xb90                                     |     fprintf_chk ()
    0x000014f4 b 0xd9a                                       |     goto label_1;
                                                             | label_38:
    0x000014f6 blx 0xa94                                     |     stack_chk_fail ();
    0x000014fa nop                                           |     
    0x000014fc lsls r2, r4, 0x1c                             |     r2 = r4 << 0x1c;
    0x000014fe movs r0, r0                                   |     
    0x00001500 lsls r4, r7, 0x15                             |     r4 = r7 << 0x15;
    0x00001502 movs r0, r0                                   |     
    0x00001504 lsls r2, r0, 0x15                             |     r2 = r0 << 0x15;
    0x00001506 movs r0, r0                                   |     
    0x00001508 lsls r0, r6, 0x1d                             |     r0 = r6 << 0x1d;
    0x0000150a movs r0, r0                                   |     
    0x0000150c lsls r6, r3, 0x15                             |     r6 = r3 << 0x15;
    0x0000150e movs r0, r0                                   |     
    0x00001544 adds r0, 0x14                                 |     r0 += 0x14;
    0x00001546 b 0x1088                                      |     goto label_17;
                                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/bin/system-rtc-sync @ 0x160c */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.0000160c ()              | void fcn_0000160c (int16_t arg1, int16_t arg2) {
                                         |     int16_t var_0h;
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x0000160c push {r4, r5, r6, lr}     |     
    0x0000160e mov r4, r0                |     r4 = r0;
    0x00001610 ldr r5, [pc, 0x64]        |     
    0x00001612 sub sp, 8                 |     
    0x00001614 mov r6, r1                |     r6 = r1;
    0x00001616 ldr r0, [r0]              |     r0 = *(r0);
    0x00001618 blx 0xa10                 |     r0 = fsync ();
    0x0000161c cmp r0, 0                 |     
    0x0000161e add r5, pc                |     r5 = 0x2c9a;
                                         |     if (r0 < 0) {
    0x00001620 blt 0x163a                |         goto label_1;
                                         |     }
    0x00001622 ldr r0, [r4]              |     r0 = *(r4);
    0x00001624 blx 0xbcc                 |     r0 = close (r0);
    0x00001628 cmp r0, 0                 |     
    0x0000162a mov.w r3, -1              |     r3 = -1;
    0x0000162e it ge                     |     
                                         |     if (r0 < 0) {
    0x00001630 movge r0, 0               |         r0 = 0;
                                         |     }
    0x00001632 str r3, [r4]              |     *(r4) = r3;
                                         |     if (r0 < 0) {
    0x00001634 blt 0x1660                |         goto label_2;
                                         |     }
                                         |     do {
    0x00001636 add sp, 8                 |         
    0x00001638 pop {r4, r5, r6, pc}      |         
                                         | label_1:
    0x0000163a ldr r3, [pc, 0x40]        |         r3 = *(0x167e);
    0x0000163c ldr r3, [r5, r3]          |         r3 = *((r5 + r3));
    0x0000163e ldr r5, [r3]              |         r5 = *(0x167e);
    0x00001640 blx 0xb60                 |         r0 = errno_location ();
    0x00001644 ldr r0, [r0]              |         r0 = *(r0);
    0x00001646 blx 0xb0c                 |         strerror (r0);
    0x0000164a ldr r2, [pc, 0x34]        |         
    0x0000164c mov r4, r0                |         r4 = r0;
    0x0000164e add r2, pc                |         r2 = 0x2cd4;
                                         | label_0:
    0x00001650 mov r3, r6                |         r3 = r6;
    0x00001652 movs r1, 1                |         r1 = 1;
    0x00001654 mov r0, r5                |         r0 = r5;
    0x00001656 str r4, [sp]              |         *(sp) = r4;
    0x00001658 blx 0xb90                 |         fprintf_chk ()
    0x0000165c movs r0, 1                |         r0 = 1;
    0x0000165e b 0x1636                  |         
                                         |     } while (1);
                                         | label_2:
    0x00001660 ldr r3, [pc, 0x18]        |     r3 = *(0x167c);
    0x00001662 ldr r3, [r5, r3]          |     r3 = *((r5 + r3));
    0x00001664 ldr r5, [r3]              |     r5 = *(0x167c);
    0x00001666 blx 0xb60                 |     r0 = errno_location ();
    0x0000166a ldr r0, [r0]              |     r0 = *(r0);
    0x0000166c blx 0xb0c                 |     strerror (r0);
    0x00001670 ldr r2, [pc, 0x10]        |     
    0x00001672 mov r4, r0                |     r4 = r0;
    0x00001674 add r2, pc                |     r2 = 0x2cfc;
    0x00001676 b 0x1650                  |     goto label_0;
                                         | }

[*] Function fprintf used 28 times system-rtc-sync