[*] Binary protection state of sshd
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function fprintf tear down of sshd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-80367616.squashfs_v4_le_extract/usr/sbin/sshd @ 0x8826c */
| #include <stdint.h>
|
; (fcn) fcn.0008826c () | void fcn_0008826c (int16_t arg_0h, int16_t arg_90h, int16_t arg_1080h, int16_t arg_2080h, int16_t arg_3080h, int16_t arg1, int16_t arg2) {
| int16_t var_0h;
| int16_t var_4h;
| int16_t var_8h;
| int16_t var_ch;
| int16_t var_10h;
| int16_t var_14h;
| int16_t var_18h;
| int16_t var_1ch;
| int16_t var_20h;
| r0 = arg1;
| r1 = arg2;
0x0008826c push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x00088270 mov r4, r0 | r4 = r0;
0x00088272 ldr.w r0, [pc, 0x414] |
0x00088274 lsls r4, r2, 0x10 | r4 = r2 << 0x10;
0x00088276 sub.w sp, sp, 0x3080 |
0x0008827a sub sp, 0x14 |
0x0008827c movs r2, 0x68 | r2 = 0x68;
0x0008827e ldr.w r3, [pc, 0x40c] | r3 = *(0x8868e);
0x00088282 add r6, sp, 0x20 | r6 += var_20h;
0x00088284 add r0, pc | r0 = 0x110912;
0x00088286 str r6, [sp] | *(sp) = r6;
0x00088288 add.w r5, sp, 0x3080 | r5 += var_0h;
0x0008828c mov r7, r1 | r7 = r1;
0x0008828e ldr r3, [r0, r3] |
0x00088290 adds r5, 0xc | r5 += 0xc;
0x00088292 movs r1, 0 | r1 = 0;
0x00088294 mov r0, r6 | r0 = r6;
0x00088296 add.w sb, sp, 0x1080 | sb += arg_1080h;
0x0008829a ldr r3, [r3] | r3 = imp.isalpha;
0x0008829c str r3, [r5] | *(r5) = r3;
0x0008829e mov.w r3, 0 | r3 = 0;
0x000882a2 add r3, sp, 0x90 | r3 += arg_90h;
0x000882a4 mov r5, r3 | r5 = r3;
0x000882a6 str r3, [sp, 4] | var_4h = r3;
0x000882a8 subs r6, r5, 4 | r6 = r5 - 4;
0x000882aa add.w sb, sb, 0x10 | sb += 0x10;
0x000882ae blx 0x57c8 | fcn_000057c8 ();
0x000882b2 mov.w r2, 0x1000 | r2 = 0x1000;
0x000882b6 movs r1, 0 | r1 = 0;
0x000882b8 mov r0, r6 | r0 = r6;
0x000882ba sub.w r8, sb, 4 | r8 = sb - 4;
0x000882be blx 0x57c8 | fcn_000057c8 ();
0x000882c2 add.w r3, sp, 0x2080 | r3 += arg_2080h;
0x000882c6 mov.w r2, 0x1000 | r2 = 0x1000;
0x000882ca adds r3, 0x10 | r3 += 0x10;
0x000882cc movs r1, 0 | r1 = 0;
0x000882ce mov r5, r3 | r5 = r3;
0x000882d0 mov r0, r8 | r0 = r8;
0x000882d2 str r3, [sp, 0xc] | var_ch = r3;
0x000882d4 blx 0x57c8 | fcn_000057c8 ();
0x000882d8 subs r3, r5, 4 | r3 = r5 - 4;
0x000882da mov.w r2, 0x1000 | r2 = 0x1000;
0x000882de movs r1, 0 | r1 = 0;
0x000882e0 mov r0, r3 | r0 = r3;
0x000882e2 str r3, [sp, 8] | var_8h = r3;
0x000882e4 blx 0x57c8 | fcn_000057c8 ();
0x000882e8 ldrb r5, [r4] | r5 = *(r4);
0x000882ea blx 0x615c | r0 = memcmp (r0, r1, r2);
0x000882ee mov fp, r0 |
0x000882f0 cmp r5, 0 |
| if (r5 == 0) {
0x000882f2 beq.w 0x88622 | goto label_12;
| }
0x000882f6 ldr r3, [r0] | r3 = *(r0);
0x000882f8 str r3, [sp, 0x1c] | var_1ch = r3;
0x000882fa cmp r7, 0 |
| if (r7 == 0) {
0x000882fc beq.w 0x88628 | goto label_13;
| }
0x00088300 movs r3, 0 | r3 = 0;
0x00088302 str r3, [sp, 0x18] | var_18h = r3;
| label_10:
0x00088304 cmp r5, 0x2f |
| if (r5 == 0x2f) {
0x00088306 beq.w 0x885e6 | goto label_14;
| }
0x0008830a mov.w r1, 0x1000 | r1 = 0x1000;
0x0008830e mov r0, r7 | r0 = r7;
0x00088310 blx 0x5f8c | r0 = fcn_00005f8c ();
0x00088314 cmp r0, 0 |
| if (r0 == 0) {
0x00088316 beq.w 0x88616 | goto label_15;
| }
0x0008831a mov r0, r7 | r0 = r7;
0x0008831c blx 0x5f68 | fcn_00005f68 ();
0x00088320 mov r1, r4 | r1 = r4;
0x00088322 mov r5, r0 | r5 = r0;
0x00088324 mov.w r2, 0x1000 | r2 = 0x1000;
0x00088328 mov r0, r6 | r0 = r6;
0x0008832a bl 0x9cc1c | r0 = fcn_0009cc1c (r0, r1, r2);
0x0008832e orr.w r3, r5, r0 | r3 = r5 | r0;
0x00088332 mov sl, r0 | sl = r0;
0x00088334 cmp.w r3, 0x1000 |
| if (r3 >= 0x1000) {
0x00088338 bhs.w 0x884f0 | goto label_6;
| }
0x0008833c cmp r0, 0 |
| if (r0 == 0) {
0x0008833e beq 0x88404 | goto label_16;
| }
| label_7:
0x00088340 mov r3, r7 | r3 = r7;
0x00088342 mov r7, sl | r7 = sl;
0x00088344 mov sl, r3 | sl = r3;
0x00088346 movs r1, 0 | r1 = 0;
0x00088348 strd fp, r1, [sp, 0x10] | __asm ("strd fp, r1, [sp, 0x10]");
| do {
| label_0:
0x0008834c movs r1, 0x2f | r1 = 0x2f;
0x0008834e mov r0, r6 | r0 = r6;
0x00088350 blx 0x6364 | fcn_00006364 ();
0x00088352 invalid |
0x00088356 cmp r0, 0 |
| if (r0 == 0) {
0x00088358 beq.w 0x884cc | goto label_17;
| }
0x0008835c subs.w fp, r0, r6 |
0x00088360 cmp.w fp, 0x1000 |
| if (fp >= 0x1000) {
0x00088364 bge.w 0x884ea | goto label_18;
| }
0x00088368 mov r2, fp | r2 = fp;
0x0008836a mov r1, r6 | r1 = r6;
0x0008836c mov.w r3, 0x1000 | r3 = 0x1000;
0x00088370 mov r0, r8 | r0 = r8;
0x00088372 blx 0x5290 | fcn_00005290 ();
0x00088376 sub.w r7, r7, fp | r7 -= fp;
0x0008837a add.w r2, sb, fp | r2 = sb + fp;
0x0008837e mov.w r3, 0 | r3 = 0;
0x00088382 adds r1, r4, 1 | r1 = r4 + 1;
0x00088384 strb r3, [r2, -0x4] | *((r2 - 0x4)) = r3;
0x00088388 mov r0, r6 | r0 = r6;
0x0008838a mov.w r3, 0x1000 | r3 = 0x1000;
0x0008838e adds r2, r7, 1 | r2 = r7 + 1;
0x00088390 blx 0x5f80 | fcn_00005f80 ();
| label_2:
0x00088394 add.w r3, sl, r5 | r3 = sl + r5;
0x00088398 ldrb r3, [r3, -0x1] | r3 = *((r3 - 0x1));
0x0008839c cmp r3, 0x2f |
| if (r3 != 0x2f) {
0x0008839e beq 0x883b2 |
0x000883a0 adds r3, r5, 1 | r3 = r5 + 1;
0x000883a2 cmp.w r3, 0x1000 |
| if (r3 >= 0x1000) {
0x000883a6 bhs.w 0x884ea | goto label_18;
| }
0x000883aa movs r2, 0x2f | r2 = 0x2f;
0x000883ac strh.w r2, [sl, r5] | *((sl + r5)) = r2;
0x000883b0 mov r5, r3 | r5 = r3;
| }
0x000883b2 ldrb r3, [sb, -0x4] | r3 = *((sb - 0x4));
| if (r3 != 0) {
0x000883b6 cbz r3, 0x883fe |
0x000883b8 ldrh.w r3, [r8] | r3 = *(r8);
0x000883bc cmp r3, 0x2e |
| if (r3 == 0x2e) {
0x000883be beq 0x883fe | goto label_4;
| }
0x000883c0 movw r2, 0x2e2e | r2 = 0x2e2e;
0x000883c4 cmp r3, r2 |
| if (r3 == r2) {
0x000883c6 beq.w 0x885b4 | goto label_19;
| }
| label_3:
0x000883ca mov.w r2, 0x1000 | r2 = 0x1000;
0x000883ce mov r1, r8 | r1 = r8;
0x000883d0 mov r0, sl | r0 = sl;
0x000883d2 bl 0x9ca8c | r0 = fcn_0009ca8c (r0, r1, r2);
0x000883d6 cmp.w r0, 0x1000 |
0x000883da mov r5, r0 | r5 = r0;
| if (r0 >= 0x1000) {
0x000883dc bhs.w 0x884ea | goto label_18;
| }
0x000883e0 ldr r1, [sp] | r1 = *(sp);
0x000883e2 mov r0, sl | r0 = sl;
0x000883e4 blx 0x5e5c | r0 = daemon (r0, r1);
0x000883e8 cmp r0, 0 |
| if (r0 != 0) {
0x000883ea bne.w 0x8864e | goto label_20;
| }
0x000883ee ldr r2, [sp, 4] | r2 = var_4h;
0x000883f0 ldr r2, [r2, -0x60] | r2 = *((r2 - 0x60));
0x000883f4 and r2, r2, 0xf000 | r2 &= 0xf000;
0x000883f8 cmp.w r2, 0xa000 |
| if (r2 == 0xa000) {
0x000883fc beq 0x88418 | goto label_21;
| }
| }
| label_4:
0x000883fe cmp r7, 0 |
0x00088400 bne 0x8834c |
| } while (r7 != 0);
| label_1:
0x00088402 mov r7, sl | r7 = sl;
| label_16:
0x00088404 cmp r5, 1 |
| if (r5 >= 1) {
0x00088406 bls 0x88414 |
0x00088408 subs r5, 1 | r5--;
0x0008840a ldrb r3, [r7, r5] | r3 = *((r7 + r5));
0x0008840c cmp r3, 0x2f |
0x0008840e itt eq |
| if (r3 != 0x2f) {
0x00088410 moveq r3, 0 | r3 = 0;
| }
| if (r3 == 0x2f) {
0x00088412 strbeq r3, [r7, r5] | *((r7 + r5)) = r3;
| goto label_5;
| }
| }
| label_5:
0x00088414 mov r0, r7 | r0 = r7;
0x00088416 b 0x88500 | goto label_8;
| label_21:
0x00088418 ldr r2, [sp, 0x14] | r2 = var_14h;
0x0008841a cmp r2, 0x20 |
0x0008841c add.w r7, r2, 1 | r7 = r2 + 1;
| if (r2 > 0x20) {
0x00088420 bhi.w 0x8866c | goto label_22;
| }
0x00088424 str r0, [sp, 0x14] | var_14h = r0;
0x00088426 movw r2, 0xfff | r2 = 0xfff;
0x0008842a ldr r1, [sp, 8] | r1 = var_8h;
0x0008842c mov r0, sl | r0 = sl;
0x0008842e blx 0x5700 | r0 = fprintf_chk ()
0x00088432 subs.w fp, r0, 0 |
| if (fp < r0) {
0x00088436 blt.w 0x8867a | goto label_23;
| }
0x0008843a ldr r2, [sp, 0xc] | r2 = var_ch;
0x0008843c ldr r3, [sp, 0x14] | r3 = var_14h;
0x0008843e add.w r1, r2, fp | r1 = r2 + fp;
0x00088442 strb r3, [r1, -0x4] | *((r1 - 0x4)) = r3;
0x00088446 ldrb r1, [r2, -0x4] | r1 = *((r2 - 0x4));
0x0008844a cmp r1, 0x2f |
0x0008844c itt eq |
| if (r1 != 0x2f) {
0x0008844e moveq r5, 1 | r5 = 1;
| }
| if (r1 != 0x2f) {
0x00088450 strbeq r3, [sl, 1] | *((sl + 1)) = r3;
| }
| if (r1 != 0x2f) {
0x00088454 beq 0x88474 |
0x00088456 cmp r5, 1 |
| if (r5 < 1) {
0x00088458 bls 0x88474 | goto label_24;
| }
0x0008845a add r5, sl | r5 += sl;
0x0008845c movs r1, 0x2f | r1 = 0x2f;
0x0008845e strb r3, [r5, -0x1] | *((r5 - 0x1)) = r3;
0x00088462 mov r0, sl | r0 = sl;
0x00088464 str r3, [sp, 0x14] | var_14h = r3;
0x00088466 blx 0x622c | fcn_0000622c ();
0x0008846a ldr r3, [sp, 0x14] | r3 = var_14h;
0x0008846c strb r3, [r0, 1]! | *((r0 += 1)) = r3;
0x00088470 subs.w r5, r0, sl | r5 = r0 - sl;
0x00088472 lsls r2, r1, 0x14 | r2 = r1 << 0x14;
| }
| if (r4 != 0) {
| label_24:
0x00088474 cbz r4, 0x884b4 |
0x00088476 ldr r3, [sp, 0xc] | r3 = var_ch;
0x00088478 add.w r4, r3, fp | r4 = r3 + fp;
0x0008847c ldrb r3, [r4, -0x5] | r3 = *((r4 - 0x5));
0x00088480 cmp r3, 0x2f |
| if (r3 != 0x2f) {
0x00088482 beq 0x884a2 |
0x00088484 mov r0, fp | r0 = fp;
0x00088486 movs r1, 1 | r1 = 1;
0x00088488 bl 0x9f4fc | r0 = fcn_0009f4fc (r0, r1);
0x0008848c cmp.w r0, 0x1000 |
| if (r0 >= 0x1000) {
0x00088490 bge 0x884ea | goto label_18;
| }
0x00088492 ldr r3, [sp, 0xc] | r3 = var_ch;
0x00088494 add r0, r3 | r0 += r3;
0x00088496 movs r3, 0x2f | r3 = 0x2f;
0x00088498 strb r3, [r4, -0x4] | *((r4 - 0x4)) = r3;
0x0008849c movs r3, 0 | r3 = 0;
0x0008849e strb r3, [r0, -0x4] | *((r0 - 0x4)) = r3;
| }
0x000884a2 ldr r0, [sp, 8] | r0 = var_8h;
0x000884a4 mov.w r2, 0x1000 | r2 = 0x1000;
0x000884a8 mov r1, r6 | r1 = r6;
0x000884aa bl 0x9ca8c | r0 = fcn_0009ca8c (r0, r1, r2);
0x000884ae cmp.w r0, 0x1000 |
| if (r0 >= 0x1000) {
0x000884b2 bhs 0x884ea | goto label_18;
| }
| }
0x000884b4 ldr r1, [sp, 8] | r1 = var_8h;
0x000884b6 mov.w r2, 0x1000 | r2 = 0x1000;
0x000884ba mov r0, r6 | r0 = r6;
0x000884bc str r7, [sp, 0x14] | var_14h = r7;
0x000884be bl 0x9cc1c | r0 = fcn_0009cc1c (r0, r1, r2);
0x000884c2 mov r7, r0 | r7 = r0;
0x000884c4 cmp r7, 0 |
| if (r7 != 0) {
0x000884c6 bne.w 0x8834c | goto label_0;
| }
0x000884ca b 0x88402 | goto label_1;
| label_17:
0x000884cc cmp.w r7, 0x1000 |
| if (r7 < 0x1000) {
0x000884d0 bge 0x884ea |
0x000884d2 mov r2, r7 | r2 = r7;
0x000884d4 mov.w r3, 0x1000 | r3 = 0x1000;
0x000884d8 add r7, sb | r7 += sb;
0x000884da mov r1, r6 | r1 = r6;
0x000884dc mov r0, r8 | r0 = r8;
0x000884de blx 0x5290 | fcn_00005290 ();
0x000884e2 strb r4, [r7, -0x4] | *((r7 - 0x4)) = r4;
0x000884e6 mov r7, r4 | r7 = r4;
0x000884e8 b 0x88394 | goto label_2;
| }
| label_18:
0x000884ea ldr.w fp, [sp, 0x10] | fp = var_10h;
0x000884ee mov r7, sl | r7 = sl;
| label_6:
0x000884f0 movs r3, 0x24 | r3 = 0x24;
0x000884f2 str.w r3, [fp] | __asm ("str.w r3, [fp]");
0x000884f4 adds r0, 0 | r0 += 0;
| label_11:
0x000884f6 ldr r3, [sp, 0x18] | r3 = var_18h;
0x000884f8 cmp r3, 0 |
| if (r3 != 0) {
0x000884fa bne.w 0x8861a | goto label_25;
| }
| label_9:
0x000884fe movs r0, 0 | r0 = 0;
| label_8:
0x00088500 ldr r2, [pc, 0x18c] |
0x00088502 add.w r1, sp, 0x3080 | r1 += var_0h;
0x00088506 ldr r3, [pc, 0x184] | r3 = *(0x8868e);
0x00088508 adds r1, 0xc | r1 += 0xc;
0x0008850a add r2, pc | r2 = 0x110b9e;
0x0008850c ldr r3, [r2, r3] | r3 = imp.isalpha;
0x0008850e ldr r2, [r3] | r2 = imp.isalpha;
0x00088510 ldr r3, [r1] | r3 = *(r1);
0x00088512 eors r2, r3 | r2 ^= r3;
0x00088514 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x00088518 bne.w 0x8867e | goto label_26;
| }
0x0008851c add.w sp, sp, 0x3080 |
0x00088520 add sp, 0x14 |
0x00088522 movs r1, 0 | r1 = 0;
0x00088524 movs r2, 0 | r2 = 0;
0x00088526 movs r3, 0 | r3 = 0;
0x00088528 mov.w ip, 0 |
0x0008852c mov.w lr, 0 | lr = 0;
0x00088530 vldr s0, [pc, 0x150] | __asm ("vldr s0, aav.0x000000ff");
0x00088534 vldr s1, [pc, 0x14c] | __asm ("vldr s1, aav.0x000000ff");
0x00088538 vldr s2, [pc, 0x148] | __asm ("vldr s2, aav.0x000000ff");
0x0008853c vldr s3, [pc, 0x144] | __asm ("vldr s3, aav.0x000000ff");
0x00088540 vldr s4, [pc, 0x140] | __asm ("vldr s4, aav.0x000000ff");
0x00088544 vldr s5, [pc, 0x13c] | __asm ("vldr s5, aav.0x000000ff");
0x00088548 vldr s6, [pc, 0x138] | __asm ("vldr s6, aav.0x000000ff");
0x0008854c vldr s7, [pc, 0x134] | __asm ("vldr s7, aav.0x000000ff");
0x00088550 vldr s8, [pc, 0x130] | __asm ("vldr s8, aav.0x000000ff");
0x00088554 vldr s9, [pc, 0x12c] | __asm ("vldr s9, aav.0x000000ff");
0x00088558 vldr s10, [pc, 0x128] | __asm ("vldr s10, aav.0x000000ff");
0x0008855c vldr s11, [pc, 0x124] | __asm ("vldr s11, aav.0x000000ff");
0x00088560 vldr s12, [pc, 0x120] | __asm ("vldr s12, aav.0x000000ff");
0x00088564 vldr s13, [pc, 0x11c] | __asm ("vldr s13, aav.0x000000ff");
0x00088568 vldr s14, [pc, 0x118] | __asm ("vldr s14, aav.0x000000ff");
0x0008856c vldr s15, [pc, 0x114] | __asm ("vldr s15, aav.0x000000ff");
0x00088570 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x00088574 vmov.i32 d17, 0 | __asm ("vmov.i32 d17, 0");
0x00088578 vmov.i32 d18, 0 | __asm ("vmov.i32 d18, 0");
0x0008857c vmov.i32 d19, 0 | __asm ("vmov.i32 d19, 0");
0x00088580 vmov.i32 d20, 0 | __asm ("vmov.i32 d20, 0");
0x00088584 vmov.i32 d21, 0 | __asm ("vmov.i32 d21, 0");
0x00088588 vmov.i32 d22, 0 | __asm ("vmov.i32 d22, 0");
0x0008858c vmov.i32 d23, 0 | __asm ("vmov.i32 d23, 0");
0x00088590 vmov.i32 d24, 0 | __asm ("vmov.i32 d24, 0");
0x00088594 vmov.i32 d25, 0 | __asm ("vmov.i32 d25, 0");
0x00088598 vmov.i32 d26, 0 | __asm ("vmov.i32 d26, 0");
0x0008859c vmov.i32 d27, 0 | __asm ("vmov.i32 d27, 0");
0x000885a0 vmov.i32 d28, 0 | __asm ("vmov.i32 d28, 0");
0x000885a4 vmov.i32 d29, 0 | __asm ("vmov.i32 d29, 0");
0x000885a8 vmov.i32 d30, 0 | __asm ("vmov.i32 d30, 0");
0x000885ac vmov.i32 d31, 0 | __asm ("vmov.i32 d31, 0");
0x000885b0 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
| label_19:
0x000885b4 ldrb.w r3, [r8, 2] | r3 = *((r8 + 2));
0x000885b8 cmp r3, 0 |
| if (r3 != 0) {
0x000885ba bne.w 0x883ca | goto label_3;
| }
0x000885be cmp r5, 1 |
| if (r5 < 1) {
0x000885c0 bls.w 0x883fe | goto label_4;
| }
0x000885c4 add r5, sl | r5 += sl;
0x000885c6 mov.w r4, 0 | r4 = 0;
0x000885ca strb r4, [r5, -0x1] | *((r5 - 0x1)) = r4;
0x000885ce movs r1, 0x2f | r1 = 0x2f;
0x000885d0 mov r0, sl | r0 = sl;
0x000885d2 blx 0x622c | fcn_0000622c ();
0x000885d6 strb r4, [r0, 1]! | *((r0 += 1)) = r4;
0x000885da subs.w r5, r0, sl | r5 = r0 - sl;
0x000885de cmp r7, 0 |
| if (r7 != 0) {
0x000885e0 bne.w 0x8834c | goto label_0;
| }
0x000885e4 b 0x88402 | goto label_1;
| label_14:
0x000885e6 strh r5, [r7] | *(r7) = r5;
0x000885e8 ldrb r3, [r4, 1] | r3 = *((r4 + 1));
0x000885ea cmp r3, 0 |
| if (r3 == 0) {
0x000885ec beq.w 0x88414 | goto label_5;
| }
0x000885f0 adds r1, r4, 1 | r1 = r4 + 1;
0x000885f2 mov.w r2, 0x1000 | r2 = 0x1000;
0x000885f6 mov r0, r6 | r0 = r6;
0x000885f8 bl 0x9cc1c | r0 = fcn_0009cc1c (r0, r1, r2);
0x000885fc orr r3, r0, 1 | r3 = r0 | 1;
0x000885fe lsls r1, r0, 0xc | r1 = r0 << 0xc;
0x00088600 mov sl, r0 | sl = r0;
0x00088602 cmp.w r3, 0x1000 |
| if (r3 >= 0x1000) {
0x00088606 bhs.w 0x884f0 | goto label_6;
| }
0x0008860a movs r5, 1 | r5 = 1;
0x0008860c cmp r0, 0 |
| if (r0 != 0) {
0x0008860e bne.w 0x88340 | goto label_7;
| }
0x00088612 mov r0, r7 | r0 = r7;
0x00088614 b 0x88500 | goto label_8;
| label_15:
0x00088616 ldr r3, [sp, 0x18] | r3 = var_18h;
| if (r3 == 0) {
0x00088618 cbz r3, 0x8863e | goto label_27;
| }
| label_25:
0x0008861a mov r0, r7 | r0 = r7;
0x0008861c blx 0x53b4 | fcn_000053b4 ();
0x00088620 b 0x884fe | goto label_9;
| label_12:
0x00088622 movs r3, 2 | r3 = 2;
0x00088624 str r3, [r0] | *(r0) = r3;
0x00088626 b 0x884fe | goto label_9;
| label_13:
0x00088628 mov.w r0, 0x1000 | r0 = 0x1000;
0x0008862c blx 0x5f5c | r0 = fcn_00005f5c ();
0x00088630 mov r7, r0 | r7 = r0;
0x00088632 cmp r0, 0 |
| if (r0 == 0) {
0x00088634 beq.w 0x884fe | goto label_9;
| }
0x00088638 movs r3, 1 | r3 = 1;
0x0008863a str r3, [sp, 0x18] | var_18h = r3;
0x0008863c b 0x88304 | goto label_10;
| label_27:
0x0008863e ldr r1, [pc, 0x54] |
0x00088640 mov.w r2, 0x1000 | r2 = 0x1000;
0x00088644 mov r0, r7 | r0 = r7;
0x00088646 add r1, pc | r1 = 0x110ce0;
0x00088648 bl 0x9cc1c | fcn_0009cc1c (r0, r1, r2);
0x0008864a invalid |
| label_20:
0x0008864e ldr.w fp, [sp, 0x10] | fp = var_10h;
0x00088652 mov r7, sl | r7 = sl;
0x00088654 ldr.w r3, [fp] | r3 = *(fp);
0x00088658 cmp r3, 2 |
0x0008865a it eq |
| if (r3 != 2) {
0x0008865c cmpeq r4, 0 | __asm ("cmpeq r4, 0");
| goto label_28;
| }
| if (r3 != 2) {
| label_28:
0x0008865e bne.w 0x884f6 | goto label_11;
| }
0x00088662 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x00088664 mov r0, r7 | r0 = r7;
0x00088666 str.w r3, [fp] | __asm ("str.w r3, [fp]");
0x0008866a b 0x88500 | goto label_8;
| label_22:
0x0008866c ldr.w fp, [sp, 0x10] | fp = var_10h;
0x00088670 movs r3, 0x28 | r3 = 0x28;
0x00088672 mov r7, sl | r7 = sl;
0x00088674 str.w r3, [fp] | __asm ("str.w r3, [fp]");
0x00088678 b 0x884f6 | goto label_11;
| label_23:
0x0008867a mov r7, sl | r7 = sl;
0x0008867c b 0x884f6 | goto label_11;
| label_26:
0x0008867e blx 0x5c04 | openpty ();
0x00088682 nop |
0x00088684 movs r0, r0 |
0x00088686 movs r0, r0 |
0x00088688 stm r6!, {r7} | *(r6!) = r7;
0x0008868a movs r4, r0 | r4 = r0;
0x0008868c lsls r0, r3, 0x18 | r0 = r3 << 0x18;
0x0008868e movs r0, r0 |
0x00088690 stm r3!, {r1, r3, r4, r5, r6, r7} | *(r3!) = r1;
| *((r3! + 4)) = r3;
| *((r3! + 8)) = r4;
| *((r3! + 12)) = r5;
| *((r3! + 16)) = r6;
| *((r3! + 20)) = r7;
0x00088692 movs r4, r0 | r4 = r0;
0x00088694 ldr r6, [r5, 0x5c] | r6 = *((r5 + 0x5c));
0x00088696 movs r2, r0 | r2 = r0;
0x00088698 movs r0, 0 | r0 = 0;
0x0008869a movs r1, 0 | r1 = 0;
0x0008869c movs r2, 0 | r2 = 0;
0x0008869e movs r3, 0 | r3 = 0;
0x000886a0 mov.w ip, 0 |
0x000886a4 vldr s0, [pc, 0x80] | __asm ("vldr s0, [fcn.0008872c]");
0x000886a8 vldr s1, [pc, 0x7c] | __asm ("vldr s1, [fcn.0008872c]");
0x000886ac vldr s2, [pc, 0x78] | __asm ("vldr s2, [fcn.0008872c]");
0x000886b0 vldr s3, [pc, 0x74] | __asm ("vldr s3, [fcn.0008872c]");
0x000886b4 vldr s4, [pc, 0x70] | __asm ("vldr s4, [fcn.0008872c]");
0x000886b8 vldr s5, [pc, 0x6c] | __asm ("vldr s5, [fcn.0008872c]");
0x000886bc vldr s6, [pc, 0x68] | __asm ("vldr s6, [fcn.0008872c]");
0x000886c0 vldr s7, [pc, 0x64] | __asm ("vldr s7, [fcn.0008872c]");
0x000886c4 vldr s8, [pc, 0x60] | __asm ("vldr s8, [fcn.0008872c]");
0x000886c8 vldr s9, [pc, 0x5c] | __asm ("vldr s9, [fcn.0008872c]");
0x000886cc vldr s10, [pc, 0x58] | __asm ("vldr s10, [fcn.0008872c]");
0x000886d0 vldr s11, [pc, 0x54] | __asm ("vldr s11, [fcn.0008872c]");
0x000886d4 vldr s12, [pc, 0x50] | __asm ("vldr s12, [fcn.0008872c]");
0x000886d8 vldr s13, [pc, 0x4c] | __asm ("vldr s13, [fcn.0008872c]");
0x000886dc vldr s14, [pc, 0x48] | __asm ("vldr s14, [fcn.0008872c]");
0x000886e0 vldr s15, [pc, 0x44] | __asm ("vldr s15, [fcn.0008872c]");
0x000886e4 vmov.i32 d16, 0 | __asm ("vmov.i32 d16, 0");
0x000886e8 vmov.i32 d17, 0 | __asm ("vmov.i32 d17, 0");
0x000886ec vmov.i32 d18, 0 | __asm ("vmov.i32 d18, 0");
0x000886f0 vmov.i32 d19, 0 | __asm ("vmov.i32 d19, 0");
0x000886f4 vmov.i32 d20, 0 | __asm ("vmov.i32 d20, 0");
0x000886f8 vmov.i32 d21, 0 | __asm ("vmov.i32 d21, 0");
0x000886fc vmov.i32 d22, 0 | __asm ("vmov.i32 d22, 0");
0x00088700 vmov.i32 d23, 0 | __asm ("vmov.i32 d23, 0");
0x00088704 vmov.i32 d24, 0 | __asm ("vmov.i32 d24, 0");
0x00088708 vmov.i32 d25, 0 | __asm ("vmov.i32 d25, 0");
0x0008870c vmov.i32 d26, 0 | __asm ("vmov.i32 d26, 0");
0x00088710 vmov.i32 d27, 0 | __asm ("vmov.i32 d27, 0");
0x00088714 vmov.i32 d28, 0 | __asm ("vmov.i32 d28, 0");
0x00088718 vmov.i32 d29, 0 | __asm ("vmov.i32 d29, 0");
0x0008871c vmov.i32 d30, 0 | __asm ("vmov.i32 d30, 0");
0x00088720 vmov.i32 d31, 0 | __asm ("vmov.i32 d31, 0");
0x00088724 bx lr | return;
| }
[*] Function fprintf used 2 times sshd