[*] Binary protection state of ntptime

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


[*] Function fprintf tear down of ntptime

    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/ntptime @ 0x16e88 */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) aav.0x00016e88 ()                                | void aav_0x00016e88 (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_4h;
                                                             |     int32_t var_8h;
                                                             |     int32_t var_ch;
                                                             |     FILE * stream;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_1h;
                                                             |     int32_t var_22ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00016e88 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00016e8c sub sp, sp, 0x22c                             |     
    0x00016e90 add r6, sp, 0x28                              |     r6 += var_28h;
    0x00016e94 mov sb, r0                                    |     sb = r0;
    0x00016e98 mov sl, r1                                    |     sl = r1;
    0x00016e9c mov r8, r2                                    |     r8 = r2;
    0x00016ea0 mov r1, 0x80                                  |     r1 = 0x80;
    0x00016ea4 add r2, sp, 0x1c                              |     r2 += var_1ch;
    0x00016ea8 mov r0, r6                                    |     r0 = r6;
    0x00016eac mov fp, r3                                    |     
    0x00016eb0 bl 0x17094                                    |     fcn_00017094 (r0);
    0x00016eb4 subs r4, r0, 0                                |     r4 -= var_28h;
                                                             |     if (r4 == var_28h) {
    0x00016eb8 ldrne r7, [pc, 0xfc]                          |         r7 = *((pc + 0xfc));
                                                             |     }
                                                             |     if (r4 == var_28h) {
    0x00016ebc bne 0x16ed4                                   |         
    0x00016ec0 ldr r2, [sp, 0x1c]                            |         r2 = var_1ch;
    0x00016ec4 ldr r3, [pc, 0xf4]                            |         r3 = *(0x16fbc);
    0x00016ec8 cmp r2, 0                                     |         
    0x00016ecc ldr r7, [pc, 0xe8]                            |         r7 = *(0x16fb8);
                                                             |         if (r2 > 0) {
    0x00016ed0 movgt r7, r3                                  |             r7 = r3;
                                                             |             goto label_3;
                                                             |         }
                                                             |     }
                                                             | label_3:
    0x00016ed4 ldr r5, [pc, 0xe8]                            |     r5 = "__back_trace";
    0x00016ed8 cmp r8, 3                                     |     
    0x00016edc ldr r3, [r5]                                  |     r3 = "__back_trace";
    0x00016ee0 ldr r0, [pc, 0xe0]                            |     
    0x00016ee4 str r3, [sp, 0x14]                            |     stream = r3;
                                                             |     if (r8 > 3) {
    0x00016ee8 ldrls r3, [pc, 0xdc]                          |         r3 = *((pc + 0xdc));
                                                             |     }
    0x00016eec mov r2, 0x65                                  |     r2 = 0x65;
                                                             |     if (r8 > 3) {
    0x00016ef0 ldrls r8, [r3, r8, lsl 2]                     |         offset_0 = r8 << 2;
                                                             |         r8 = *((r3 + offset_0));
                                                             |     }
    0x00016ef4 mov r1, 1                                     |     r1 = 1;
    0x00016ef8 ldr r3, [pc, 0xd0]                            |     r3 = *(0x16fcc);
    0x00016efc ldr r0, [r0]                                  |     r0 = stderr;
                                                             |     if (r8 <= 3) {
    0x00016f00 movhi r8, 0                                   |         r8 = 0;
                                                             |     }
    0x00016f04 bl 0x19854                                    |     fcn_00019854 (r0, r1);
    0x00016f08 str r7, [sp, 0xc]                             |     var_ch = r7;
    0x00016f0c stm sp, {r8, fp}                              |     *(sp) = r8;
                                                             |     *((sp + 4)) = fp;
    0x00016f10 ldr r1, [pc, 0xbc]                            |     r1 = *(0x16fd0);
    0x00016f14 mov r3, sl                                    |     r3 = sl;
    0x00016f18 mov r2, sb                                    |     r2 = sb;
    0x00016f1c str r0, [sp, 8]                               |     var_8h = r0;
    0x00016f20 ldr r0, [sp, 0x14]                            |     r0 = stream;
    0x00016f24 bl 0x11588                                    |     fprintf (r0, r1, r2, r3)
    0x00016f28 cmp r4, 0                                     |     
                                                             |     if (r4 == 0) {
    0x00016f2c beq 0x16fac                                   |         goto label_4;
                                                             |     }
                                                             | label_0:
    0x00016f30 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00016f34 bl 0x11528                                    |     fflush (r0);
    0x00016f38 add sp, sp, 0x22c                             |     
    0x00016f3c pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |     
                                                             |     do {
    0x00016f40 add r2, sp, 0x24                              |         r2 += var_24h;
    0x00016f44 add r1, sp, 0x20                              |         r1 += var_20h;
    0x00016f48 ldr r0, [r6, r4, lsl 2]                       |         offset_1 = r4 << 2;
                                                             |         r0 = *((r6 + offset_1));
    0x00016f4c str r7, [sp, 0x20]                            |         var_20h = r7;
    0x00016f50 bl 0x1714c                                    |         r0 = fcn_0001714c (r0, r1);
    0x00016f54 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00016f58 bne 0x16f94                                   |             goto label_5;
                                                             |         }
    0x00016f5c ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00016f60 mov r2, r4                                    |         r2 = r4;
    0x00016f64 str r3, [sp, 4]                               |         var_4h = r3;
    0x00016f68 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00016f6c mov r1, sb                                    |         r1 = sb;
    0x00016f70 str r3, [sp]                                  |         *(sp) = r3;
    0x00016f74 ldr r0, [r5]                                  |         r0 = *(r5);
    0x00016f78 ldr r3, [r6, r4, lsl 2]                       |         offset_2 = r4 << 2;
                                                             |         r3 = *((r6 + offset_2));
    0x00016f7c bl 0x11588                                    |         fprintf (r0, r1, r2, r3)
                                                             | label_1:
    0x00016f80 add r4, r4, 1                                 |         r4 += var_1h;
                                                             | label_2:
    0x00016f84 ldr r3, [sp, 0x1c]                            |         r3 = var_1ch;
    0x00016f88 cmp r3, r4                                    |         
    0x00016f8c bgt 0x16f40                                   |         
                                                             |     } while (r3 > r4);
    0x00016f90 b 0x16f30                                     |     goto label_0;
                                                             | label_5:
    0x00016f94 ldr r3, [r6, r4, lsl 2]                       |     offset_3 = r4 << 2;
                                                             |     r3 = *((r6 + offset_3));
    0x00016f98 mov r2, r4                                    |     r2 = r4;
    0x00016f9c mov r1, r8                                    |     r1 = r8;
    0x00016fa0 ldr r0, [r5]                                  |     r0 = *(r5);
    0x00016fa4 bl 0x11588                                    |     fprintf (r0, r1, r2, r3)
    0x00016fa8 b 0x16f80                                     |     goto label_1;
                                                             | label_4:
    0x00016fac mov r7, r4                                    |     r7 = r4;
    0x00016fb0 ldr r8, [pc, 0x20]                            |     r8 = "%s:%d: %s(%s) %s%s\n";
    0x00016fb4 ldr sb, [pc, 0x20]                            |     sb = "#%d %p in %s()+0x%lx\n";
    0x00016fb8 b 0x16f84                                     |     goto label_2;
                                                             | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/ntptime @ 0x171ec */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) aav.0x000171ec ()            | void aav_0x000171ec (int32_t arg1, int32_t arg2) {
                                         |     r0 = arg1;
                                         |     r1 = arg2;
    0x000171ec push {r4, r5, r6, lr}     |     
    0x000171f0 ldr r4, [pc, 0x40]        |     r4 = *(0x17234);
    0x000171f4 mov r5, r2                |     r5 = r2;
    0x000171f8 mov r6, r3                |     r6 = r3;
    0x000171fc mov r2, r0                |     r2 = r0;
    0x00017200 mov r3, r1                |     r3 = r1;
    0x00017204 ldr r0, [r4]              |     r0 = *(0x17234);
    0x00017208 ldr r1, [pc, 0x2c]        |     r1 = stderr;
    0x0001720c bl 0x11588                |     fprintf (r0, r1, r2, r3, r4, r5, r6)
    0x00017210 mov r2, r6                |     r2 = r6;
    0x00017214 mov r1, r5                |     r1 = r5;
    0x00017218 ldr r0, [r4]              |     r0 = *(0x17234);
    0x0001721c bl 0x1184c                |     vfprintf (r0, r1, r2)
    0x00017220 ldr r1, [r4]              |     r1 = *(0x17234);
    0x00017224 mov r0, 0xa               |     r0 = 0xa;
    0x00017228 bl 0x11750                |     fputc (r0, r1);
    0x0001722c ldr r0, [r4]              |     r0 = *(0x17234);
    0x00017230 pop {r4, r5, r6, lr}      |     
    0x00017234 b 0x11528                 |     return void (*0x11528)() ();
                                         | }
    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/ntptime @ 0x17240 */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) aav.0x00017240 ()                                    | void aav_0x00017240 (int32_t arg1, int32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x00017240 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr}     |     
    0x00017244 ldr r4, [pc, 0x6c]                                |     r4 = *(0x172b4);
    0x00017248 mov r8, r0                                        |     r8 = r0;
    0x0001724c ldr r0, [pc, 0x68]                                |     
    0x00017250 mov sb, r1                                        |     sb = r1;
    0x00017254 mov r5, r2                                        |     r5 = r2;
    0x00017258 mov r6, r3                                        |     r6 = r3;
    0x0001725c mov r2, 0x6e                                      |     r2 = 0x6e;
    0x00017260 ldr r3, [pc, 0x58]                                |     r3 = *(0x172bc);
    0x00017264 mov r1, 1                                         |     r1 = 1;
    0x00017268 ldr r0, [r0]                                      |     r0 = stderr;
    0x0001726c ldr r7, [r4]                                      |     r7 = *(0x172b4);
    0x00017270 bl 0x19854                                        |     fcn_00019854 (r0, r1);
    0x00017274 mov r3, sb                                        |     r3 = sb;
    0x00017278 mov r2, r8                                        |     r2 = r8;
    0x0001727c ldr r1, [pc, 0x40]                                |     r1 = "fatal_error";
    0x00017280 str r0, [sp]                                      |     *(sp) = r0;
    0x00017284 mov r0, r7                                        |     r0 = r7;
    0x00017288 bl 0x11588                                        |     fprintf (r0, "fatal_error", r2, r3)
    0x0001728c mov r2, r6                                        |     r2 = r6;
    0x00017290 mov r1, r5                                        |     r1 = r5;
    0x00017294 ldr r0, [r4]                                      |     r0 = *(0x172b4);
    0x00017298 bl 0x1184c                                        |     vfprintf (r0, r1, r2)
    0x0001729c ldr r1, [r4]                                      |     r1 = *(0x172b4);
    0x000172a0 mov r0, 0xa                                       |     r0 = 0xa;
    0x000172a4 bl 0x11750                                        |     fputc (r0, r1);
    0x000172a8 ldr r0, [r4]                                      |     r0 = *(0x172b4);
    0x000172ac add sp, sp, 0xc                                   |     
    0x000172b0 pop {r4, r5, r6, r7, r8, sb, lr}                  |     
    0x000172b4 b 0x11528                                         |     return void (*0x11528)() ();
                                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/ntptime @ 0x1661c */
                                                             | #include <stdint.h>
                                                             |  
    ; (fcn) fcn.0001661c ()                                  | void fcn_0001661c (int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_1ch;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x0001661c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00016620 ldr r4, [pc, 0x1a0]                           |     r4 = *(0x167c4);
    0x00016624 sub sp, sp, 0x1c                              |     
    0x00016628 mov r3, 0xa                                   |     r3 = 0xa;
    0x0001662c strh r3, [sp, 0x14]                           |     var_14h = r3;
    0x00016630 mov r3, 0                                     |     r3 = 0;
    0x00016634 strb r3, [sp, 0x10]                           |     var_10h = r3;
    0x00016638 ldr r3, [pc, 0x18c]                           |     r3 = *(0x167c8);
    0x0001663c str r0, [sp, 0xc]                             |     var_ch = r0;
    0x00016640 ldr r5, [r3]                                  |     r5 = *(0x167c8);
    0x00016644 ldr r3, [r4]                                  |     r3 = *(0x167c4);
    0x00016648 mov r8, r1                                    |     r8 = r1;
    0x0001664c cmp r5, r3                                    |     
                                                             |     if (r5 != r3) {
    0x00016650 beq 0x16674                                   |         
    0x00016654 mov r1, 0x2f                                  |         r1 = 0x2f;
    0x00016658 mov r0, r5                                    |         r0 = r5;
    0x0001665c str r5, [r4]                                  |         *(r4) = r5;
    0x00016660 bl 0x11570                                    |         r0 = strrchr (r0, r1);
    0x00016664 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00016668 addne r0, r0, 1                               |             r0++;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x0001666c strne r0, [r4, 4]                             |             *((r4 + 4)) = r0;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00016670 streq r5, [r4, 4]                             |             *((r4 + 4)) = r5;
                                                             |             goto label_0;
                                                             |         }
                                                             |     }
                                                             | label_0:
    0x00016674 ldr r5, [pc, 0x154]                           |     r5 = *(0x167cc);
    0x00016678 ldr sb, [r4, 8]                               |     sb = *((r4 + 8));
    0x0001667c ldr r6, [r5]                                  |     r6 = *(0x167cc);
    0x00016680 cmp r6, 0                                     |     
                                                             |     if (r6 == 0) {
    0x00016684 beq 0x167b0                                   |         goto label_1;
                                                             |     }
    0x00016688 mov r2, r8                                    |     r2 = r8;
    0x0001668c ldr r1, [pc, 0x140]                           |     r1 = *(0x167d0);
    0x00016690 ldr r0, [sp, 0xc]                             |     r0 = var_ch;
    0x00016694 bl 0x11708                                    |     syslog ();
    0x00016698 mov r6, 0                                     |     r6 = 0;
                                                             |     do {
    0x0001669c orrs r3, sb, r6                               |         r3 = sb | r6;
                                                             |         if (r3 != sb) {
    0x000166a0 beq 0x167a8                                   |             
    0x000166a4 ldr r7, [r5, 4]                               |             r7 = *((r5 + 4));
    0x000166a8 cmp r7, 0                                     |             
                                                             |             if (r7 != 0) {
    0x000166ac beq 0x166b8                                   |                 
    0x000166b0 bl 0x1a8dc                                    |                 r0 = fcn_0001a8dc ();
    0x000166b4 mov r7, r0                                    |                 r7 = r0;
                                                             |             }
    0x000166b8 ldr r3, [r5, 8]                               |             r3 = *((r5 + 8));
    0x000166bc orrs r3, r6, r3                               |             r3 = r6 | r3;
                                                             |             if (r3 != r6) {
    0x000166c0 mvneq sl, 0                                   |                 sl = ~0;
                                                             |             }
                                                             |             if (r3 != r6) {
    0x000166c4 beq 0x166d0                                   |                 
    0x000166c8 bl 0x11480                                    |                 r0 = getpid ();
    0x000166cc mov sl, r0                                    |                 sl = r0;
                                                             |             }
    0x000166d0 mov r0, r8                                    |             r0 = r8;
    0x000166d4 bl 0x117ec                                    |             r0 = strlen (r0);
    0x000166d8 add r0, r8, r0                                |             r0 = r8 + r0;
    0x000166dc ldrb r3, [r0, -1]                             |             r3 = *((r0 - 1));
    0x000166e0 cmp r3, 0xa                                   |             
                                                             |             if (r3 == 0xa) {
    0x000166e4 addne fp, sp, 0x14                            |                 
                                                             |             }
                                                             |             if (r3 != 0xa) {
    0x000166e8 addeq fp, sp, 0x10                            |                 
                                                             |             }
    0x000166ec cmp sb, 0                                     |             
                                                             |             if (sb != 0) {
    0x000166f0 beq 0x16760                                   |                 
    0x000166f4 ldr r3, [sp, 0xc]                             |                 r3 = var_ch;
    0x000166f8 cmp r3, 3                                     |                 
                                                             |                 if (r3 > 3) {
    0x000166fc ldrle r3, [pc, 0xd4]                          |                     r3 = obj.stderr;
                                                             |                 }
                                                             |                 if (r3 <= 3) {
    0x00016700 ldrgt r3, [pc, 0xd4]                          |                     r3 = obj.stdout;
                                                             |                 }
    0x00016704 ldr sb, [r3]                                  |                 sb = *(r3);
    0x00016708 ldr r3, [r5, 4]                               |                 r3 = *((r5 + 4));
    0x0001670c cmp r3, 0                                     |                 
                                                             |                 if (r3 != 0) {
    0x00016710 beq 0x16724                                   |                     
    0x00016714 mov r2, r7                                    |                     r2 = r7;
    0x00016718 ldr r1, [pc, 0xc0]                            |                     r1 = stdout;
    0x0001671c mov r0, sb                                    |                     r0 = sb;
    0x00016720 bl 0x11588                                    |                     fprintf (r0, r1, r2)
                                                             |                 }
    0x00016724 ldr r3, [r5, 8]                               |                 r3 = *((r5 + 8));
    0x00016728 cmp r3, 0                                     |                 
                                                             |                 if (r3 != 0) {
    0x0001672c beq 0x16744                                   |                     
    0x00016730 mov r3, sl                                    |                     r3 = sl;
    0x00016734 ldr r2, [r4, 4]                               |                     r2 = *((r4 + 4));
    0x00016738 ldr r1, [pc, 0xa4]                            |                     r1 = "_s_";
    0x0001673c mov r0, sb                                    |                     r0 = sb;
    0x00016740 bl 0x11588                                    |                     fprintf (r0, "_s_", r2, r3)
                                                             |                 }
    0x00016744 mov r3, fp                                    |                 r3 = fp;
    0x00016748 mov r2, r8                                    |                 r2 = r8;
    0x0001674c ldr r1, [pc, 0x94]                            |                 r1 = "_s__d_:_";
    0x00016750 mov r0, sb                                    |                 r0 = sb;
    0x00016754 bl 0x11588                                    |                 fprintf (r0, "_s__d_:_", r2, r3)
    0x00016758 mov r0, sb                                    |                 r0 = sb;
    0x0001675c bl 0x11528                                    |                 fflush (r0);
                                                             |             }
    0x00016760 cmp r6, 0                                     |             
                                                             |             if (r6 == 0) {
    0x00016764 beq 0x167a8                                   |                 goto label_2;
                                                             |             }
    0x00016768 ldr r3, [r5, 4]                               |             r3 = *((r5 + 4));
    0x0001676c ldr r5, [pc, 0x78]                            |             r5 = *(0x167e8);
    0x00016770 cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x00016774 beq 0x16788                                   |                 
    0x00016778 mov r2, r7                                    |                 r2 = r7;
    0x0001677c ldr r1, [pc, 0x5c]                            |                 r1 = stdout;
    0x00016780 ldr r0, [r5]                                  |                 r0 = *(r5);
    0x00016784 bl 0x11588                                    |                 fprintf (r0, r1, r2)
                                                             |             }
    0x00016788 stm sp, {r8, fp}                              |             *(sp) = r8;
                                                             |             *((sp + 4)) = fp;
    0x0001678c ldr r2, [r4, 4]                               |             r2 = *((r4 + 4));
    0x00016790 mov r3, sl                                    |             r3 = sl;
    0x00016794 ldr r1, [pc, 0x54]                            |             r1 = *(0x167ec);
    0x00016798 ldr r0, [r5]                                  |             r0 = *(r5);
    0x0001679c bl 0x11588                                    |             fprintf (r0, r1, r2, r3)
    0x000167a0 ldr r0, [r5]                                  |             r0 = *(r5);
    0x000167a4 bl 0x11528                                    |             fflush (r0);
                                                             |         }
                                                             | label_2:
    0x000167a8 add sp, sp, 0x1c                              |         
    0x000167ac pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |         
                                                             | label_1:
    0x000167b0 ldr r3, [pc, 0x34]                            |         
    0x000167b4 ldr r3, [r3]                                  |         r3 = *(0x167e8);
    0x000167b8 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000167bc movne r6, 1                                   |             r6 = 1;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x000167c0 moveq sb, 1                                   |             sb = 1;
                                                             |         }
    0x000167c4 b 0x1669c                                     |         
                                                             |     } while (1);
                                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/ntptime @ 0x173c4 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.000173c4 ()                      | void fcn_000173c4 () {
                                                 |     int32_t var_0h;
                                                 |     int32_t var_4h;
                                                 |     int32_t var_8h;
    0x000173c4 push {r0, r1, r4, r5, r6, lr}     |     
    0x000173c8 ldr r4, [pc, 0x6c]                |     r4 = *(0x17438);
    0x000173cc ldr r1, [pc, 0x6c]                |     r1 = *(0x1743c);
    0x000173d0 add r0, r4, 4                     |     r0 = r4 + 4;
    0x000173d4 bl 0x115ac                        |     r0 = pthread_once ();
    0x000173d8 cmp r0, 0                         |     
                                                 |     if (r0 != 0) {
    0x000173dc beq 0x17434                       |         
    0x000173e0 ldr r3, [pc, 0x5c]                |         r3 = *(0x17440);
    0x000173e4 mov r2, 0x6e                      |         r2 = 0x6e;
    0x000173e8 ldr r5, [r3]                      |         r5 = *(0x17440);
    0x000173ec mov r1, 1                         |         r1 = 1;
    0x000173f0 ldr r3, [pc, 0x50]                |         r3 = stderr;
    0x000173f4 ldr r0, [r4]                      |         r0 = *(r4);
    0x000173f8 bl 0x19854                        |         fcn_00019854 (r0, r1);
    0x000173fc ldr r3, [pc, 0x48]                |         r3 = "fatal_error";
    0x00017400 mov r2, 0x65                      |         r2 = 0x65;
    0x00017404 mov r1, 1                         |         r1 = 1;
    0x00017408 mov r6, r0                        |         r6 = r0;
    0x0001740c ldr r0, [r4]                      |         r0 = *(r4);
    0x00017410 bl 0x19854                        |         fcn_00019854 (r0, r1);
    0x00017414 mov r3, 0x4d                      |         r3 = 0x4d;
    0x00017418 ldr r2, [pc, 0x30]                |         r2 = *(0x1744c);
    0x0001741c ldr r1, [pc, 0x30]                |         r1 = "__.._lib_isc_lib.c";
    0x00017420 str r6, [sp]                      |         *(sp) = r6;
    0x00017424 str r0, [sp, 4]                   |         var_4h = r0;
    0x00017428 mov r0, r5                        |         r0 = r5;
    0x0001742c bl 0x11588                        |         r0 = fprintf (r0, "__.._lib_isc_lib.c", r2, r3, r4, r5, r6)
    0x00017430 bl 0x11534                        |         abort ();
                                                 |     }
    0x00017434 add sp, sp, 8                     |     
    0x00017438 pop {r4, r5, r6, pc}              |     
                                                 | }
    ; assembly                                               | /* r2dec pseudo code output */
                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/bin/ntptime @ 0x18ba4 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.00018ba4 ()                                  | void fcn_00018ba4 (int32_t arg_ch, int32_t arg_198h, int32_t arg_19ch, int32_t arg_1a0h, int32_t arg_1a8h, int32_t arg_1ach, int32_t arg1, int32_t arg2) {
                                                             |     int32_t var_0h;
                                                             |     int32_t var_ch;
                                                             |     int32_t var_10h;
                                                             |     int32_t var_14h;
                                                             |     int32_t var_18h;
                                                             |     int32_t var_1ch;
                                                             |     int32_t var_20h;
                                                             |     int32_t var_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_34h;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_3ch;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_60h;
                                                             |     int32_t var_a0h;
                                                             |     int32_t var_d0h;
                                                             |     int32_t var_d0h_2;
                                                             |     int32_t var_108h;
                                                             |     int32_t var_118h;
                                                             |     int32_t var_138h;
                                                             |     int32_t var_0h_2;
                                                             |     int32_t var_174h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00018ba4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00018ba8 subs r5, r0, 0                                |     r5 -= arg_198h;
    0x00018bac sub sp, sp, 0x174                             |     
    0x00018bb0 str r1, [sp, 0x28]                            |     var_28h = r1;
    0x00018bb4 str r2, [sp, 0x2c]                            |     var_2ch = r2;
    0x00018bb8 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00018bbc ldr r4, [sp, 0x19c]                           |     r4 = *(arg_19ch);
                                                             |     if (r5 == arg_198h) {
    0x00018bc0 beq 0x18be8                                   |         goto label_14;
                                                             |     }
    0x00018bc4 ldr r2, [r5]                                  |     r2 = *(r5);
    0x00018bc8 ldr r3, [pc, 0x8f0]                           |     r3 = *(0x194bc);
    0x00018bcc cmp r2, r3                                    |     
                                                             |     if (r2 == r3) {
    0x00018bd0 beq 0x18be8                                   |         goto label_14;
                                                             |     }
    0x00018bd4 ldr r3, [pc, 0x8e8]                           |     r3 = *(0x194c0);
    0x00018bd8 mov r2, 0                                     |     r2 = 0;
    0x00018bdc mov r1, 0x590                                 |     r1 = 0x590;
                                                             |     do {
                                                             | label_0:
    0x00018be0 ldr r0, [pc, 0x8e0]                           |         r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
    0x00018be4 bl 0x16fe0                                    |         fcn_00016fe0 ();
                                                             | label_14:
    0x00018be8 ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x00018bec cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00018bf0 ldreq r3, [pc, 0x8d4]                         |             r3 = "category_____void__0_";
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00018bf4 ldreq r2, [sp, 0x28]                          |             r2 = var_28h;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x00018bf8 ldreq r1, [pc, 0x8d0]                         |             r1 = *(0x000194d0);
                                                             |         }
    0x00018bfc beq 0x18be0                                   |         
                                                             |     } while (r3 == 0);
    0x00018c00 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00018c04 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00018c08 ldreq r3, [pc, 0x8c4]                         |         r3 = "module_____void__0_";
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00018c0c ldreq r2, [sp, 0x2c]                          |         r2 = var_2ch;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00018c10 ldreq r1, [pc, 0x8c0]                         |         r1 = *(0x000194d8);
                                                             |         goto label_15;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_15:
    0x00018c14 beq 0x18be0                                   |         goto label_0;
                                                             |     }
    0x00018c18 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00018c1c cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00018c20 ldreq r3, [pc, 0x8b4]                         |         r3 = "level___0";
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00018c24 ldreq r2, [sp, 0x20]                          |         r2 = var_20h;
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00018c28 ldreq r1, [pc, 0x8b0]                         |         r1 = *(0x000194e0);
                                                             |         goto label_16;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_16:
    0x00018c2c beq 0x18be0                                   |         goto label_0;
                                                             |     }
    0x00018c30 ldr r3, [sp, 0x1a8]                           |     r3 = *(arg_1a8h);
    0x00018c34 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00018c38 ldreq r3, [pc, 0x8a4]                         |         r3 = "format != ((void *)0)";
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00018c3c ldreq r2, [sp, 0x1a8]                         |         r2 = *(arg_1a8h);
                                                             |     }
                                                             |     if (r3 == 0) {
    0x00018c40 ldreq r1, [pc, 0x8a0]                         |         r1 = *(0x000194e8);
                                                             |         goto label_17;
                                                             |     }
                                                             |     if (r3 == 0) {
                                                             | label_17:
    0x00018c44 beq 0x18be0                                   |         goto label_0;
                                                             |     }
    0x00018c48 cmp r5, 0                                     |     
                                                             |     if (r5 == 0) {
    0x00018c4c beq 0x19104                                   |         goto label_12;
                                                             |     }
    0x00018c50 ldr r3, [sp, 0x28]                            |     r3 = var_28h;
    0x00018c54 ldr r2, [r3, 4]                               |     r2 = *((r3 + 4));
    0x00018c58 ldr r3, [r5, 0xc]                             |     r3 = *((r5 + 0xc));
    0x00018c5c cmp r2, r3                                    |     
                                                             |     if (r2 < r3) {
    0x00018c60 ldrhs r3, [pc, 0x884]                         |         r3 = *((pc + 0x884));
                                                             |     }
                                                             |     if (r2 < r3) {
    0x00018c64 movhs r2, 0                                   |         r2 = 0;
                                                             |     }
                                                             |     if (r2 >= r3) {
    0x00018c68 ldrhs r1, [pc, 0x880]                         |         r1 = *(0x000194f0);
                                                             |         goto label_18;
                                                             |     }
                                                             |     if (r2 >= r3) {
                                                             | label_18:
    0x00018c6c bhs 0x18be0                                   |         goto label_0;
                                                             |     }
    0x00018c70 ldr r3, [sp, 0x2c]                            |     r3 = var_2ch;
    0x00018c74 ldr r2, [r3, 4]                               |     r2 = *((r3 + 4));
    0x00018c78 ldr r3, [r5, 0x14]                            |     r3 = *((r5 + 0x14));
    0x00018c7c cmp r2, r3                                    |     
                                                             |     if (r2 < r3) {
    0x00018c80 ldrhs r3, [pc, 0x86c]                         |         r3 = "module__id___lctx__module_count";
                                                             |     }
                                                             |     if (r2 < r3) {
    0x00018c84 movhs r2, 0                                   |         r2 = 0;
                                                             |     }
                                                             |     if (r2 >= r3) {
    0x00018c88 ldrhs r1, [pc, 0x868]                         |         r1 = *(0x000194f8);
                                                             |         goto label_19;
                                                             |     }
                                                             |     if (r2 >= r3) {
                                                             | label_19:
    0x00018c8c bhs 0x18be0                                   |         goto label_0;
                                                             |     }
    0x00018c90 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x00018c94 mov r0, r5                                    |     r0 = r5;
    0x00018c98 bl 0x18b54                                    |     r0 = fcn_00018b54 (r0, r1);
    0x00018c9c cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00018ca0 beq 0x19104                                   |         goto label_12;
                                                             |     }
    0x00018ca4 cmp r4, 0                                     |     
                                                             |     if (r4 != 0) {
    0x00018ca8 beq 0x18cc0                                   |         
    0x00018cac add r1, sp, 0x1a0                             |         r1 += arg_1a0h;
    0x00018cb0 ldm r1, {r1, r2, r3}                          |         r1 = *(r1);
                                                             |         r2 = *((r1 + 4));
                                                             |         r3 = *((r1 + 8));
    0x00018cb4 mov r0, r4                                    |         r0 = r4;
    0x00018cb8 bl 0x19854                                    |         fcn_00019854 (r0, r1);
    0x00018cbc str r0, [sp, 0x1a8]                           |         *(arg_1a8h) = r0;
                                                             |     }
    0x00018cc0 mov r3, 0                                     |     r3 = 0;
    0x00018cc4 strb r3, [sp, 0x60]                           |     var_60h = r3;
    0x00018cc8 strb r3, [sp, 0x48]                           |     var_48h = r3;
    0x00018ccc add r3, r5, 0x1c                              |     r3 = r5 + 0x1c;
    0x00018cd0 mov r0, r3                                    |     r0 = r3;
    0x00018cd4 str r3, [sp, 0x30]                            |     var_30h = r3;
    0x00018cd8 bl 0x11780                                    |     r0 = pthread_mutex_lock ();
    0x00018cdc cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00018ce0 beq 0x18cf4                                   |         
    0x00018ce4 ldr r2, [pc, 0x810]                           |         r2 = *(0x194f8);
    0x00018ce8 ldr r1, [pc, 0x810]                           |         r1 = "__pthread_mutex_lock___lctx__lock_____0____0_:_34___0";
    0x00018cec ldr r0, [pc, 0x7d4]                           |         r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
    0x00018cf0 bl 0x17364                                    |         fcn_00017364 ("lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____", "__pthread_mutex_lock___lctx__lock_____0____0_:_34___0");
                                                             |     }
    0x00018cf4 ldr r2, [r5, 0x34]                            |     r2 = *((r5 + 0x34));
    0x00018cf8 mov r3, 0                                     |     r3 = 0;
    0x00018cfc str r2, [sp, 0x24]                            |     var_24h = r2;
    0x00018d00 ldr r2, [sp, 0x28]                            |     r2 = var_28h;
    0x00018d04 strb r3, [r5, 0x38]                           |     *((r5 + 0x38)) = r3;
    0x00018d08 ldr r1, [r2, 4]                               |     r1 = *((r2 + 4));
    0x00018d0c ldr r2, [sp, 0x24]                            |     r2 = var_24h;
    0x00018d10 ldr r6, [pc, 0x7ec]                           |     r6 = *(0x19500);
    0x00018d14 ldr r2, [r2, 0x10]                            |     r2 = *((r2 + 0x10));
    0x00018d18 ldr r0, [r2, r1, lsl 3]                       |     offset_0 = r1 << 3;
                                                             |     r0 = *((r2 + offset_0));
                                                             | label_6:
    0x00018d1c clz r1, r0                                    |     r1 &= r0;
    0x00018d20 lsr r1, r1, 5                                 |     r1 >>= 5;
    0x00018d24 tst r1, r3                                    |     
                                                             |     if ((r1 & r3) != 0) {
    0x00018d28 bne 0x194a4                                   |         goto label_20;
                                                             |     }
    0x00018d2c eor r2, r3, 1                                 |     r2 = r3 ^ 1;
    0x00018d30 tst r1, r2                                    |     
                                                             |     if ((r1 & r2) == 0) {
    0x00018d34 ldrne r1, [sp, 0x24]                          |         r1 = var_24h;
                                                             |     }
                                                             |     if ((r1 & r2) == 0) {
    0x00018d38 ldrne r1, [r1, 0x10]                          |         r1 = *((r1 + 0x10));
                                                             |     }
                                                             |     if ((r1 & r2) == 0) {
    0x00018d3c ldrne r0, [r1]                                |         r0 = *(r1);
                                                             |     }
    0x00018d40 ldr r1, [pc, 0x7c0]                           |     r1 = *(0x19504);
    0x00018d44 cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x00018d48 movne r2, 0                                   |         r2 = 0;
                                                             |     }
    0x00018d4c cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00018d50 movne r0, r1                                  |         r0 = r1;
                                                             |     }
    0x00018d54 ldr r1, [r0, 0xc]                             |     r1 = *((r0 + 0xc));
    0x00018d58 ldr r2, [r0]                                  |     r2 = *(r0);
    0x00018d5c str r1, [sp, 0x3c]                            |     var_3ch = r1;
    0x00018d60 ldr r1, [sp, 0x2c]                            |     r1 = var_2ch;
    0x00018d64 cmp r2, r1                                    |     
    0x00018d68 cmpne r2, 0                                   |     __asm ("cmpne r2, 0");
                                                             |     if (r2 != r1) {
    0x00018d6c bne 0x19204                                   |         goto label_11;
                                                             |     }
    0x00018d70 ldr r4, [r0, 4]                               |     r4 = *((r0 + 4));
    0x00018d74 ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x00018d78 tst r3, 0x1000                                |     
                                                             |     if ((r3 & 0x1000) != 0) {
    0x00018d7c beq 0x18d8c                                   |         
    0x00018d80 ldr r2, [r5, 0x18]                            |         r2 = *((r5 + 0x18));
    0x00018d84 cmp r2, 0                                     |         
                                                             |         if (r2 == 0) {
    0x00018d88 beq 0x19200                                   |             goto label_7;
                                                             |         }
                                                             |     }
    0x00018d8c ldr r2, [r4, 8]                               |     r2 = *((r4 + 8));
    0x00018d90 ldr r1, [sp, 0x20]                            |     r1 = var_20h;
    0x00018d94 cmp r2, 0                                     |     
                                                             |     if (r2 != 0) {
    0x00018d98 ldreq r2, [r5, 0x18]                          |         r2 = *((r5 + 0x18));
                                                             |     }
    0x00018d9c cmp r2, r1                                    |     
                                                             |     if (r2 < r1) {
    0x00018da0 blt 0x19200                                   |         goto label_7;
                                                             |     }
    0x00018da4 tst r3, 1                                     |     
                                                             |     if ((r3 & 1) != 0) {
    0x00018da8 beq 0x18de8                                   |         
    0x00018dac ldrb r3, [sp, 0x60]                           |         r3 = var_60h;
    0x00018db0 cmp r3, 0                                     |         
                                                             |         if (r3 != 0) {
    0x00018db4 bne 0x18de8                                   |             goto label_21;
                                                             |         }
    0x00018db8 add r0, sp, 0x108                             |         r0 += var_108h;
    0x00018dbc bl 0x19ffc                                    |         r0 = fcn_00019ffc (r0);
    0x00018dc0 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x00018dc4 beq 0x18dd8                                   |             
    0x00018dc8 ldr r2, [pc, 0x73c]                           |             r2 = *(0x19508);
    0x00018dcc ldr r1, [pc, 0x73c]                           |             r1 = "isc_time_now((&isctime)) == 0";
    0x00018dd0 ldr r0, [pc, 0x6f0]                           |             r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
    0x00018dd4 bl 0x17364                                    |             fcn_00017364 ("lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____", "isc_time_now((&isctime)) == 0");
                                                             |         }
    0x00018dd8 mov r2, 0x40                                  |         r2 = 0x40;
    0x00018ddc add r1, sp, 0x60                              |         r1 += var_60h;
    0x00018de0 add r0, sp, 0x108                             |         r0 += var_108h;
    0x00018de4 bl 0x1a61c                                    |         fcn_0001a61c (r0, r1);
                                                             |     }
                                                             | label_21:
    0x00018de8 ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x00018dec tst r3, 2                                     |     
                                                             |     if ((r3 & 2) == 0) {
    0x00018df0 beq 0x18e40                                   |         goto label_1;
                                                             |     }
    0x00018df4 ldrb r3, [sp, 0x48]                           |     r3 = var_48h;
    0x00018df8 cmp r3, 0                                     |     
                                                             |     if (r3 != 0) {
    0x00018dfc bne 0x18e40                                   |         goto label_1;
                                                             |     }
    0x00018e00 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00018e04 cmn r3, 5                                     |     
                                                             |     if (r3 >= 5) {
    0x00018e08 bge 0x19008                                   |         goto label_22;
                                                             |     }
    0x00018e0c ldr r0, [pc, 0x700]                           |     
    0x00018e10 ldr r3, [pc, 0x700]                           |     r3 = *(0x19514);
    0x00018e14 ldr r2, [pc, 0x700]                           |     r2 = "level";
    0x00018e18 mov r1, 0xa                                   |     r1 = 0xa;
    0x00018e1c ldr r0, [r0]                                  |     r0 = *(0x19510);
    0x00018e20 bl 0x19854                                    |     fcn_00019854 (r0, r1);
    0x00018e24 ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00018e28 str r3, [sp]                                  |     *(sp) = r3;
    0x00018e2c mov r3, r0                                    |     r3 = r0;
                                                             |     do {
    0x00018e30 ldr r2, [pc, 0x6e8]                           |         r2 = *(0x1951c);
    0x00018e34 mov r1, 0x18                                  |         r1 = 0x18;
    0x00018e38 add r0, sp, 0x48                              |         r0 += var_48h;
    0x00018e3c bl 0x13ecc                                    |         fcn_00013ecc ();
                                                             | label_1:
    0x00018e40 ldrb r7, [r5, 0x38]                           |         r7 = *((r5 + 0x38));
    0x00018e44 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x00018e48 bne 0x18ee8                                   |             
    0x00018e4c add r8, r5, 0x38                              |             r8 = r5 + 0x38;
    0x00018e50 ldr r3, [sp, 0x1ac]                           |             r3 = *(arg_1ach);
    0x00018e54 ldr r2, [sp, 0x1a8]                           |             r2 = *(arg_1a8h);
    0x00018e58 mov r1, 0x2000                                |             r1 = 0x2000;
    0x00018e5c mov r0, r8                                    |             r0 = r8;
    0x00018e60 bl 0x137c8                                    |             fcn_000137c8 (r0, r1);
    0x00018e64 ldr r3, [sp, 0x198]                           |             r3 = *(arg_198h);
    0x00018e68 cmp r3, 0                                     |             
                                                             |             if (r3 == 0) {
    0x00018e6c beq 0x18ee8                                   |                 goto label_4;
                                                             |             }
    0x00018e70 ldr r3, [sp, 0x24]                            |             r3 = var_24h;
    0x00018e74 mov r2, r7                                    |             r2 = r7;
    0x00018e78 ldr r1, [r3, 0x18]                            |             r1 = *((r3 + 0x18));
    0x00018e7c add r0, sp, 0x108                             |             r0 += var_108h;
    0x00018e80 bl 0x19e70                                    |             fcn_00019e70 (r0);
    0x00018e84 add r0, sp, 0x40                              |             r0 += var_40h;
    0x00018e88 bl 0x19ffc                                    |             r0 = fcn_00019ffc (r0);
    0x00018e8c cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x00018e90 beq 0x18ea4                                   |                 
    0x00018e94 ldr r2, [pc, 0x688]                           |                 r2 = "%s %d: ";
    0x00018e98 ldr r1, [pc, 0x688]                           |                 r1 = "isc_time_now((&oldest)) == 0";
    0x00018e9c ldr r0, [pc, 0x624]                           |                 r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
    0x00018ea0 bl 0x17364                                    |                 fcn_00017364 ("lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____", "isc_time_now((&oldest)) == 0");
                                                             |             }
    0x00018ea4 add r7, sp, 0x40                              |             r7 += var_40h;
    0x00018ea8 mov r2, r7                                    |             r2 = r7;
    0x00018eac add r1, sp, 0x108                             |             r1 += var_108h;
    0x00018eb0 mov r0, r7                                    |             r0 = r7;
    0x00018eb4 bl 0x1a364                                    |             r0 = fcn_0001a364 (r0, r1);
    0x00018eb8 cmp r0, 0                                     |             
                                                             |             if (r0 == 0) {
    0x00018ebc beq 0x19040                                   |                 goto label_23;
                                                             |             }
                                                             | label_2:
    0x00018ec0 mov r0, r8                                    |             r0 = r8;
    0x00018ec4 bl 0x117ec                                    |             strlen (r0);
    0x00018ec8 mov r3, 0                                     |             r3 = 0;
    0x00018ecc mov r2, r3                                    |             r2 = r3;
    0x00018ed0 add r1, r0, 0x15                              |             r1 = r0 + 0x15;
    0x00018ed4 mov sb, r0                                    |             sb = r0;
    0x00018ed8 mov r0, r3                                    |             r0 = r3;
    0x00018edc bl 0x1a7d0                                    |             r0 = fcn_0001a7d0 (r0, r1);
    0x00018ee0 subs r7, r0, 0                                |             r7 = r0 - 0;
                                                             |             if (r7 != r0) {
    0x00018ee4 bne 0x19114                                   |                 goto label_24;
                                                             |             }
                                                             |         }
                                                             | label_4:
    0x00018ee8 ldr r3, [r4, 0xc]                             |         r3 = *((r4 + 0xc));
    0x00018eec ands sb, r3, 0x10                             |         sb = r3 & 0x10;
    0x00018ef0 and sl, r3, 1                                 |         sl = r3 & 1;
                                                             |         if (sb != r3) {
    0x00018ef4 beq 0x18f08                                   |             
    0x00018ef8 ldr r2, [sp, 0x24]                            |             r2 = var_24h;
    0x00018efc ldr sb, [r2, 0x20]                            |             sb = *((r2 + 0x20));
    0x00018f00 adds sb, sb, 0                                |             sb += 0;
                                                             |             if (sb != sb) {
    0x00018f04 movne sb, 1                                   |                 sb = 1;
                                                             |                 goto label_25;
                                                             |             }
                                                             |         }
                                                             | label_25:
    0x00018f08 ldr r0, [r4, 4]                               |         r0 = *((r4 + 4));
    0x00018f0c lsr fp, r3, 2                                 |         
    0x00018f10 lsr r2, r3, 3                                 |         r2 = r3 >> 3;
    0x00018f14 lsr r3, r3, 1                                 |         r3 >>= 1;
    0x00018f18 and r2, r2, 1                                 |         r2 &= 1;
    0x00018f1c and r3, r3, 1                                 |         r3 &= 1;
    0x00018f20 cmp r0, 3                                     |         
    0x00018f24 and fp, fp, 1                                 |         
    0x00018f28 str r2, [sp, 0x34]                            |         var_34h = r2;
    0x00018f2c str r3, [sp, 0x38]                            |         var_38h = r3;
                                                             |         if (r0 == 3) {
    0x00018f30 beq 0x19174                                   |             goto label_26;
                                                             |         }
    0x00018f34 cmp r0, 4                                     |         
                                                             |         if (r0 == 4) {
    0x00018f38 beq 0x193a4                                   |             goto label_27;
                                                             |         }
    0x00018f3c cmp r0, 2                                     |         
                                                             |         if (r0 != 2) {
    0x00018f40 bne 0x19200                                   |             goto label_7;
                                                             |         }
    0x00018f44 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00018f48 cmp r3, 0                                     |         
                                                             |         if (r3 <= 0) {
    0x00018f4c movgt r0, 7                                   |             r0 = 7;
                                                             |         }
                                                             |         if (r3 <= 0) {
    0x00018f50 bgt 0x18f68                                   |             
    0x00018f54 cmn r3, 5                                     |             
                                                             |             if (r3 < 5) {
    0x00018f58 ldrge r3, [pc, 0x5cc]                         |                 r3 = "debug";
                                                             |             }
                                                             |             if (r3 < 5) {
    0x00018f5c ldrge r2, [sp, 0x20]                          |                 r2 = var_20h;
                                                             |             }
                                                             |             if (r3 < 5) {
    0x00018f60 subge r3, r3, r2, lsl 2                       |                 r3 -= (r2 << 2);
                                                             |             }
                                                             |             if (r3 >= 5) {
    0x00018f64 ldrge r0, [r3, 0x18]                          |                 r0 = *((r3 + 0x18));
                                                             |                 goto label_28;
                                                             |             }
                                                             |         }
                                                             | label_28:
    0x00018f68 ldr r3, [r4, 0x10]                            |         r3 = *((r4 + 0x10));
    0x00018f6c cmp sl, 0                                     |         
    0x00018f70 orr r0, r0, r3                                |         r0 |= r3;
                                                             |         if (sl != 0) {
    0x00018f74 moveq r2, r6                                  |             r2 = r6;
                                                             |         }
                                                             |         if (sl != 0) {
    0x00018f78 moveq r3, r6                                  |             r3 = r6;
                                                             |         }
                                                             |         if (sl == 0) {
    0x00018f7c addne r2, sp, 0x60                            |             r2 += var_60h;
                                                             |         }
                                                             |         if (sl == 0) {
    0x00018f80 ldrne r3, [pc, 0x5a8]                         |             r3 = *((pc + 0x5a8));
                                                             |         }
    0x00018f84 cmp sb, 0                                     |         
                                                             |         if (sb == 0) {
    0x00018f88 ldrne r1, [sp, 0x24]                          |             r1 = var_24h;
                                                             |         }
                                                             |         if (sb != 0) {
    0x00018f8c moveq r1, r6                                  |             r1 = r6;
                                                             |         }
                                                             |         if (sb == 0) {
    0x00018f90 ldrne r1, [r1, 0x20]                          |             r1 = *((r1 + 0x20));
                                                             |         }
                                                             |         if (sb == 0) {
    0x00018f94 ldrne ip, [pc, 0x598]                         |             ip = ":_";
                                                             |         }
                                                             |         if (sb != 0) {
    0x00018f98 moveq ip, r6                                  |             
                                                             |         }
    0x00018f9c cmp fp, 0                                     |         
    0x00018fa0 ldr r7, [sp, 0x34]                            |         r7 = var_34h;
                                                             |         if (fp == 0) {
    0x00018fa4 ldrne lr, [sp, 0x28]                          |             lr = var_28h;
                                                             |         }
                                                             |         if (fp == 0) {
    0x00018fa8 ldrne r4, [pc, 0x584]                         |             r4 = ":_";
                                                             |         }
                                                             |         if (fp == 0) {
    0x00018fac ldrne lr, [lr]                                |             
                                                             |         }
                                                             |         if (fp != 0) {
    0x00018fb0 moveq lr, r6                                  |             lr = r6;
                                                             |         }
                                                             |         if (fp != 0) {
    0x00018fb4 moveq r4, r6                                  |             r4 = r6;
                                                             |         }
    0x00018fb8 cmp r7, 0                                     |         
                                                             |         if (r7 == 0) {
    0x00018fbc ldrne r7, [sp, 0x2c]                          |             r7 = var_2ch;
                                                             |         }
    0x00018fc0 ldr sb, [sp, 0x38]                            |         sb = var_38h;
                                                             |         if (r7 == 0) {
    0x00018fc4 ldrne r7, [r7]                                |             r7 = *(r7);
                                                             |         }
                                                             |         if (r7 == 0) {
    0x00018fc8 ldrne r8, [pc, 0x564]                         |             r8 = ":_";
                                                             |         }
                                                             |         if (r7 != 0) {
    0x00018fcc moveq r7, r6                                  |             r7 = r6;
                                                             |         }
                                                             |         if (r7 != 0) {
    0x00018fd0 moveq r8, r6                                  |             r8 = r6;
                                                             |         }
    0x00018fd4 cmp sb, 0                                     |         
                                                             |         if (sb == 0) {
    0x00018fd8 addne sb, sp, 0x48                            |             sb += var_48h;
                                                             |         }
                                                             |         if (sb != 0) {
    0x00018fdc moveq sb, r6                                  |             sb = r6;
                                                             |         }
    0x00018fe0 add sl, r5, 0x38                              |         sl = r5 + 0x38;
    0x00018fe4 stm sp, {r1, ip, lr}                          |         *(sp) = r1;
                                                             |         *((sp + 4)) = ip;
                                                             |         *((sp + 8)) = lr;
    0x00018fe8 ldr r1, [pc, 0x548]                           |         r1 = ":_";
    0x00018fec str sl, [sp, 0x1c]                            |         var_1ch = sl;
    0x00018ff0 str sb, [sp, 0x18]                            |         var_18h = sb;
    0x00018ff4 str r8, [sp, 0x14]                            |         var_14h = r8;
    0x00018ff8 str r7, [sp, 0x10]                            |         var_10h = r7;
    0x00018ffc str r4, [sp, 0xc]                             |         var_ch = r4;
    0x00019000 bl 0x11708                                    |         syslog ();
    0x00019004 b 0x19200                                     |         goto label_7;
                                                             | label_22:
    0x00019008 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x0001900c cmp r3, 0                                     |         
                                                             |         if (r3 <= 0) {
    0x00019010 strgt r3, [sp]                                |             *(sp) = r3;
                                                             |         }
                                                             |         if (r3 <= 0) {
    0x00019014 ldrgt r3, [pc, 0x520]                         |             r3 = *((pc + 0x520));
                                                             |         }
    0x00019018 bgt 0x18e30                                   |         
                                                             |     } while (r3 > 0);
    0x0001901c ldr r3, [sp, 0x20]                            |     r3 = var_20h;
    0x00019020 mov r1, 0x18                                  |     r1 = 0x18;
    0x00019024 rsb r2, r3, 0                                 |     r2 = r3 - ;
    0x00019028 ldr r3, [pc, 0x4fc]                           |     
    0x0001902c add r0, sp, 0x48                              |     r0 += var_48h;
    0x00019030 ldr r3, [r3, r2, lsl 2]                       |     r3 = *(0x19528);
    0x00019034 ldr r2, [pc, 0x504]                           |     r2 = *(0x1953c);
    0x00019038 bl 0x13ecc                                    |     fcn_00013ecc ();
    0x0001903c b 0x18e40                                     |     goto label_1;
                                                             | label_23:
    0x00019040 add sl, r5, 0x2000                            |     sl = r5 + 0x2000;
    0x00019044 ldr sb, [sl, 0x38]                            |     sb = *((sl + 0x38));
                                                             | label_3:
    0x00019048 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x0001904c beq 0x18ec0                                   |         goto label_2;
                                                             |     }
    0x00019050 mov r1, r7                                    |     r1 = r7;
    0x00019054 add r0, sb, 4                                 |     r0 = sb + 4;
    0x00019058 bl 0x1a1d8                                    |     r0 = fcn_0001a1d8 (r0, r1);
    0x0001905c cmp r0, 0                                     |     
                                                             |     if (r0 >= 0) {
    0x00019060 bge 0x190d0                                   |         goto label_29;
                                                             |     }
    0x00019064 ldr fp, [sb, 0x10]                            |     fp = *((sb + 0x10));
    0x00019068 cmp fp, 0                                     |     
                                                             |     if (fp == 0) {
    0x0001906c ldrne r3, [sb, 0xc]                           |         r3 = *((sb + 0xc));
                                                             |     }
                                                             |     if (fp == 0) {
    0x00019070 strne r3, [fp, 0xc]                           |         *(arg_ch) = r3;
                                                             |     }
                                                             |     if (fp != 0) {
    0x00019074 bne 0x1909c                                   |         goto label_30;
                                                             |     }
    0x00019078 ldr r3, [sl, 0x3c]                            |     r3 = *((sl + 0x3c));
    0x0001907c cmp r3, sb                                    |     
                                                             |     if (r3 == sb) {
    0x00019080 beq 0x19094                                   |         goto label_31;
                                                             |     }
    0x00019084 ldr r3, [pc, 0x4b8]                           |     r3 = *(0x19540);
                                                             |     do {
    0x00019088 mov r2, 2                                     |         r2 = 2;
    0x0001908c ldr r1, [pc, 0x4b4]                           |         r1 = "(lctx->essages).tail == (message)";
    0x00019090 b 0x18be0                                     |         goto label_0;
                                                             | label_31:
    0x00019094 ldr r3, [sb, 0xc]                             |         r3 = *((sb + 0xc));
    0x00019098 str r3, [sl, 0x3c]                            |         *((sl + 0x3c)) = r3;
                                                             | label_30:
    0x0001909c ldr r3, [sb, 0xc]                             |         r3 = *((sb + 0xc));
    0x000190a0 cmp r3, 0                                     |         
                                                             |         if (r3 == 0) {
    0x000190a4 strne fp, [r3, 0x10]                          |             *((r3 + 0x10)) = fp;
                                                             |         }
                                                             |         if (r3 != 0) {
    0x000190a8 bne 0x190c0                                   |             goto label_32;
                                                             |         }
    0x000190ac ldr r3, [sl, 0x38]                            |         r3 = *((sl + 0x38));
    0x000190b0 cmp r3, sb                                    |         
                                                             |         if (r3 == sb) {
    0x000190b4 ldrne r3, [pc, 0x490]                         |             r3 = "(lctx->essages).head == (message)";
                                                             |         }
    0x000190b8 bne 0x19088                                   |         
                                                             |     } while (r3 != sb);
    0x000190bc str fp, [sl, 0x38]                            |     *((sl + 0x38)) = fp;
                                                             | label_32:
    0x000190c0 mov r0, sb                                    |     r0 = sb;
    0x000190c4 bl 0x11864                                    |     free (r0);
                                                             |     do {
    0x000190c8 mov sb, fp                                    |         sb = fp;
    0x000190cc b 0x19048                                     |         goto label_3;
                                                             | label_29:
    0x000190d0 ldr r1, [sb]                                  |         r1 = *(sb);
    0x000190d4 mov r0, r8                                    |         r0 = r8;
    0x000190d8 bl 0x11714                                    |         r0 = strcmp (r0, r1);
    0x000190dc cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000190e0 bne 0x1910c                                   |             
    0x000190e4 ldr r0, [sp, 0x30]                            |             r0 = var_30h;
    0x000190e8 bl 0x11720                                    |             r0 = pthread_mutex_unlock ();
    0x000190ec cmp r0, 0                                     |             
                                                             |             if (r0 != 0) {
    0x000190f0 beq 0x19104                                   |                 
    0x000190f4 ldr r2, [pc, 0x454]                           |                 r2 = "(lctx->essages).head == (message)";
    0x000190f8 ldr r1, [pc, 0x454]                           |                 r1 = "((pthread_mutex_unlock(((&lctx->lock))) == 0) ? 0 : 34) == 0";
                                                             | label_13:
    0x000190fc ldr r0, [pc, 0x3c4]                           |                 r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
    0x00019100 bl 0x17364                                    |                 fcn_00017364 ("lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____", "((pthread_mutex_unlock(((&lctx->lock))) == 0) ? 0 : 34) == 0");
                                                             |             }
                                                             | label_12:
    0x00019104 add sp, sp, 0x174                             |             
    0x00019108 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x0001910c ldr fp, [sb, 0x10]                            |         fp = *((sb + 0x10));
    0x00019110 b 0x190c8                                     |         
                                                             |     } while (1);
                                                             | label_24:
    0x00019114 add r0, r7, 0x14                              |     r0 = r7 + 0x14;
    0x00019118 mov sl, r7                                    |     sl = r7;
    0x0001911c str r0, [sl], 4                               |     *(sl) = r0;
                                                             |     sl += 4;
    0x00019120 add r2, sb, 1                                 |     r2 = sb + 1;
    0x00019124 mov r1, r8                                    |     r1 = r8;
    0x00019128 bl 0x1160c                                    |     strlcpy (r0, r1, r2);
    0x0001912c mov r0, sl                                    |     r0 = sl;
    0x00019130 bl 0x19ffc                                    |     r0 = fcn_00019ffc (r0);
    0x00019134 cmp r0, 0                                     |     
                                                             |     if (r0 != 0) {
    0x00019138 beq 0x1914c                                   |         
    0x0001913c ldr r2, [pc, 0x414]                           |         r2 = *(0x19554);
    0x00019140 ldr r1, [pc, 0x414]                           |         r1 = "isc_time_now((&new->time)) == 0";
    0x00019144 ldr r0, [pc, 0x37c]                           |         r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
    0x00019148 bl 0x17364                                    |         fcn_00017364 ("lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____", "isc_time_now((&new->time)) == 0");
                                                             |     }
    0x0001914c add r3, r5, 0x2000                            |     r3 = r5 + 0x2000;
    0x00019150 ldr r2, [r3, 0x3c]                            |     r2 = *((r3 + 0x3c));
    0x00019154 cmp r2, 0                                     |     
                                                             |     if (r2 == 0) {
    0x00019158 strne r7, [r2, 0x10]                          |         *((r2 + 0x10)) = r7;
                                                             |     }
                                                             |     if (r2 != 0) {
    0x0001915c streq r7, [r3, 0x38]                          |         *((r3 + 0x38)) = r7;
                                                             |     }
    0x00019160 str r2, [r7, 0xc]                             |     *((r7 + 0xc)) = r2;
    0x00019164 mov r2, 0                                     |     r2 = 0;
    0x00019168 str r2, [r7, 0x10]                            |     *((r7 + 0x10)) = r2;
    0x0001916c str r7, [r3, 0x3c]                            |     *((r3 + 0x3c)) = r7;
    0x00019170 b 0x18ee8                                     |     goto label_4;
                                                             | label_26:
    0x00019174 ldr r3, [r4, 0x28]                            |     r3 = *((r4 + 0x28));
    0x00019178 cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x0001917c beq 0x191a0                                   |         goto label_33;
                                                             |     }
    0x00019180 ldr r3, [r4, 0x18]                            |     r3 = *((r4 + 0x18));
    0x00019184 cmn r3, 2                                     |     
    0x00019188 beq 0x191c8                                   |     
                                                             |     while (r3 == 2) {
                                                             | label_5:
    0x0001918c ldr r0, [r4, 0x10]                            |         r0 = *((r4 + 0x10));
    0x00019190 bl 0x116d8                                    |         fclose (r0);
    0x00019194 mov r3, 0                                     |         r3 = 0;
    0x00019198 str r3, [r4, 0x10]                            |         *((r4 + 0x10)) = r3;
    0x0001919c str r3, [r4, 0x28]                            |         *((r4 + 0x28)) = r3;
                                                             | label_33:
    0x000191a0 ldr r7, [r4, 0x10]                            |         r7 = *((r4 + 0x10));
    0x000191a4 cmp r7, 0                                     |         
                                                             |         if (r7 != 0) {
    0x000191a8 bne 0x193a4                                   |             goto label_27;
                                                             |         }
    0x000191ac ldr r3, [r4, 4]                               |         r3 = *((r4 + 4));
    0x000191b0 cmp r3, 3                                     |         
                                                             |         if (r3 == 3) {
    0x000191b4 beq 0x1920c                                   |             goto label_34;
                                                             |         }
    0x000191b8 ldr r3, [pc, 0x3a0]                           |         r3 = *(0x1955c);
    0x000191bc mov r2, r7                                    |         r2 = r7;
    0x000191c0 ldr r1, [pc, 0x39c]                           |         r1 = "channel->type == 3";
    0x000191c4 b 0x18be0                                     |         goto label_0;
    0x000191c8 add r1, sp, 0xa0                              |         r1 += var_a0h;
    0x000191cc ldr r0, [r4, 0x14]                            |         r0 = *((r4 + 0x14));
    0x000191d0 bl 0x1145c                                    |         r0 = stat64 ();
    0x000191d4 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x000191d8 beq 0x191ec                                   |             goto label_35;
                                                             |         }
    0x000191dc bl 0x1178c                                    |         r0 = errno_location ();
    0x000191e0 ldr r3, [r0]                                  |         r3 = *(r0);
    0x000191e4 cmp r3, 2                                     |         
    0x000191e8 beq 0x1918c                                   |         
                                                             |     }
                                                             | label_35:
    0x000191ec ldrd r2, r3, [r4, 0x20]                       |     __asm ("ldrd r2, r3, [r4, 0x20]");
    0x000191f0 ldrd r0, r1, [sp, 0xd0]                       |     __asm ("ldrd r0, r1, [var_d0h]");
    0x000191f4 cmp r0, r2                                    |     
    0x000191f8 sbcs r3, r1, r3                               |     __asm ("sbcs r3, r1, r3");
                                                             |     if (r0 < r2) {
    0x000191fc blt 0x1918c                                   |         goto label_5;
                                                             |     }
                                                             |     do {
                                                             | label_7:
    0x00019200 mov r3, 1                                     |         r3 = 1;
                                                             | label_11:
    0x00019204 ldr r0, [sp, 0x3c]                            |         r0 = var_3ch;
    0x00019208 b 0x18d1c                                     |         goto label_6;
                                                             | label_34:
    0x0001920c ldr r8, [r4, 0x14]                            |         r8 = *((r4 + 0x14));
    0x00019210 cmp r8, 0                                     |         
                                                             |         if (r8 != 0) {
    0x00019214 beq 0x19224                                   |             
    0x00019218 ldrb r3, [r8]                                 |             r3 = *(r8);
    0x0001921c cmp r3, 0                                     |             
                                                             |             if (r3 != 0) {
    0x00019220 bne 0x19234                                   |                 goto label_36;
                                                             |             }
                                                             |         }
    0x00019224 ldr r3, [pc, 0x33c]                           |         r3 = *(0x19564);
    0x00019228 mov r2, 0                                     |         r2 = 0;
    0x0001922c ldr r1, [pc, 0x338]                           |         r1 = "path != ((void *)0) && *path != '\\0';
    0x00019230 b 0x18be0                                     |         goto label_0;
                                                             | label_36:
    0x00019234 add r1, sp, 0x108                             |         r1 += var_108h;
    0x00019238 mov r0, r8                                    |         r0 = r8;
    0x0001923c bl 0x1145c                                    |         r0 = stat64 ();
    0x00019240 subs ip, r0, 0                                |         
                                                             |         if (ip != r0) {
    0x00019244 bne 0x19354                                   |             goto label_37;
                                                             |         }
    0x00019248 ldr r7, [sp, 0x118]                           |         r7 = var_118h;
    0x0001924c ldrd r2, r3, [r4, 0x20]                       |         __asm ("ldrd r2, r3, [r4, 0x20]");
    0x00019250 and r7, r7, 0xf000                            |         r7 &= 0xf000;
    0x00019254 sub r7, r7, 0x8000                            |         r7 -= 0x8000;
    0x00019258 orrs r1, r2, r3                               |         r1 = r2 | r3;
    0x0001925c clz r7, r7                                    |         r7 &= r7;
    0x00019260 lsr r7, r7, 5                                 |         r7 >>= 5;
                                                             |         if (r1 != r2) {
    0x00019264 bne 0x19328                                   |             goto label_38;
                                                             |         }
    0x00019268 ldr r3, [r4, 0x18]                            |         r3 = *((r4 + 0x18));
    0x0001926c mov r0, ip                                    |         r0 = ip;
    0x00019270 cmn r3, 2                                     |         
                                                             |         if (r3 == 2) {
    0x00019274 beq 0x1934c                                   |             goto label_9;
                                                             |         }
                                                             | label_8:
    0x00019278 cmp r0, 0                                     |         
                                                             |         if (r0 != 0) {
    0x0001927c moveq r0, r7                                  |             r0 = r7;
                                                             |         }
                                                             |         if (r0 == 0) {
    0x00019280 movne r0, 0                                   |             r0 = 0;
                                                             |         }
    0x00019284 cmp r0, 0                                     |         
                                                             |         if (r0 == 0) {
    0x00019288 beq 0x19378                                   |             goto label_39;
                                                             |         }
    0x0001928c ldr r3, [r4, 0x18]                            |         r3 = *((r4 + 0x18));
    0x00019290 cmn r3, 2                                     |         
                                                             |         if (r3 != 2) {
    0x00019294 moveq r7, 0x3a                                |             r7 = 0x3a;
                                                             |         }
                                                             |         if (r3 != 2) {
    0x00019298 beq 0x192e0                                   |             
    0x0001929c mov r0, r4                                    |             r0 = r4;
    0x000192a0 bl 0x17674                                    |             r0 = fcn_00017674 (r0, r1, r2, r3);
    0x000192a4 subs r7, r0, 0                                |             r7 = r0 - 0;
                                                             |             if (r7 == r0) {
    0x000192a8 beq 0x19378                                   |                 goto label_39;
                                                             |             }
    0x000192ac ldr r3, [r4, 0xc]                             |             r3 = *((r4 + 0xc));
    0x000192b0 tst r3, 0x8000                                |             
                                                             |             if ((r3 & 0x8000) != 0) {
    0x000192b4 bne 0x192e0                                   |                 goto label_10;
                                                             |             }
    0x000192b8 ldr r8, [r4, 0x14]                            |             r8 = *((r4 + 0x14));
    0x000192bc bl 0x19af4                                    |             fcn_00019af4 (r0);
    0x000192c0 ldr r1, [pc, 0x2a8]                           |             r1 = *(0x1956c);
    0x000192c4 mov r2, r8                                    |             r2 = r8;
    0x000192c8 mov r3, r0                                    |             r3 = r0;
    0x000192cc mov r0, 3                                     |             r0 = 3;
    0x000192d0 bl 0x11708                                    |             syslog ();
    0x000192d4 ldr r3, [r4, 0xc]                             |             r3 = *((r4 + 0xc));
    0x000192d8 orr r3, r3, 0x8000                            |             r3 |= 0x8000;
    0x000192dc str r3, [r4, 0xc]                             |             *((r4 + 0xc)) = r3;
                                                             |         }
                                                             | label_10:
    0x000192e0 cmp r7, 0                                     |         
    0x000192e4 cmpne r7, 0x3a                                |         __asm ("cmpne r7, 0x3a");
                                                             |         if (r7 == 0) {
    0x000192e8 beq 0x19390                                   |             goto label_40;
                                                             |         }
    0x000192ec ldr r3, [r4, 0xc]                             |         r3 = *((r4 + 0xc));
    0x000192f0 tst r3, 0x8000                                |         
    0x000192f4 bne 0x19200                                   |         
                                                             |     } while ((r3 & 0x8000) != 0);
    0x000192f8 mov r0, r7                                    |     r0 = r7;
    0x000192fc ldr r8, [r4, 0x14]                            |     r8 = *((r4 + 0x14));
    0x00019300 bl 0x19af4                                    |     fcn_00019af4 (r0);
    0x00019304 ldr r1, [pc, 0x268]                           |     r1 = "isc_log_open:_roll_log__s_failed:__s";
    0x00019308 mov r2, r8                                    |     r2 = r8;
    0x0001930c mov r3, r0                                    |     r3 = r0;
    0x00019310 mov r0, 3                                     |     r0 = 3;
    0x00019314 bl 0x11708                                    |     syslog ();
    0x00019318 ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x0001931c orr r3, r3, 0x8000                            |     r3 |= 0x8000;
    0x00019320 str r3, [r4, 0xc]                             |     *((r4 + 0xc)) = r3;
    0x00019324 b 0x19200                                     |     goto label_7;
                                                             | label_38:
    0x00019328 cmp r2, 1                                     |     
    0x0001932c sbcs r1, r3, 0                                |     __asm ("sbcs r1, r3, 0");
                                                             |     if (r2 < 1) {
    0x00019330 blt 0x19370                                   |         goto label_41;
                                                             |     }
    0x00019334 add r1, sp, 0x138                             |     r1 += var_138h;
    0x00019338 ldrd r0, r1, [r1]                             |     __asm ("ldrd r0, r1, [r1]");
    0x0001933c cmp r0, r2                                    |     
    0x00019340 sbcs r3, r1, r3                               |     __asm ("sbcs r3, r1, r3");
    0x00019344 mov r0, ip                                    |     r0 = ip;
                                                             |     if (r0 >= r2) {
    0x00019348 bge 0x19278                                   |         goto label_8;
                                                             |     }
                                                             |     do {
                                                             | label_9:
    0x0001934c mov r7, r0                                    |         r7 = r0;
    0x00019350 b 0x19278                                     |         goto label_8;
                                                             | label_37:
    0x00019354 bl 0x1178c                                    |         r0 = errno_location ();
    0x00019358 ldr r3, [r0]                                  |         r3 = *(r0);
    0x0001935c cmp r3, 2                                     |         
                                                             |         if (r3 != 2) {
    0x00019360 moveq r0, r7                                  |             r0 = r7;
                                                             |         }
    0x00019364 beq 0x1934c                                   |         
                                                             |     } while (r3 == 2);
    0x00019368 mov r0, 0x1e                                  |     r0 = 0x1e;
    0x0001936c b 0x19278                                     |     goto label_8;
                                                             | label_41:
    0x00019370 mov r0, ip                                    |     r0 = ip;
    0x00019374 b 0x1934c                                     |     goto label_9;
                                                             | label_39:
    0x00019378 add r2, r4, 0x10                              |     r2 = r4 + 0x10;
    0x0001937c ldr r1, [pc, 0x1f4]                           |     r1 = "isc_log_open '%s' failed: %s";
    0x00019380 mov r0, r8                                    |     r0 = r8;
    0x00019384 bl 0x19c08                                    |     r0 = fcn_00019c08 ();
    0x00019388 mov r7, r0                                    |     r7 = r0;
    0x0001938c b 0x192e0                                     |     goto label_10;
                                                             | label_40:
    0x00019390 cmp r7, 0                                     |     
                                                             |     if (r7 != 0) {
    0x00019394 bne 0x19200                                   |         goto label_7;
                                                             |     }
    0x00019398 ldr r3, [r4, 0xc]                             |     r3 = *((r4 + 0xc));
    0x0001939c bic r3, r3, 0x8000                            |     r3 = BIT_MASK (r3, 0x8000);
    0x000193a0 str r3, [r4, 0xc]                             |     *((r4 + 0xc)) = r3;
                                                             | label_27:
    0x000193a4 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x000193a8 addne r2, sp, 0x60                            |         r2 += var_60h;
                                                             |     }
                                                             |     if (sl == 0) {
    0x000193ac ldrne r3, [pc, 0x17c]                         |         r3 = *((pc + 0x17c));
                                                             |     }
                                                             |     if (sl != 0) {
    0x000193b0 moveq r2, r6                                  |         r2 = r6;
                                                             |     }
                                                             |     if (sl != 0) {
    0x000193b4 moveq r3, r6                                  |         r3 = r6;
                                                             |     }
    0x000193b8 cmp sb, 0                                     |     
                                                             |     if (sb == 0) {
    0x000193bc ldrne r1, [sp, 0x24]                          |         r1 = var_24h;
                                                             |     }
                                                             |     if (sb == 0) {
    0x000193c0 ldrne ip, [pc, 0x16c]                         |         ip = ":_";
                                                             |     }
                                                             |     if (sb == 0) {
    0x000193c4 ldrne r1, [r1, 0x20]                          |         r1 = *((r1 + 0x20));
                                                             |     }
                                                             |     if (sb != 0) {
    0x000193c8 moveq ip, r6                                  |         
                                                             |     }
                                                             |     if (sb != 0) {
    0x000193cc moveq r1, r6                                  |         r1 = r6;
                                                             |     }
    0x000193d0 cmp fp, 0                                     |     
    0x000193d4 ldr r8, [sp, 0x34]                            |     r8 = var_34h;
                                                             |     if (fp == 0) {
    0x000193d8 ldrne lr, [sp, 0x28]                          |         lr = var_28h;
                                                             |     }
                                                             |     if (fp != 0) {
    0x000193dc moveq lr, r6                                  |         lr = r6;
                                                             |     }
                                                             |     if (fp == 0) {
    0x000193e0 ldrne lr, [lr]                                |         
                                                             |     }
                                                             |     if (fp == 0) {
    0x000193e4 ldrne r7, [pc, 0x148]                         |         r7 = ":_";
                                                             |     }
                                                             |     if (fp != 0) {
    0x000193e8 moveq r7, r6                                  |         r7 = r6;
                                                             |     }
    0x000193ec cmp r8, 0                                     |     
                                                             |     if (r8 == 0) {
    0x000193f0 ldrne r8, [sp, 0x2c]                          |         r8 = var_2ch;
                                                             |     }
    0x000193f4 ldr sl, [sp, 0x38]                            |     sl = var_38h;
                                                             |     if (r8 == 0) {
    0x000193f8 ldrne r8, [r8]                                |         r8 = *(r8);
                                                             |     }
                                                             |     if (r8 == 0) {
    0x000193fc ldrne sb, [pc, 0x130]                         |         sb = ":_";
                                                             |     }
                                                             |     if (r8 != 0) {
    0x00019400 moveq r8, r6                                  |         r8 = r6;
                                                             |     }
                                                             |     if (r8 != 0) {
    0x00019404 moveq sb, r6                                  |         sb = r6;
                                                             |     }
    0x00019408 cmp sl, 0                                     |     
                                                             |     if (sl == 0) {
    0x0001940c addne sl, sp, 0x48                            |         sl += var_48h;
                                                             |     }
                                                             |     if (sl != 0) {
    0x00019410 moveq sl, r6                                  |         sl = r6;
                                                             |     }
    0x00019414 add fp, r5, 0x38                              |     
    0x00019418 ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x0001941c stm sp, {r1, ip, lr}                          |     *(sp) = r1;
                                                             |     *((sp + 4)) = ip;
                                                             |     *((sp + 8)) = lr;
    0x00019420 ldr r1, [pc, 0x154]                           |     r1 = *(0x19578);
    0x00019424 str fp, [sp, 0x1c]                            |     var_1ch = fp;
    0x00019428 str sl, [sp, 0x18]                            |     var_18h = sl;
    0x0001942c str sb, [sp, 0x14]                            |     var_14h = sb;
    0x00019430 str r8, [sp, 0x10]                            |     var_10h = r8;
    0x00019434 str r7, [sp, 0xc]                             |     var_ch = r7;
    0x00019438 bl 0x11588                                    |     fprintf (r0, r1, r2, r3)
    0x0001943c ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00019440 bl 0x11528                                    |     fflush (r0);
    0x00019444 ldrd r2, r3, [r4, 0x20]                       |     __asm ("ldrd r2, r3, [r4, 0x20]");
    0x00019448 cmp r2, 1                                     |     
    0x0001944c sbcs r3, r3, 0                                |     __asm ("sbcs r3, r3, 0");
                                                             |     if (r2 < 1) {
    0x00019450 blt 0x19200                                   |         goto label_7;
                                                             |     }
    0x00019454 ldr r3, [r4, 4]                               |     r3 = *((r4 + 4));
    0x00019458 cmp r3, 3                                     |     
                                                             |     if (r3 == 3) {
    0x0001945c ldrne r3, [pc, 0xfc]                          |         r3 = "channel->type == 3";
                                                             |     }
                                                             |     if (r3 == 3) {
    0x00019460 movne r2, 2                                   |         r2 = 2;
                                                             |     }
                                                             |     if (r3 != 3) {
    0x00019464 ldrne r1, [pc, 0x114]                         |         r1 = *(0x00019580);
                                                             |         goto label_42;
                                                             |     }
                                                             |     if (r3 != 3) {
                                                             | label_42:
    0x00019468 bne 0x18be0                                   |         goto label_0;
                                                             |     }
    0x0001946c ldr r0, [r4, 0x10]                            |     r0 = *((r4 + 0x10));
    0x00019470 bl 0x117c8                                    |     fileno (r0);
    0x00019474 add r1, sp, 0xa0                              |     r1 += var_a0h;
    0x00019478 bl 0x11540                                    |     r0 = fstat64 ();
    0x0001947c cmp r0, 0                                     |     
                                                             |     if (r0 < 0) {
    0x00019480 blt 0x19200                                   |         goto label_7;
                                                             |     }
    0x00019484 ldrd r2, r3, [sp, 0xd0]                       |     __asm ("ldrd r2, r3, [var_d0h]");
    0x00019488 ldrd r0, r1, [r4, 0x20]                       |     __asm ("ldrd r0, r1, [r4, 0x20]");
    0x0001948c cmp r0, r2                                    |     
    0x00019490 sbcs r3, r1, r3                               |     __asm ("sbcs r3, r1, r3");
                                                             |     if (r0 >= r2) {
    0x00019494 movlt r3, 1                                   |         r3 = 1;
                                                             |     }
                                                             |     if (r0 < r2) {
    0x00019498 strlt r3, [r4, 0x28]                          |         *((r4 + 0x28)) = r3;
                                                             |         goto label_43;
                                                             |     }
                                                             |     if (r0 < r2) {
                                                             | label_43:
    0x0001949c blt 0x19204                                   |         goto label_11;
                                                             |     }
    0x000194a0 b 0x19200                                     |     goto label_7;
                                                             | label_20:
    0x000194a4 ldr r0, [sp, 0x30]                            |     r0 = var_30h;
    0x000194a8 bl 0x11720                                    |     r0 = pthread_mutex_unlock ();
    0x000194ac cmp r0, 0                                     |     
                                                             |     if (r0 == 0) {
    0x000194b0 beq 0x19104                                   |         goto label_12;
                                                             |     }
    0x000194b4 ldr r2, [pc, 0x94]                            |     r2 = "(lctx->essages).head == (message)";
    0x000194b8 ldr r1, [pc, 0xc4]                            |     r1 = *(0x19580);
    0x000194bc b 0x190fc                                     |     goto label_13;
                                                             | }

[*] Function fprintf used 15 times ntptime