[*] Binary protection state of ntpdate
Partial RELRO No Canary found NX disabled No PIE No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of ntpdate
; 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/ntpdate @ 0x1b454 */
| #include <stdint.h>
|
; (fcn) aav.0x0001b454 () | void aav_0x0001b454 (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;
0x0001b454 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0001b458 sub sp, sp, 0x22c |
0x0001b45c add r6, sp, 0x28 | r6 += var_28h;
0x0001b460 mov sb, r0 | sb = r0;
0x0001b464 mov sl, r1 | sl = r1;
0x0001b468 mov r8, r2 | r8 = r2;
0x0001b46c mov r1, 0x80 | r1 = 0x80;
0x0001b470 add r2, sp, 0x1c | r2 += var_1ch;
0x0001b474 mov r0, r6 | r0 = r6;
0x0001b478 mov fp, r3 |
0x0001b47c bl 0x1b660 | fcn_0001b660 (r0);
0x0001b480 subs r4, r0, 0 | r4 -= var_28h;
| if (r4 == var_28h) {
0x0001b484 ldrne r7, [pc, 0xfc] | r7 = *(0x0001b588);
| }
| if (r4 == var_28h) {
0x0001b488 bne 0x1b4a0 |
0x0001b48c ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x0001b490 ldr r3, [pc, 0xf4] | r3 = *(0x1b588);
0x0001b494 cmp r2, 0 |
0x0001b498 ldr r7, [pc, 0xe8] | r7 = *(0x1b584);
| if (r2 > 0) {
0x0001b49c movgt r7, r3 | r7 = r3;
| goto label_3;
| }
| }
| label_3:
0x0001b4a0 ldr r5, [pc, 0xe8] | r5 = "__back_trace";
0x0001b4a4 cmp r8, 3 |
0x0001b4a8 ldr r3, [r5] | r3 = "__back_trace";
0x0001b4ac ldr r0, [pc, 0xe0] |
0x0001b4b0 str r3, [sp, 0x14] | stream = r3;
| if (r8 > 3) {
0x0001b4b4 ldrls r3, [pc, 0xdc] | r3 = *((pc + 0xdc));
| }
0x0001b4b8 mov r2, 0x65 | r2 = 0x65;
| if (r8 > 3) {
0x0001b4bc ldrls r8, [r3, r8, lsl 2] | offset_0 = r8 << 2;
| r8 = *((r3 + offset_0));
| }
0x0001b4c0 mov r1, 1 | r1 = 1;
0x0001b4c4 ldr r3, [pc, 0xd0] | r3 = *(0x1b598);
0x0001b4c8 ldr r0, [r0] | r0 = stderr;
| if (r8 <= 3) {
0x0001b4cc movhi r8, 0 | r8 = 0;
| }
0x0001b4d0 bl 0x1b934 | fcn_0001b934 (r0, r1);
0x0001b4d4 str r7, [sp, 0xc] | var_ch = r7;
0x0001b4d8 stm sp, {r8, fp} | *(sp) = r8;
| *((sp + 4)) = fp;
0x0001b4dc ldr r1, [pc, 0xbc] | r1 = "failed";
0x0001b4e0 mov r3, sl | r3 = sl;
0x0001b4e4 mov r2, sb | r2 = sb;
0x0001b4e8 str r0, [sp, 8] | var_8h = r0;
0x0001b4ec ldr r0, [sp, 0x14] | r0 = stream;
0x0001b4f0 bl 0x1230c | fprintf (r0, "failed", r2, r3)
0x0001b4f4 cmp r4, 0 |
| if (r4 == 0) {
0x0001b4f8 beq 0x1b578 | goto label_4;
| }
| label_0:
0x0001b4fc ldr r0, [r5] | r0 = *(r5);
0x0001b500 bl 0x122b8 | fflush (r0);
0x0001b504 add sp, sp, 0x22c |
0x0001b508 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| do {
0x0001b50c add r2, sp, 0x24 | r2 += var_24h;
0x0001b510 add r1, sp, 0x20 | r1 += var_20h;
0x0001b514 ldr r0, [r6, r4, lsl 2] | offset_1 = r4 << 2;
| r0 = *((r6 + offset_1));
0x0001b518 str r7, [sp, 0x20] | var_20h = r7;
0x0001b51c bl 0x1b718 | r0 = fcn_0001b718 (r0, r1);
0x0001b520 cmp r0, 0 |
| if (r0 != 0) {
0x0001b524 bne 0x1b560 | goto label_5;
| }
0x0001b528 ldr r3, [sp, 0x24] | r3 = var_24h;
0x0001b52c mov r2, r4 | r2 = r4;
0x0001b530 str r3, [sp, 4] | var_4h = r3;
0x0001b534 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001b538 mov r1, sb | r1 = sb;
0x0001b53c str r3, [sp] | *(sp) = r3;
0x0001b540 ldr r0, [r5] | r0 = *(r5);
0x0001b544 ldr r3, [r6, r4, lsl 2] | offset_2 = r4 << 2;
| r3 = *((r6 + offset_2));
0x0001b548 bl 0x1230c | fprintf (r0, r1, r2, r3)
| label_1:
0x0001b54c add r4, r4, 1 | r4 += var_1h;
| label_2:
0x0001b550 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x0001b554 cmp r3, r4 |
0x0001b558 bgt 0x1b50c |
| } while (r3 > r4);
0x0001b55c b 0x1b4fc | goto label_0;
| label_5:
0x0001b560 ldr r3, [r6, r4, lsl 2] | offset_3 = r4 << 2;
| r3 = *((r6 + offset_3));
0x0001b564 mov r2, r4 | r2 = r4;
0x0001b568 mov r1, r8 | r1 = r8;
0x0001b56c ldr r0, [r5] | r0 = *(r5);
0x0001b570 bl 0x1230c | fprintf (r0, r1, r2, r3)
0x0001b574 b 0x1b54c | goto label_1;
| label_4:
0x0001b578 mov r7, r4 | r7 = r4;
0x0001b57c ldr r8, [pc, 0x20] | r8 = "%s:%d: %s(%s) %s%s\n";
0x0001b580 ldr sb, [pc, 0x20] | sb = "#%d %p in %s()+0x%lx\n";
0x0001b584 b 0x1b550 | 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/ntpdate @ 0x1de64 */
| #include <stdint.h>
|
; (fcn) aav.0x0001de64 () | void aav_0x0001de64 (int32_t arg1, int32_t arg2) {
| r0 = arg1;
| r1 = arg2;
0x0001de64 push {r4, r5, r6, lr} |
0x0001de68 ldr r4, [pc, 0x40] | r4 = *(0x1deac);
0x0001de6c mov r5, r2 | r5 = r2;
0x0001de70 mov r6, r3 | r6 = r3;
0x0001de74 mov r2, r0 | r2 = r0;
0x0001de78 mov r3, r1 | r3 = r1;
0x0001de7c ldr r0, [r4] | r0 = *(0x1deac);
0x0001de80 ldr r1, [pc, 0x2c] | r1 = stderr;
0x0001de84 bl 0x1230c | fprintf (r0, r1, r2, r3, r4, r5, r6)
0x0001de88 mov r2, r6 | r2 = r6;
0x0001de8c mov r1, r5 | r1 = r5;
0x0001de90 ldr r0, [r4] | r0 = *(0x1deac);
0x0001de94 bl 0x11f94 | vfprintf (r0, r1, r2)
0x0001de98 ldr r1, [r4] | r1 = *(0x1deac);
0x0001de9c mov r0, 0xa | r0 = 0xa;
0x0001dea0 bl 0x12240 | fputc (r0, r1);
0x0001dea4 ldr r0, [r4] | r0 = *(0x1deac);
0x0001dea8 pop {r4, r5, r6, lr} |
0x0001deac b 0x122b8 | return void (*0x122b8)() ();
| }
; 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/ntpdate @ 0x1deb8 */
| #include <stdint.h>
|
; (fcn) aav.0x0001deb8 () | void aav_0x0001deb8 (int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_ch;
| r0 = arg1;
| r1 = arg2;
0x0001deb8 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, lr} |
0x0001debc ldr r4, [pc, 0x6c] | r4 = *(0x1df2c);
0x0001dec0 mov r8, r0 | r8 = r0;
0x0001dec4 ldr r0, [pc, 0x68] |
0x0001dec8 mov sb, r1 | sb = r1;
0x0001decc mov r5, r2 | r5 = r2;
0x0001ded0 mov r6, r3 | r6 = r3;
0x0001ded4 mov r2, 0x6e | r2 = 0x6e;
0x0001ded8 ldr r3, [pc, 0x58] | r3 = *(0x1df34);
0x0001dedc mov r1, 1 | r1 = 1;
0x0001dee0 ldr r0, [r0] | r0 = stderr;
0x0001dee4 ldr r7, [r4] | r7 = *(0x1df2c);
0x0001dee8 bl 0x1b934 | fcn_0001b934 (r0, r1);
0x0001deec mov r3, sb | r3 = sb;
0x0001def0 mov r2, r8 | r2 = r8;
0x0001def4 ldr r1, [pc, 0x40] | r1 = "fatal error";
0x0001def8 str r0, [sp] | *(sp) = r0;
0x0001defc mov r0, r7 | r0 = r7;
0x0001df00 bl 0x1230c | fprintf (r0, "fatal error", r2, r3)
0x0001df04 mov r2, r6 | r2 = r6;
0x0001df08 mov r1, r5 | r1 = r5;
0x0001df0c ldr r0, [r4] | r0 = *(0x1df2c);
0x0001df10 bl 0x11f94 | vfprintf (r0, r1, r2)
0x0001df14 ldr r1, [r4] | r1 = *(0x1df2c);
0x0001df18 mov r0, 0xa | r0 = 0xa;
0x0001df1c bl 0x12240 | fputc (r0, r1);
0x0001df20 ldr r0, [r4] | r0 = *(0x1df2c);
0x0001df24 add sp, sp, 0xc |
0x0001df28 pop {r4, r5, r6, r7, r8, sb, lr} |
0x0001df2c b 0x122b8 | return void (*0x122b8)() ();
| }
; 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/ntpdate @ 0x17480 */
| #include <stdint.h>
|
; (fcn) fcn.00017480 () | void fcn_00017480 (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;
0x00017480 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00017484 ldr r4, [pc, 0x1a0] | r4 = *(0x17628);
0x00017488 sub sp, sp, 0x1c |
0x0001748c mov r3, 0xa | r3 = 0xa;
0x00017490 strh r3, [sp, 0x14] | var_14h = r3;
0x00017494 mov r3, 0 | r3 = 0;
0x00017498 strb r3, [sp, 0x10] | var_10h = r3;
0x0001749c ldr r3, [pc, 0x18c] | r3 = *(0x1762c);
0x000174a0 str r0, [sp, 0xc] | var_ch = r0;
0x000174a4 ldr r5, [r3] | r5 = *(0x1762c);
0x000174a8 ldr r3, [r4] | r3 = *(0x17628);
0x000174ac mov r8, r1 | r8 = r1;
0x000174b0 cmp r5, r3 |
| if (r5 != r3) {
0x000174b4 beq 0x174d8 |
0x000174b8 mov r1, 0x2f | r1 = 0x2f;
0x000174bc mov r0, r5 | r0 = r5;
0x000174c0 str r5, [r4] | *(r4) = r5;
0x000174c4 bl 0x12048 | r0 = strrchr (r0, r1);
0x000174c8 cmp r0, 0 |
| if (r0 == 0) {
0x000174cc addne r0, r0, 1 | r0++;
| }
| if (r0 == 0) {
0x000174d0 strne r0, [r4, 4] | *((r4 + 4)) = r0;
| }
| if (r0 == 0) {
0x000174d4 streq r5, [r4, 4] | *((r4 + 4)) = r5;
| goto label_0;
| }
| }
| label_0:
0x000174d8 ldr r5, [pc, 0x154] | r5 = *(0x17630);
0x000174dc ldr sb, [r4, 8] | sb = *((r4 + 8));
0x000174e0 ldr r6, [r5] | r6 = *(0x17630);
0x000174e4 cmp r6, 0 |
| if (r6 == 0) {
0x000174e8 beq 0x17614 | goto label_1;
| }
0x000174ec mov r2, r8 | r2 = r8;
0x000174f0 ldr r1, [pc, 0x140] | r1 = *(0x17634);
0x000174f4 ldr r0, [sp, 0xc] | r0 = var_ch;
0x000174f8 bl 0x12354 | syslog ();
0x000174fc mov r6, 0 | r6 = 0;
| do {
0x00017500 orrs r3, sb, r6 | r3 = sb | r6;
| if (r3 != sb) {
0x00017504 beq 0x1760c |
0x00017508 ldr r7, [r5, 4] | r7 = *((r5 + 4));
0x0001750c cmp r7, 0 |
| if (r7 != 0) {
0x00017510 beq 0x1751c |
0x00017514 bl 0x1cd68 | r0 = fcn_0001cd68 ();
0x00017518 mov r7, r0 | r7 = r0;
| }
0x0001751c ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x00017520 orrs r3, r6, r3 | r3 = r6 | r3;
| if (r3 != r6) {
0x00017524 mvneq sl, 0 | sl = ~0;
| }
| if (r3 != r6) {
0x00017528 beq 0x17534 |
0x0001752c bl 0x12174 | r0 = getpid ();
0x00017530 mov sl, r0 | sl = r0;
| }
0x00017534 mov r0, r8 | r0 = r8;
0x00017538 bl 0x120c0 | r0 = strlen (r0);
0x0001753c add r0, r8, r0 | r0 = r8 + r0;
0x00017540 ldrb r3, [r0, -1] | r3 = *((r0 - 1));
0x00017544 cmp r3, 0xa |
| if (r3 == 0xa) {
0x00017548 addne fp, sp, 0x14 |
| }
| if (r3 != 0xa) {
0x0001754c addeq fp, sp, 0x10 |
| }
0x00017550 cmp sb, 0 |
| if (sb != 0) {
0x00017554 beq 0x175c4 |
0x00017558 ldr r3, [sp, 0xc] | r3 = var_ch;
0x0001755c cmp r3, 3 |
| if (r3 > 3) {
0x00017560 ldrle r3, [pc, 0xd4] | r3 = obj.stderr;
| }
| if (r3 <= 3) {
0x00017564 ldrgt r3, [pc, 0xd4] | r3 = obj.stdout;
| }
0x00017568 ldr sb, [r3] | sb = *(r3);
0x0001756c ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x00017570 cmp r3, 0 |
| if (r3 != 0) {
0x00017574 beq 0x17588 |
0x00017578 mov r2, r7 | r2 = r7;
0x0001757c ldr r1, [pc, 0xc0] | r1 = stdout;
0x00017580 mov r0, sb | r0 = sb;
0x00017584 bl 0x1230c | fprintf (r0, r1, r2)
| }
0x00017588 ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x0001758c cmp r3, 0 |
| if (r3 != 0) {
0x00017590 beq 0x175a8 |
0x00017594 mov r3, sl | r3 = sl;
0x00017598 ldr r2, [r4, 4] | r2 = *((r4 + 4));
0x0001759c ldr r1, [pc, 0xa4] | r1 = "_s_";
0x000175a0 mov r0, sb | r0 = sb;
0x000175a4 bl 0x1230c | fprintf (r0, "_s_", r2, r3)
| }
0x000175a8 mov r3, fp | r3 = fp;
0x000175ac mov r2, r8 | r2 = r8;
0x000175b0 ldr r1, [pc, 0x94] | r1 = "_s__d_:_";
0x000175b4 mov r0, sb | r0 = sb;
0x000175b8 bl 0x1230c | fprintf (r0, "_s__d_:_", r2, r3)
0x000175bc mov r0, sb | r0 = sb;
0x000175c0 bl 0x122b8 | fflush (r0);
| }
0x000175c4 cmp r6, 0 |
| if (r6 == 0) {
0x000175c8 beq 0x1760c | goto label_2;
| }
0x000175cc ldr r3, [r5, 4] | r3 = *((r5 + 4));
0x000175d0 ldr r5, [pc, 0x78] | r5 = *(0x1764c);
0x000175d4 cmp r3, 0 |
| if (r3 != 0) {
0x000175d8 beq 0x175ec |
0x000175dc mov r2, r7 | r2 = r7;
0x000175e0 ldr r1, [pc, 0x5c] | r1 = stdout;
0x000175e4 ldr r0, [r5] | r0 = *(r5);
0x000175e8 bl 0x1230c | fprintf (r0, r1, r2)
| }
0x000175ec stm sp, {r8, fp} | *(sp) = r8;
| *((sp + 4)) = fp;
0x000175f0 ldr r2, [r4, 4] | r2 = *((r4 + 4));
0x000175f4 mov r3, sl | r3 = sl;
0x000175f8 ldr r1, [pc, 0x54] | r1 = *(0x17650);
0x000175fc ldr r0, [r5] | r0 = *(r5);
0x00017600 bl 0x1230c | fprintf (r0, r1, r2, r3)
0x00017604 ldr r0, [r5] | r0 = *(r5);
0x00017608 bl 0x122b8 | fflush (r0);
| }
| label_2:
0x0001760c add sp, sp, 0x1c |
0x00017610 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_1:
0x00017614 ldr r3, [pc, 0x34] |
0x00017618 ldr r3, [r3] | r3 = *(0x1764c);
0x0001761c cmp r3, 0 |
| if (r3 == 0) {
0x00017620 movne r6, 1 | r6 = 1;
| }
| if (r3 != 0) {
0x00017624 moveq sb, 1 | sb = 1;
| }
0x00017628 b 0x17500 |
| } 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/ntpdate @ 0x1b020 */
| #include <stdint.h>
|
; (fcn) fcn.0001b020 () | void fcn_0001b020 (int32_t arg1) {
| int32_t var_0h;
| int32_t var_4h;
| int32_t var_8h;
| r0 = arg1;
0x0001b020 ldr r3, [pc, 0x7c] |
0x0001b024 push {r0, r1, r4, lr} |
0x0001b028 ldr r3, [r3] | r3 = *(0x1b0a0);
0x0001b02c mov r4, r0 | r4 = r0;
0x0001b030 cmp r3, 0 |
| if (r3 == 0) {
0x0001b034 bne 0x1b03c |
0x0001b038 bl 0x1af90 | fcn_0001af90 ();
| }
0x0001b03c mov r0, r4 | r0 = r4;
0x0001b040 bl 0x12420 | OBJ_nid2sn ();
0x0001b044 ldr r3, [pc, 0x5c] | r3 = *(0x1b0a4);
0x0001b048 cmp r4, r3 |
| if (r4 == r3) {
0x0001b04c bne 0x1b090 |
0x0001b050 ldr r3, [pc, 0x54] |
0x0001b054 ldr r4, [pc, 0x54] | r4 = *(0x1b0ac);
0x0001b058 ldr r3, [r3] | r3 = *(0x1b0a8);
0x0001b05c cmp r3, 0 |
| if (r3 != 0) {
0x0001b060 beq 0x1b088 |
0x0001b064 ldr r3, [pc, 0x48] | r3 = "AES128CMAC";
0x0001b068 ldr r0, [pc, 0x48] |
0x0001b06c str r3, [sp] | *(sp) = r3;
0x0001b070 str r4, [sp, 4] | var_4h = r4;
0x0001b074 mov r3, 0xdf | r3 = 0xdf;
0x0001b078 ldr r2, [pc, 0x3c] | r2 = stderr;
0x0001b07c ldr r1, [pc, 0x3c] | r1 = "ssl_init.c";
0x0001b080 ldr r0, [r0] | r0 = "keytype_name";
0x0001b084 bl 0x1230c | fprintf ("keytype_name", "ssl_init.c", r2, "AES128CMAC", r4)
| }
0x0001b088 mov r0, r4 | r0 = r4;
0x0001b08c b 0x1b09c |
| } else {
0x0001b090 ldr r3, [pc, 0x2c] | r3 = "_s:_d:_s__:_s:nid";
0x0001b094 cmp r0, 0 |
| if (r0 == 0) {
0x0001b098 moveq r0, r3 | r0 = r3;
| goto label_0;
| }
| }
| label_0:
0x0001b09c add sp, sp, 8 |
0x0001b0a0 pop {r4, 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/ntpdate @ 0x1b0c8 */
| #include <stdint.h>
|
; (fcn) fcn.0001b0c8 () | void fcn_0001b0c8 (int32_t arg1, int32_t arg2) {
| int32_t var_0h;
| int32_t var_4h;
| int32_t var_8h;
| r0 = arg1;
| r1 = arg2;
0x0001b0c8 ldr r3, [pc, 0x23c] |
0x0001b0cc push {r0, r1, r4, r5, r6, r7, r8, lr} |
0x0001b0d0 ldr r3, [r3] | r3 = *(0x1b308);
0x0001b0d4 mov r6, r0 | r6 = r0;
0x0001b0d8 cmp r3, 0 |
0x0001b0dc mov r7, r1 | r7 = r1;
| if (r3 == 0) {
0x0001b0e0 bne 0x1b0e8 |
0x0001b0e4 bl 0x1af90 | fcn_0001af90 ();
| }
0x0001b0e8 ldr r4, [pc, 0x220] | r4 = *(0x1b30c);
0x0001b0ec ldr r5, [pc, 0x220] |
0x0001b0f0 ldr r0, [r4] | r0 = *(0x1b30c);
0x0001b0f4 mov r2, 0x80 | r2 = 0x80;
0x0001b0f8 mov r1, 0 | r1 = 0;
0x0001b0fc add r0, r5, r0, lsl 7 | r0 = r5 + (r0 << 7);
0x0001b100 bl 0x122c4 | memset (r0, r1, r2);
0x0001b104 ldr r3, [r4] | r3 = *(0x1b30c);
0x0001b108 mov r2, 0x80 | r2 = 0x80;
0x0001b10c add r5, r5, r3, lsl 7 | r5 = 0x1b310;
0x0001b110 add r3, r3, 1 | r3++;
0x0001b114 and r3, r3, 0xf | r3 &= 0xf;
0x0001b118 mov r1, r6 | r1 = r6;
0x0001b11c mov r0, r5 | r0 = r5;
0x0001b120 str r3, [r4] | *(r4) = r3;
0x0001b124 bl 0x11f4c | strlcpy (r0, r1, r2);
0x0001b128 ldr r3, [pc, 0x1e8] | r3 = *(0x1b314);
0x0001b12c sub r2, r5, 1 | r2 = r5 - 1;
0x0001b130 ldr r1, [r3] | r1 = *(0x1b314);
| do {
0x0001b134 ldrb r3, [r2, 1]! | r3 = *((r2 += 1));
0x0001b138 cmp r3, 0 |
| if (r3 == 0) {
0x0001b13c bne 0x1b238 |
0x0001b140 mov r0, r5 | r0 = r5;
0x0001b144 bl 0x12300 | r0 = OBJ_sn2nid ();
0x0001b148 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 == r0) {
0x0001b14c bne 0x1b1a4 |
0x0001b150 ldr r8, [pc, 0x1c4] | r8 = __ctype_toupper;
0x0001b154 mov r2, 0xb | r2 = 0xb;
0x0001b158 mov r1, r5 | r1 = r5;
0x0001b15c mov r0, r8 | r0 = r8;
0x0001b160 bl 0x12054 | r0 = strncmp (r0, r1, r2);
0x0001b164 cmp r0, 0 |
| if (r0 != 0) {
0x0001b168 bne 0x1b248 | goto label_3;
| }
0x0001b16c ldr r3, [pc, 0x1ac] |
0x0001b170 ldr r3, [r3] | r3 = "AES128CMAC";
0x0001b174 cmp r3, 0 |
| if (r3 != 0) {
0x0001b178 beq 0x1b1a0 |
0x0001b17c ldr r3, [pc, 0x1a0] | r3 = *(0x1b320);
0x0001b180 ldr r0, [pc, 0x1a0] |
0x0001b184 str r3, [sp] | *(sp) = r3;
0x0001b188 str r8, [sp, 4] | var_4h = r8;
0x0001b18c mov r3, 0x87 | r3 = 0x87;
0x0001b190 ldr r2, [pc, 0x194] | r2 = stderr;
0x0001b194 ldr r1, [pc, 0x194] | r1 = "ssl_init.c";
0x0001b198 ldr r0, [r0] | r0 = "keytype_from_text";
0x0001b19c bl 0x1230c | fprintf ("keytype_from_text", "ssl_init.c", r2, r3)
| }
0x0001b1a0 ldr r4, [pc, 0x18c] | r4 = "%s:%d:%s():%s:key\n";
| }
| label_0:
0x0001b1a4 cmp r7, 0 |
| if (r7 == 0) {
0x0001b1a8 beq 0x1b268 | goto label_4;
| }
0x0001b1ac mov r0, r4 | r0 = r4;
0x0001b1b0 bl 0x12420 | OBJ_nid2sn ();
0x0001b1b4 bl 0x1203c | r0 = EVP_get_digestbyname ();
0x0001b1b8 subs r6, r0, 0 | r6 = r0 - 0;
| if (r6 != r0) {
0x0001b1bc moveq r5, r6 | r5 = r6;
| }
| if (r6 != r0) {
0x0001b1c0 beq 0x1b1cc |
0x0001b1c4 bl 0x1209c | r0 = EVP_MD_size ();
0x0001b1c8 mov r5, r0 | r5 = r0;
| }
0x0001b1cc cmp r6, 0 |
0x0001b1d0 clz r3, r5 | r3 &= r5;
0x0001b1d4 lsr r3, r3, 5 | r3 >>= 5;
| if (r6 == 0) {
0x0001b1d8 movne r6, r3 | r6 = r3;
| }
| if (r6 != 0) {
0x0001b1dc moveq r6, 1 | r6 = 1;
| }
0x0001b1e0 cmp r6, 0 |
| if (r6 == 0) {
0x0001b1e4 beq 0x1b2b4 | goto label_5;
| }
0x0001b1e8 ldr r3, [pc, 0x144] | r3 = "%s:%d:%s():%s:key\n";
0x0001b1ec cmp r4, r3 |
| if (r4 != r3) {
0x0001b1f0 bne 0x1b274 | goto label_6;
| }
0x0001b1f4 ldr r3, [pc, 0x124] |
0x0001b1f8 ldr r3, [r3] | r3 = "AES128CMAC";
0x0001b1fc cmp r3, 0 |
| if (r3 != 0) {
0x0001b200 beq 0x1b22c |
0x0001b204 ldr r3, [pc, 0x110] | r3 = __ctype_toupper;
0x0001b208 ldr r0, [pc, 0x118] |
0x0001b20c str r3, [sp, 4] | var_4h = r3;
0x0001b210 ldr r3, [pc, 0x10c] | r3 = *(0x1b320);
0x0001b214 ldr r2, [pc, 0x110] | r2 = stderr;
0x0001b218 str r3, [sp] | *(sp) = r3;
0x0001b21c ldr r1, [pc, 0x114] | r1 = *(0x1b334);
0x0001b220 mov r3, 0xa4 | r3 = 0xa4;
0x0001b224 ldr r0, [r0] | r0 = "keytype_from_text";
0x0001b228 bl 0x1230c | fprintf ("keytype_from_text", r1, r2, r3)
| }
0x0001b22c mov r5, 0x10 | r5 = 0x10;
| label_1:
0x0001b230 str r5, [r7] | *(r7) = r5;
0x0001b234 b 0x1b268 | goto label_4;
| }
0x0001b238 lsl r3, r3, 1 | r3 <<= 1;
0x0001b23c ldrh r3, [r1, r3] | r3 = *((r1 + r3));
0x0001b240 strb r3, [r2] | *(r2) = r3;
0x0001b244 b 0x1b134 |
| } while (1);
| label_3:
0x0001b248 ldr r2, [pc, 0xec] |
0x0001b24c ldrb r3, [r6] | r3 = *(r6);
0x0001b250 ldr r2, [r2] | r2 = "_s:_d:_s__:_s:len";
0x0001b254 lsl r3, r3, 1 | r3 <<= 1;
0x0001b258 ldrsh r3, [r2, r3] | r3 = *((r2 + r3));
0x0001b25c cmp r3, 0x6d |
| if (r3 == 0x6d) {
0x0001b260 moveq r4, 4 | r4 = 4;
| goto label_7;
| }
| if (r3 == 0x6d) {
| label_7:
0x0001b264 beq 0x1b1a4 | goto label_0;
| }
| do {
| label_4:
0x0001b268 mov r0, r4 | r0 = r4;
0x0001b26c add sp, sp, 8 |
0x0001b270 pop {r4, r5, r6, r7, r8, pc} |
| label_6:
0x0001b274 ldr r3, [pc, 0xac] | r3 = "keytype_from_text";
0x0001b278 mov r0, r4 | r0 = r4;
0x0001b27c ldr r5, [r3] | r5 = "keytype_from_text";
0x0001b280 bl 0x1b020 | fcn_0001b020 (r0);
0x0001b284 ldr r1, [pc, 0xb4] | r1 = __ctype_tolower;
0x0001b288 mov r2, r0 | r2 = r0;
0x0001b28c mov r0, r5 | r0 = r5;
0x0001b290 bl 0x1230c | fprintf (r0, r1, r2)
0x0001b294 mov r0, r4 | r0 = r4;
0x0001b298 bl 0x1b020 | fcn_0001b020 (r0);
0x0001b29c ldr r1, [pc, 0x9c] | r1 = __ctype_tolower;
0x0001b2a0 mov r2, r0 | r2 = r0;
0x0001b2a4 mov r0, 3 | r0 = 3;
0x0001b2a8 bl 0x1776c | fcn_0001776c (r0);
| label_2:
0x0001b2ac mov r4, 0 | r4 = 0;
0x0001b2b0 b 0x1b268 |
| } while (1);
| label_5:
0x0001b2b4 cmp r5, 0x14 |
| if (r5 < 0x14) {
0x0001b2b8 bls 0x1b230 | goto label_1;
| }
0x0001b2bc ldr r3, [pc, 0x64] | r3 = "keytype_from_text";
0x0001b2c0 mov r0, r4 | r0 = r4;
0x0001b2c4 ldr r8, [r3] | r8 = "keytype_from_text";
0x0001b2c8 bl 0x1b020 | fcn_0001b020 (r0);
0x0001b2cc mov r7, 0x14 | r7 = 0x14;
0x0001b2d0 mov r3, r5 | r3 = r5;
0x0001b2d4 ldr r1, [pc, 0x68] | r1 = "key type %s is not supported by OpenSSL\n";
0x0001b2d8 str r7, [sp] | *(sp) = r7;
0x0001b2dc mov r2, r0 | r2 = r0;
0x0001b2e0 mov r0, r8 | r0 = r8;
0x0001b2e4 bl 0x1230c | fprintf (r0, "key type %s is not supported by OpenSSL\n", r2, r3)
0x0001b2e8 mov r0, r4 | r0 = r4;
0x0001b2ec bl 0x1b020 | fcn_0001b020 (r0);
0x0001b2f0 str r7, [sp] | *(sp) = r7;
0x0001b2f4 mov r3, r5 | r3 = r5;
0x0001b2f8 ldr r1, [pc, 0x48] | r1 = "key_type__s__u_octet_digests_are_too_big__max__lu";
0x0001b2fc mov r2, r0 | r2 = r0;
0x0001b300 mov r0, 3 | r0 = 3;
0x0001b304 bl 0x1776c | fcn_0001776c (r0);
0x0001b308 b 0x1b2ac | 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/ntpdate @ 0x1b7cc */
| #include <stdint.h>
|
; (fcn) fcn.0001b7cc () | void fcn_0001b7cc () {
| int32_t var_0h;
| int32_t var_4h;
| int32_t var_8h;
0x0001b7cc push {r0, r1, r4, r5, r6, lr} |
0x0001b7d0 ldr r4, [pc, 0x6c] | r4 = *(0x1b840);
0x0001b7d4 ldr r1, [pc, 0x6c] | r1 = *(0x1b844);
0x0001b7d8 add r0, r4, 4 | r0 = r4 + 4;
0x0001b7dc bl 0x120f0 | r0 = pthread_once ();
0x0001b7e0 cmp r0, 0 |
| if (r0 != 0) {
0x0001b7e4 beq 0x1b83c |
0x0001b7e8 ldr r3, [pc, 0x5c] | r3 = *(0x1b848);
0x0001b7ec mov r2, 0x6e | r2 = 0x6e;
0x0001b7f0 ldr r5, [r3] | r5 = *(0x1b848);
0x0001b7f4 mov r1, 1 | r1 = 1;
0x0001b7f8 ldr r3, [pc, 0x50] | r3 = stderr;
0x0001b7fc ldr r0, [r4] | r0 = *(r4);
0x0001b800 bl 0x1b934 | fcn_0001b934 (r0, r1);
0x0001b804 ldr r3, [pc, 0x48] | r3 = "fatal error";
0x0001b808 mov r2, 0x65 | r2 = 0x65;
0x0001b80c mov r1, 1 | r1 = 1;
0x0001b810 mov r6, r0 | r6 = r0;
0x0001b814 ldr r0, [r4] | r0 = *(r4);
0x0001b818 bl 0x1b934 | fcn_0001b934 (r0, r1);
0x0001b81c mov r3, 0x4d | r3 = 0x4d;
0x0001b820 ldr r2, [pc, 0x30] | r2 = "failed";
0x0001b824 ldr r1, [pc, 0x30] | r1 = "./../lib/isc/lib.c";
0x0001b828 str r6, [sp] | *(sp) = r6;
0x0001b82c str r0, [sp, 4] | var_4h = r0;
0x0001b830 mov r0, r5 | r0 = r5;
0x0001b834 bl 0x1230c | r0 = fprintf (r0, "./../lib/isc/lib.c", "failed", r3, r4, r5, r6)
0x0001b838 bl 0x12324 | abort ();
| }
0x0001b83c add sp, sp, 8 |
0x0001b840 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/ntpdate @ 0x1f774 */
| #include <stdint.h>
|
| #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
|
; (fcn) fcn.0001f774 () | void fcn_0001f774 (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;
0x0001f774 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x0001f778 subs r5, r0, 0 | r5 -= arg_198h;
0x0001f77c sub sp, sp, 0x174 |
0x0001f780 str r1, [sp, 0x28] | var_28h = r1;
0x0001f784 str r2, [sp, 0x2c] | var_2ch = r2;
0x0001f788 str r3, [sp, 0x20] | var_20h = r3;
0x0001f78c ldr r4, [sp, 0x19c] | r4 = *(arg_19ch);
| if (r5 == arg_198h) {
0x0001f790 beq 0x1f7b8 | goto label_14;
| }
0x0001f794 ldr r2, [r5] | r2 = *(r5);
0x0001f798 ldr r3, [pc, 0x8f0] | r3 = *(0x2008c);
0x0001f79c cmp r2, r3 |
| if (r2 == r3) {
0x0001f7a0 beq 0x1f7b8 | goto label_14;
| }
0x0001f7a4 ldr r3, [pc, 0x8e8] | r3 = *(0x20090);
0x0001f7a8 mov r2, 0 | r2 = 0;
0x0001f7ac mov r1, 0x590 | r1 = 0x590;
| do {
| label_0:
0x0001f7b0 ldr r0, [pc, 0x8e0] | r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
0x0001f7b4 bl 0x1b5ac | fcn_0001b5ac ();
| label_14:
0x0001f7b8 ldr r3, [sp, 0x28] | r3 = var_28h;
0x0001f7bc cmp r3, 0 |
| if (r3 != 0) {
0x0001f7c0 ldreq r3, [pc, 0x8d4] | r3 = "category_____void__0_";
| }
| if (r3 != 0) {
0x0001f7c4 ldreq r2, [sp, 0x28] | r2 = var_28h;
| }
| if (r3 != 0) {
0x0001f7c8 ldreq r1, [pc, 0x8d0] | r1 = *(0x000200a0);
| }
0x0001f7cc beq 0x1f7b0 |
| } while (r3 == 0);
0x0001f7d0 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0001f7d4 cmp r3, 0 |
| if (r3 != 0) {
0x0001f7d8 ldreq r3, [pc, 0x8c4] | r3 = "module_____void__0_";
| }
| if (r3 != 0) {
0x0001f7dc ldreq r2, [sp, 0x2c] | r2 = var_2ch;
| }
| if (r3 == 0) {
0x0001f7e0 ldreq r1, [pc, 0x8c0] | r1 = *(0x000200a8);
| goto label_15;
| }
| if (r3 == 0) {
| label_15:
0x0001f7e4 beq 0x1f7b0 | goto label_0;
| }
0x0001f7e8 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001f7ec cmp r3, 0 |
| if (r3 != 0) {
0x0001f7f0 ldreq r3, [pc, 0x8b4] | r3 = "level___0";
| }
| if (r3 != 0) {
0x0001f7f4 ldreq r2, [sp, 0x20] | r2 = var_20h;
| }
| if (r3 == 0) {
0x0001f7f8 ldreq r1, [pc, 0x8b0] | r1 = *(0x000200b0);
| goto label_16;
| }
| if (r3 == 0) {
| label_16:
0x0001f7fc beq 0x1f7b0 | goto label_0;
| }
0x0001f800 ldr r3, [sp, 0x1a8] | r3 = *(arg_1a8h);
0x0001f804 cmp r3, 0 |
| if (r3 != 0) {
0x0001f808 ldreq r3, [pc, 0x8a4] | r3 = "format != ((void *)0)";
| }
| if (r3 != 0) {
0x0001f80c ldreq r2, [sp, 0x1a8] | r2 = *(arg_1a8h);
| }
| if (r3 == 0) {
0x0001f810 ldreq r1, [pc, 0x8a0] | r1 = *(0x000200b8);
| goto label_17;
| }
| if (r3 == 0) {
| label_17:
0x0001f814 beq 0x1f7b0 | goto label_0;
| }
0x0001f818 cmp r5, 0 |
| if (r5 == 0) {
0x0001f81c beq 0x1fcd4 | goto label_12;
| }
0x0001f820 ldr r3, [sp, 0x28] | r3 = var_28h;
0x0001f824 ldr r2, [r3, 4] | r2 = *((r3 + 4));
0x0001f828 ldr r3, [r5, 0xc] | r3 = *((r5 + 0xc));
0x0001f82c cmp r2, r3 |
| if (r2 < r3) {
0x0001f830 ldrhs r3, [pc, 0x884] | r3 = *((pc + 0x884));
| }
| if (r2 < r3) {
0x0001f834 movhs r2, 0 | r2 = 0;
| }
| if (r2 >= r3) {
0x0001f838 ldrhs r1, [pc, 0x880] | r1 = *(0x000200c0);
| goto label_18;
| }
| if (r2 >= r3) {
| label_18:
0x0001f83c bhs 0x1f7b0 | goto label_0;
| }
0x0001f840 ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0001f844 ldr r2, [r3, 4] | r2 = *((r3 + 4));
0x0001f848 ldr r3, [r5, 0x14] | r3 = *((r5 + 0x14));
0x0001f84c cmp r2, r3 |
| if (r2 < r3) {
0x0001f850 ldrhs r3, [pc, 0x86c] | r3 = "module__id___lctx__module_count";
| }
| if (r2 < r3) {
0x0001f854 movhs r2, 0 | r2 = 0;
| }
| if (r2 >= r3) {
0x0001f858 ldrhs r1, [pc, 0x868] | r1 = *(0x000200c8);
| goto label_19;
| }
| if (r2 >= r3) {
| label_19:
0x0001f85c bhs 0x1f7b0 | goto label_0;
| }
0x0001f860 ldr r1, [sp, 0x20] | r1 = var_20h;
0x0001f864 mov r0, r5 | r0 = r5;
0x0001f868 bl 0x1f724 | r0 = fcn_0001f724 (r0, r1);
0x0001f86c cmp r0, 0 |
| if (r0 == 0) {
0x0001f870 beq 0x1fcd4 | goto label_12;
| }
0x0001f874 cmp r4, 0 |
| if (r4 != 0) {
0x0001f878 beq 0x1f890 |
0x0001f87c add r1, sp, 0x1a0 | r1 += arg_1a0h;
0x0001f880 ldm r1, {r1, r2, r3} | r1 = *(r1);
| r2 = *((r1 + 4));
| r3 = *((r1 + 8));
0x0001f884 mov r0, r4 | r0 = r4;
0x0001f888 bl 0x1b934 | fcn_0001b934 (r0, r1);
0x0001f88c str r0, [sp, 0x1a8] | *(arg_1a8h) = r0;
| }
0x0001f890 mov r3, 0 | r3 = 0;
0x0001f894 strb r3, [sp, 0x60] | var_60h = r3;
0x0001f898 strb r3, [sp, 0x48] | var_48h = r3;
0x0001f89c add r3, r5, 0x1c | r3 = r5 + 0x1c;
0x0001f8a0 mov r0, r3 | r0 = r3;
0x0001f8a4 str r3, [sp, 0x30] | var_30h = r3;
0x0001f8a8 bl 0x120d8 | r0 = pthread_mutex_lock ();
0x0001f8ac cmp r0, 0 |
| if (r0 != 0) {
0x0001f8b0 beq 0x1f8c4 |
0x0001f8b4 ldr r2, [pc, 0x810] | r2 = *(0x200c8);
0x0001f8b8 ldr r1, [pc, 0x810] | r1 = "__pthread_mutex_lock___lctx__lock_____0____0_:_34___0";
0x0001f8bc ldr r0, [pc, 0x7d4] | r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
0x0001f8c0 bl 0x1dfdc | fcn_0001dfdc ("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");
| }
0x0001f8c4 ldr r2, [r5, 0x34] | r2 = *((r5 + 0x34));
0x0001f8c8 mov r3, 0 | r3 = 0;
0x0001f8cc str r2, [sp, 0x24] | var_24h = r2;
0x0001f8d0 ldr r2, [sp, 0x28] | r2 = var_28h;
0x0001f8d4 strb r3, [r5, 0x38] | *((r5 + 0x38)) = r3;
0x0001f8d8 ldr r1, [r2, 4] | r1 = *((r2 + 4));
0x0001f8dc ldr r2, [sp, 0x24] | r2 = var_24h;
0x0001f8e0 ldr r6, [pc, 0x7ec] | r6 = *(0x200d0);
0x0001f8e4 ldr r2, [r2, 0x10] | r2 = *((r2 + 0x10));
0x0001f8e8 ldr r0, [r2, r1, lsl 3] | offset_0 = r1 << 3;
| r0 = *((r2 + offset_0));
| label_6:
0x0001f8ec clz r1, r0 | r1 &= r0;
0x0001f8f0 lsr r1, r1, 5 | r1 >>= 5;
0x0001f8f4 tst r1, r3 |
| if ((r1 & r3) != 0) {
0x0001f8f8 bne 0x20074 | goto label_20;
| }
0x0001f8fc eor r2, r3, 1 | r2 = r3 ^ 1;
0x0001f900 tst r1, r2 |
| if ((r1 & r2) == 0) {
0x0001f904 ldrne r1, [sp, 0x24] | r1 = var_24h;
| }
| if ((r1 & r2) == 0) {
0x0001f908 ldrne r1, [r1, 0x10] | r1 = *((r1 + 0x10));
| }
| if ((r1 & r2) == 0) {
0x0001f90c ldrne r0, [r1] | r0 = *(r1);
| }
0x0001f910 ldr r1, [pc, 0x7c0] | r1 = *(0x200d4);
0x0001f914 cmp r0, 0 |
| if (r0 == 0) {
0x0001f918 movne r2, 0 | r2 = 0;
| }
0x0001f91c cmp r2, 0 |
| if (r2 == 0) {
0x0001f920 movne r0, r1 | r0 = r1;
| }
0x0001f924 ldr r1, [r0, 0xc] | r1 = *((r0 + 0xc));
0x0001f928 ldr r2, [r0] | r2 = *(r0);
0x0001f92c str r1, [sp, 0x3c] | var_3ch = r1;
0x0001f930 ldr r1, [sp, 0x2c] | r1 = var_2ch;
0x0001f934 cmp r2, r1 |
0x0001f938 cmpne r2, 0 | __asm ("cmpne r2, 0");
| if (r2 != r1) {
0x0001f93c bne 0x1fdd4 | goto label_11;
| }
0x0001f940 ldr r4, [r0, 4] | r4 = *((r0 + 4));
0x0001f944 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001f948 tst r3, 0x1000 |
| if ((r3 & 0x1000) != 0) {
0x0001f94c beq 0x1f95c |
0x0001f950 ldr r2, [r5, 0x18] | r2 = *((r5 + 0x18));
0x0001f954 cmp r2, 0 |
| if (r2 == 0) {
0x0001f958 beq 0x1fdd0 | goto label_7;
| }
| }
0x0001f95c ldr r2, [r4, 8] | r2 = *((r4 + 8));
0x0001f960 ldr r1, [sp, 0x20] | r1 = var_20h;
0x0001f964 cmp r2, 0 |
| if (r2 != 0) {
0x0001f968 ldreq r2, [r5, 0x18] | r2 = *((r5 + 0x18));
| }
0x0001f96c cmp r2, r1 |
| if (r2 < r1) {
0x0001f970 blt 0x1fdd0 | goto label_7;
| }
0x0001f974 tst r3, 1 |
| if ((r3 & 1) != 0) {
0x0001f978 beq 0x1f9b8 |
0x0001f97c ldrb r3, [sp, 0x60] | r3 = var_60h;
0x0001f980 cmp r3, 0 |
| if (r3 != 0) {
0x0001f984 bne 0x1f9b8 | goto label_21;
| }
0x0001f988 add r0, sp, 0x108 | r0 += var_108h;
0x0001f98c bl 0x20a68 | r0 = fcn_00020a68 (r0);
0x0001f990 cmp r0, 0 |
| if (r0 != 0) {
0x0001f994 beq 0x1f9a8 |
0x0001f998 ldr r2, [pc, 0x73c] | r2 = *(0x200d8);
0x0001f99c ldr r1, [pc, 0x73c] | r1 = "isc_time_now((&isctime)) == 0";
0x0001f9a0 ldr r0, [pc, 0x6f0] | r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
0x0001f9a4 bl 0x1dfdc | fcn_0001dfdc ("lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____", "isc_time_now((&isctime)) == 0");
| }
0x0001f9a8 mov r2, 0x40 | r2 = 0x40;
0x0001f9ac add r1, sp, 0x60 | r1 += var_60h;
0x0001f9b0 add r0, sp, 0x108 | r0 += var_108h;
0x0001f9b4 bl 0x21088 | fcn_00021088 (r0, r1);
| }
| label_21:
0x0001f9b8 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001f9bc tst r3, 2 |
| if ((r3 & 2) == 0) {
0x0001f9c0 beq 0x1fa10 | goto label_1;
| }
0x0001f9c4 ldrb r3, [sp, 0x48] | r3 = var_48h;
0x0001f9c8 cmp r3, 0 |
| if (r3 != 0) {
0x0001f9cc bne 0x1fa10 | goto label_1;
| }
0x0001f9d0 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001f9d4 cmn r3, 5 |
| if (r3 >= 5) {
0x0001f9d8 bge 0x1fbd8 | goto label_22;
| }
0x0001f9dc ldr r0, [pc, 0x700] |
0x0001f9e0 ldr r3, [pc, 0x700] | r3 = *(0x200e4);
0x0001f9e4 ldr r2, [pc, 0x700] | r2 = "level";
0x0001f9e8 mov r1, 0xa | r1 = 0xa;
0x0001f9ec ldr r0, [r0] | r0 = *(0x200e0);
0x0001f9f0 bl 0x1b934 | fcn_0001b934 (r0, r1);
0x0001f9f4 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001f9f8 str r3, [sp] | *(sp) = r3;
0x0001f9fc mov r3, r0 | r3 = r0;
| do {
0x0001fa00 ldr r2, [pc, 0x6e8] | r2 = *(0x200ec);
0x0001fa04 mov r1, 0x18 | r1 = 0x18;
0x0001fa08 add r0, sp, 0x48 | r0 += var_48h;
0x0001fa0c bl 0x1a9d0 | fcn_0001a9d0 ();
| label_1:
0x0001fa10 ldrb r7, [r5, 0x38] | r7 = *((r5 + 0x38));
0x0001fa14 cmp r7, 0 |
| if (r7 == 0) {
0x0001fa18 bne 0x1fab8 |
0x0001fa1c add r8, r5, 0x38 | r8 = r5 + 0x38;
0x0001fa20 ldr r3, [sp, 0x1ac] | r3 = *(arg_1ach);
0x0001fa24 ldr r2, [sp, 0x1a8] | r2 = *(arg_1a8h);
0x0001fa28 mov r1, 0x2000 | r1 = 0x2000;
0x0001fa2c mov r0, r8 | r0 = r8;
0x0001fa30 bl 0x1a2cc | fcn_0001a2cc (r0, r1);
0x0001fa34 ldr r3, [sp, 0x198] | r3 = *(arg_198h);
0x0001fa38 cmp r3, 0 |
| if (r3 == 0) {
0x0001fa3c beq 0x1fab8 | goto label_4;
| }
0x0001fa40 ldr r3, [sp, 0x24] | r3 = var_24h;
0x0001fa44 mov r2, r7 | r2 = r7;
0x0001fa48 ldr r1, [r3, 0x18] | r1 = *((r3 + 0x18));
0x0001fa4c add r0, sp, 0x108 | r0 += var_108h;
0x0001fa50 bl 0x208dc | fcn_000208dc (r0);
0x0001fa54 add r0, sp, 0x40 | r0 += var_40h;
0x0001fa58 bl 0x20a68 | r0 = fcn_00020a68 (r0);
0x0001fa5c cmp r0, 0 |
| if (r0 != 0) {
0x0001fa60 beq 0x1fa74 |
0x0001fa64 ldr r2, [pc, 0x688] | r2 = "%s %d: ";
0x0001fa68 ldr r1, [pc, 0x688] | r1 = "isc_time_now((&oldest)) == 0";
0x0001fa6c ldr r0, [pc, 0x624] | r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
0x0001fa70 bl 0x1dfdc | fcn_0001dfdc ("lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____", "isc_time_now((&oldest)) == 0");
| }
0x0001fa74 add r7, sp, 0x40 | r7 += var_40h;
0x0001fa78 mov r2, r7 | r2 = r7;
0x0001fa7c add r1, sp, 0x108 | r1 += var_108h;
0x0001fa80 mov r0, r7 | r0 = r7;
0x0001fa84 bl 0x20dd0 | r0 = fcn_00020dd0 (r0, r1);
0x0001fa88 cmp r0, 0 |
| if (r0 == 0) {
0x0001fa8c beq 0x1fc10 | goto label_23;
| }
| label_2:
0x0001fa90 mov r0, r8 | r0 = r8;
0x0001fa94 bl 0x120c0 | strlen (r0);
0x0001fa98 mov r3, 0 | r3 = 0;
0x0001fa9c mov r2, r3 | r2 = r3;
0x0001faa0 add r1, r0, 0x15 | r1 = r0 + 0x15;
0x0001faa4 mov sb, r0 | sb = r0;
0x0001faa8 mov r0, r3 | r0 = r3;
0x0001faac bl 0x16c28 | r0 = fcn_00016c28 (r0, r1);
0x0001fab0 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 != r0) {
0x0001fab4 bne 0x1fce4 | goto label_24;
| }
| }
| label_4:
0x0001fab8 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001fabc ands sb, r3, 0x10 | sb = r3 & 0x10;
0x0001fac0 and sl, r3, 1 | sl = r3 & 1;
| if (sb != r3) {
0x0001fac4 beq 0x1fad8 |
0x0001fac8 ldr r2, [sp, 0x24] | r2 = var_24h;
0x0001facc ldr sb, [r2, 0x20] | sb = *((r2 + 0x20));
0x0001fad0 adds sb, sb, 0 | sb += 0;
| if (sb != sb) {
0x0001fad4 movne sb, 1 | sb = 1;
| goto label_25;
| }
| }
| label_25:
0x0001fad8 ldr r0, [r4, 4] | r0 = *((r4 + 4));
0x0001fadc lsr fp, r3, 2 |
0x0001fae0 lsr r2, r3, 3 | r2 = r3 >> 3;
0x0001fae4 lsr r3, r3, 1 | r3 >>= 1;
0x0001fae8 and r2, r2, 1 | r2 &= 1;
0x0001faec and r3, r3, 1 | r3 &= 1;
0x0001faf0 cmp r0, 3 |
0x0001faf4 and fp, fp, 1 |
0x0001faf8 str r2, [sp, 0x34] | var_34h = r2;
0x0001fafc str r3, [sp, 0x38] | var_38h = r3;
| if (r0 == 3) {
0x0001fb00 beq 0x1fd44 | goto label_26;
| }
0x0001fb04 cmp r0, 4 |
| if (r0 == 4) {
0x0001fb08 beq 0x1ff74 | goto label_27;
| }
0x0001fb0c cmp r0, 2 |
| if (r0 != 2) {
0x0001fb10 bne 0x1fdd0 | goto label_7;
| }
0x0001fb14 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001fb18 cmp r3, 0 |
| if (r3 <= 0) {
0x0001fb1c movgt r0, 7 | r0 = 7;
| }
| if (r3 <= 0) {
0x0001fb20 bgt 0x1fb38 |
0x0001fb24 cmn r3, 5 |
| if (r3 < 5) {
0x0001fb28 ldrge r3, [pc, 0x5cc] | r3 = "debug";
| }
| if (r3 < 5) {
0x0001fb2c ldrge r2, [sp, 0x20] | r2 = var_20h;
| }
| if (r3 < 5) {
0x0001fb30 subge r3, r3, r2, lsl 2 | r3 -= (r2 << 2);
| }
| if (r3 >= 5) {
0x0001fb34 ldrge r0, [r3, 0x18] | r0 = *((r3 + 0x18));
| goto label_28;
| }
| }
| label_28:
0x0001fb38 ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x0001fb3c cmp sl, 0 |
0x0001fb40 orr r0, r0, r3 | r0 |= r3;
| if (sl != 0) {
0x0001fb44 moveq r2, r6 | r2 = r6;
| }
| if (sl != 0) {
0x0001fb48 moveq r3, r6 | r3 = r6;
| }
| if (sl == 0) {
0x0001fb4c addne r2, sp, 0x60 | r2 += var_60h;
| }
| if (sl == 0) {
0x0001fb50 ldrne r3, [pc, 0x5a8] | r3 = *((pc + 0x5a8));
| }
0x0001fb54 cmp sb, 0 |
| if (sb == 0) {
0x0001fb58 ldrne r1, [sp, 0x24] | r1 = var_24h;
| }
| if (sb != 0) {
0x0001fb5c moveq r1, r6 | r1 = r6;
| }
| if (sb == 0) {
0x0001fb60 ldrne r1, [r1, 0x20] | r1 = *((r1 + 0x20));
| }
| if (sb == 0) {
0x0001fb64 ldrne ip, [pc, 0x598] | ip = ":_";
| }
| if (sb != 0) {
0x0001fb68 moveq ip, r6 |
| }
0x0001fb6c cmp fp, 0 |
0x0001fb70 ldr r7, [sp, 0x34] | r7 = var_34h;
| if (fp == 0) {
0x0001fb74 ldrne lr, [sp, 0x28] | lr = var_28h;
| }
| if (fp == 0) {
0x0001fb78 ldrne r4, [pc, 0x584] | r4 = ":_";
| }
| if (fp == 0) {
0x0001fb7c ldrne lr, [lr] |
| }
| if (fp != 0) {
0x0001fb80 moveq lr, r6 | lr = r6;
| }
| if (fp != 0) {
0x0001fb84 moveq r4, r6 | r4 = r6;
| }
0x0001fb88 cmp r7, 0 |
| if (r7 == 0) {
0x0001fb8c ldrne r7, [sp, 0x2c] | r7 = var_2ch;
| }
0x0001fb90 ldr sb, [sp, 0x38] | sb = var_38h;
| if (r7 == 0) {
0x0001fb94 ldrne r7, [r7] | r7 = *(r7);
| }
| if (r7 == 0) {
0x0001fb98 ldrne r8, [pc, 0x564] | r8 = ":_";
| }
| if (r7 != 0) {
0x0001fb9c moveq r7, r6 | r7 = r6;
| }
| if (r7 != 0) {
0x0001fba0 moveq r8, r6 | r8 = r6;
| }
0x0001fba4 cmp sb, 0 |
| if (sb == 0) {
0x0001fba8 addne sb, sp, 0x48 | sb += var_48h;
| }
| if (sb != 0) {
0x0001fbac moveq sb, r6 | sb = r6;
| }
0x0001fbb0 add sl, r5, 0x38 | sl = r5 + 0x38;
0x0001fbb4 stm sp, {r1, ip, lr} | *(sp) = r1;
| *((sp + 4)) = ip;
| *((sp + 8)) = lr;
0x0001fbb8 ldr r1, [pc, 0x548] | r1 = ":_";
0x0001fbbc str sl, [sp, 0x1c] | var_1ch = sl;
0x0001fbc0 str sb, [sp, 0x18] | var_18h = sb;
0x0001fbc4 str r8, [sp, 0x14] | var_14h = r8;
0x0001fbc8 str r7, [sp, 0x10] | var_10h = r7;
0x0001fbcc str r4, [sp, 0xc] | var_ch = r4;
0x0001fbd0 bl 0x12354 | syslog ();
0x0001fbd4 b 0x1fdd0 | goto label_7;
| label_22:
0x0001fbd8 ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001fbdc cmp r3, 0 |
| if (r3 <= 0) {
0x0001fbe0 strgt r3, [sp] | *(sp) = r3;
| }
| if (r3 <= 0) {
0x0001fbe4 ldrgt r3, [pc, 0x520] | r3 = *((pc + 0x520));
| }
0x0001fbe8 bgt 0x1fa00 |
| } while (r3 > 0);
0x0001fbec ldr r3, [sp, 0x20] | r3 = var_20h;
0x0001fbf0 mov r1, 0x18 | r1 = 0x18;
0x0001fbf4 rsb r2, r3, 0 | r2 = r3 - ;
0x0001fbf8 ldr r3, [pc, 0x4fc] |
0x0001fbfc add r0, sp, 0x48 | r0 += var_48h;
0x0001fc00 ldr r3, [r3, r2, lsl 2] | r3 = *(0x200f8);
0x0001fc04 ldr r2, [pc, 0x504] | r2 = *(0x2010c);
0x0001fc08 bl 0x1a9d0 | fcn_0001a9d0 ();
0x0001fc0c b 0x1fa10 | goto label_1;
| label_23:
0x0001fc10 add sl, r5, 0x2000 | sl = r5 + 0x2000;
0x0001fc14 ldr sb, [sl, 0x38] | sb = *((sl + 0x38));
| label_3:
0x0001fc18 cmp sb, 0 |
| if (sb == 0) {
0x0001fc1c beq 0x1fa90 | goto label_2;
| }
0x0001fc20 mov r1, r7 | r1 = r7;
0x0001fc24 add r0, sb, 4 | r0 = sb + 4;
0x0001fc28 bl 0x20c44 | r0 = fcn_00020c44 (r0, r1);
0x0001fc2c cmp r0, 0 |
| if (r0 >= 0) {
0x0001fc30 bge 0x1fca0 | goto label_29;
| }
0x0001fc34 ldr fp, [sb, 0x10] | fp = *((sb + 0x10));
0x0001fc38 cmp fp, 0 |
| if (fp == 0) {
0x0001fc3c ldrne r3, [sb, 0xc] | r3 = *((sb + 0xc));
| }
| if (fp == 0) {
0x0001fc40 strne r3, [fp, 0xc] | *(arg_ch) = r3;
| }
| if (fp != 0) {
0x0001fc44 bne 0x1fc6c | goto label_30;
| }
0x0001fc48 ldr r3, [sl, 0x3c] | r3 = *((sl + 0x3c));
0x0001fc4c cmp r3, sb |
| if (r3 == sb) {
0x0001fc50 beq 0x1fc64 | goto label_31;
| }
0x0001fc54 ldr r3, [pc, 0x4b8] | r3 = *(0x20110);
| do {
0x0001fc58 mov r2, 2 | r2 = 2;
0x0001fc5c ldr r1, [pc, 0x4b4] | r1 = "(lctx->essages).tail == (message)";
0x0001fc60 b 0x1f7b0 | goto label_0;
| label_31:
0x0001fc64 ldr r3, [sb, 0xc] | r3 = *((sb + 0xc));
0x0001fc68 str r3, [sl, 0x3c] | *((sl + 0x3c)) = r3;
| label_30:
0x0001fc6c ldr r3, [sb, 0xc] | r3 = *((sb + 0xc));
0x0001fc70 cmp r3, 0 |
| if (r3 == 0) {
0x0001fc74 strne fp, [r3, 0x10] | *((r3 + 0x10)) = fp;
| }
| if (r3 != 0) {
0x0001fc78 bne 0x1fc90 | goto label_32;
| }
0x0001fc7c ldr r3, [sl, 0x38] | r3 = *((sl + 0x38));
0x0001fc80 cmp r3, sb |
| if (r3 == sb) {
0x0001fc84 ldrne r3, [pc, 0x490] | r3 = "(lctx->essages).head == (message)";
| }
0x0001fc88 bne 0x1fc58 |
| } while (r3 != sb);
0x0001fc8c str fp, [sl, 0x38] | *((sl + 0x38)) = fp;
| label_32:
0x0001fc90 mov r0, sb | r0 = sb;
0x0001fc94 bl 0x1242c | free (r0);
| do {
0x0001fc98 mov sb, fp | sb = fp;
0x0001fc9c b 0x1fc18 | goto label_3;
| label_29:
0x0001fca0 ldr r1, [sb] | r1 = *(sb);
0x0001fca4 mov r0, r8 | r0 = r8;
0x0001fca8 bl 0x123fc | r0 = strcmp (r0, r1);
0x0001fcac cmp r0, 0 |
| if (r0 == 0) {
0x0001fcb0 bne 0x1fcdc |
0x0001fcb4 ldr r0, [sp, 0x30] | r0 = var_30h;
0x0001fcb8 bl 0x123cc | r0 = pthread_mutex_unlock ();
0x0001fcbc cmp r0, 0 |
| if (r0 != 0) {
0x0001fcc0 beq 0x1fcd4 |
0x0001fcc4 ldr r2, [pc, 0x454] | r2 = "(lctx->essages).head == (message)";
0x0001fcc8 ldr r1, [pc, 0x454] | r1 = "((pthread_mutex_unlock(((&lctx->lock))) == 0) ? 0 : 34) == 0";
| label_13:
0x0001fccc ldr r0, [pc, 0x3c4] | r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
0x0001fcd0 bl 0x1dfdc | fcn_0001dfdc ("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:
0x0001fcd4 add sp, sp, 0x174 |
0x0001fcd8 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| }
0x0001fcdc ldr fp, [sb, 0x10] | fp = *((sb + 0x10));
0x0001fce0 b 0x1fc98 |
| } while (1);
| label_24:
0x0001fce4 add r0, r7, 0x14 | r0 = r7 + 0x14;
0x0001fce8 mov sl, r7 | sl = r7;
0x0001fcec str r0, [sl], 4 | *(sl) = r0;
| sl += 4;
0x0001fcf0 add r2, sb, 1 | r2 = sb + 1;
0x0001fcf4 mov r1, r8 | r1 = r8;
0x0001fcf8 bl 0x11f4c | strlcpy (r0, r1, r2);
0x0001fcfc mov r0, sl | r0 = sl;
0x0001fd00 bl 0x20a68 | r0 = fcn_00020a68 (r0);
0x0001fd04 cmp r0, 0 |
| if (r0 != 0) {
0x0001fd08 beq 0x1fd1c |
0x0001fd0c ldr r2, [pc, 0x414] | r2 = *(0x20124);
0x0001fd10 ldr r1, [pc, 0x414] | r1 = "isc_time_now((&new->time)) == 0";
0x0001fd14 ldr r0, [pc, 0x37c] | r0 = "lctx____void__0______lctx______void__0_______const_isc__magic_t___lctx____magic_____L_____24___c_____16___t_____8___x_____";
0x0001fd18 bl 0x1dfdc | fcn_0001dfdc ("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");
| }
0x0001fd1c add r3, r5, 0x2000 | r3 = r5 + 0x2000;
0x0001fd20 ldr r2, [r3, 0x3c] | r2 = *((r3 + 0x3c));
0x0001fd24 cmp r2, 0 |
| if (r2 == 0) {
0x0001fd28 strne r7, [r2, 0x10] | *((r2 + 0x10)) = r7;
| }
| if (r2 != 0) {
0x0001fd2c streq r7, [r3, 0x38] | *((r3 + 0x38)) = r7;
| }
0x0001fd30 str r2, [r7, 0xc] | *((r7 + 0xc)) = r2;
0x0001fd34 mov r2, 0 | r2 = 0;
0x0001fd38 str r2, [r7, 0x10] | *((r7 + 0x10)) = r2;
0x0001fd3c str r7, [r3, 0x3c] | *((r3 + 0x3c)) = r7;
0x0001fd40 b 0x1fab8 | goto label_4;
| label_26:
0x0001fd44 ldr r3, [r4, 0x28] | r3 = *((r4 + 0x28));
0x0001fd48 cmp r3, 0 |
| if (r3 == 0) {
0x0001fd4c beq 0x1fd70 | goto label_33;
| }
0x0001fd50 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x0001fd54 cmn r3, 2 |
0x0001fd58 beq 0x1fd98 |
| while (r3 == 2) {
| label_5:
0x0001fd5c ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x0001fd60 bl 0x121b0 | fclose (r0);
0x0001fd64 mov r3, 0 | r3 = 0;
0x0001fd68 str r3, [r4, 0x10] | *((r4 + 0x10)) = r3;
0x0001fd6c str r3, [r4, 0x28] | *((r4 + 0x28)) = r3;
| label_33:
0x0001fd70 ldr r7, [r4, 0x10] | r7 = *((r4 + 0x10));
0x0001fd74 cmp r7, 0 |
| if (r7 != 0) {
0x0001fd78 bne 0x1ff74 | goto label_27;
| }
0x0001fd7c ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x0001fd80 cmp r3, 3 |
| if (r3 == 3) {
0x0001fd84 beq 0x1fddc | goto label_34;
| }
0x0001fd88 ldr r3, [pc, 0x3a0] | r3 = *(0x2012c);
0x0001fd8c mov r2, r7 | r2 = r7;
0x0001fd90 ldr r1, [pc, 0x39c] | r1 = "channel->type == 3";
0x0001fd94 b 0x1f7b0 | goto label_0;
0x0001fd98 add r1, sp, 0xa0 | r1 += var_a0h;
0x0001fd9c ldr r0, [r4, 0x14] | r0 = *((r4 + 0x14));
0x0001fda0 bl 0x12168 | r0 = stat64 ();
0x0001fda4 cmp r0, 0 |
| if (r0 == 0) {
0x0001fda8 beq 0x1fdbc | goto label_35;
| }
0x0001fdac bl 0x11f1c | r0 = errno_location ();
0x0001fdb0 ldr r3, [r0] | r3 = *(r0);
0x0001fdb4 cmp r3, 2 |
0x0001fdb8 beq 0x1fd5c |
| }
| label_35:
0x0001fdbc ldrd r2, r3, [r4, 0x20] | __asm ("ldrd r2, r3, [r4, 0x20]");
0x0001fdc0 ldrd r0, r1, [sp, 0xd0] | __asm ("ldrd r0, r1, [var_d0h]");
0x0001fdc4 cmp r0, r2 |
0x0001fdc8 sbcs r3, r1, r3 | __asm ("sbcs r3, r1, r3");
| if (r0 < r2) {
0x0001fdcc blt 0x1fd5c | goto label_5;
| }
| do {
| label_7:
0x0001fdd0 mov r3, 1 | r3 = 1;
| label_11:
0x0001fdd4 ldr r0, [sp, 0x3c] | r0 = var_3ch;
0x0001fdd8 b 0x1f8ec | goto label_6;
| label_34:
0x0001fddc ldr r8, [r4, 0x14] | r8 = *((r4 + 0x14));
0x0001fde0 cmp r8, 0 |
| if (r8 != 0) {
0x0001fde4 beq 0x1fdf4 |
0x0001fde8 ldrb r3, [r8] | r3 = *(r8);
0x0001fdec cmp r3, 0 |
| if (r3 != 0) {
0x0001fdf0 bne 0x1fe04 | goto label_36;
| }
| }
0x0001fdf4 ldr r3, [pc, 0x33c] | r3 = *(0x20134);
0x0001fdf8 mov r2, 0 | r2 = 0;
0x0001fdfc ldr r1, [pc, 0x338] | r1 = "path != ((void *)0) && *path != '\\0';
0x0001fe00 b 0x1f7b0 | goto label_0;
| label_36:
0x0001fe04 add r1, sp, 0x108 | r1 += var_108h;
0x0001fe08 mov r0, r8 | r0 = r8;
0x0001fe0c bl 0x12168 | r0 = stat64 ();
0x0001fe10 subs ip, r0, 0 |
| if (ip != r0) {
0x0001fe14 bne 0x1ff24 | goto label_37;
| }
0x0001fe18 ldr r7, [sp, 0x118] | r7 = var_118h;
0x0001fe1c ldrd r2, r3, [r4, 0x20] | __asm ("ldrd r2, r3, [r4, 0x20]");
0x0001fe20 and r7, r7, 0xf000 | r7 &= 0xf000;
0x0001fe24 sub r7, r7, 0x8000 | r7 -= 0x8000;
0x0001fe28 orrs r1, r2, r3 | r1 = r2 | r3;
0x0001fe2c clz r7, r7 | r7 &= r7;
0x0001fe30 lsr r7, r7, 5 | r7 >>= 5;
| if (r1 != r2) {
0x0001fe34 bne 0x1fef8 | goto label_38;
| }
0x0001fe38 ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x0001fe3c mov r0, ip | r0 = ip;
0x0001fe40 cmn r3, 2 |
| if (r3 == 2) {
0x0001fe44 beq 0x1ff1c | goto label_9;
| }
| label_8:
0x0001fe48 cmp r0, 0 |
| if (r0 != 0) {
0x0001fe4c moveq r0, r7 | r0 = r7;
| }
| if (r0 == 0) {
0x0001fe50 movne r0, 0 | r0 = 0;
| }
0x0001fe54 cmp r0, 0 |
| if (r0 == 0) {
0x0001fe58 beq 0x1ff48 | goto label_39;
| }
0x0001fe5c ldr r3, [r4, 0x18] | r3 = *((r4 + 0x18));
0x0001fe60 cmn r3, 2 |
| if (r3 != 2) {
0x0001fe64 moveq r7, 0x3a | r7 = 0x3a;
| }
| if (r3 != 2) {
0x0001fe68 beq 0x1feb0 |
0x0001fe6c mov r0, r4 | r0 = r4;
0x0001fe70 bl 0x1e244 | r0 = fcn_0001e244 (r0, r1, r2, r3);
0x0001fe74 subs r7, r0, 0 | r7 = r0 - 0;
| if (r7 == r0) {
0x0001fe78 beq 0x1ff48 | goto label_39;
| }
0x0001fe7c ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001fe80 tst r3, 0x8000 |
| if ((r3 & 0x8000) != 0) {
0x0001fe84 bne 0x1feb0 | goto label_10;
| }
0x0001fe88 ldr r8, [r4, 0x14] | r8 = *((r4 + 0x14));
0x0001fe8c bl 0x20560 | fcn_00020560 (r0);
0x0001fe90 ldr r1, [pc, 0x2a8] | r1 = *(0x2013c);
0x0001fe94 mov r2, r8 | r2 = r8;
0x0001fe98 mov r3, r0 | r3 = r0;
0x0001fe9c mov r0, 3 | r0 = 3;
0x0001fea0 bl 0x12354 | syslog ();
0x0001fea4 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001fea8 orr r3, r3, 0x8000 | r3 |= 0x8000;
0x0001feac str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
| }
| label_10:
0x0001feb0 cmp r7, 0 |
0x0001feb4 cmpne r7, 0x3a | __asm ("cmpne r7, 0x3a");
| if (r7 == 0) {
0x0001feb8 beq 0x1ff60 | goto label_40;
| }
0x0001febc ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001fec0 tst r3, 0x8000 |
0x0001fec4 bne 0x1fdd0 |
| } while ((r3 & 0x8000) != 0);
0x0001fec8 mov r0, r7 | r0 = r7;
0x0001fecc ldr r8, [r4, 0x14] | r8 = *((r4 + 0x14));
0x0001fed0 bl 0x20560 | fcn_00020560 (r0);
0x0001fed4 ldr r1, [pc, 0x268] | r1 = "isc_log_open:_roll_log__s_failed:__s";
0x0001fed8 mov r2, r8 | r2 = r8;
0x0001fedc mov r3, r0 | r3 = r0;
0x0001fee0 mov r0, 3 | r0 = 3;
0x0001fee4 bl 0x12354 | syslog ();
0x0001fee8 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001feec orr r3, r3, 0x8000 | r3 |= 0x8000;
0x0001fef0 str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
0x0001fef4 b 0x1fdd0 | goto label_7;
| label_38:
0x0001fef8 cmp r2, 1 |
0x0001fefc sbcs r1, r3, 0 | __asm ("sbcs r1, r3, 0");
| if (r2 < 1) {
0x0001ff00 blt 0x1ff40 | goto label_41;
| }
0x0001ff04 add r1, sp, 0x138 | r1 += var_138h;
0x0001ff08 ldrd r0, r1, [r1] | __asm ("ldrd r0, r1, [r1]");
0x0001ff0c cmp r0, r2 |
0x0001ff10 sbcs r3, r1, r3 | __asm ("sbcs r3, r1, r3");
0x0001ff14 mov r0, ip | r0 = ip;
| if (r0 >= r2) {
0x0001ff18 bge 0x1fe48 | goto label_8;
| }
| do {
| label_9:
0x0001ff1c mov r7, r0 | r7 = r0;
0x0001ff20 b 0x1fe48 | goto label_8;
| label_37:
0x0001ff24 bl 0x11f1c | r0 = errno_location ();
0x0001ff28 ldr r3, [r0] | r3 = *(r0);
0x0001ff2c cmp r3, 2 |
| if (r3 != 2) {
0x0001ff30 moveq r0, r7 | r0 = r7;
| }
0x0001ff34 beq 0x1ff1c |
| } while (r3 == 2);
0x0001ff38 mov r0, 0x1e | r0 = 0x1e;
0x0001ff3c b 0x1fe48 | goto label_8;
| label_41:
0x0001ff40 mov r0, ip | r0 = ip;
0x0001ff44 b 0x1ff1c | goto label_9;
| label_39:
0x0001ff48 add r2, r4, 0x10 | r2 = r4 + 0x10;
0x0001ff4c ldr r1, [pc, 0x1f4] | r1 = "isc_log_open '%s' failed: %s";
0x0001ff50 mov r0, r8 | r0 = r8;
0x0001ff54 bl 0x20674 | r0 = fcn_00020674 ();
0x0001ff58 mov r7, r0 | r7 = r0;
0x0001ff5c b 0x1feb0 | goto label_10;
| label_40:
0x0001ff60 cmp r7, 0 |
| if (r7 != 0) {
0x0001ff64 bne 0x1fdd0 | goto label_7;
| }
0x0001ff68 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x0001ff6c bic r3, r3, 0x8000 | r3 = BIT_MASK (r3, 0x8000);
0x0001ff70 str r3, [r4, 0xc] | *((r4 + 0xc)) = r3;
| label_27:
0x0001ff74 cmp sl, 0 |
| if (sl == 0) {
0x0001ff78 addne r2, sp, 0x60 | r2 += var_60h;
| }
| if (sl == 0) {
0x0001ff7c ldrne r3, [pc, 0x17c] | r3 = *((pc + 0x17c));
| }
| if (sl != 0) {
0x0001ff80 moveq r2, r6 | r2 = r6;
| }
| if (sl != 0) {
0x0001ff84 moveq r3, r6 | r3 = r6;
| }
0x0001ff88 cmp sb, 0 |
| if (sb == 0) {
0x0001ff8c ldrne r1, [sp, 0x24] | r1 = var_24h;
| }
| if (sb == 0) {
0x0001ff90 ldrne ip, [pc, 0x16c] | ip = ":_";
| }
| if (sb == 0) {
0x0001ff94 ldrne r1, [r1, 0x20] | r1 = *((r1 + 0x20));
| }
| if (sb != 0) {
0x0001ff98 moveq ip, r6 |
| }
| if (sb != 0) {
0x0001ff9c moveq r1, r6 | r1 = r6;
| }
0x0001ffa0 cmp fp, 0 |
0x0001ffa4 ldr r8, [sp, 0x34] | r8 = var_34h;
| if (fp == 0) {
0x0001ffa8 ldrne lr, [sp, 0x28] | lr = var_28h;
| }
| if (fp != 0) {
0x0001ffac moveq lr, r6 | lr = r6;
| }
| if (fp == 0) {
0x0001ffb0 ldrne lr, [lr] |
| }
| if (fp == 0) {
0x0001ffb4 ldrne r7, [pc, 0x148] | r7 = ":_";
| }
| if (fp != 0) {
0x0001ffb8 moveq r7, r6 | r7 = r6;
| }
0x0001ffbc cmp r8, 0 |
| if (r8 == 0) {
0x0001ffc0 ldrne r8, [sp, 0x2c] | r8 = var_2ch;
| }
0x0001ffc4 ldr sl, [sp, 0x38] | sl = var_38h;
| if (r8 == 0) {
0x0001ffc8 ldrne r8, [r8] | r8 = *(r8);
| }
| if (r8 == 0) {
0x0001ffcc ldrne sb, [pc, 0x130] | sb = ":_";
| }
| if (r8 != 0) {
0x0001ffd0 moveq r8, r6 | r8 = r6;
| }
| if (r8 != 0) {
0x0001ffd4 moveq sb, r6 | sb = r6;
| }
0x0001ffd8 cmp sl, 0 |
| if (sl == 0) {
0x0001ffdc addne sl, sp, 0x48 | sl += var_48h;
| }
| if (sl != 0) {
0x0001ffe0 moveq sl, r6 | sl = r6;
| }
0x0001ffe4 add fp, r5, 0x38 |
0x0001ffe8 ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x0001ffec stm sp, {r1, ip, lr} | *(sp) = r1;
| *((sp + 4)) = ip;
| *((sp + 8)) = lr;
0x0001fff0 ldr r1, [pc, 0x154] | r1 = *(0x20148);
0x0001fff4 str fp, [sp, 0x1c] | var_1ch = fp;
0x0001fff8 str sl, [sp, 0x18] | var_18h = sl;
0x0001fffc str sb, [sp, 0x14] | var_14h = sb;
0x00020000 str r8, [sp, 0x10] | var_10h = r8;
0x00020004 str r7, [sp, 0xc] | var_ch = r7;
0x00020008 bl 0x1230c | fprintf (r0, r1, r2, r3)
0x0002000c ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x00020010 bl 0x122b8 | fflush (r0);
0x00020014 ldrd r2, r3, [r4, 0x20] | __asm ("ldrd r2, r3, [r4, 0x20]");
0x00020018 cmp r2, 1 |
0x0002001c sbcs r3, r3, 0 | __asm ("sbcs r3, r3, 0");
| if (r2 < 1) {
0x00020020 blt 0x1fdd0 | goto label_7;
| }
0x00020024 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x00020028 cmp r3, 3 |
| if (r3 == 3) {
0x0002002c ldrne r3, [pc, 0xfc] | r3 = "channel->type == 3";
| }
| if (r3 == 3) {
0x00020030 movne r2, 2 | r2 = 2;
| }
| if (r3 != 3) {
0x00020034 ldrne r1, [pc, 0x114] | r1 = *(0x00020150);
| goto label_42;
| }
| if (r3 != 3) {
| label_42:
0x00020038 bne 0x1f7b0 | goto label_0;
| }
0x0002003c ldr r0, [r4, 0x10] | r0 = *((r4 + 0x10));
0x00020040 bl 0x121ec | fileno (r0);
0x00020044 add r1, sp, 0xa0 | r1 += var_a0h;
0x00020048 bl 0x11fd0 | r0 = fstat64 ();
0x0002004c cmp r0, 0 |
| if (r0 < 0) {
0x00020050 blt 0x1fdd0 | goto label_7;
| }
0x00020054 ldrd r2, r3, [sp, 0xd0] | __asm ("ldrd r2, r3, [var_d0h]");
0x00020058 ldrd r0, r1, [r4, 0x20] | __asm ("ldrd r0, r1, [r4, 0x20]");
0x0002005c cmp r0, r2 |
0x00020060 sbcs r3, r1, r3 | __asm ("sbcs r3, r1, r3");
| if (r0 >= r2) {
0x00020064 movlt r3, 1 | r3 = 1;
| }
| if (r0 < r2) {
0x00020068 strlt r3, [r4, 0x28] | *((r4 + 0x28)) = r3;
| goto label_43;
| }
| if (r0 < r2) {
| label_43:
0x0002006c blt 0x1fdd4 | goto label_11;
| }
0x00020070 b 0x1fdd0 | goto label_7;
| label_20:
0x00020074 ldr r0, [sp, 0x30] | r0 = var_30h;
0x00020078 bl 0x123cc | r0 = pthread_mutex_unlock ();
0x0002007c cmp r0, 0 |
| if (r0 == 0) {
0x00020080 beq 0x1fcd4 | goto label_12;
| }
0x00020084 ldr r2, [pc, 0x94] | r2 = "(lctx->essages).head == (message)";
0x00020088 ldr r1, [pc, 0xc4] | r1 = *(0x20150);
0x0002008c b 0x1fccc | goto label_13;
| }
; 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/ntpdate @ 0x124e0 */
| #include <stdint.h>
|
; (fcn) main () | int32_t main (char ** envp, int32_t arg_4h, int32_t arg_8h, int32_t arg_14h, int32_t arg_18h, int32_t arg_1ch, int32_t arg_20h, int32_t arg_24h, int32_t arg_28h, int32_t arg_2ch, int32_t arg_30h, int32_t arg_34h, int32_t argc, char ** argv) {
| int32_t var_0h;
| int32_t var_4h;
| FILE * stream;
| void * s1;
| int32_t var_1ch;
| int32_t var_20h;
| int32_t var_24h;
| int32_t var_28h;
| int32_t var_2ch;
| char * dest;
| int32_t var_38h;
| int32_t var_3ch;
| int32_t var_3eh;
| struct sockaddr* address;
| int32_t var_1h_3;
| int32_t var_44h;
| int32_t var_1h_2;
| int32_t var_4h_2;
| int32_t var_64h;
| int32_t var_1h;
| void * s;
| int32_t var_6ch;
| int32_t var_70h;
| int32_t var_74h;
| int32_t var_90h;
| int32_t var_0h_2;
| r0 = argc;
| r1 = argv;
| /* [12] -r-x section size 69584 named .text */
0x000124e0 b 0x12ac0 |
0x00012ac0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00012ac4 ldr r8, [pc, 0xeb0] | r8 = *(0x13978);
0x00012ac8 sub sp, sp, 0x94 |
0x00012acc mov r6, r1 | r6 = r1;
0x00012ad0 mov sb, r0 | sb = r0;
0x00012ad4 bl 0x170f4 | fcn_000170f4 ();
0x00012ad8 ldr r3, [pc, 0xea0] |
0x00012adc ldr r7, [pc, 0xea0] | r7 = *(0x13980);
0x00012ae0 ldr r3, [r3] | r3 = *(0x1397c);
0x00012ae4 ldr sl, [pc, 0xe9c] | sl = "46a:bBde:k:o:p:qst:uv";
0x00012ae8 cmp r3, 0 |
| if (r3 != 0) {
0x00012aec ldreq r3, [pc, 0xe98] | r3 = *(0x0001398c);
| }
| if (r3 != 0) {
0x00012af0 moveq r2, 2 | r2 = 2;
| }
0x00012af4 ldr r5, [pc, 0xe94] | r5 = *(0x1398c);
0x00012af8 mov r4, 0 | r4 = 0;
| if (r3 != 0) {
0x00012afc streq r2, [r3] | *(r3) = r2;
| }
0x00012b00 ldr r3, [r6] | r3 = *(r6);
0x00012b04 str r4, [r7] | *(r7) = r4;
0x00012b08 str r3, [r8] | *(r8) = r3;
| do {
| label_0:
0x00012b0c mov r2, sl | r2 = sl;
0x00012b10 mov r1, r6 | r1 = r6;
0x00012b14 mov r0, sb | r0 = sb;
0x00012b18 bl 0x16df4 | r0 = fcn_00016df4 (r0, r1);
0x00012b1c cmn r0, 1 |
| if (r0 == 1) {
0x00012b20 bne 0x12b48 |
0x00012b24 cmp r4, 0 |
| if (r4 == 0) {
0x00012b28 beq 0x12d88 | goto label_45;
| }
0x00012b2c ldr r3, [pc, 0xe60] | r3 = *(0x13990);
0x00012b30 ldr r2, [r8] | r2 = *(r8);
0x00012b34 ldr r1, [pc, 0xe5c] | r1 = stderr;
0x00012b38 ldr r0, [r3] | r0 = *(0x13990);
0x00012b3c bl 0x1230c | fprintf (r0, r1, r2, r3)
0x00012b40 mov r0, 2 | r0 = 2;
| label_3:
0x00012b44 bl 0x123b4 | r0 = exit (r0);
| }
0x00012b48 cmp r0, 0x65 |
| if (r0 == 0x65) {
0x00012b4c beq 0x12c7c | goto label_46;
| }
| if (r0 > 0x65) {
0x00012b50 bgt 0x12bbc | goto label_47;
| }
0x00012b54 cmp r0, 0x42 |
| if (r0 == 0x42) {
0x00012b58 beq 0x12c4c | goto label_48;
| }
| if (r0 > 0x42) {
0x00012b5c bgt 0x12b88 | goto label_49;
| }
0x00012b60 cmp r0, 0x36 |
| if (r0 == 0x36) {
0x00012b64 beq 0x12c24 | goto label_50;
| }
0x00012b68 cmp r0, 0x3f |
| if (r0 == 0x3f) {
0x00012b6c beq 0x12cb4 | goto label_51;
| }
0x00012b70 cmp r0, 0x34 |
0x00012b74 bne 0x12b0c |
| } while (r0 != 0x34);
0x00012b78 ldr r3, [pc, 0xe0c] | r3 = "46a:bBde:k:o:p:qst:uv";
0x00012b7c mov r2, 2 | r2 = 2;
| label_1:
0x00012b80 str r2, [r3] | *(r3) = r2;
0x00012b84 b 0x12b0c | goto label_0;
| label_49:
0x00012b88 cmp r0, 0x62 |
| if (r0 == 0x62) {
0x00012b8c beq 0x12c30 | goto label_52;
| }
0x00012b90 cmp r0, 0x64 |
| if (r0 == 0x64) {
0x00012b94 beq 0x12c68 | goto label_53;
| }
0x00012b98 cmp r0, 0x61 |
| if (r0 != 0x61) {
0x00012b9c bne 0x12b0c | goto label_0;
| }
0x00012ba0 ldr r0, [r5] | r0 = *(r5);
0x00012ba4 bl 0x12438 | atoi (r0);
0x00012ba8 ldr r3, [pc, 0xefc] | r3 = "_s:_Server_dropped:_Server_is_untrusted";
0x00012bac mov r2, 1 | r2 = 1;
0x00012bb0 str r2, [r3, 4] | *((r3 + 4)) = r2;
0x00012bb4 str r0, [r3, 8] | *((r3 + 8)) = r0;
0x00012bb8 b 0x12b0c | goto label_0;
| label_47:
0x00012bbc cmp r0, 0x71 |
| if (r0 == 0x71) {
0x00012bc0 beq 0x12d08 | goto label_54;
| }
| if (r0 > 0x71) {
0x00012bc4 bgt 0x12bec | goto label_55;
| }
0x00012bc8 cmp r0, 0x6f |
| if (r0 == 0x6f) {
0x00012bcc beq 0x12cc8 | goto label_56;
| }
| if (r0 > 0x6f) {
0x00012bd0 bgt 0x12cdc | goto label_57;
| }
0x00012bd4 cmp r0, 0x6b |
| if (r0 != 0x6b) {
0x00012bd8 ldreq r2, [r5] | r2 = *(r5);
| }
| if (r0 == 0x6b) {
0x00012bdc ldreq r3, [pc, 0xdb8] | r3 = *(0x0001399c);
| goto label_58;
| }
| if (r0 != 0x6b) {
| label_58:
0x00012be0 bne 0x12b0c | goto label_0;
| }
| do {
0x00012be4 str r2, [r3, 0xc] | *((r3 + 0xc)) = r2;
0x00012be8 b 0x12b0c | goto label_0;
| label_55:
0x00012bec cmp r0, 0x74 |
| if (r0 == 0x74) {
0x00012bf0 beq 0x12d18 | goto label_59;
| }
| if (r0 <= 0x74) {
0x00012bf4 bgt 0x12c08 |
0x00012bf8 cmp r0, 0x73 |
| if (r0 != 0x73) {
0x00012bfc moveq r3, 1 | r3 = 1;
| }
| if (r0 != 0x73) {
0x00012c00 streq r3, [r7] | *(r7) = r3;
| }
0x00012c04 b 0x12b0c | goto label_0;
| }
0x00012c08 cmp r0, 0x75 |
| if (r0 == 0x75) {
0x00012c0c beq 0x12d78 | goto label_60;
| }
0x00012c10 cmp r0, 0x76 |
| if (r0 != 0x76) {
0x00012c14 ldreq r3, [pc, 0xe90] | r3 = *(0x00013aac);
| }
| if (r0 != 0x76) {
0x00012c18 moveq r2, 1 | r2 = 1;
| }
| if (r0 != 0x76) {
0x00012c1c streq r2, [r3, 0x28] | *((r3 + 0x28)) = r2;
| }
0x00012c20 b 0x12b0c | goto label_0;
| label_50:
0x00012c24 ldr r3, [pc, 0xd60] | r3 = "46a:bBde:k:o:p:qst:uv";
0x00012c28 mov r2, 0xa | r2 = 0xa;
0x00012c2c b 0x12b80 | goto label_1;
| label_52:
0x00012c30 ldr r3, [pc, 0xe74] | r3 = "_s:_Server_dropped:_Server_is_untrusted";
0x00012c34 ldr r2, [r3, 0x1c] | r2 = "refid___s___root_delay__s__root_dispersion__s";
0x00012c38 add r2, r2, 1 | r2++;
0x00012c3c str r2, [r3, 0x1c] | *((r3 + 0x1c)) = r2;
0x00012c40 mov r2, 0 | r2 = 0;
0x00012c44 str r2, [r3, 0x20] | *((r3 + 0x20)) = r2;
0x00012c48 b 0x12b0c | goto label_0;
| label_48:
0x00012c4c ldr r3, [pc, 0xe58] | r3 = "_s:_Server_dropped:_Server_is_untrusted";
0x00012c50 ldr r2, [r3, 0x20] | r2 = "transmitted %d, in filter %d\n";
0x00012c54 add r2, r2, 1 | r2++;
0x00012c58 str r2, [r3, 0x20] | *((r3 + 0x20)) = r2;
0x00012c5c mov r2, 0 | r2 = 0;
0x00012c60 str r2, [r3, 0x1c] | *((r3 + 0x1c)) = r2;
0x00012c64 b 0x12b0c | goto label_0;
| label_53:
0x00012c68 ldr r2, [pc, 0xe8c] | r2 = *(0x13af8);
0x00012c6c ldr r3, [r2] | r3 = *(0x13af8);
0x00012c70 add r3, r3, 1 | r3++;
0x00012c74 str r3, [r2] | *(r2) = r3;
0x00012c78 b 0x12b0c | goto label_0;
| label_46:
0x00012c7c add r1, sp, 0x38 | r1 += var_38h;
0x00012c80 ldr r0, [r5] | r0 = *(r5);
0x00012c84 bl 0x15350 | r0 = fcn_00015350 (r0, r1, r2);
0x00012c88 cmp r0, 0 |
| if (r0 != 0) {
0x00012c8c beq 0x12c9c |
0x00012c90 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00012c94 cmp r3, 0 |
| if (r3 == 0) {
0x00012c98 beq 0x12cbc | goto label_61;
| }
| }
0x00012c9c ldr r3, [r5] | r3 = *(r5);
0x00012ca0 ldr r2, [r8] | r2 = *(r8);
0x00012ca4 ldr r1, [pc, 0xcf4] | r1 = *(0x1399c);
| label_2:
0x00012ca8 ldr r0, [pc, 0xce4] |
0x00012cac ldr r0, [r0] | r0 = *(0x13990);
0x00012cb0 bl 0x1230c | fprintf (r0, r1, r2, r3)
| label_51:
0x00012cb4 add r4, r4, 1 | r4++;
0x00012cb8 b 0x12b0c | goto label_0;
| label_61:
0x00012cbc ldr r3, [pc, 0xde8] | r3 = "_s:_Server_dropped:_Server_is_untrusted";
0x00012cc0 ldr r2, [sp, 0x3c] | r2 = var_3ch;
0x00012cc4 b 0x12be4 |
| } while (1);
| label_56:
0x00012cc8 ldr r0, [r5] | r0 = *(r5);
0x00012ccc bl 0x12438 | atoi (r0);
0x00012cd0 ldr r3, [pc, 0xcc4] | r3 = "usage: %s [-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeo] server ...\n";
0x00012cd4 str r0, [r3] | *(r3) = r0;
0x00012cd8 b 0x12b0c | goto label_0;
| label_57:
0x00012cdc ldr r0, [r5] | r0 = *(r5);
0x00012ce0 bl 0x12438 | r0 = atoi (r0);
0x00012ce4 sub r2, r0, 1 | r2 = r0 - 1;
0x00012ce8 cmp r2, 7 |
| if (r2 > 7) {
0x00012cec ldrls r2, [pc, 0xdb8] | r2 = *(0x00013aac);
| }
0x00012cf0 mov r3, r0 | r3 = r0;
| if (r2 <= 7) {
0x00012cf4 ldrhi r2, [r8] | r2 = *(r8);
| }
| if (r2 <= 7) {
0x00012cf8 ldrhi r1, [pc, 0xca4] | r1 = "_s:_number_of_samples___d__is_invalid";
| }
| if (r2 <= 7) {
0x00012cfc strls r0, [r2, 0x14] | *((r2 + 0x14)) = r0;
| goto label_62;
| }
| if (r2 < 7) {
| label_62:
0x00012d00 bls 0x12b0c | goto label_0;
| }
0x00012d04 b 0x12ca8 | goto label_2;
| label_54:
0x00012d08 ldr r3, [pc, 0xd9c] | r3 = "_s:_Server_dropped:_Server_is_untrusted";
0x00012d0c mov r2, 1 | r2 = 1;
0x00012d10 str r2, [r3, 0x24] | *((r3 + 0x24)) = r2;
0x00012d14 b 0x12b0c | goto label_0;
| label_59:
0x00012d18 add r1, sp, 0x38 | r1 += var_38h;
0x00012d1c ldr r0, [r5] | r0 = *(r5);
0x00012d20 bl 0x15350 | r0 = fcn_00015350 (r0, r1, r2);
0x00012d24 cmp r0, 0 |
| if (r0 != 0) {
0x00012d28 ldreq r3, [r5] | r3 = *(r5);
| }
| if (r0 != 0) {
0x00012d2c ldreq r2, [r8] | r2 = *(r8);
| }
| if (r0 == 0) {
0x00012d30 ldreq r1, [pc, 0xc70] | r1 = "%s: timeout %s is undecodeable\n";
| goto label_63;
| }
| if (r0 == 0) {
| label_63:
0x00012d34 beq 0x12ca8 | goto label_2;
| }
0x00012d38 ldr r1, [sp, 0x38] | r1 = var_38h;
0x00012d3c ldr r3, [pc, 0xc68] | r3 = "%s: timeout %s is undecodeable\n";
0x00012d40 add r2, r1, 0xff00 | r2 = r1 + 0xff00;
0x00012d44 add r2, r2, 0xff | r2 += 0xff;
0x00012d48 cmp r2, r3 |
0x00012d4c ldrhls r3, [sp, 0x3e] | __asm ("ldrhls r3, [var_3eh]");
| if (r2 <= r3) {
0x00012d50 movhi r3, 0x8000 | r3 = 0x8000;
| }
| if (r2 > r3) {
0x00012d54 orrls r3, r3, r1, lsl 16 | r3 |= (r1 << 16);
| }
| if (r2 > r3) {
0x00012d58 addls r3, r3, r3, lsl 2 | r3 += (r3 << 2);
| }
| if (r2 > r3) {
0x00012d5c addls r3, r3, 0x8000 | r3 += 0x8000;
| }
| if (r2 > r3) {
0x00012d60 lsrls r3, r3, 0x10 | r3 >>= 0x10;
| }
0x00012d64 ldr r2, [pc, 0xc30] | r2 = "usage: %s [-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeo] server ...\n";
0x00012d68 cmp r3, 5 |
| if (r3 >= 5) {
0x00012d6c movlo r3, 5 | r3 = 5;
| }
0x00012d70 str r3, [r2, 4] | *((r2 + 4)) = r3;
0x00012d74 b 0x12b0c | goto label_0;
| label_60:
0x00012d78 ldr r3, [pc, 0xd2c] | r3 = "_s:_Server_dropped:_Server_is_untrusted";
0x00012d7c mov r2, 1 | r2 = 1;
0x00012d80 str r2, [r3, 0x2c] | *((r3 + 0x2c)) = r2;
0x00012d84 b 0x12b0c | goto label_0;
| label_45:
0x00012d88 ldr r3, [pc, 0xd1c] | r3 = "_s:_Server_dropped:_Server_is_untrusted";
0x00012d8c ldr r2, [r3, 0x14] | r2 = "stratum %d, precision %d, leap %c%c, trust %03o\n";
0x00012d90 mov fp, r3 |
0x00012d94 cmp r2, 0 |
| if (r2 == 0) {
0x00012d98 bne 0x12db0 |
0x00012d9c ldr r3, [r3, 0x24] | r3 = *((r3 + 0x24));
0x00012da0 cmp r3, 0 |
| if (r3 != 0) {
0x00012da4 moveq r3, 4 | r3 = 4;
| }
| if (r3 == 0) {
0x00012da8 movne r3, 1 | r3 = 1;
| }
0x00012dac str r3, [fp, 0x14] | *(arg_14h) = r3;
| }
0x00012db0 ldr r5, [pc, 0xd44] | r5 = *(0x13af8);
0x00012db4 ldr r3, [r5] | r3 = *(0x13af8);
0x00012db8 cmp r3, 0 |
| if (r3 == 0) {
0x00012dbc bne 0x12dcc |
0x00012dc0 ldr r3, [fp, 0x24] | r3 = *(arg_24h);
0x00012dc4 cmp r3, 0 |
| if (r3 == 0) {
0x00012dc8 beq 0x12de4 | goto label_64;
| }
| }
0x00012dcc ldr r0, [pc, 0xcdc] |
0x00012dd0 mov r3, 0x1000 | r3 = 0x1000;
0x00012dd4 mov r2, 1 | r2 = 1;
0x00012dd8 ldr r1, [pc, 0xbd0] | r1 = *(0x139ac);
0x00012ddc ldr r0, [r0] | r0 = *(0x13aac);
0x00012de0 bl 0x121f8 | setvbuf (r0, r1, r2, r3);
| label_64:
0x00012de4 ldr r3, [r7] | r3 = *(r7);
0x00012de8 cmp r3, 0 |
| if (r3 != 0) {
0x00012dec beq 0x12e14 |
0x00012df0 ldr r0, [pc, 0xbbc] | r0 = *(0x139b0);
0x00012df4 mov r2, 0x18 | r2 = 0x18;
0x00012df8 mov r1, 9 | r1 = 9;
0x00012dfc bl 0x11ff4 | openlog ();
0x00012e00 ldr r3, [r5] | r3 = *(r5);
0x00012e04 cmp r3, 0 |
| if (r3 == 0) {
0x00012e08 movne r0, 0xff | r0 = 0xff;
| }
| if (r3 != 0) {
0x00012e0c moveq r0, 0x7f | r0 = 0x7f;
| }
0x00012e10 bl 0x124d4 | setlogmask ();
| }
0x00012e14 ldr r3, [r5] | r3 = *(r5);
0x00012e18 cmp r3, 0 |
| if (r3 == 0) {
0x00012e1c bne 0x12e2c |
0x00012e20 ldr r3, [fp, 0x28] | r3 = *(arg_28h);
0x00012e24 cmp r3, 0 |
| if (r3 == 0) {
0x00012e28 beq 0x12e40 | goto label_65;
| }
| }
0x00012e2c ldr r3, [pc, 0xb84] | r3 = "ntpdate";
0x00012e30 ldr r1, [pc, 0xb84] | r1 = "ntpdate_4.2.8p13_1.3847_o_Mon_Nov__7_18:57:49_UTC_2022__1_";
0x00012e34 ldr r2, [r3] | r2 = "ntpdate";
0x00012e38 mov r0, 5 | r0 = 5;
0x00012e3c bl 0x1776c | fcn_0001776c (r0);
| label_65:
0x00012e40 ldr r8, [pc, 0xb44] | r8 = "46a:bBde:k:o:p:qst:uv";
0x00012e44 ldr sl, [pc, 0xb74] | sl = *(0x000139c0);
0x00012e48 b 0x12f38 |
| while (r3 < sb) {
0x00012e4c mov r2, 5 | r2 = 5;
0x00012e50 ldr r1, [pc, 0xb6c] | r1 = *(0x139c0);
0x00012e54 add r0, sp, 0x30 | r0 += dest;
0x00012e58 ldr r7, [r6, r3, lsl 2] | offset_0 = r3 << 2;
| r7 = *((r6 + offset_0));
0x00012e5c bl 0x11f4c | strlcpy (r0, r1, r2);
0x00012e60 mov r2, 0x20 | r2 = 0x20;
0x00012e64 mov r1, 0 | r1 = 0;
0x00012e68 add r0, sp, 0x68 | r0 += s;
0x00012e6c bl 0x122c4 | memset (r0, r1, r2);
0x00012e70 ldr r3, [r8] | r3 = *(r8);
0x00012e74 add r2, sp, 0x68 | r2 += s;
0x00012e78 str r3, [sp, 0x6c] | var_6ch = r3;
0x00012e7c mov r3, 2 | r3 = 2;
0x00012e80 str r3, [sp, 0x70] | var_70h = r3;
0x00012e84 add r1, sp, 0x30 | r1 += dest;
0x00012e88 add r3, sp, 0x2c | r3 += var_2ch;
0x00012e8c mov r0, r7 | r0 = r7;
0x00012e90 bl 0x124a4 | r0 = getaddrinfo ();
0x00012e94 subs r4, r0, 0 | r4 = r0 - 0;
| if (r4 == r0) {
0x00012e98 beq 0x12fb4 | goto label_66;
| }
0x00012e9c ldr r3, [pc, 0xaf0] |
0x00012ea0 ldr r3, [r3] | r3 = *(0x13990);
0x00012ea4 str r3, [sp, 0x14] | stream = r3;
0x00012ea8 add r3, r4, 4 | r3 = r4 + 4;
0x00012eac cmp r3, 1 |
| if (r3 <= 1) {
0x00012eb0 bhi 0x12ef0 |
0x00012eb4 bl 0x12258 | gai_strerror ();
0x00012eb8 mov r3, r4 | r3 = r4;
0x00012ebc ldr r1, [pc, 0xb04] | r1 = *(0x139c4);
0x00012ec0 mov r2, r0 | r2 = r0;
0x00012ec4 ldr r0, [sp, 0x14] | r0 = stream;
0x00012ec8 bl 0x1230c | fprintf (r0, r1, r2, r3)
0x00012ecc mov r0, r4 | r0 = r4;
0x00012ed0 bl 0x12258 | gai_strerror ();
0x00012ed4 mov r3, r4 | r3 = r4;
0x00012ed8 ldr r1, [pc, 0xaec] | r1 = "Exiting, name server cannot be used: %s (%d)";
0x00012edc mov r2, r0 | r2 = r0;
0x00012ee0 mov r0, 3 | r0 = 3;
0x00012ee4 bl 0x1776c | fcn_0001776c (r0);
| label_4:
0x00012ee8 mov r0, 1 | r0 = 1;
0x00012eec b 0x12b44 | goto label_3;
| }
0x00012ef0 bl 0x12258 | gai_strerror ();
0x00012ef4 mov r2, r7 | r2 = r7;
0x00012ef8 ldr r1, [pc, 0xad0] | r1 = "name_server_cannot_be_used:__s___d_";
0x00012efc str r4, [sp] | *(sp) = r4;
0x00012f00 mov r3, r0 | r3 = r0;
0x00012f04 ldr r0, [sp, 0x14] | r0 = stream;
0x00012f08 bl 0x1230c | fprintf (r0, "name_server_cannot_be_used:__s___d_", r2, r3, r4)
0x00012f0c mov r0, r4 | r0 = r4;
0x00012f10 bl 0x12258 | gai_strerror ();
0x00012f14 str r4, [sp] | *(sp) = r4;
0x00012f18 mov r2, r7 | r2 = r7;
0x00012f1c ldr r1, [pc, 0xab0] | r1 = "Error_resolving__s:__s___d_";
0x00012f20 mov r3, r0 | r3 = r0;
0x00012f24 mov r0, 3 | r0 = 3;
0x00012f28 bl 0x1776c | fcn_0001776c (r0);
| label_5:
0x00012f2c ldr r3, [sl] | r3 = *(sl);
0x00012f30 add r3, r3, 1 | r3++;
0x00012f34 str r3, [sl] | *(sl) = r3;
0x00012f38 ldr r3, [pc, 0xa80] |
0x00012f3c ldr r3, [r3] | r3 = "_s";
0x00012f40 cmp r3, sb |
0x00012f44 blt 0x12e4c |
| }
0x00012f48 ldr r3, [fp, 0x30] | r3 = *(arg_30h);
0x00012f4c cmp r3, 0 |
| if (r3 != 0) {
0x00012f50 ldreq r1, [pc, 0xa80] | r1 = "no servers can be used, exiting";
| }
| if (r3 == 0) {
0x00012f54 beq 0x132cc | goto label_8;
| }
0x00012f58 ldr r3, [fp, 4] | r3 = *(arg_4h);
0x00012f5c cmp r3, 0 |
| if (r3 == 0) {
0x00012f60 beq 0x130c4 | goto label_67;
| }
0x00012f64 ldr r4, [pc, 0xa30] | r4 = "usage: %s [-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeo] server ...\n";
0x00012f68 bl 0x15850 | fcn_00015850 ();
0x00012f6c ldr r0, [r4, 0xc] | r0 = "_s:_number_of_samples___d__is_invalid";
0x00012f70 bl 0x162b8 | r0 = fcn_000162b8 ("_s:_number_of_samples___d__is_invalid");
0x00012f74 cmp r0, 0 |
| if (r0 != 0) {
0x00012f78 ldreq r2, [r4, 0xc] | r2 = *((r4 + 0xc));
| }
| if (r0 != 0) {
0x00012f7c ldreq r1, [pc, 0xa58] | r1 = "no key file <%s>, exiting";
| }
| if (r0 != 0) {
0x00012f80 beq 0x12fa8 |
0x00012f84 mov r1, 1 | r1 = 1;
0x00012f88 ldr r0, [fp, 8] | r0 = *(arg_8h);
0x00012f8c bl 0x15cb4 | fcn_00015cb4 (r0);
0x00012f90 ldr r0, [fp, 8] | r0 = *(arg_8h);
0x00012f94 bl 0x15d68 | r0 = fcn_00015d68 (r0);
0x00012f98 cmp r0, 0 |
| if (r0 != 0) {
0x00012f9c bne 0x130c4 | goto label_67;
| }
0x00012fa0 ldr r2, [fp, 8] | r2 = *(arg_8h);
0x00012fa4 ldr r1, [pc, 0xa34] | r1 = "no key file <%s>, exiting";
| }
0x00012fa8 mov r0, 3 | r0 = 3;
0x00012fac bl 0x1776c | fcn_0001776c (r0);
0x00012fb0 b 0x12ee8 | goto label_4;
| label_66:
0x00012fb4 ldr r4, [sp, 0x2c] | r4 = var_2ch;
| do {
0x00012fb8 cmp r4, 0 |
| if (r4 == 0) {
0x00012fbc bne 0x12fcc |
0x00012fc0 ldr r0, [sp, 0x2c] | r0 = var_2ch;
0x00012fc4 bl 0x12018 | freeaddrinfo ();
0x00012fc8 b 0x12f2c | goto label_5;
| }
0x00012fcc mov r2, 0x1c | r2 = 0x1c;
0x00012fd0 mov r1, 0 | r1 = 0;
0x00012fd4 add r0, sp, 0x40 | r0 += address;
0x00012fd8 bl 0x122c4 | memset (r0, r1, r2);
0x00012fdc ldr r2, [r4, 0x10] | r2 = *((r4 + 0x10));
0x00012fe0 cmp r2, 0x1c |
| if (r2 >= 0x1c) {
0x00012fe4 bls 0x12ffc |
0x00012fe8 ldr r3, [pc, 0x9f4] | r3 = "authentication key %lu unknown";
0x00012fec ldr r1, [pc, 0x9f4] | r1 = "ptr->ai_addrlen <= sizeof(addr)";
0x00012ff0 mov r2, 2 | r2 = 2;
| label_9:
0x00012ff4 ldr r0, [pc, 0x9f0] | r0 = *(0x139e8);
0x00012ff8 bl 0x1b5ac | fcn_0001b5ac ();
| }
0x00012ffc ldr r1, [r4, 0x14] | r1 = *((r4 + 0x14));
0x00013000 add r0, sp, 0x40 | r0 += address;
0x00013004 bl 0x11f64 | memcpy (r0, r1, r2);
0x00013008 mov r2, 0 | r2 = 0;
0x0001300c mov r1, 2 | r1 = 2;
0x00013010 ldrh r0, [sp, 0x40] | r0 = address;
0x00013014 bl 0x12378 | r0 = socket (r0, r1, r2);
0x00013018 cmn r0, 1 |
0x0001301c mov r7, r0 | r7 = r0;
| if (r0 != 1) {
0x00013020 beq 0x1304c |
0x00013024 ldrh r3, [sp, 0x40] | r3 = address;
0x00013028 add r1, sp, 0x40 | r1 += address;
0x0001302c cmp r3, 2 |
| if (r3 == 2) {
0x00013030 movne r2, 0x1c | r2 = 0x1c;
| }
| if (r3 != 2) {
0x00013034 moveq r2, 0x10 | r2 = 0x10;
| }
0x00013038 bl 0x11f70 | r0 = connect (r0, r1, r2);
0x0001303c subs r2, r0, 0 | r2 = r0 - 0;
| if (r2 == r0) {
0x00013040 beq 0x13054 | goto label_68;
| }
0x00013044 mov r0, r7 | r0 = r7;
0x00013048 bl 0x12234 | close (r0);
| }
| label_6:
0x0001304c ldr r4, [r4, 0x1c] | r4 = *((r4 + 0x1c));
0x00013050 b 0x12fb8 |
| } while (1);
| label_68:
0x00013054 mov r0, r7 | r0 = r7;
0x00013058 str r2, [sp, 0x14] | stream = r2;
0x0001305c bl 0x12234 | close (r0);
0x00013060 ldr r2, [sp, 0x14] | r2 = stream;
0x00013064 mov r3, 1 | r3 = 1;
0x00013068 mov r1, 0x110 | r1 = 0x110;
0x0001306c mov r0, r2 | r0 = r2;
0x00013070 bl 0x16c28 | fcn_00016c28 (r0, r1);
0x00013074 ldr r2, [r4, 0x10] | r2 = *((r4 + 0x10));
0x00013078 ldr r1, [r4, 0x14] | r1 = *((r4 + 0x14));
0x0001307c mov r7, r0 | r7 = r0;
0x00013080 add r0, r0, 4 | r0 += 4;
0x00013084 bl 0x11f64 | memcpy (r0, r1, r2);
0x00013088 ldr r3, [fp, 0x30] | r3 = *(arg_30h);
0x0001308c ldr r2, [pc, 0x95c] | r2 = "ntpdate.c";
0x00013090 add r3, r3, 1 | r3++;
0x00013094 str r3, [fp, 0x30] | *(arg_30h) = r3;
0x00013098 str r3, [r7, 0x3c] | *((r7 + 0x3c)) = r3;
0x0001309c ldr r3, [r2] | r3 = "ntpdate.c";
0x000130a0 cmp r3, 0 |
| if (r3 == 0) {
0x000130a4 streq r7, [r2] | *(r2) = r7;
| goto label_69;
| }
| if (r3 == 0) {
| label_69:
0x000130a8 beq 0x1304c | goto label_6;
| }
| label_7:
0x000130ac ldr r2, [r3] | r2 = *(r3);
0x000130b0 cmp r2, 0 |
| if (r2 == 0) {
0x000130b4 streq r7, [r3] | *(r3) = r7;
| goto label_70;
| }
| if (r2 == 0) {
| label_70:
0x000130b8 beq 0x1304c | goto label_6;
| }
0x000130bc mov r3, r2 | r3 = r2;
0x000130c0 b 0x130ac | goto label_7;
| label_67:
0x000130c4 ldr r5, [r5] | r5 = *(r5);
0x000130c8 mov r3, 1 | r3 = 1;
0x000130cc cmp r5, 0 |
0x000130d0 str r3, [sp, 0x2c] | var_2ch = r3;
| if (r5 == 0) {
0x000130d4 movne r5, 0 | r5 = 0;
| }
| if (r5 == 0) {
0x000130d8 bne 0x130f0 |
0x000130dc ldr r3, [fp, 0x24] | r3 = *(arg_24h);
0x000130e0 cmp r3, 0 |
| if (r3 != 0) {
0x000130e4 ldreq r5, [fp, 0x2c] | r5 = *(arg_2ch);
| }
0x000130e8 clzeq r5, r5 | __asm ("clzeq r5, r5");
| if (r3 == 0) {
0x000130ec lsreq r5, r5, 5 | r5 >>= 5;
| goto label_71;
| }
| }
| label_71:
0x000130f0 ldr r0, [fp, 0x30] | r0 = *(arg_30h);
0x000130f4 mov r4, 1 | r4 = 1;
0x000130f8 add r0, r0, 2 | r0 += 2;
0x000130fc bl 0x19168 | fcn_00019168 (r0);
0x00013100 mov r2, 5 | r2 = 5;
0x00013104 ldr r1, [pc, 0x8b8] | r1 = *(0x139c0);
0x00013108 add r0, sp, 0x30 | r0 += dest;
0x0001310c bl 0x11f4c | strlcpy (r0, r1, r2);
0x00013110 mov r2, 0x20 | r2 = 0x20;
0x00013114 mov r1, 0 | r1 = 0;
0x00013118 add r0, sp, 0x68 | r0 += s;
0x0001311c bl 0x122c4 | memset (r0, r1, r2);
0x00013120 ldr r3, [r8] | r3 = *(r8);
0x00013124 add r1, sp, 0x30 | r1 += dest;
0x00013128 str r3, [sp, 0x6c] | var_6ch = r3;
0x0001312c mov r3, 2 | r3 = 2;
0x00013130 str r3, [sp, 0x70] | var_70h = r3;
0x00013134 add r2, sp, 0x68 | r2 += s;
0x00013138 add r3, sp, 0x28 | r3 += var_28h;
0x0001313c mov r0, 0 | r0 = 0;
0x00013140 str r4, [sp, 0x68] | s = r4;
0x00013144 bl 0x124a4 | r0 = getaddrinfo ();
0x00013148 cmp r0, 0 |
| if (r0 == 0) {
0x0001314c ldrne r1, [pc, 0x8a0] | r1 = "getaddrinfo() failed: %m";
| }
| if (r0 != 0) {
0x00013150 bne 0x132cc | goto label_8;
| }
0x00013154 ldr r4, [pc, 0x89c] | r4 = "getaddrinfo() failed: %m";
0x00013158 ldr r7, [sp, 0x28] | r7 = var_28h;
0x0001315c ldr r6, [pc, 0x898] | r6 = *(0x139f8);
0x00013160 ldr r8, [pc, 0x898] | r8 = *(0x139fc);
0x00013164 str r0, [r4] | *(r4) = r0;
| label_10:
0x00013168 ldr sb, [r4] | sb = *(r4);
0x0001316c cmp sb, 1 |
| if (sb <= 1) {
0x00013170 bgt 0x13180 |
0x00013174 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00013178 cmp r3, 0 |
| if (r3 != 0) {
0x0001317c bne 0x13294 | goto label_72;
| }
| }
0x00013180 mov r4, 0 | r4 = 0;
0x00013184 mov r0, r7 | r0 = r7;
0x00013188 bl 0x12018 | freeaddrinfo ();
0x0001318c ldr r2, [pc, 0x870] | r2 = *(0x13a00);
0x00013190 mov r1, r4 | r1 = r4;
0x00013194 mov r0, r4 | r0 = r4;
0x00013198 str r4, [fp] | *(fp) = r4;
0x0001319c str r4, [fp] | *(fp) = r4;
0x000131a0 bl 0x1224c | r0 = timer_create ();
0x000131a4 cmn r0, 1 |
| if (r0 != 1) {
0x000131a8 bne 0x13414 | goto label_73;
| }
0x000131ac ldr r3, [pc, 0x7e0] | r3 = *(0x13990);
0x000131b0 ldr r0, [pc, 0x850] | r0 = *(0x13a04);
0x000131b4 ldr r1, [r3] | r1 = *(0x13990);
0x000131b8 bl 0x12294 | fputs (r0, r1);
| label_11:
0x000131bc mov r1, 0 | r1 = 0;
0x000131c0 mvn r2, 0xb | r2 = ~0xb;
0x000131c4 mov r0, r1 | r0 = r1;
0x000131c8 bl 0x1221c | setpriority ();
0x000131cc ldr r6, [pc, 0x928] | r6 = *(0x13af8);
0x000131d0 ldr r3, [pc, 0x7c4] | r3 = "usage: %s [-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeo] server ...\n";
0x000131d4 mov r2, 0 | r2 = 0;
0x000131d8 str r2, [r3, 8] | *((r3 + 8)) = r2;
0x000131dc str r3, [sp, 0x24] | var_24h = r3;
| label_12:
0x000131e0 ldr r2, [fp, 0x18] | r2 = *(arg_18h);
0x000131e4 ldr r3, [fp, 0x30] | r3 = *(arg_30h);
0x000131e8 cmp r2, r3 |
| if (r2 < r3) {
0x000131ec blt 0x13450 | goto label_74;
| }
0x000131f0 ldr sl, [pc, 0x7f8] | sl = *(0x000139f0);
0x000131f4 add ip, sp, 0x68 |
0x000131f8 ldr r3, [sl] | r3 = *(sl);
0x000131fc mov r7, 0x400000 | r7 = 0x400000;
| label_21:
0x00013200 cmp r3, 0 |
| if (r3 != 0) {
0x00013204 bne 0x13ca4 | goto label_75;
| }
0x00013208 ldr r4, [sl] | r4 = *(sl);
0x0001320c ldr r6, [pc, 0x8e8] | r6 = *(0x13af8);
0x00013210 ldr r7, [pc, 0x7f4] | r7 = "init_alarm(): timer_create (...) FAILED\n";
0x00013214 mov r5, r3 | r5 = r3;
| label_26:
0x00013218 cmp r4, 0 |
0x0001321c ldr r2, [r6] | r2 = *(r6);
| if (r4 != 0) {
0x00013220 bne 0x13e18 | goto label_76;
| }
0x00013224 add ip, sp, 0x40 |
0x00013228 mov r3, ip | r3 = ip;
0x0001322c mov r0, 1 | r0 = 1;
0x00013230 mov r1, r4 | r1 = r4;
0x00013234 mov r7, ip | r7 = ip;
| label_31:
0x00013238 cmp r5, r0 |
| if (r5 > r0) {
0x0001323c bhi 0x14010 | goto label_77;
| }
0x00013240 cmp r5, 0 |
| if (r5 != 0) {
0x00013244 beq 0x1325c |
0x00013248 mov r0, r5 | r0 = r5;
| label_30:
0x0001324c cmp r0, 1 |
| if (r0 == 1) {
0x00013250 movne r3, 1 | r3 = 1;
| }
| if (r0 != 1) {
0x00013254 bne 0x1407c | goto label_78;
| }
| label_33:
0x00013258 ldr r4, [sp, 0x40] | r4 = address;
| }
0x0001325c cmp r2, 0 |
| if (r2 != 0) {
0x00013260 bne 0x141a4 | goto label_79;
| }
0x00013264 ldr r3, [fp, 0x24] | r3 = *(arg_24h);
0x00013268 cmp r3, 0 |
| if (r3 != 0) {
0x0001326c bne 0x141ac | goto label_80;
| }
| label_38:
0x00013270 cmp r4, 0 |
| if (r4 != 0) {
0x00013274 bne 0x14504 | goto label_81;
| }
0x00013278 ldr r1, [pc, 0x790] | r1 = *(0x13a0c);
0x0001327c mov r0, 3 | r0 = 3;
0x00013280 bl 0x1776c | fcn_0001776c (r0);
0x00013284 mov r5, 1 | r5 = 1;
| label_43:
0x00013288 mov r0, r5 | r0 = r5;
0x0001328c add sp, sp, 0x94 |
0x00013290 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_72:
0x00013294 ldmib r3, {r0, r1, r2} | __asm ("ldmib r3, {r0, r1, r2}");
0x00013298 bl 0x12378 | socket (r0, r1, r2);
0x0001329c ldr r3, [r4] | r3 = *(r4);
0x000132a0 str r0, [r6, sb, lsl 2] | offset_1 = sb << 2;
| *((r6 + offset_1)) = r0;
0x000132a4 ldr r0, [r6, r3, lsl 2] | offset_2 = r3 << 2;
| r0 = *((r6 + offset_2));
0x000132a8 cmn r0, 1 |
| if (r0 != 1) {
0x000132ac bne 0x132d8 | goto label_82;
| }
0x000132b0 bl 0x11f1c | r0 = errno_location ();
0x000132b4 ldr r3, [r0] | r3 = *(r0);
0x000132b8 sub r2, r3, 0x60 | r2 = r3 - 0x60;
0x000132bc cmp r3, 0x5d |
0x000132c0 cmpne r2, 1 | __asm ("cmpne r2, 1");
| if (r3 < 0x5d) {
0x000132c4 bls 0x13404 | goto label_83;
| }
0x000132c8 ldr r1, [pc, 0x744] | r1 = "no_server_suitable_for_synchronization_found";
| do {
| label_8:
0x000132cc mov r0, 3 | r0 = 3;
0x000132d0 bl 0x1776c | fcn_0001776c (r0);
0x000132d4 b 0x12ee8 | goto label_4;
| label_82:
0x000132d8 mov sb, 4 | sb = 4;
0x000132dc str sb, [sp] | *(sp) = sb;
0x000132e0 add r3, sp, 0x2c | r3 += var_2ch;
0x000132e4 mov r2, 2 | r2 = 2;
0x000132e8 mov r1, 1 | r1 = 1;
0x000132ec bl 0x121bc | r0 = setsockopt ();
0x000132f0 cmp r0, 0 |
| if (r0 >= 0) {
0x000132f4 ldrlt r1, [pc, 0x71c] | r1 = "setsockopt() SO_REUSEADDR failed: %m";
| }
0x000132f8 blt 0x132cc |
| } while (r0 < 0);
0x000132fc ldr r3, [sp, 0x28] | r3 = var_28h;
0x00013300 ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x00013304 cmp r3, 0xa |
| if (r3 != 0xa) {
0x00013308 bne 0x13334 | goto label_84;
| }
0x0001330c ldr r0, [r4] | r0 = *(r4);
0x00013310 add r3, sp, 0x2c | r3 += var_2ch;
0x00013314 str sb, [sp] | *(sp) = sb;
0x00013318 mov r2, 0x1a | r2 = 0x1a;
0x0001331c mov r1, 0x29 | r1 = 0x29;
0x00013320 ldr r0, [r6, r0, lsl 2] | offset_3 = r0 << 2;
| r0 = *((r6 + offset_3));
0x00013324 bl 0x121bc | r0 = setsockopt ();
0x00013328 cmp r0, 0 |
| if (r0 < 0) {
0x0001332c ldrlt r1, [pc, 0x6e8] | r1 = "setsockopt() IPV6_V6ONLY failed: %m";
| goto label_85;
| }
| if (r0 < 0) {
| label_85:
0x00013330 blt 0x132cc | goto label_8;
| }
| label_84:
0x00013334 ldr r2, [sp, 0x28] | r2 = var_28h;
0x00013338 ldr r3, [r4] | r3 = *(r4);
0x0001333c ldr r2, [r2, 4] | r2 = *((r2 + 4));
0x00013340 cmp r5, 0 |
0x00013344 str r2, [r8, r3, lsl 2] | offset_4 = r3 << 2;
| *((r8 + offset_4)) = r2;
| if (r5 == 0) {
0x00013348 beq 0x133c4 | goto label_86;
| }
0x0001334c mov r2, 0x1c | r2 = 0x1c;
0x00013350 mov r1, 0 | r1 = 0;
0x00013354 add r0, sp, 0x40 | r0 += address;
0x00013358 bl 0x122c4 | memset (r0, r1, r2);
0x0001335c ldr r3, [sp, 0x28] | r3 = var_28h;
0x00013360 ldr r2, [r3, 0x10] | r2 = *((r3 + 0x10));
0x00013364 cmp r2, 0x1c |
| if (r2 <= 0x1c) {
0x00013368 ldrhi r3, [pc, 0x6b0] | r3 = "res__ai_addrlen___sizeof_addr_";
| }
| if (r2 <= 0x1c) {
0x0001336c movhi r2, 2 | r2 = 2;
| }
| if (r2 > 0x1c) {
0x00013370 ldrhi r1, [pc, 0x6ac] | r1 = *(0x00013a24);
| goto label_87;
| }
| if (r2 > 0x1c) {
| label_87:
0x00013374 bhi 0x12ff4 | goto label_9;
| }
0x00013378 ldr r1, [r3, 0x14] | r1 = *((r3 + 0x14));
0x0001337c add r0, sp, 0x40 | r0 += address;
0x00013380 bl 0x11f64 | memcpy (r0, r1, r2);
0x00013384 ldrh r2, [sp, 0x40] | r2 = address;
0x00013388 ldr r3, [r4] | r3 = *(r4);
0x0001338c cmp r2, 2 |
| if (r2 == 2) {
0x00013390 movne r2, 0x1c | r2 = 0x1c;
| }
| if (r2 != 2) {
0x00013394 moveq r2, 0x10 | r2 = 0x10;
| }
0x00013398 add r1, sp, 0x40 | r1 += address;
0x0001339c ldr r0, [r6, r3, lsl 2] | offset_5 = r3 << 2;
| r0 = *((r6 + offset_5));
0x000133a0 bl 0x11ed4 | r0 = bind (r0, r1, r2);
0x000133a4 cmp r0, 0 |
| if (r0 < 0) {
0x000133a8 bge 0x133c4 |
0x000133ac bl 0x11f1c | r0 = errno_location ();
0x000133b0 ldr r3, [r0] | r3 = *(r0);
0x000133b4 cmp r3, 0x62 |
| if (r3 != 0x62) {
0x000133b8 ldreq r1, [pc, 0x668] | r1 = "the NTP socket is in use, exiting";
| }
| if (r3 == 0x62) {
0x000133bc ldrne r1, [pc, 0x668] | r1 = "bind___fails:__m";
| }
0x000133c0 b 0x132cc | goto label_8;
| }
| label_86:
0x000133c4 ldr r2, [r4] | r2 = *(r4);
0x000133c8 ldr r3, [pc, 0x660] | r3 = "bind___fails:__m";
0x000133cc ldr r0, [r6, r2, lsl 2] | offset_6 = r2 << 2;
| r0 = *((r6 + offset_6));
0x000133d0 mov sb, 1 | sb = 1;
0x000133d4 str r0, [r3, r2, lsl 3] | offset_7 = r2 << 3;
| *((r3 + offset_7)) = r0;
0x000133d8 add r3, r3, r2, lsl 3 | r3 += (r2 << 3);
0x000133dc strh sb, [r3, 4] | *((r3 + 4)) = sb;
0x000133e0 mov r2, 0x800 | r2 = 0x800;
0x000133e4 mov r1, 4 | r1 = 4;
0x000133e8 bl 0x11f34 | r0 = fcntl64 ();
0x000133ec cmp r0, 0 |
| if (r0 < 0) {
0x000133f0 ldrlt r1, [pc, 0x63c] | r1 = "fcntl(FNDELAY|FASYNC) fails: %m";
| goto label_88;
| }
| if (r0 < 0) {
| label_88:
0x000133f4 blt 0x132cc | goto label_8;
| }
0x000133f8 ldr r3, [r4] | r3 = *(r4);
0x000133fc add r3, r3, 1 | r3++;
0x00013400 str r3, [r4] | *(r4) = r3;
| label_83:
0x00013404 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00013408 ldr r3, [r3, 0x1c] | r3 = *((r3 + 0x1c));
0x0001340c str r3, [sp, 0x28] | var_28h = r3;
0x00013410 b 0x13168 | goto label_10;
| label_73:
0x00013414 ldr r1, [pc, 0x61c] | r1 = "fcntl(FNDELAY|FASYNC) fails: %m";
0x00013418 mov r0, 0xe | r0 = 0xe;
0x0001341c bl 0x1b398 | fcn_0001b398 (r0, "fcntl(FNDELAY|FASYNC) fails: %m");
0x00013420 ldr r3, [pc, 0x614] | r3 = *(0x13a38);
0x00013424 add r2, sp, 0x68 | r2 += s;
0x00013428 str r3, [sp, 0x6c] | var_6ch = r3;
0x0001342c ldr r3, [pc, 0x60c] | r3 = *(0x13a3c);
0x00013430 mov r1, r4 | r1 = r4;
0x00013434 str r3, [sp, 0x74] | var_74h = r3;
0x00013438 ldr r0, [fp, 0x34] | r0 = *(arg_34h);
0x0001343c mov r3, r4 | r3 = r4;
0x00013440 str r4, [sp, 0x68] | s = r4;
0x00013444 str r4, [sp, 0x70] | var_70h = r4;
0x00013448 bl 0x11ea4 | timer_settime ();
0x0001344c b 0x131bc | goto label_11;
| label_74:
0x00013450 ldr r3, [fp] | r3 = *(fp);
0x00013454 cmp r3, 0 |
| if (r3 == 0) {
0x00013458 movne r3, 0 | r3 = 0;
| }
| if (r3 == 0) {
0x0001345c strne r3, [fp] | *(fp) = r3;
| }
| if (r3 == 0) {
0x00013460 movne r3, 1 | r3 = 1;
| }
0x00013464 str r3, [sp, 0x14] | stream = r3;
0x00013468 bl 0x19138 | fcn_00019138 ();
0x0001346c ldr r3, [sp, 0x14] | r3 = stream;
0x00013470 orrs r4, r0, r3 | r4 = r0 | r3;
| if (r4 == r0) {
0x00013474 bne 0x134c0 |
0x00013478 ldr r3, [sp, 0x24] | r3 = var_24h;
0x0001347c mov r1, 0x3e8 | r1 = 0x3e8;
0x00013480 ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x00013484 ldr r0, [pc, 0x5a4] | r0 = "bind___fails:__m";
0x00013488 mul r2, r3, r1 | r2 = r3 * r1;
0x0001348c ldr r3, [pc, 0x564] | r3 = "getaddrinfo() failed: %m";
0x00013490 ldr r1, [r3] | r1 = "getaddrinfo() failed: %m";
0x00013494 bl 0x11eb0 | r0 = poll ();
0x00013498 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 <= r0) {
0x0001349c ble 0x134e4 | goto label_89;
| }
0x000134a0 bl 0x12978 | fcn_00012978 ();
| label_13:
0x000134a4 ldr r3, [fp] | r3 = *(fp);
0x000134a8 cmp r3, 0 |
| if (r3 == 0) {
0x000134ac movne r3, 0 | r3 = 0;
| }
| if (r3 == 0) {
0x000134b0 movne r4, 1 | r4 = 1;
| }
| if (r3 == 0) {
0x000134b4 strne r3, [fp] | *(fp) = r3;
| }
0x000134b8 bl 0x19138 | fcn_00019138 ();
0x000134bc str r4, [sp, 0x14] | stream = r4;
| }
| label_14:
0x000134c0 bl 0x19310 | r0 = fcn_00019310 ();
0x000134c4 cmp r0, 0 |
0x000134c8 mov r4, r0 | r4 = r0;
| if (r0 != 0) {
0x000134cc bne 0x13528 | goto label_90;
| }
0x000134d0 ldr r3, [sp, 0x14] | r3 = stream;
0x000134d4 cmp r3, 0 |
| if (r3 == 0) {
0x000134d8 beq 0x131e0 | goto label_12;
| }
0x000134dc bl 0x12920 | fcn_00012920 ();
0x000134e0 b 0x131e0 | goto label_12;
| label_89:
0x000134e4 bl 0x11f1c | errno_location ();
0x000134e8 cmn r5, 1 |
0x000134ec ldr r3, [r0] | r3 = *(r0);
| if (r5 != 1) {
0x000134f0 bne 0x1350c | goto label_91;
| }
0x000134f4 cmp r3, 4 |
| if (r3 == 4) {
0x000134f8 beq 0x134a4 | goto label_13;
| }
0x000134fc ldr r1, [pc, 0x540] | r1 = *(0x13a40);
0x00013500 mov r0, 3 | r0 = 3;
0x00013504 bl 0x1776c | fcn_0001776c (r0);
0x00013508 b 0x134a4 | goto label_13;
| label_91:
0x0001350c cmp r3, 0 |
| if (r3 == 0) {
0x00013510 beq 0x134a4 | goto label_13;
| }
0x00013514 mov r2, r5 | r2 = r5;
0x00013518 ldr r1, [pc, 0x528] | r1 = "poll___error:__m";
0x0001351c mov r0, 7 | r0 = 7;
0x00013520 bl 0x1776c | fcn_0001776c (r0);
0x00013524 b 0x134a4 | goto label_13;
| label_90:
0x00013528 ldr r3, [r6] | r3 = *(r6);
0x0001352c cmp r3, 0 |
| if (r3 != 0) {
0x00013530 beq 0x13548 |
0x00013534 add r0, r4, 4 | r0 = r4 + 4;
0x00013538 bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x0001353c mov r1, r0 | r1 = r0;
0x00013540 ldr r0, [pc, 0x504] | r0 = "poll__:_nfound___d__error:__m";
0x00013544 bl 0x12474 | printf ("poll__:_nfound___d__error:__m", r1);
| }
0x00013548 ldr r8, [r4, 0x54] | r8 = *((r4 + 0x54));
0x0001354c cmp r8, 0x30 |
| if (r8 == 0x30) {
0x00013550 beq 0x13580 | goto label_92;
| }
0x00013554 cmp r8, 0x2f |
| if (r8 > 0x2f) {
0x00013558 bgt 0x135d4 | goto label_93;
| }
0x0001355c ldr r3, [r6] | r3 = *(r6);
0x00013560 cmp r3, 0 |
| if (r3 == 0) {
0x00013564 beq 0x13574 | goto label_15;
| }
0x00013568 mov r1, r8 | r1 = r8;
0x0001356c ldr r0, [pc, 0x4dc] | r0 = "receive(%s)\n";
0x00013570 bl 0x12474 | printf ("receive(%s)\n", r1);
| do {
| label_15:
0x00013574 mov r0, r4 | r0 = r4;
0x00013578 bl 0x19208 | fcn_00019208 (r0);
0x0001357c b 0x134c0 | goto label_14;
| label_92:
0x00013580 mov r7, 0 | r7 = 0;
| label_16:
0x00013584 ldrb r1, [r4, 0x58] | r1 = *((r4 + 0x58));
0x00013588 lsr r3, r1, 3 | r3 = r1 >> 3;
0x0001358c and r3, r3, 7 | r3 &= 7;
0x00013590 sub r3, r3, 1 | r3--;
0x00013594 cmp r3, 3 |
0x00013598 bhi 0x13574 |
| } while (r3 > 3);
0x0001359c and r1, r1, 7 | r1 &= 7;
0x000135a0 sub r3, r1, 2 | r3 = r1 - 2;
0x000135a4 ands r0, r3, 0xfd | r0 = r3 & 0xfd;
| if (r0 == r3) {
0x000135a8 bne 0x135b8 |
0x000135ac ldrb r3, [r4, 0x59] | r3 = *((r4 + 0x59));
0x000135b0 cmp r3, 0xf |
| if (r3 < 0xf) {
0x000135b4 bls 0x135dc | goto label_94;
| }
| }
0x000135b8 ldr r3, [r6] | r3 = *(r6);
0x000135bc cmp r3, 0 |
| if (r3 == 0) {
0x000135c0 beq 0x13574 | goto label_15;
| }
0x000135c4 ldrb r2, [r4, 0x59] | r2 = *((r4 + 0x59));
0x000135c8 ldr r0, [pc, 0x484] | r0 = "receive:_packet_length__d";
0x000135cc bl 0x12474 | printf ("receive:_packet_length__d", r1, r2);
0x000135d0 b 0x13574 | goto label_15;
| label_93:
0x000135d4 mov r7, 1 | r7 = 1;
0x000135d8 b 0x13584 | goto label_16;
| label_94:
0x000135dc ldrh r2, [r4, 6] | r2 = *((r4 + 6));
0x000135e0 lsr r3, r2, 8 | r3 = r2 >> 8;
0x000135e4 orr r3, r3, r2, lsl 8 | r3 |= (r2 << 8);
0x000135e8 lsl r3, r3, 0x10 | r3 <<= 0x10;
0x000135ec lsr r3, r3, 0x10 | r3 >>= 0x10;
0x000135f0 cmp r3, 0x7b |
| if (r3 == 0x7b) {
0x000135f4 bne 0x13690 |
0x000135f8 ldr sb, [pc, 0x3f0] | sb = *(0x000139f0);
0x000135fc add r3, r4, 0xc | r3 = r4 + 0xc;
0x00013600 ldr r5, [sb] | r5 = *(sb);
0x00013604 mov sl, r0 | sl = r0;
0x00013608 str r3, [sp, 0x18] | s1 = r3;
| label_19:
0x0001360c cmp r5, 0 |
| if (r5 != 0) {
0x00013610 bne 0x136a8 | goto label_95;
| }
0x00013614 cmp sl, 0 |
| if (sl == 0) {
0x00013618 beq 0x13690 | goto label_96;
| }
0x0001361c ldr r3, [sl, 0x3c] | r3 = *((sl + 0x3c));
0x00013620 mov r2, 0 | r2 = 0;
0x00013624 cmp r3, 0 |
| if (r3 == 0) {
0x00013628 ldrne r3, [fp, 0x18] | r3 = *(arg_18h);
| }
| if (r3 == 0) {
0x0001362c strne r5, [sl, 0x3c] | *((sl + 0x3c)) = r5;
| }
| if (r3 == 0) {
0x00013630 addne r3, r3, 1 | r3++;
| }
| if (r3 == 0) {
0x00013634 strne r3, [fp, 0x18] | *(arg_18h) = r3;
| }
0x00013638 mov r1, 0x110 | r1 = 0x110;
0x0001363c mov r3, 1 | r3 = 1;
0x00013640 mov r0, r2 | r0 = r2;
0x00013644 bl 0x16c28 | fcn_00016c28 (r0, r1);
0x00013648 add lr, r4, 4 | lr = r4 + 4;
0x0001364c mov r5, r0 | r5 = r0;
0x00013650 add ip, r0, 4 |
0x00013654 ldm lr!, {r0, r1, r2, r3} | r0 = *(lr!);
| r1 = *((lr! + 4));
| r2 = *((lr! + 8));
| r3 = *((lr! + 12));
0x00013658 stm ip!, {r0, r1, r2, r3} | *(ip!) = r0;
| *((ip! + 4)) = r1;
| *((ip! + 8)) = r2;
| *((ip! + 12)) = r3;
0x0001365c ldr r3, [fp, 0x30] | r3 = *(arg_30h);
0x00013660 ldm lr, {r0, r1, r2} | r0 = *(lr);
| r1 = *((lr + 4));
| r2 = *((lr + 8));
0x00013664 add r3, r3, 1 | r3++;
0x00013668 stm ip, {r0, r1, r2} | *(ip) = r0;
| *((ip + 4)) = r1;
| *((ip + 8)) = r2;
0x0001366c str r3, [fp, 0x30] | *(arg_30h) = r3;
0x00013670 str r3, [r5, 0x3c] | *((r5 + 0x3c)) = r3;
0x00013674 ldr r3, [sb] | r3 = *(sb);
| label_20:
0x00013678 ldr r2, [r3] | r2 = *(r3);
0x0001367c cmp r2, 0 |
| if (r2 != 0) {
0x00013680 bne 0x13774 | goto label_97;
| }
0x00013684 str r5, [r3] | *(r3) = r5;
0x00013688 mov r0, r5 | r0 = r5;
0x0001368c bl 0x1289c | fcn_0001289c (r0);
| }
| label_96:
0x00013690 ldr r3, [r6] | r3 = *(r6);
0x00013694 cmp r3, 0 |
| if (r3 != 0) {
0x00013698 ldrne r0, [pc, 0x3b8] | r0 = "receive: server not found";
| goto label_98;
| }
| if (r3 == 0) {
| label_98:
0x0001369c beq 0x13574 | goto label_15;
| }
| label_17:
0x000136a0 bl 0x12480 | puts (r0);
0x000136a4 b 0x13574 | goto label_15;
| label_95:
0x000136a8 ldrh r2, [r4, 4] | r2 = *((r4 + 4));
0x000136ac ldrh r3, [r5, 4] | r3 = *((r5 + 4));
0x000136b0 cmp r3, r2 |
| if (r3 != r2) {
0x000136b4 bne 0x1376c | goto label_99;
| }
0x000136b8 cmp r3, 2 |
| if (r3 != 2) {
0x000136bc bne 0x1371c | goto label_100;
| }
0x000136c0 ldr r0, [r5, 8] | r0 = *((r5 + 8));
0x000136c4 ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x000136c8 cmp r3, r0 |
| if (r3 != r0) {
0x000136cc bne 0x13750 | goto label_101;
| }
| label_18:
0x000136d0 ldr r0, [r4, 0x70] | r0 = *((r4 + 0x70));
0x000136d4 bl 0x2327c | fcn_0002327c (r0);
0x000136d8 str r0, [sp, 0x1c] | var_1ch = r0;
0x000136dc ldr r0, [r4, 0x74] | r0 = *((r4 + 0x74));
0x000136e0 bl 0x2327c | fcn_0002327c (r0);
0x000136e4 ldr r3, [r5, 0xf4] | r3 = *((r5 + 0xf4));
0x000136e8 ldr r2, [sp, 0x1c] | r2 = var_1ch;
0x000136ec cmp r2, r3 |
0x000136f0 str r0, [sp, 0x18] | s1 = r0;
| if (r2 == r3) {
0x000136f4 bne 0x13708 |
0x000136f8 ldr r3, [r5, 0xf8] | r3 = *((r5 + 0xf8));
0x000136fc ldr r2, [sp, 0x18] | r2 = s1;
0x00013700 cmp r2, r3 |
| if (r2 == r3) {
0x00013704 beq 0x1377c | goto label_102;
| }
| }
0x00013708 ldr r3, [r6] | r3 = *(r6);
0x0001370c cmp r3, 0 |
| if (r3 == 0) {
0x00013710 beq 0x13574 | goto label_15;
| }
0x00013714 ldr r0, [pc, 0x340] | r0 = "receive: server not found";
0x00013718 b 0x136a0 | goto label_17;
| label_100:
0x0001371c mov r2, 0x10 | r2 = 0x10;
0x00013720 add r1, r5, 0xc | r1 = r5 + 0xc;
0x00013724 ldr r0, [sp, 0x18] | r0 = s1;
0x00013728 bl 0x12330 | r0 = memcmp (r0, r1, r2);
0x0001372c cmp r0, 0 |
| if (r0 != 0) {
0x00013730 bne 0x13744 | goto label_103;
| }
0x00013734 ldr r2, [r4, 0x1c] | r2 = *((r4 + 0x1c));
0x00013738 ldr r3, [r5, 0x1c] | r3 = *((r5 + 0x1c));
0x0001373c cmp r2, r3 |
| if (r2 == r3) {
0x00013740 beq 0x136d0 | goto label_18;
| }
| label_103:
0x00013744 ldrb r0, [r5, 0xc] | r0 = *((r5 + 0xc));
0x00013748 cmp r0, 0xff |
0x0001374c b 0x1375c | goto label_104;
| label_101:
0x00013750 bl 0x2327c | r0 = fcn_0002327c (r0);
0x00013754 and r0, r0, 0xf0000000 | r0 &= 0xf0000000;
0x00013758 cmp r0, 0xe0000000 |
| if (r0 == 0xe0000000) {
| label_104:
0x0001375c movne r0, 0 | r0 = 0;
| }
| if (r0 != 0xe0000000) {
0x00013760 moveq r0, 1 | r0 = 1;
| }
0x00013764 cmp r0, 0 |
| if (r0 == 0) {
0x00013768 movne sl, r5 | sl = r5;
| }
| label_99:
0x0001376c ldr r5, [r5] | r5 = *(r5);
0x00013770 b 0x1360c | goto label_19;
| label_97:
0x00013774 mov r3, r2 | r3 = r2;
0x00013778 b 0x13678 | goto label_20;
| label_102:
0x0001377c ldr sl, [pc, 0x328] | sl = *(0x00013aac);
0x00013780 ldr r3, [sl, 4] | r3 = *((sl + 4));
0x00013784 cmp r3, 0 |
| if (r3 != 0) {
0x00013788 moveq r7, 1 | r7 = 1;
| }
| if (r3 != 0) {
0x0001378c beq 0x1383c |
0x00013790 ldr r3, [r6] | r3 = *(r6);
0x00013794 add sb, r4, 0x58 | sb = r4 + 0x58;
0x00013798 cmp r3, 3 |
| if (r3 > 3) {
0x0001379c ble 0x137d8 |
0x000137a0 ldr r0, [r4, 0x88] | r0 = *((r4 + 0x88));
0x000137a4 bl 0x2327c | fcn_0002327c (r0);
0x000137a8 ldr sl, [sl, 8] | sl = *((sl + 8));
0x000137ac sub r3, r8, 0x30 | r3 = r8 - 0x30;
0x000137b0 mov r2, 0x30 | r2 = 0x30;
0x000137b4 mov r1, sb | r1 = sb;
0x000137b8 str r0, [sp, 0x20] | var_20h = r0;
0x000137bc mov r0, sl | r0 = sl;
0x000137c0 bl 0x16104 | fcn_00016104 (r0, r1);
0x000137c4 mov r2, sl | r2 = sl;
0x000137c8 ldr r1, [sp, 0x20] | r1 = var_20h;
0x000137cc mov r3, r0 | r3 = r0;
0x000137d0 ldr r0, [pc, 0x288] | r0 = "receive:_pkt.org_and_peer.xmt_differ";
0x000137d4 bl 0x12474 | printf ("receive:_pkt.org_and_peer.xmt_differ", r1, r2, r3);
| }
0x000137d8 cmp r7, 0 |
| if (r7 != 0) {
0x000137dc beq 0x13818 |
0x000137e0 ldr r0, [r4, 0x88] | r0 = *((r4 + 0x88));
0x000137e4 bl 0x2327c | fcn_0002327c (r0);
0x000137e8 ldr r3, [pc, 0x2bc] |
0x000137ec ldr r3, [r3, 8] | r3 = stdout;
0x000137f0 cmp r0, r3 |
| if (r0 == r3) {
0x000137f4 movne r7, 0 | r7 = 0;
| }
| if (r0 != r3) {
0x000137f8 bne 0x13818 | goto label_105;
| }
0x000137fc ldr r3, [r4, 0x54] | r3 = *((r4 + 0x54));
0x00013800 mov r2, 0x30 | r2 = 0x30;
0x00013804 sub r3, r3, 0x30 | r3 -= 0x30;
0x00013808 mov r1, sb | r1 = sb;
0x0001380c bl 0x16104 | r0 = fcn_00016104 (r0, r1);
0x00013810 adds r7, r0, 0 | r7 = r0 + 0;
| if (r7 != r0) {
0x00013814 movne r7, 1 | r7 = 1;
| goto label_105;
| }
| }
| label_105:
0x00013818 ldr r3, [r6] | r3 = *(r6);
0x0001381c cmp r3, 0 |
| if (r3 == 0) {
0x00013820 beq 0x1383c | goto label_106;
| }
0x00013824 ldr r3, [pc, 0x238] | r3 = "receive: rpkt keyid=%ld sys_authkey=%ld decrypt=%ld\n";
0x00013828 cmp r7, 0 |
0x0001382c ldr r1, [pc, 0x234] | r1 = "passed";
0x00013830 ldr r0, [pc, 0x234] | r0 = "failed";
| if (r7 == 0) {
0x00013834 movne r1, r3 | r1 = r3;
| }
0x00013838 bl 0x12474 | printf ("failed", "passed", r2, "receive: rpkt keyid=%ld sys_authkey=%ld decrypt=%ld\n");
| }
| label_106:
0x0001383c ldrb r3, [r5, 0x24] | r3 = *((r5 + 0x24));
0x00013840 cmp r7, 0 |
0x00013844 lsl r3, r3, 1 | r3 <<= 1;
0x00013848 and r3, r3, 0xff | r3 &= 0xff;
| if (r7 != 0) {
0x0001384c orreq r3, r3, 1 | r3 |= 1;
| }
0x00013850 strb r3, [r5, 0x24] | *((r5 + 0x24)) = r3;
0x00013854 ldrb r8, [r4, 0x58] | r8 = *((r4 + 0x58));
0x00013858 ldrb r7, [r4, 0x59] | r7 = *((r4 + 0x59));
0x0001385c lsr r8, r8, 6 | r8 >>= 6;
0x00013860 cmp r8, 3 |
0x00013864 ldr sb, [pc, 0x240] | sb = *(0x00013aac);
| if (r8 == 3) {
0x00013868 bne 0x138b8 |
0x0001386c cmp r7, 0 |
| if (r7 != 0) {
0x00013870 bne 0x138b8 | goto label_107;
| }
0x00013874 mov r2, 4 | r2 = 4;
0x00013878 add r1, r4, 0x64 | r1 = r4 + 0x64;
0x0001387c ldr r0, [pc, 0x1ec] | r0 = "receive:_authentication__s";
0x00013880 bl 0x12330 | r0 = memcmp ("receive:_authentication__s", r1, r2);
0x00013884 subs sl, r0, 0 | sl = r0 - 0;
| if (sl != r0) {
0x00013888 bne 0x138b8 | goto label_107;
| }
0x0001388c add r0, r4, 4 | r0 = r4 + 4;
0x00013890 bl 0x1a9f8 | fcn_0001a9f8 (r0);
0x00013894 ldr r1, [pc, 0x1d8] | r1 = "RATE";
0x00013898 mov r2, r0 | r2 = r0;
0x0001389c mov r0, r8 | r0 = r8;
0x000138a0 bl 0x1776c | fcn_0001776c (r0);
0x000138a4 ldr r3, [sb, 0x18] | r3 = *((sb + 0x18));
0x000138a8 str sl, [r5, 0x3c] | *((r5 + 0x3c)) = sl;
0x000138ac add r3, r3, 1 | r3++;
0x000138b0 str r3, [sb, 0x18] | *((sb + 0x18)) = r3;
0x000138b4 b 0x13574 | goto label_15;
| }
| label_107:
0x000138b8 cmp r7, 0 |
| if (r7 != 0) {
0x000138bc moveq r7, 0x10 | r7 = 0x10;
| }
0x000138c0 strb r8, [r5, 0x21] | *((r5 + 0x21)) = r8;
0x000138c4 strb r7, [r5, 0x22] | *((r5 + 0x22)) = r7;
0x000138c8 ldrb r3, [r4, 0x5b] | r3 = *((r4 + 0x5b));
0x000138cc strb r3, [r5, 0x23] | *((r5 + 0x23)) = r3;
0x000138d0 ldr r0, [r4, 0x5c] | r0 = *((r4 + 0x5c));
0x000138d4 bl 0x2327c | fcn_0002327c (r0);
0x000138d8 str r0, [r5, 0x28] | *((r5 + 0x28)) = r0;
0x000138dc ldr r0, [r4, 0x60] | r0 = *((r4 + 0x60));
0x000138e0 bl 0x2327c | fcn_0002327c (r0);
0x000138e4 ldr r3, [r4, 0x64] | r3 = *((r4 + 0x64));
0x000138e8 str r3, [r5, 0x30] | *((r5 + 0x30)) = r3;
0x000138ec str r0, [r5, 0x2c] | *((r5 + 0x2c)) = r0;
0x000138f0 ldr r0, [r4, 0x68] | r0 = *((r4 + 0x68));
0x000138f4 bl 0x2327c | fcn_0002327c (r0);
0x000138f8 str r0, [r5, 0x34] | *((r5 + 0x34)) = r0;
0x000138fc ldr r0, [r4, 0x6c] | r0 = *((r4 + 0x6c));
0x00013900 bl 0x2327c | fcn_0002327c (r0);
0x00013904 str r0, [r5, 0x38] | *((r5 + 0x38)) = r0;
0x00013908 ldr r0, [r4, 0x78] | r0 = *((r4 + 0x78));
0x0001390c bl 0x2327c | r0 = fcn_0002327c (r0);
0x00013910 mov r7, r0 | r7 = r0;
0x00013914 ldr r0, [r4, 0x7c] | r0 = *((r4 + 0x7c));
0x00013918 bl 0x2327c | r0 = fcn_0002327c (r0);
0x0001391c mov r8, r0 | r8 = r0;
0x00013920 ldr r0, [r4, 0x80] | r0 = *((r4 + 0x80));
0x00013924 bl 0x2327c | fcn_0002327c (r0);
0x00013928 str r0, [r5, 0xec] | *((r5 + 0xec)) = r0;
0x0001392c mov sl, r0 | sl = r0;
0x00013930 ldr r0, [r4, 0x84] | r0 = *((r4 + 0x84));
0x00013934 bl 0x2327c | fcn_0002327c (r0);
0x00013938 orrs r3, r7, r8 | r3 = r7 | r8;
0x0001393c str r0, [r5, 0xf0] | *((r5 + 0xf0)) = r0;
| if (r3 != r7) {
0x00013940 beq 0x13964 |
0x00013944 cmp r7, sl |
| if (r7 <= sl) {
0x00013948 blo 0x13b08 | goto label_108;
| }
| if (r7 == sl) {
0x0001394c movne r3, 1 | r3 = 1;
| }
| if (r7 != sl) {
0x00013950 moveq r3, 0 | r3 = 0;
| }
0x00013954 cmp r8, r0 |
| if (r8 <= r0) {
0x00013958 orrhi r3, r3, 1 | r3 |= 1;
| }
0x0001395c cmp r3, 0 |
| if (r3 == 0) {
0x00013960 beq 0x13b08 | goto label_108;
| }
| }
0x00013964 ldr r3, [sb, 0x10] | r3 = *((sb + 0x10));
| do {
0x00013968 ldr r2, [pc, 0x2c] |
0x0001396c ldr r2, [r2, 4] | r2 = *(0x1399c);
0x00013970 add r3, r3, r2 | r3 += r2;
0x00013974 str r3, [r5, 0x3c] | *((r5 + 0x3c)) = r3;
0x00013978 b 0x13574 | goto label_15;
| label_108:
0x00013b08 ldr r1, [r4, 0x48] | r1 = *((r4 + 0x48));
0x00013b0c ldr r2, [r4, 0x4c] | r2 = *((r4 + 0x4c));
0x00013b10 sub sl, sl, r1 | sl -= r1;
0x00013b14 ldr r1, [sp, 0x1c] | r1 = var_1ch;
0x00013b18 sub r3, r0, r2 | r3 = r0 - r2;
0x00013b1c sub r7, r7, r1 | r7 -= r1;
0x00013b20 ldr r1, [sp, 0x18] | r1 = s1;
0x00013b24 cmp r0, r2 |
| if (r0 < r2) {
0x00013b28 movhs r0, sl | r0 = sl;
| }
| if (r0 >= r2) {
0x00013b2c sublo r0, sl, 1 | r0 = sl - 1;
| }
0x00013b30 ldr r2, [sp, 0x18] | r2 = s1;
0x00013b34 cmp r8, r1 |
| if (r8 >= r1) {
0x00013b38 sublo r7, r7, 1 | r7--;
| }
0x00013b3c lsl r1, r0, 0x1f | r1 = r0 << 0x1f;
0x00013b40 sub r2, r8, r2 | r2 = r8 - r2;
0x00013b44 orr r8, r1, r3, lsr 1 | r8 = r1 | (r3 >> 1);
0x00013b48 lsl r1, r7, 0x1f | r1 = r7 << 0x1f;
0x00013b4c orr r1, r1, r2, lsr 1 | r1 |= (r2 >> 1);
0x00013b50 adds r1, r8, r1 | r1 = r8 + r1;
0x00013b54 and lr, r7, 0x80000000 | lr = r7 & 0x80000000;
| if (r1 < r8) {
0x00013b58 movhs sb, 1 | sb = 1;
| }
| if (r1 >= r8) {
0x00013b5c movlo sb, 0 | sb = 0;
| }
0x00013b60 and ip, r0, 0x80000000 |
0x00013b64 orr lr, lr, r7, lsr 1 | lr |= (r7 >> 1);
0x00013b68 cmp r2, r3 |
| if (r2 >= r3) {
0x00013b6c sublo r7, r7, 1 | r7--;
| }
0x00013b70 orr ip, ip, r0, lsr 1 |
0x00013b74 sub r0, r7, r0 | r0 = r7 - r0;
0x00013b78 add ip, ip, lr |
0x00013b7c cmp r0, 0x10000 |
0x00013b80 add sb, sb, ip | sb += ip;
0x00013b84 mov r8, r1 | r8 = r1;
0x00013b88 sub ip, r2, r3 |
| if (r0 < 0x10000) {
0x00013b8c mvnge r7, 0x80000000 | r7 = ~0x80000000;
| }
| if (r0 < 0x10000) {
0x00013b90 bge 0x13ba4 |
0x00013b94 cmn r0, 0x10000 |
| if (r0 <= 0x10000) {
0x00013b98 lsrgt r7, ip, 0x10 | r7 = ip >> 0x10;
| }
| if (r0 <= 0x10000) {
0x00013b9c orrgt r7, r7, r0, lsl 16 | r7 |= (r0 << 16);
| }
| if (r0 <= 0x10000) {
0x00013ba0 movle r7, 0x80000000 | r7 = 0x80000000;
| goto label_109;
| }
| }
| label_109:
0x00013ba4 ldr r3, [r6] | r3 = *(r6);
0x00013ba8 cmp r3, 3 |
| if (r3 > 3) {
0x00013bac ble 0x13bdc |
0x00013bb0 mov r2, 6 | r2 = 6;
0x00013bb4 mov r0, sb | r0 = sb;
0x00013bb8 bl 0x16bb8 | fcn_00016bb8 (r0, r1);
0x00013bbc mov r1, 5 | r1 = 5;
0x00013bc0 mov sl, r0 | sl = r0;
0x00013bc4 mov r0, r7 | r0 = r7;
0x00013bc8 bl 0x16970 | fcn_00016970 (r0, r1);
0x00013bcc mov r1, sl | r1 = sl;
0x00013bd0 mov r2, r0 | r2 = r0;
0x00013bd4 ldr r0, [pc, -0x164] | r0 = "offset: %s, delay %s\n";
0x00013bd8 bl 0x12474 | printf ("offset: %s, delay %s\n", r1, r2);
| }
0x00013bdc ldrsb r0, [r5, 0x23] | r0 = *((r5 + 0x23));
0x00013be0 rsb r3, r0, 0 | r3 = r0 - ;
0x00013be4 mov r0, 0x10000 | r0 = 0x10000;
0x00013be8 asr r0, r0, r3 | r0 >>= r3;
0x00013bec add r0, r0, 0x680 | r0 += 0x680;
0x00013bf0 add r0, r0, 0xf | r0 += 0xf;
0x00013bf4 add r7, r0, r7 | r7 = r0 + r7;
0x00013bf8 cmp r7, 0 |
| if (r7 > 0) {
0x00013bfc movle r8, 0 | r8 = 0;
| }
| if (r7 > 0) {
0x00013c00 movle r7, r8 | r7 = r8;
| }
| if (r7 > 0) {
0x00013c04 movle sb, r8 | sb = r8;
| }
| if (r7 > 0) {
0x00013c08 ble 0x13c18 |
0x00013c0c ldr r0, [pc, -0x198] | r0 = *(0x00013a7c);
0x00013c10 cmp r7, r0 |
| if (r7 < r0) {
0x00013c14 movlt r7, r0 | r7 = r0;
| goto label_110;
| }
| }
| label_110:
0x00013c18 ldrh r3, [r5, 0x4a] | r3 = *((r5 + 0x4a));
0x00013c1c cmp r3, 7 |
| if (r3 <= 7) {
0x00013c20 bhi 0x13c70 |
0x00013c24 lsl r1, r3, 3 | r1 = r3 << 3;
0x00013c28 add r1, r1, 0x6c | r1 += 0x6c;
0x00013c2c add r2, r5, r3, lsl 2 | r2 = r5 + (r3 << 2);
0x00013c30 add r0, r5, r1 | r0 = r5 + r1;
0x00013c34 cmp sb, 0x10000 |
0x00013c38 str r7, [r2, 0x4c] | *((r2 + 0x4c)) = r7;
0x00013c3c str sb, [r5, r1] | *((r5 + r1)) = sb;
0x00013c40 str r8, [r0, 4] | *((r0 + 4)) = r8;
| if (sb < 0x10000) {
0x00013c44 mvnge sb, 0x80000000 | sb = ~0x80000000;
| }
| if (sb < 0x10000) {
0x00013c48 bge 0x13c5c |
0x00013c4c cmn sb, 0x10000 |
| if (sb <= 0x10000) {
0x00013c50 lsrgt r8, r8, 0x10 | r8 >>= 0x10;
| }
| if (sb <= 0x10000) {
0x00013c54 orrgt sb, r8, sb, lsl 16 | sb = r8 | (sb << 16);
| }
| if (sb <= 0x10000) {
0x00013c58 movle sb, 0x80000000 | sb = 0x80000000;
| goto label_111;
| }
| }
| label_111:
0x00013c5c mov r1, 0 | r1 = 0;
0x00013c60 add r3, r3, 1 | r3++;
0x00013c64 str sb, [r2, 0xac] | *((r2 + 0xac)) = sb;
0x00013c68 str r1, [r2, 0xcc] | *((r2 + 0xcc)) = r1;
0x00013c6c strh r3, [r5, 0x4a] | *((r5 + 0x4a)) = r3;
| }
0x00013c70 ldr r3, [pc, -0x1cc] | r3 = *(0x00013aac);
0x00013c74 ldrh r1, [r5, 0x4a] | r1 = *((r5 + 0x4a));
0x00013c78 ldr r2, [r3, 0x14] | r2 = *((r3 + 0x14));
0x00013c7c cmp r1, r2 |
| if (r1 >= r2) {
0x00013c80 blt 0x13c9c |
0x00013c84 mov r2, 0 | r2 = 0;
0x00013c88 str r2, [r5, 0x3c] | *((r5 + 0x3c)) = r2;
0x00013c8c ldr r2, [r3, 0x18] | r2 = *((r3 + 0x18));
0x00013c90 add r2, r2, 1 | r2++;
0x00013c94 str r2, [r3, 0x18] | *((r3 + 0x18)) = r2;
0x00013c98 b 0x13574 | goto label_15;
| }
0x00013c9c ldr r3, [r3, 0x10] | r3 = *((r3 + 0x10));
0x00013ca0 b 0x13968 |
| } while (1);
| label_75:
0x00013ca4 ldr r2, [fp, 0x14] | r2 = *(arg_14h);
0x00013ca8 sub r1, r2, 1 | r1 = r2 - 1;
0x00013cac cmp r1, 7 |
| if (r1 <= 7) {
0x00013cb0 ldrhi r3, [pc, -0x238] | r3 = "(0 < sys_samples) && (sys_samples <= 8)";
| }
| if (r1 <= 7) {
0x00013cb4 movhi r2, 2 | r2 = 2;
| }
| if (r1 > 7) {
0x00013cb8 ldrhi r1, [pc, -0x23c] | r1 = *(0x00013a84);
| goto label_112;
| }
| if (r1 > 7) {
| label_112:
0x00013cbc bhi 0x12ff4 | goto label_9;
| }
0x00013cc0 mov r1, 0 | r1 = 0;
| do {
0x00013cc4 add lr, r1, 1 | lr = r1 + 1;
0x00013cc8 cmp r2, lr |
0x00013ccc str r1, [ip, r1, lsl 2] | offset_8 = r1 << 2;
| *((ip + offset_8)) = r1;
| if (r2 == lr) {
0x00013cd0 bne 0x13d14 |
0x00013cd4 mov r5, ip | r5 = ip;
0x00013cd8 mov r4, 0 | r4 = 0;
| label_22:
0x00013cdc cmp r4, r1 |
| if (r4 < r1) {
0x00013ce0 blt 0x13d1c | goto label_113;
| }
0x00013ce4 ldr r2, [sp, 0x68] | r2 = s;
0x00013ce8 add r4, r3, r2, lsl 2 | r4 = r3 + (r2 << 2);
0x00013cec ldr r1, [r4, 0x4c] | r1 = *((r4 + 0x4c));
0x00013cf0 cmp r1, 0 |
0x00013cf4 str r1, [r3, 0xfc] | *((r3 + 0xfc)) = r1;
| if (r1 != 0) {
0x00013cf8 bne 0x13d78 | goto label_114;
| }
0x00013cfc str r1, [r3, 0x108] | *((r3 + 0x108)) = r1;
0x00013d00 str r1, [r3, 0x104] | *((r3 + 0x104)) = r1;
0x00013d04 str r1, [r3, 0x10c] | *((r3 + 0x10c)) = r1;
0x00013d08 str r7, [r3, 0x100] | *((r3 + 0x100)) = r7;
| label_24:
0x00013d0c ldr r3, [r3] | r3 = *(r3);
0x00013d10 b 0x13200 | goto label_21;
| }
0x00013d14 mov r1, lr | r1 = lr;
0x00013d18 b 0x13cc4 |
| } while (1);
| label_113:
0x00013d1c add r4, r4, 1 | r4++;
0x00013d20 mov r0, r4 | r0 = r4;
| label_23:
0x00013d24 cmp lr, r0 |
| if (lr == r0) {
0x00013d28 addeq r5, r5, 4 | r5 += var_6ch;
| goto label_115;
| }
| if (lr == r0) {
| label_115:
0x00013d2c beq 0x13cdc | goto label_22;
| }
0x00013d30 ldr r8, [ip, r0, lsl 2] | offset_9 = r0 << 2;
| r8 = *((ip + offset_9));
0x00013d34 add r2, r3, r8, lsl 2 | r2 = r3 + (r8 << 2);
0x00013d38 ldr r2, [r2, 0x4c] | r2 = *((r2 + 0x4c));
0x00013d3c cmp r2, 0 |
| if (r2 != 0) {
0x00013d40 beq 0x13d70 |
0x00013d44 ldr r6, [r5] | r6 = *(r5);
0x00013d48 add sb, r3, r6, lsl 2 | sb = r3 + (r6 << 2);
0x00013d4c ldr sb, [sb, 0x4c] | sb = *((sb + 0x4c));
0x00013d50 cmp r2, sb |
| if (r2 < sb) {
0x00013d54 movge r2, 0 | r2 = 0;
| }
| if (r2 >= sb) {
0x00013d58 movlt r2, 1 | r2 = 1;
| }
0x00013d5c cmp sb, 0 |
| if (sb != 0) {
0x00013d60 moveq r2, 1 | r2 = 1;
| }
0x00013d64 cmp r2, 0 |
| if (r2 == 0) {
0x00013d68 strne r8, [r5] | *(r5) = r8;
| }
| if (r2 != 0) {
0x00013d6c strne r6, [ip, r0, lsl 2] | offset_10 = r0 << 2;
| *((ip + offset_10)) = r6;
| goto label_116;
| }
| }
| label_116:
0x00013d70 add r0, r0, 1 | r0++;
0x00013d74 b 0x13d24 | goto label_23;
| label_114:
0x00013d78 add r2, r3, r2, lsl 3 | r2 = r3 + (r2 << 3);
0x00013d7c add r2, r2, 0x6c | r2 += 0x6c;
0x00013d80 ldm r2, {r0, r1} | r0 = *(r2);
| r1 = *((r2 + 4));
0x00013d84 add r5, r3, 0x104 | r5 = r3 + 0x104;
0x00013d88 stm r5, {r0, r1} | *(r5) = r0;
| *((r5 + 4)) = r1;
0x00013d8c ldr r1, [pc, -0x30c] | r1 = *(0x00013a88);
0x00013d90 mov r2, r0 | r2 = r0;
0x00013d94 cmp r0, r1 |
| if (r0 <= r1) {
0x00013d98 mvngt r2, 0x80000000 | r2 = ~0x80000000;
| }
| if (r0 <= r1) {
0x00013d9c bgt 0x13db8 |
0x00013da0 ldr r1, [pc, -0x31c] | r1 = *(0x00013a8c);
0x00013da4 cmp r2, r1 |
| if (r2 < r1) {
0x00013da8 ldrge r1, [r3, 0x108] | r1 = *((r3 + 0x108));
| }
| if (r2 < r1) {
0x00013dac lslge r2, r2, 0x10 | r2 <<= 0x10;
| }
| if (r2 < r1) {
0x00013db0 orrge r2, r2, r1, lsr 16 | r2 |= (r1 >> 16);
| }
| if (r2 < r1) {
0x00013db4 movlt r2, 0x80000000 | r2 = 0x80000000;
| goto label_117;
| }
| }
| label_117:
0x00013db8 str r2, [r3, 0x10c] | *((r3 + 0x10c)) = r2;
0x00013dbc mov r1, 1 | r1 = 1;
0x00013dc0 mov r2, 0 | r2 = 0;
0x00013dc4 str r2, [r3, 0x100] | *((r3 + 0x100)) = r2;
| label_25:
0x00013dc8 cmp lr, r1 |
| if (lr == r1) {
0x00013dcc beq 0x13d0c | goto label_24;
| }
0x00013dd0 ldr r2, [ip, r1, lsl 2] | offset_11 = r1 << 2;
| r2 = *((ip + offset_11));
0x00013dd4 add r2, r3, r2, lsl 2 | r2 = r3 + (r2 << 2);
0x00013dd8 ldr r0, [r2, 0x4c] | r0 = *((r2 + 0x4c));
0x00013ddc cmp r0, 0 |
| if (r0 != 0) {
0x00013de0 moveq r2, 0x400000 | r2 = 0x400000;
| }
| if (r0 != 0) {
0x00013de4 beq 0x13e04 |
0x00013de8 ldr r2, [r2, 0xac] | r2 = *((r2 + 0xac));
0x00013dec ldr r0, [r4, 0xac] | r0 = *((r4 + 0xac));
0x00013df0 sub r2, r2, r0 | r2 -= r0;
0x00013df4 cmp r2, 0 |
0x00013df8 rsblt r2, r2, 0 | __asm ("rsblt r2, r2, 0");
0x00013dfc cmp r2, 0x400000 |
| if (r2 >= 0x400000) {
0x00013e00 movge r2, 0x400000 | r2 = 0x400000;
| goto label_118;
| }
| }
| label_118:
0x00013e04 ldr r0, [r3, 0x100] | r0 = *((r3 + 0x100));
0x00013e08 add r2, r0, r2, lsr r1 | r2 = r0 + (r2 >> r1);
0x00013e0c add r1, r1, 1 | r1++;
0x00013e10 str r2, [r3, 0x100] | *((r3 + 0x100)) = r2;
0x00013e14 b 0x13dc8 | goto label_25;
| label_76:
0x00013e18 ldrb r1, [r4, 0x22] | r1 = *((r4 + 0x22));
0x00013e1c cmp r1, 0 |
| if (r1 != 0) {
0x00013e20 bne 0x13e48 | goto label_119;
| }
0x00013e24 cmp r2, 0 |
| if (r2 == 0) {
0x00013e28 beq 0x13e40 | goto label_28;
| }
0x00013e2c add r0, r4, 4 | r0 = r4 + 4;
0x00013e30 bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x00013e34 mov r1, r0 | r1 = r0;
0x00013e38 ldr r0, [pc, -0x3b0] | r0 = "%s: Server dropped: no data\n";
| label_27:
0x00013e3c bl 0x12474 | printf ("%s: Server dropped: no data\n", r1);
| do {
| label_28:
0x00013e40 ldr r4, [r4] | r4 = *(r4);
0x00013e44 b 0x13218 | goto label_26;
| label_119:
0x00013e48 cmp r1, 0xf |
| if (r1 < 0xf) {
0x00013e4c bls 0x13e6c | goto label_120;
| }
0x00013e50 cmp r2, 0 |
0x00013e54 beq 0x13e40 |
| } while (r2 == 0);
0x00013e58 add r0, r4, 4 | r0 = r4 + 4;
0x00013e5c bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x00013e60 mov r1, r0 | r1 = r0;
0x00013e64 ldr r0, [pc, -0x3d8] | r0 = "_s:_Server_dropped:_strata_too_high";
0x00013e68 b 0x13e3c | goto label_27;
| label_120:
0x00013e6c ldr r3, [r4, 0xfc] | r3 = *((r4 + 0xfc));
0x00013e70 cmp r3, 0x80000 |
| if (r3 < 0x80000) {
0x00013e74 bls 0x13e94 | goto label_121;
| }
0x00013e78 cmp r2, 0 |
| if (r2 == 0) {
0x00013e7c beq 0x13e40 | goto label_28;
| }
0x00013e80 add r0, r4, 4 | r0 = r4 + 4;
0x00013e84 bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x00013e88 mov r1, r0 | r1 = r0;
0x00013e8c ldr r0, [pc, -0x3fc] | r0 = "%s: Server dropped: server too far away\n";
0x00013e90 b 0x13e3c | goto label_27;
| label_121:
0x00013e94 ldrb r3, [r4, 0x21] | r3 = *((r4 + 0x21));
0x00013e98 cmp r3, 3 |
| if (r3 != 3) {
0x00013e9c bne 0x13ebc | goto label_122;
| }
0x00013ea0 cmp r2, 0 |
| if (r2 == 0) {
0x00013ea4 beq 0x13e40 | goto label_28;
| }
0x00013ea8 add r0, r4, 4 | r0 = r4 + 4;
0x00013eac bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x00013eb0 mov r1, r0 | r1 = r0;
0x00013eb4 ldr r0, [pc, -0x420] | r0 = "_s:_Server_dropped:_leap_not_in_sync";
0x00013eb8 b 0x13e3c | goto label_27;
| label_122:
0x00013ebc ldr r3, [r4, 0xec] | r3 = *((r4 + 0xec));
0x00013ec0 ldr r0, [r4, 0x34] | r0 = *((r4 + 0x34));
0x00013ec4 cmp r3, r0 |
| if (r3 > r0) {
0x00013ec8 bhi 0x13efc | goto label_123;
| }
| if (r3 == r0) {
0x00013ecc bne 0x13ee0 |
0x00013ed0 ldr lr, [r4, 0xf0] |
0x00013ed4 ldr ip, [r4, 0x38] | ip = *((r4 + 0x38));
0x00013ed8 cmp lr, ip |
| if (lr >= ip) {
0x00013edc bhs 0x13efc | goto label_123;
| }
| }
0x00013ee0 cmp r2, 0 |
| if (r2 == 0) {
0x00013ee4 beq 0x13e40 | goto label_28;
| }
0x00013ee8 add r0, r4, 4 | r0 = r4 + 4;
0x00013eec bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x00013ef0 mov r1, r0 | r1 = r0;
0x00013ef4 ldr r0, [pc, -0x45c] | r0 = "_s:_Server_dropped:_server_is_very_broken";
0x00013ef8 b 0x13e3c | goto label_27;
| label_123:
0x00013efc sub r3, r3, r0 | r3 -= r0;
0x00013f00 cmp r3, r7 |
| if (r3 < r7) {
0x00013f04 bls 0x13f24 | goto label_124;
| }
0x00013f08 cmp r2, 0 |
| if (r2 == 0) {
0x00013f0c beq 0x13e40 | goto label_28;
| }
0x00013f10 add r0, r4, 4 | r0 = r4 + 4;
0x00013f14 bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x00013f18 mov r1, r0 | r1 = r0;
0x00013f1c ldr r0, [pc, -0x480] | r0 = "%s: Server dropped: server has gone too long without sync\n";
0x00013f20 b 0x13e3c | goto label_27;
| label_124:
0x00013f24 ldrb r3, [r4, 0x24] | r3 = *((r4 + 0x24));
0x00013f28 cmp r3, 0 |
| if (r3 != 0) {
0x00013f2c ldreq r0, [r4, 0x100] | r0 = *((r4 + 0x100));
| }
| if (r3 != 0) {
0x00013f30 addeq ip, sp, 0x40 |
| }
| if (r3 != 0) {
0x00013f34 lsleq r0, r0, 1 | r0 <<= 1;
| }
| if (r3 == 0) {
0x00013f38 beq 0x13f9c | goto label_125;
| }
0x00013f3c cmp r2, 0 |
| if (r2 == 0) {
0x00013f40 beq 0x13e40 | goto label_28;
| }
0x00013f44 add r0, r4, 4 | r0 = r4 + 4;
0x00013f48 bl 0x1a9f8 | r0 = fcn_0001a9f8 (r0);
0x00013f4c mov r1, r0 | r1 = r0;
0x00013f50 ldr r0, [pc, -0x4b0] | r0 = "_s:_Server_dropped:_Server_is_untrusted";
0x00013f54 b 0x13e3c | goto label_27;
| label_29:
0x00013f58 ldr r2, [ip, r3, lsl 2] | offset_12 = r3 << 2;
| r2 = *((ip + offset_12));
0x00013f5c ldrb r2, [r2, 0x22] | r2 = *((r2 + 0x22));
0x00013f60 cmp r2, r1 |
| if (r2 <= r1) {
0x00013f64 blo 0x13f98 | goto label_126;
| }
0x00013f68 add r2, sp, 0x68 | r2 += s;
| do {
0x00013f6c ldr lr, [ip, r3, lsl 2] |
0x00013f70 ldrb lr, [lr, 0x22] |
0x00013f74 cmp lr, r1 |
| if (lr > r1) {
0x00013f78 bhi 0x13fb0 | goto label_127;
| }
0x00013f7c ldr lr, [r2, r3, lsl 2] |
0x00013f80 cmp r0, lr |
| if (r0 < lr) {
0x00013f84 blt 0x13fb0 | goto label_127;
| }
0x00013f88 add r3, r3, 1 | r3++;
0x00013f8c cmp r5, r3 |
0x00013f90 bhi 0x13f6c |
| } while (r5 > r3);
0x00013f94 b 0x13fa4 | goto label_128;
| label_126:
0x00013f98 add r3, r3, 1 | r3++;
| label_125:
0x00013f9c cmp r3, r5 |
| if (r3 != r5) {
0x00013fa0 bne 0x13f58 | goto label_29;
| }
| label_128:
0x00013fa4 cmp r3, 4 |
| if (r3 < 4) {
0x00013fa8 bls 0x13fc8 | goto label_129;
| }
0x00013fac b 0x13e40 | goto label_28;
| label_127:
0x00013fb0 cmp r3, 4 |
| if (r3 > 4) {
0x00013fb4 movls r2, r5 | r2 = r5;
| }
| if (r3 <= 4) {
0x00013fb8 addls lr, sp, 0x68 | lr += s;
| goto label_130;
| }
| if (r3 > 4) {
| label_130:
0x00013fbc bhi 0x13e40 | goto label_28;
| }
| do {
0x00013fc0 cmp r2, r3 |
| if (r2 <= r3) {
0x00013fc4 bhi 0x13fe4 |
| label_129:
0x00013fc8 add r2, sp, 0x90 | r2 += var_90h;
0x00013fcc add r3, r2, r3, lsl 2 | r3 = r2 + (r3 << 2);
0x00013fd0 cmp r5, 4 |
0x00013fd4 str r4, [r3, -0x50] | *((r3 - 0x50)) = r4;
0x00013fd8 str r0, [r3, -0x28] | *((r3 - 0x28)) = r0;
| if (r5 > 4) {
0x00013fdc addls r5, r5, 1 | r5++;
| }
0x00013fe0 b 0x13e40 | goto label_28;
| }
0x00013fe4 cmp r2, 4 |
| if (r2 <= 4) {
0x00013fe8 bhi 0x14008 |
0x00013fec lsl r1, r2, 2 | r1 = r2 << 2;
0x00013ff0 add r8, ip, r1 | r8 = ip + r1;
0x00013ff4 add r1, lr, r1 | r1 = lr + r1;
0x00013ff8 ldr r8, [r8, -4] | r8 = *((r8 - 4));
0x00013ffc ldr r1, [r1, -4] | r1 = *((r1 - 4));
0x00014000 str r8, [ip, r2, lsl 2] | offset_13 = r2 << 2;
| *((ip + offset_13)) = r8;
0x00014004 str r1, [lr, r2, lsl 2] | offset_14 = r2 << 2;
| *((lr + offset_14)) = r1;
| }
0x00014008 sub r2, r2, 1 | r2 -= var_1h;
0x0001400c b 0x13fc0 |
| } while (1);
| label_77:
0x00014010 ldr r6, [r3, 4]! | r6 = var_44h;
0x00014014 ldr lr, [r3, -4] | lr = address;
0x00014018 ldrb r6, [r6, 0x22] | r6 = *((r6 + 0x22));
0x0001401c ldrb lr, [lr, 0x22] |
0x00014020 cmp r6, lr |
| if (r6 < lr) {
0x00014024 bls 0x14034 | goto label_131;
| }
0x00014028 cmp r1, 1 |
| if (r1 == 1) {
0x0001402c beq 0x1324c | goto label_30;
| }
0x00014030 mov r1, 1 | r1 = 1;
| label_131:
0x00014034 add r0, r0, 1 | r0++;
0x00014038 b 0x13238 | goto label_31;
| do {
0x0001403c ldr lr, [ip] |
0x00014040 ldr r4, [r7, r1, lsl 2] | offset_15 = r1 << 2;
| r4 = *((r7 + offset_15));
0x00014044 ldrb r6, [lr, 0x22] | r6 = *((lr + 0x22));
0x00014048 ldrb r5, [r4, 0x22] | r5 = *((r4 + 0x22));
0x0001404c cmp r6, r5 |
| if (r6 <= r5) {
0x00014050 blo 0x14074 | goto label_132;
| }
0x00014054 ldr r6, [lr, 0xfc] | r6 = *((lr + 0xfc));
0x00014058 ldr r5, [r4, 0xfc] | r5 = *((r4 + 0xfc));
0x0001405c cmp r6, r5 |
| if (r6 < r5) {
0x00014060 strhs r4, [ip] | *(ip) = r4;
| }
| if (r6 < r5) {
0x00014064 strhs lr, [r7, r1, lsl 2] |
| }
0x00014068 add r1, r1, 1 | r1 += var_1h_2;
| label_35:
0x0001406c cmp r1, r0 |
0x00014070 blo 0x1403c |
| } while (r1 <= r0);
| label_132:
0x00014074 add r3, r3, 1 | r3 += var_1h_2;
0x00014078 add ip, ip, 4 |
| label_78:
0x0001407c cmp r3, r0 |
| if (r3 != r0) {
0x00014080 bne 0x1417c | goto label_133;
| }
0x00014084 mov r5, 0 | r5 = 0;
0x00014088 add r6, sp, 0x68 | r6 += s;
0x0001408c mov r8, 0x10000 | r8 = 0x10000;
| label_34:
0x00014090 add lr, sp, 0x64 | lr += var_64h;
0x00014094 mov ip, 0 |
| label_32:
0x00014098 mov r0, 0 | r0 = 0;
0x0001409c str r5, [lr, 4]! | *((lr += 4)) = r5;
| do {
0x000140a0 cmp ip, r0 |
| if (ip != r0) {
0x000140a4 beq 0x140dc |
0x000140a8 ldr r1, [r7, r0, lsl 2] | offset_16 = r0 << 2;
| r1 = *((r7 + offset_16));
0x000140ac ldr r4, [r7, ip, lsl 2] | offset_17 = ip << 2;
| r4 = *((r7 + offset_17));
0x000140b0 ldr r1, [r1, 0x10c] | r1 = *((r1 + 0x10c));
0x000140b4 ldr r4, [r4, 0x10c] | r4 = *((r4 + 0x10c));
0x000140b8 sub r1, r1, r4 | r1 -= r4;
0x000140bc cmp r1, 0 |
0x000140c0 rsblt r1, r1, 0 | __asm ("rsblt r1, r1, 0");
0x000140c4 mov r4, 0 | r4 = 0;
| label_36:
0x000140c8 cmp r4, r0 |
| if (r4 != r0) {
0x000140cc bne 0x14184 | goto label_134;
| }
0x000140d0 ldr r4, [lr] | r4 = *(lr);
0x000140d4 add r1, r4, r1 | r1 = r4 + r1;
0x000140d8 str r1, [lr] | *(lr) = r1;
| }
0x000140dc add r0, r0, 1 | r0++;
0x000140e0 cmp r0, r3 |
0x000140e4 bne 0x140a0 |
| } while (r0 != r3);
0x000140e8 add ip, ip, 1 |
0x000140ec cmp ip, r3 |
| if (ip != r3) {
0x000140f0 bne 0x14098 | goto label_32;
| }
0x000140f4 ldr r1, [sp, 0x40] | r1 = address;
0x000140f8 mov r0, 0 | r0 = 0;
0x000140fc ldrsb r1, [r1, 0x23] | r1 = *((r1 + 0x23));
0x00014100 mov ip, 1 |
| do {
0x00014104 add lr, sp, 0x90 | lr += var_90h;
0x00014108 add lr, lr, r0, lsl 2 | lr += (r0 << 2);
0x0001410c ldr r4, [r6, ip, lsl 2] | offset_18 = ip << 2;
| r4 = *((r6 + offset_18));
0x00014110 ldr lr, [lr, -0x28] | lr = s;
0x00014114 cmp r4, lr |
0x00014118 ldr lr, [r7, ip, lsl 2] |
| if (r4 < lr) {
0x0001411c movhs r0, ip | r0 = ip;
| }
0x00014120 ldrsb lr, [lr, 0x23] |
0x00014124 add ip, ip, 1 |
0x00014128 cmp r1, lr |
| if (r1 < lr) {
0x0001412c movge r1, lr | r1 = lr;
| }
0x00014130 cmp ip, r3 |
0x00014134 blo 0x14104 |
| } while (ip <= r3);
0x00014138 rsb r1, r1, 0 | r1 -= ;
0x0001413c add ip, sp, 0x90 |
0x00014140 asr r1, r8, r1 | r1 = r8 >> r1;
0x00014144 add ip, ip, r0, lsl 2 |
0x00014148 ldr ip, [ip, -0x28] | ip = var_6ch;
0x0001414c add r1, r1, 0x680 | r1 += 0x680;
0x00014150 add r1, r1, 0xf | r1 += 0xf;
0x00014154 cmp ip, r1 |
| if (ip < r1) {
0x00014158 blt 0x13258 | goto label_33;
| }
0x0001415c add r1, r0, 1 | r1 = r0 + 1;
0x00014160 add r0, r7, r0, lsl 2 | r0 = r7 + (r0 << 2);
| label_37:
0x00014164 cmp r1, r3 |
| if (r1 <= r3) {
0x00014168 blo 0x14194 | goto label_135;
| }
0x0001416c sub r3, r3, 1 | r3 -= var_1h_3;
0x00014170 cmp r3, 1 |
| if (r3 != 1) {
0x00014174 bne 0x14090 | goto label_34;
| }
0x00014178 b 0x13258 | goto label_33;
| label_133:
0x0001417c mov r1, r3 | r1 = r3;
0x00014180 b 0x1406c | goto label_35;
| label_134:
0x00014184 asr sb, r1, 2 | sb = r1 >> 2;
0x00014188 add r1, sb, r1, asr 1 | r1 = sb + (r1 >> 1);
0x0001418c add r4, r4, 1 | r4++;
0x00014190 b 0x140c8 | goto label_36;
| label_135:
0x00014194 ldr ip, [r0, 4]! | ip = var_4h_2;
0x00014198 add r1, r1, 1 | r1++;
0x0001419c str ip, [r0, -4] | var_44h = ip;
0x000141a0 b 0x14164 | goto label_37;
| label_79:
0x000141a4 mov r0, 0xa | r0 = 0xa;
0x000141a8 bl 0x11fa0 | putchar (r0);
| label_80:
0x000141ac ldr r5, [sl] | r5 = *(sl);
0x000141b0 ldr r8, [pc, -0x70c] | r8 = *(0x00013aac);
| label_39:
0x000141b4 cmp r5, 0 |
| if (r5 == 0) {
0x000141b8 beq 0x13270 | goto label_38;
| }
0x000141bc ldrb r3, [r5, 0x22] | r3 = *((r5 + 0x22));
0x000141c0 cmp r3, 0 |
| if (r3 != 0) {
0x000141c4 beq 0x14230 |
0x000141c8 ldr r3, [pc, -0x720] | r3 = obj.stdout;
0x000141cc add r0, r5, 4 | r0 = r5 + 4;
0x000141d0 ldr r6, [r3] | r6 = *(r3);
0x000141d4 ldr r3, [pc, -0x6e0] | r3 = *(0x00013afc);
0x000141d8 ldr r3, [r3] | r3 = *(r3);
0x000141dc cmp r3, 0 |
| if (r3 != 0) {
0x000141e0 bne 0x14238 | goto label_136;
| }
0x000141e4 bl 0x1a9f8 | fcn_0001a9f8 (r0);
0x000141e8 mov r2, 6 | r2 = 6;
0x000141ec ldr r1, [r5, 0x108] | r1 = *((r5 + 0x108));
0x000141f0 ldrb sl, [r5, 0x22] | sl = *((r5 + 0x22));
0x000141f4 mov sb, r0 | sb = r0;
0x000141f8 ldr r0, [r5, 0x104] | r0 = *((r5 + 0x104));
0x000141fc bl 0x16bb8 | fcn_00016bb8 (r0, r1);
0x00014200 mov r1, 5 | r1 = 5;
0x00014204 str r0, [sp, 0x14] | stream = r0;
0x00014208 ldr r0, [r5, 0xfc] | r0 = *((r5 + 0xfc));
0x0001420c bl 0x16970 | fcn_00016970 (r0, r1);
0x00014210 ldr r3, [sp, 0x14] | r3 = stream;
0x00014214 mov r2, sb | r2 = sb;
0x00014218 str r3, [sp] | *(sp) = r3;
0x0001421c ldr r1, [pc, -0x770] | r1 = "server %s, stratum %d, offset %s, delay %s\n";
0x00014220 mov r3, sl | r3 = sl;
0x00014224 str r0, [sp, 4] | var_4h = r0;
0x00014228 mov r0, r6 | r0 = r6;
0x0001422c bl 0x1230c | fprintf (r0, "server %s, stratum %d, offset %s, delay %s\n", r2, r3)
| }
| label_40:
0x00014230 ldr r5, [r5] | r5 = *(r5);
0x00014234 b 0x141b4 | goto label_39;
| label_136:
0x00014238 bl 0x1a9f8 | fcn_0001a9f8 (r0);
0x0001423c ldrh r2, [r5, 6] | r2 = *((r5 + 6));
0x00014240 ldr r1, [pc, -0x790] | r1 = "server %s, port %d\n";
0x00014244 lsr r3, r2, 8 | r3 = r2 >> 8;
0x00014248 orr r3, r3, r2, lsl 8 | r3 |= (r2 << 8);
0x0001424c lsl r3, r3, 0x10 | r3 <<= 0x10;
0x00014250 lsr r3, r3, 0x10 | r3 >>= 0x10;
0x00014254 mov r2, r0 | r2 = r0;
0x00014258 mov r0, r6 | r0 = r6;
0x0001425c bl 0x1230c | fprintf (r0, "server %s, port %d\n", r2, r3)
0x00014260 ldrb r1, [r5, 0x21] | r1 = *((r5 + 0x21));
0x00014264 ldrb ip, [r5, 0x24] | ip = *((r5 + 0x24));
0x00014268 tst r1, 2 |
| if ((r1 & 2) != 0) {
0x0001426c moveq r0, 0x30 | r0 = 0x30;
| }
| if ((r1 & 2) == 0) {
0x00014270 movne r0, 0x31 | r0 = 0x31;
| }
0x00014274 tst r1, 1 |
| if ((r1 & 1) != 0) {
0x00014278 moveq r1, 0x30 | r1 = 0x30;
| }
| if ((r1 & 1) == 0) {
0x0001427c movne r1, 0x31 | r1 = 0x31;
| }
0x00014280 ldrsb r3, [r5, 0x23] | r3 = *((r5 + 0x23));
0x00014284 ldrb r2, [r5, 0x22] | r2 = *((r5 + 0x22));
0x00014288 stm sp, {r0, r1, ip} | *(sp) = r0;
| *((sp + 4)) = r1;
| *((sp + 8)) = ip;
0x0001428c ldr r1, [pc, -0x7d8] | r1 = "stratum %d, precision %d, leap %c%c, trust %03o\n";
0x00014290 mov r0, r6 | r0 = r6;
0x00014294 bl 0x1230c | fprintf (r0, r1, r2, r3)
0x00014298 ldrb r3, [r5, 0x22] | r3 = *((r5 + 0x22));
0x0001429c sub r3, r3, 2 | r3 -= 2;
0x000142a0 cmp r3, 0xd |
| if (r3 < 0xd) {
0x000142a4 bls 0x144c4 | goto label_137;
| }
0x000142a8 ldr r3, [pc, -0x7f0] | r3 = obj.__ctype_b;
0x000142ac add r0, r5, 0x30 | r0 = r5 + 0x30;
0x000142b0 ldr ip, [r3] | ip = *(r3);
0x000142b4 add sb, sp, 0x68 | sb += s;
0x000142b8 mov r3, 0 | r3 = 0;
| do {
0x000142bc ldrb r2, [r0, r3] | r2 = *((r0 + r3));
0x000142c0 cmp r2, 0 |
| if (r2 == 0) {
0x000142c4 beq 0x142f0 | goto label_138;
| }
0x000142c8 lsl r1, r2, 0x10 | r1 = r2 << 0x10;
0x000142cc asr r1, r1, 0x10 | r1 >>= 0x10;
0x000142d0 lsl r1, r1, 1 | r1 <<= 1;
0x000142d4 ldrh r1, [ip, r1] | r1 = *((ip + r1));
0x000142d8 tst r1, 0x40 |
| if ((r1 & 0x40) != 0) {
0x000142dc moveq r2, 0x2e | r2 = 0x2e;
| }
0x000142e0 strb r2, [sb, r3] | *((sb + r3)) = r2;
0x000142e4 add r3, r3, 1 | r3++;
0x000142e8 cmp r3, 4 |
0x000142ec bne 0x142bc |
| } while (r3 != 4);
| label_138:
0x000142f0 add r2, sp, 0x90 | r2 += var_90h;
0x000142f4 add r3, r2, r3 | r3 = r2 + r3;
0x000142f8 mov r2, 0 | r2 = 0;
0x000142fc strb r2, [r3, -0x28] | s = r2;
| do {
0x00014300 mov r1, 6 | r1 = 6;
0x00014304 ldr r0, [r5, 0x28] | r0 = *((r5 + 0x28));
0x00014308 bl 0x16970 | fcn_00016970 (r0, r1);
0x0001430c mov r3, 0 | r3 = 0;
0x00014310 mov r1, r3 | r1 = r3;
0x00014314 mov r2, 6 | r2 = 6;
0x00014318 mov sl, r0 | sl = r0;
0x0001431c ldr r0, [r5, 0x2c] | r0 = *((r5 + 0x2c));
0x00014320 bl 0x16778 | fcn_00016778 (r0, r1);
0x00014324 mov r3, sl | r3 = sl;
0x00014328 mov r2, sb | r2 = sb;
0x0001432c ldr r1, [pc, -0x870] | r1 = "refid___s___root_delay__s__root_dispersion__s";
0x00014330 str r0, [sp] | *(sp) = r0;
0x00014334 mov r0, r6 | r0 = r6;
0x00014338 bl 0x1230c | fprintf (r0, "refid___s___root_delay__s__root_dispersion__s", r2, r3)
0x0001433c ldrh r2, [r5, 0x44] | r2 = *((r5 + 0x44));
0x00014340 ldrh r3, [r5, 0x4a] | r3 = *((r5 + 0x4a));
0x00014344 cmp r2, r3 |
| if (r2 != r3) {
0x00014348 beq 0x14358 |
0x0001434c ldr r1, [pc, -0x88c] | r1 = "transmitted %d, in filter %d\n";
0x00014350 mov r0, r6 | r0 = r6;
0x00014354 bl 0x1230c | fprintf (r0, "transmitted %d, in filter %d\n")
| }
0x00014358 add r0, r5, 0x34 | r0 = r5 + 0x34;
0x0001435c bl 0x190e4 | fcn_000190e4 (r0);
0x00014360 ldr r1, [pc, -0x89c] | r1 = "reference time: %s\n";
0x00014364 mov r2, r0 | r2 = r0;
0x00014368 mov r0, r6 | r0 = r6;
0x0001436c bl 0x1230c | fprintf (r0, "reference time: %s\n", r2)
0x00014370 add r0, r5, 0xec | r0 = r5 + 0xec;
0x00014374 bl 0x190e4 | fcn_000190e4 (r0);
0x00014378 ldr r1, [pc, -0x8b0] | r1 = "originate_timestamp:__s";
0x0001437c mov r2, r0 | r2 = r0;
0x00014380 mov r0, r6 | r0 = r6;
0x00014384 bl 0x1230c | fprintf (r0, "originate_timestamp:__s", r2)
0x00014388 add r0, r5, 0xf4 | r0 = r5 + 0xf4;
0x0001438c bl 0x190e4 | fcn_000190e4 (r0);
0x00014390 ldr r1, [pc, -0x8c4] | r1 = "transmit timestamp: %s\n";
0x00014394 mov r2, r0 | r2 = r0;
0x00014398 mov r0, r6 | r0 = r6;
0x0001439c bl 0x1230c | fprintf (r0, "transmit timestamp: %s\n", r2)
0x000143a0 ldr r3, [r8, 0x14] | r3 = *((r8 + 0x14));
0x000143a4 cmp r3, 1 |
| if (r3 > 1) {
0x000143a8 ble 0x14468 |
0x000143ac mov r1, r6 | r1 = r6;
0x000143b0 ldr r0, [pc, -0x8e0] | r0 = "filter_delay:_";
0x000143b4 bl 0x12294 | fputs ("filter_delay:_", r1);
0x000143b8 ldr sl, [pc, -0x8d0] | sl = "\n ";
0x000143bc mov sb, 0 | sb = 0;
| label_41:
0x000143c0 ldr r2, [r8, 0x14] | r2 = *((r8 + 0x14));
0x000143c4 cmp r2, sb |
| if (r2 > sb) {
0x000143c8 ldrle r2, [pc, -0x8f0] | r2 = "____";
| }
| if (r2 > sb) {
0x000143cc ble 0x143e4 |
0x000143d0 add r2, r5, sb, lsl 2 | r2 = r5 + (sb << 2);
0x000143d4 ldr r0, [r2, 0x4c] | r0 = *((r2 + 0x4c));
0x000143d8 mov r1, 5 | r1 = 5;
0x000143dc bl 0x16970 | r0 = fcn_00016970 (r0, r1);
0x000143e0 mov r2, r0 | r2 = r0;
| }
0x000143e4 ldr r1, [pc, -0x908] | r1 = " %-10.10s";
0x000143e8 mov r0, r6 | r0 = r6;
0x000143ec add sb, sb, 1 | sb++;
0x000143f0 bl 0x1230c | fprintf (r0, " %-10.10s", r2)
0x000143f4 cmp sb, 8 |
| if (sb != 8) {
0x000143f8 bne 0x144d4 | goto label_139;
| }
0x000143fc mov r1, r6 | r1 = r6;
0x00014400 mov r0, 0xa | r0 = 0xa;
0x00014404 bl 0x12240 | fputc (r0, r1);
0x00014408 mov r1, r6 | r1 = r6;
0x0001440c ldr r0, [pc, -0x938] | r0 = "filter offset:";
0x00014410 bl 0x12294 | fputs ("filter offset:", r1);
0x00014414 ldr sl, [pc, -0x93c] | sl = "____";
0x00014418 mov sb, 0 | sb = 0;
| label_42:
0x0001441c ldr r2, [r8, 0x14] | r2 = *((r8 + 0x14));
0x00014420 cmp r2, sb |
| if (r2 > sb) {
0x00014424 movle r2, sl | r2 = sl;
| }
| if (r2 > sb) {
0x00014428 ble 0x14444 |
0x0001442c add r0, r5, sb, lsl 3 | r0 = r5 + (sb << 3);
0x00014430 mov r2, 6 | r2 = 6;
0x00014434 ldr r1, [r0, 0x70] | r1 = *((r0 + 0x70));
0x00014438 ldr r0, [r0, 0x6c] | r0 = *((r0 + 0x6c));
0x0001443c bl 0x16bb8 | r0 = fcn_00016bb8 (r0, r1);
0x00014440 mov r2, r0 | r2 = r0;
| }
0x00014444 ldr r1, [pc, -0x968] | r1 = " %-10.10s";
0x00014448 mov r0, r6 | r0 = r6;
0x0001444c add sb, sb, 1 | sb++;
0x00014450 bl 0x1230c | fprintf (r0, " %-10.10s", r2)
0x00014454 cmp sb, 8 |
| if (sb != 8) {
0x00014458 bne 0x144ec | goto label_140;
| }
0x0001445c mov r1, r6 | r1 = r6;
0x00014460 mov r0, 0xa | r0 = 0xa;
0x00014464 bl 0x12240 | fputc (r0, r1);
| }
0x00014468 mov r1, 5 | r1 = 5;
0x0001446c ldr r0, [r5, 0xfc] | r0 = *((r5 + 0xfc));
0x00014470 bl 0x16970 | fcn_00016970 (r0, r1);
0x00014474 mov r3, 0 | r3 = 0;
0x00014478 mov r1, r3 | r1 = r3;
0x0001447c mov r2, 5 | r2 = 5;
0x00014480 mov sb, r0 | sb = r0;
0x00014484 ldr r0, [r5, 0x100] | r0 = *((r5 + 0x100));
0x00014488 bl 0x16778 | fcn_00016778 (r0, r1);
0x0001448c mov r2, sb | r2 = sb;
0x00014490 ldr r1, [pc, -0x9b0] | r1 = "delay__s__dispersion__s__";
0x00014494 mov r3, r0 | r3 = r0;
0x00014498 mov r0, r6 | r0 = r6;
0x0001449c bl 0x1230c | fprintf (r0, "delay__s__dispersion__s__", r2, r3)
0x000144a0 ldr r1, [r5, 0x108] | r1 = *((r5 + 0x108));
0x000144a4 mov r2, 6 | r2 = 6;
0x000144a8 ldr r0, [r5, 0x104] | r0 = *((r5 + 0x104));
0x000144ac bl 0x16bb8 | fcn_00016bb8 (r0, r1);
0x000144b0 ldr r1, [pc, -0x9cc] | r1 = "offset__s";
0x000144b4 mov r2, r0 | r2 = r0;
0x000144b8 mov r0, r6 | r0 = r6;
0x000144bc bl 0x1230c | fprintf (r0, "offset__s", r2)
0x000144c0 b 0x14230 | goto label_40;
| label_137:
0x000144c4 ldr r0, [r5, 0x30] | r0 = *((r5 + 0x30));
0x000144c8 bl 0x18cb4 | r0 = fcn_00018cb4 (r0);
0x000144cc mov sb, r0 | sb = r0;
0x000144d0 b 0x14300 |
| } while (1);
| label_139:
0x000144d4 cmp sb, 4 |
| if (sb != 4) {
0x000144d8 bne 0x143c0 | goto label_41;
| }
0x000144dc mov r1, r6 | r1 = r6;
0x000144e0 mov r0, sl | r0 = sl;
0x000144e4 bl 0x12294 | fputs (r0, r1);
0x000144e8 b 0x143c0 | goto label_41;
| label_140:
0x000144ec cmp sb, 4 |
| if (sb != 4) {
0x000144f0 bne 0x1441c | goto label_42;
| }
0x000144f4 mov r1, r6 | r1 = r6;
0x000144f8 ldr r0, [pc, -0xa10] | r0 = "\n ";
0x000144fc bl 0x12294 | fputs ("\n ", r1);
0x00014500 b 0x1441c | goto label_42;
| label_81:
0x00014504 ldr r5, [fp, 0x1c] | r5 = *(arg_1ch);
0x00014508 cmp r5, 0 |
| if (r5 == 0) {
0x0001450c bne 0x14530 |
0x00014510 ldr r3, [fp, 0x20] | r3 = *(arg_20h);
0x00014514 cmp r3, 0 |
| if (r3 != 0) {
0x00014518 bne 0x145cc | goto label_141;
| }
0x0001451c ldr r3, [r4, 0x10c] | r3 = *((r4 + 0x10c));
0x00014520 cmp r3, 0 |
0x00014524 rsblt r3, r3, 0 | __asm ("rsblt r3, r3, 0");
0x00014528 cmp r3, 0x8000 |
| if (r3 <= 0x8000) {
0x0001452c blo 0x145cc | goto label_141;
| }
| }
0x00014530 ldr r3, [fp, 0x24] | r3 = *(arg_24h);
0x00014534 cmp r3, 0 |
0x00014538 beq 0x14574 |
| while (r3 != 0) {
| label_44:
0x0001453c add r0, r4, 4 | r0 = r4 + 4;
0x00014540 bl 0x1a9f8 | fcn_0001a9f8 (r0);
0x00014544 mov r2, 6 | r2 = 6;
0x00014548 ldr r1, [r4, 0x108] | r1 = *((r4 + 0x108));
0x0001454c mov r5, r0 | r5 = r0;
0x00014550 ldr r0, [r4, 0x104] | r0 = *((r4 + 0x104));
0x00014554 bl 0x16bb8 | fcn_00016bb8 (r0, r1);
0x00014558 mov r2, r5 | r2 = r5;
0x0001455c ldr r1, [pc, -0xa70] | r1 = "step time server %s offset %s sec";
0x00014560 mov r5, 0 | r5 = 0;
0x00014564 mov r3, r0 | r3 = r0;
0x00014568 mov r0, 5 | r0 = 5;
0x0001456c bl 0x1776c | fcn_0001776c (r0);
0x00014570 b 0x13288 | goto label_43;
0x00014574 ldr r3, [pc, -0xa80] | r3 = *(0x00013afc);
0x00014578 ldr r3, [r3] | r3 = *(r3);
0x0001457c cmp r3, 0 |
0x00014580 bne 0x1453c |
| }
0x00014584 mov r6, r3 | r6 = r3;
0x00014588 ldr r3, [r4, 0x108] | r3 = *((r4 + 0x108));
0x0001458c ldr r5, [r4, 0x104] | r5 = *((r4 + 0x104));
0x00014590 adds r0, r6, r3 | r0 = r6 + r3;
0x00014594 adc r1, r5, 0 | __asm ("adc r1, r5, 0");
0x00014598 cmp r5, 0 |
| if (r5 < 0) {
0x0001459c bge 0x145a8 |
0x000145a0 rsbs r0, r0, 0 | r0 -= ;
0x000145a4 rsc r1, r1, 0 | __asm ("rsc r1, r1, 0");
| }
0x000145a8 bl 0x22af0 | fcn_00022af0 (r0, r1);
0x000145ac mvn r2, 0x1f | r2 = ~0x1f;
0x000145b0 bl 0x122e8 | ldexp (r0, r1);
0x000145b4 cmp r5, 0 |
| if (r5 >= 0) {
0x000145b8 addlt r1, r1, 0x80000000 | r1 += 0x80000000;
| }
0x000145bc bl 0x15098 | r0 = fcn_00015098 (r0, r1);
0x000145c0 subs r5, r0, 0 | r5 = r0 - 0;
| if (r5 == r0) {
0x000145c4 beq 0x13288 | goto label_43;
| }
0x000145c8 b 0x1453c | goto label_44;
| label_141:
0x000145cc ldr ip, [fp, 0x24] | ip = *(arg_24h);
0x000145d0 cmp ip, 0 |
| if (ip != 0) {
0x000145d4 bne 0x146a0 | goto label_142;
| }
0x000145d8 ldr r2, [r4, 0x104] | r2 = *((r4 + 0x104));
0x000145dc ldr r3, [r4, 0x108] | r3 = *((r4 + 0x108));
0x000145e0 cmp r2, 0 |
| if (r2 < 0) {
0x000145e4 bge 0x145fc |
0x000145e8 rsb r3, r3, 0 | r3 -= ;
0x000145ec mvn r2, r2 | r2 = ~r2;
0x000145f0 cmp r3, 0 |
| if (r3 != 0) {
0x000145f4 addeq r2, r2, 1 | r2++;
| }
0x000145f8 mov ip, 1 |
| }
0x000145fc lsl r1, r2, 0x1f | r1 = r2 << 0x1f;
0x00014600 orr r1, r1, r3, lsr 1 | r1 |= (r3 >> 1);
0x00014604 lsr r0, r2, 1 | r0 = r2 >> 1;
0x00014608 cmp r1, 0x10000000 |
0x0001460c cmpls r0, 0 | __asm ("cmpls r0, 0");
| if (r1 == 0x10000000) {
0x00014610 movne r1, 0x10000000 | r1 = 0x10000000;
| }
0x00014614 adds r3, r3, r1 | r3 += r1;
0x00014618 ldr lr, [pc, -0xb28] |
| if (r3 < r3) {
0x0001461c movhs r1, 1 | r1 = 1;
| }
| if (r3 >= r3) {
0x00014620 movlo r1, 0 | r1 = 0;
| }
0x00014624 add r2, r1, r2 | r2 = r1 + r2;
0x00014628 mov r0, 0x80000000 | r0 = 0x80000000;
0x0001462c mov r1, 0 | r1 = 0;
0x00014630 umlal r0, r1, lr, r3 | __asm ("umlal r0, r1, lr, r3");
0x00014634 str r2, [sp, 0x40] | address = r2;
0x00014638 cmp r1, lr |
| if (r1 != lr) {
0x0001463c moveq r3, 0 | r3 = 0;
| }
| if (r1 != lr) {
0x00014640 addeq r2, r2, 1 | r2++;
| }
0x00014644 str r1, [sp, 0x44] | var_44h = r1;
| if (r1 != lr) {
0x00014648 streq r2, [sp, 0x40] | address = r2;
| }
| if (r1 != lr) {
0x0001464c streq r3, [sp, 0x44] | var_44h = r3;
| }
0x00014650 cmp ip, 0 |
| if (ip == 0) {
0x00014654 ldrne r3, [sp, 0x40] | r3 = address;
| }
0x00014658 rsbne r3, r3, 0 | __asm ("rsbne r3, r3, 0");
| if (ip == 0) {
0x0001465c strne r3, [sp, 0x40] | address = r3;
| }
| if (ip == 0) {
0x00014660 ldrne r3, [sp, 0x44] | r3 = var_44h;
| }
0x00014664 rsbne r3, r3, 0 | __asm ("rsbne r3, r3, 0");
| if (ip == 0) {
0x00014668 strne r3, [sp, 0x44] | var_44h = r3;
| }
0x0001466c ldr r3, [pc, -0xb78] | r3 = *(0x00013afc);
0x00014670 ldr r3, [r3] | r3 = *(r3);
0x00014674 cmp r3, 0 |
| if (r3 != 0) {
0x00014678 bne 0x146a0 | goto label_142;
| }
0x0001467c ldr r3, [sp, 0x44] | r3 = var_44h;
0x00014680 cmp r3, 0 |
| if (r3 == 0) {
0x00014684 beq 0x146a0 | goto label_142;
| }
0x00014688 add r1, sp, 0x68 | r1 += s;
0x0001468c mov r0, r7 | r0 = r7;
0x00014690 bl 0x124bc | r0 = adjtime ();
0x00014694 cmp r0, 0 |
| if (r0 < 0) {
0x00014698 ldrlt r1, [pc, -0xba0] | r1 = "Can't adjust the time of day: %m";
| goto label_143;
| }
| if (r0 < 0) {
| label_143:
0x0001469c blt 0x132cc | goto label_8;
| }
| label_142:
0x000146a0 add r0, r4, 4 | r0 = r4 + 4;
0x000146a4 bl 0x1a9f8 | fcn_0001a9f8 (r0);
0x000146a8 ldr r1, [r4, 0x108] | r1 = *((r4 + 0x108));
0x000146ac mov r2, 6 | r2 = 6;
0x000146b0 mov r6, r0 | r6 = r0;
0x000146b4 ldr r0, [r4, 0x104] | r0 = *((r4 + 0x104));
0x000146b8 bl 0x16bb8 | fcn_00016bb8 (r0, r1);
0x000146bc mov r2, r6 | r2 = r6;
0x000146c0 ldr r1, [pc, -0xbc4] | r1 = "adjust_time_server__s_offset__s_sec";
0x000146c4 mov r3, r0 | r3 = r0;
0x000146c8 mov r0, 5 | r0 = 5;
0x000146cc bl 0x1776c | fcn_0001776c (r0);
0x000146d0 b 0x13288 | goto label_43;
| }
[*] Function fprintf used 36 times ntpdate