[*] Binary protection state of udevadm
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function printf tear down of udevadm
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/libexec/udevadm @ 0x342f8 */
| #include <stdint.h>
|
; (fcn) fcn.000342f8 () | void fcn_000342f8 (int16_t arg1, int16_t arg2, int16_t arg3, int16_t arg4) {
| int16_t var_1h;
| 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;
| int16_t var_24h;
| int16_t var_28h;
| int16_t var_2ch;
| int16_t var_30h;
| int16_t var_34h;
| int16_t var_38h;
| int16_t var_3ch;
| int16_t var_40h;
| int16_t var_44h;
| int16_t var_48h;
| int16_t var_4ch;
| int16_t var_50h;
| char * dest;
| int16_t socket;
| int16_t var_5ch;
| int16_t var_60h;
| int32_t var_60h_2;
| int16_t var_68h;
| int16_t var_6ch;
| int16_t var_70h;
| int16_t var_74h;
| int16_t var_78h;
| int16_t var_7ch;
| int16_t var_84h;
| int16_t var_8ch;
| int16_t var_90h;
| int16_t var_94h;
| int32_t var_94h_2;
| int16_t var_9ch;
| int16_t var_a4h;
| int16_t var_ach;
| int16_t var_b4h;
| int32_t var_bch;
| int32_t var_bch_2;
| int16_t var_c4h;
| int16_t var_c8h;
| int32_t var_cch;
| int32_t var_cch_2;
| int16_t var_d4h;
| r0 = arg1;
| r1 = arg2;
| r2 = arg3;
| r3 = arg4;
0x000342f8 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr} |
0x000342fc sub sp, 0xdc |
0x000342fe strd r3, r2, [sp, 0x38] | __asm ("strd r3, r2, [var_38h]");
0x00034302 movs r4, 0 | r4 = 0;
0x00034304 mov r6, r0 | r6 = r0;
0x00034306 ldr.w r2, [pc, 0x8cc] |
0x0003430a ldr.w r3, [pc, 0x8cc] | r3 = *(0x34bda);
0x0003430e str r0, [sp, 0x4c] | var_4ch = r0;
0x00034310 movs r0, 1 | r0 = 1;
0x00034312 add r2, pc | r2 = 0x68eec;
0x00034314 str r1, [sp, 0x44] | var_44h = r1;
0x00034316 ldr r3, [r2, r3] |
0x00034318 movs r1, 0x14 | r1 = 0x14;
0x0003431a ldr r3, [r3] | r3 = *(0x68eec);
0x0003431c str r3, [sp, 0xd4] | var_d4h = r3;
0x0003431e mov.w r3, 0 | r3 = 0;
0x00034322 str r4, [sp, 0x50] | var_50h = r4;
0x00034324 blx 0x8c20 | fcn_00008c20 ();
0x00034328 str r0, [sp, 0x28] | var_28h = r0;
0x0003432a cmp r0, 0 |
| if (r0 == 0) {
0x0003432c beq.w 0x34a42 | goto label_18;
| }
0x00034330 mov r5, r0 | r5 = r0;
0x00034332 bl 0x7a610 | fcn_0007a610 ();
0x00034336 str r0, [r5, 4] | *((r5 + 4)) = r0;
0x00034338 cmp r0, 0 |
| if (r0 == 0) {
0x0003433a beq.w 0x34a38 | goto label_19;
| }
0x0003433e movs r1, 0x14 | r1 = 0x14;
0x00034340 movs r0, 1 | r0 = 1;
0x00034342 blx 0x8c20 | fcn_00008c20 ();
0x00034346 str r0, [r5] | *(r5) = r0;
0x00034348 cmp r0, 0 |
| if (r0 == 0) {
0x0003434a beq.w 0x34a38 | goto label_19;
| }
0x0003434e ldr r3, [r5, 8] | r3 = *((r5 + 8));
0x00034350 mov r2, r6 | r2 = r6;
0x00034352 ldr.w r1, [pc, 0x888] |
0x00034356 add r0, sp, 0x50 | r0 += var_50h;
0x00034358 adds r3, 1 | r3++;
0x0003435a str r3, [r5, 8] | *((r5 + 8)) = r3;
0x0003435c add r1, pc | r1 = 0x68f3e;
0x0003435e ldr.w r3, [pc, 0x880] |
0x00034362 add r3, pc | r3 = 0x68f48;
0x00034364 str r3, [sp] | *(sp) = r3;
0x00034366 mov r3, r4 | r3 = r4;
0x00034368 bl 0x67e84 | fcn_00067e84 (r0, r1, r2, r3, r4);
0x0003436c subs r5, r0, 0 | r5 -= var_50h;
| if (r5 < var_50h) {
0x0003436e blt.w 0x349ce | goto label_20;
| }
0x00034372 ldr r3, [sp, 0x50] | r3 = var_50h;
0x00034374 cmp r3, 0 |
| if (r3 == 0) {
0x00034376 beq.w 0x34a34 | goto label_21;
| }
0x0003437a subs r3, 4 | r3 -= 4;
0x0003437c str r4, [sp, 0x1c] | var_1ch = r4;
0x0003437e str r3, [sp, 0x24] | var_24h = r3;
0x00034380 ldr.w r3, [pc, 0x860] |
0x00034384 add r3, pc |
0x00034386 adds r3, 7 | r3 += 7;
0x00034388 str r3, [sp, 0x40] | var_40h = r3;
0x0003438a ldr.w r3, [pc, 0x85c] | r3 = case.0x5d696.3;
0x0003438e add r3, pc | r3 = 0x9d2fe;
0x00034390 adds r3, 7 | r3 += 7;
0x00034392 str r3, [sp, 0x48] | var_48h = r3;
0x00034394 movs r3, 1 | r3 = 1;
0x00034396 str r3, [sp, 0x20] | var_20h = r3;
0x00034398 ldr r3, [sp, 0x24] | r3 = var_24h;
0x0003439a ldr fp, [r3, 4]! | fp = *(0x9d302);
0x0003439e str r3, [sp, 0x24] | var_24h = r3;
0x000343a0 cmp.w fp, 0 |
0x000343a2 lsrs r0, r0, 0x1c | r0 >>= 0x1c;
| if (r0 == r0) {
0x000343a4 beq.w 0x3457e | goto label_12;
| }
| label_3:
0x000343a8 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x000343ac cmp r0, 6 |
| if (r0 > 6) {
0x000343ae bgt.w 0x34798 | goto label_22;
| }
| label_6:
0x000343b2 ldr r3, [sp, 0x20] | r3 = var_20h;
0x000343b4 movs r7, 0 | r7 = 0;
0x000343b6 ldr.w r1, [pc, 0x834] |
0x000343ba mov r0, fp | r0 = fp;
0x000343bc str r7, [sp, 0x54] | dest = r7;
0x000343be adds r3, 1 | r3++;
0x000343c0 uxth r3, r3 | r3 = (int16_t) r3;
0x000343c2 add r1, pc | r1 = 0x68fb4;
0x000343c4 str r3, [sp, 0x2c] | var_2ch = r3;
0x000343c6 blx 0x8fb4 | r0 = fcn_00008fb4 ();
0x000343ca mov sb, r0 | sb = r0;
0x000343cc cmp r0, 0 |
| if (r0 == 0) {
0x000343ce beq.w 0x34a56 | goto label_23;
| }
0x000343d2 ldr.w r3, [pc, 0x81c] |
0x000343d6 mov r8, r7 | r8 = r7;
0x000343d8 add.w sl, sp, 0x58 | sl += socket;
0x000343dc str.w fp, [sp, 0x18] | __asm ("str.w fp, [var_18h]");
0x000343e0 add r3, pc | r3 = 0x68fd6;
0x000343e2 str r3, [sp, 0x30] | var_30h = r3;
0x000343e4 ldr.w r3, [pc, 0x80c] |
0x000343e8 add r3, pc | r3 = 0x68fe0;
0x000343ea str r3, [sp, 0x34] | var_34h = r3;
| label_0:
0x000343ec movs r6, 0 | r6 = 0;
0x000343ee mov r3, sl | r3 = sl;
0x000343f0 movs r2, 4 | r2 = 4;
0x000343f2 mov.w r1, 0x100000 | r1 = 0x100000;
0x000343f6 mov r0, sb | r0 = sb;
0x000343f8 str r6, [sp, 0x58] | socket = r6;
0x000343fa bl 0x6b144 | r0 = fcn_0006b144 (r0, r1, r2, r3);
0x000343fe cmp r0, 0 |
| if (r0 < 0) {
0x00034400 blt.w 0x34542 | goto label_24;
| }
0x00034404 ldr r4, [sp, 0x58] | r4 = socket;
| if (r0 == 0) {
0x00034406 beq.w 0x34762 | goto label_25;
| }
0x0003440a ldrb r3, [r4] | r3 = *(r4);
0x0003440c adds r7, 1 | r7++;
0x0003440e cmp r3, 0x23 |
| if (r3 == 0x23) {
0x00034410 beq 0x344b6 | goto label_26;
| }
0x00034412 movs r1, 0x23 | r1 = 0x23;
0x00034414 mov r0, r4 | r0 = r4;
0x00034416 blx 0x8bb0 | r0 = get_current_dir_name ();
| if (r0 != 0) {
0x0003441a cbz r0, 0x34420 |
0x0003441c strb r6, [r0] | *(r0) = r6;
0x0003441e ldr r4, [sp, 0x58] | r4 = socket;
| }
0x00034420 mov r0, r4 | r0 = r4;
0x00034422 blx 0x8f38 | r0 = fcn_00008f38 ();
0x00034426 mov r6, r0 | r6 = r0;
0x00034428 add.w fp, r4, r0 |
| if (r6 == 0) {
0x0003442c cbz r6, 0x3444a | goto label_27;
| }
| do {
0x0003442e blx 0x91d8 | fcn_000091d8 ();
0x00034432 ldrb r2, [fp, -0x1]! | r2 = *((fp -= 0x1));
0x00034436 ldr r3, [r0] | r3 = *(r0);
0x00034438 ldrh.w r5, [r3, r2, lsl 1] | offset_0 = r2 << 1;
| r5 = *((r3 + offset_0));
0x0003443c subs r3, r6, 1 | r3 = r6 - 1;
0x0003443e ands r5, r5, 0x2000 | r5 &= 0x2000;
0x00034440 strb r0, [r0, r4] | *((r0 + r4)) = r0;
| if (r5 == r5) {
0x00034442 beq 0x34460 | goto label_28;
| }
0x00034444 mov r6, r3 | r6 = r3;
0x00034446 cmp r6, 0 |
0x00034448 bne 0x3442e |
| } while (r6 != 0);
| label_27:
0x0003444a cmp.w r8, 1 |
0x0003444e strb r6, [r4] | *(r4) = r6;
| if (r8 == 1) {
0x00034450 beq 0x344ec | goto label_29;
| }
0x00034452 cmp.w r8, 2 |
| if (r8 == 2) {
0x00034456 beq 0x344e0 | goto label_30;
| }
| do {
| label_1:
0x00034458 ldr r0, [sp, 0x58] | r0 = socket;
0x0003445a blx 0x8dac | fcn_00008dac ();
0x0003445e b 0x343ec | goto label_0;
| label_28:
0x00034460 cmp.w r8, 1 |
0x00034464 strb r5, [r4, r6] | *((r4 + r6)) = r5;
| if (r8 == 1) {
0x00034466 beq 0x3451c | goto label_31;
| }
0x00034468 cmp.w r8, 2 |
| if (r8 == 2) {
0x0003446c beq 0x344be | goto label_32;
| }
0x0003446e cmp.w r8, 0 |
0x00034472 bne 0x34458 |
| } while (r8 != 0);
0x00034474 ldr r4, [sp, 0x58] | r4 = socket;
0x00034476 ldrb r3, [r4] | r3 = *(r4);
0x00034478 cmp r3, 0x20 |
| if (r3 != 0x20) {
0x0003447a bne 0x34536 | goto label_33;
| }
0x0003447c bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034480 cmp r0, 3 |
| if (r0 <= 3) {
0x00034482 ble 0x34458 | goto label_1;
| }
0x00034484 ldr r3, [sp, 0x48] | r3 = var_48h;
0x00034486 movs r1, 4 | r1 = 4;
0x00034488 ldr r2, [sp, 0x18] | r2 = var_18h;
0x0003448a mov r0, r8 | r0 = r8;
0x0003448c str r4, [sp, 0x14] | var_14h = r4;
0x0003448e str r3, [sp, 4] | var_4h = r3;
0x00034490 ldr.w r3, [pc, 0x764] |
0x00034494 add r3, pc | r3 = 0x69090;
0x00034496 str r3, [sp, 0x10] | var_10h = r3;
0x00034498 ldr.w r3, [pc, 0x760] |
0x0003449c add r3, pc |
0x0003449e str r3, [sp, 0xc] | var_ch = r3;
0x000344a0 movs r3, 0x16 |
0x000344a2 movt r3, 0x4000 | r3 = 0x4006909c;
0x000344a6 str r3, [sp] | *(sp) = r3;
0x000344a8 movw r3, 0x201 | r3 = 0x201;
0x000344ac str r3, [sp, 8] | var_8h = r3;
0x000344ae mov r3, r7 | r3 = r7;
0x000344b0 bl 0x722f4 | fcn_000722f4 (r0, r1, r2, r3, r4, r5, r6);
0x000344b4 b 0x34458 | goto label_1;
| label_26:
0x000344b6 mov r0, r4 | r0 = r4;
0x000344b8 blx 0x8dac | fcn_00008dac ();
0x000344bc b 0x343ec | goto label_0;
| label_32:
0x000344be ldr r4, [sp, 0x58] | r4 = socket;
0x000344c0 ldrb r3, [r4] | r3 = *(r4);
0x000344c2 cmp r3, 0x20 |
| if (r3 == 0x20) {
0x000344c4 beq.w 0x34780 | goto label_34;
| }
0x000344c8 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x000344cc cmp r0, 3 |
| if (r0 > 3) {
0x000344ce bgt.w 0x3470e | goto label_35;
| }
| do {
| label_2:
0x000344d2 ldr r0, [sp, 0x54] | r0 = dest;
0x000344d4 mov.w r8, 0 | r8 = 0;
0x000344d8 bl 0x7b004 | fcn_0007b004 (r0);
0x000344dc str r0, [sp, 0x54] | dest = r0;
0x000344de b 0x34458 | goto label_1;
| label_30:
0x000344e0 ldr r0, [sp, 0x54] | r0 = dest;
0x000344e2 mov r8, r6 | r8 = r6;
0x000344e4 bl 0x7b004 | fcn_0007b004 (r0);
0x000344e8 str r0, [sp, 0x54] | dest = r0;
0x000344ea b 0x34458 | goto label_1;
| label_29:
0x000344ec bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x000344f0 cmp r0, 3 |
0x000344f2 ble 0x344d2 |
| } while (r0 <= 3);
0x000344f4 ldr r3, [sp, 0x30] | r3 = var_30h;
0x000344f6 mov r0, r6 | r0 = r6;
0x000344f8 ldr r2, [sp, 0x18] | r2 = var_18h;
0x000344fa movs r1, 4 | r1 = 4;
0x000344fc str r3, [sp, 0x10] | var_10h = r3;
0x000344fe ldr r3, [sp, 0x34] | r3 = var_34h;
0x00034500 str r3, [sp, 0xc] | var_ch = r3;
0x00034502 ldr r3, [sp, 0x40] | r3 = var_40h;
0x00034504 str r3, [sp, 4] | var_4h = r3;
0x00034506 movs r3, 0x16 |
0x00034508 movt r3, 0x4000 | r3 = 0x40000016;
0x0003450c str r3, [sp] | *(sp) = r3;
0x0003450e movw r3, 0x211 | r3 = 0x211;
0x00034512 str r3, [sp, 8] | var_8h = r3;
0x00034514 mov r3, r7 | r3 = r7;
0x00034516 bl 0x722f4 | fcn_000722f4 (r0, r1, r2, r3, r4, r5, r6);
0x0003451a b 0x344d2 | goto label_2;
| label_31:
0x0003451c ldr r1, [sp, 0x58] | r1 = socket;
0x0003451e ldrb r3, [r1] | r3 = *(r1);
0x00034520 cmp r3, 0x20 |
| if (r3 == 0x20) {
0x00034522 beq.w 0x34746 | goto label_36;
| }
0x00034526 add r0, sp, 0x54 | r0 += dest;
0x00034528 bl 0x7b5f4 | r0 = fcn_0007b5f4 (r0, r1);
0x0003452c cmp r0, 0 |
| if (r0 < 0) {
0x0003452e blt 0x34542 | goto label_24;
| }
| do {
0x00034530 mov.w r8, 1 | r8 = 1;
0x00034534 b 0x34458 | goto label_1;
| label_33:
0x00034536 mov r1, r4 | r1 = r4;
0x00034538 add r0, sp, 0x54 | r0 += dest;
0x0003453a bl 0x7b5f4 | r0 = fcn_0007b5f4 (r0, r1);
0x0003453e cmp r0, 0 |
0x00034540 bge 0x34530 |
| } while (r0 >= 0);
| label_24:
0x00034542 mov r5, r0 | r5 = r0;
0x00034544 ldr r0, [sp, 0x58] | r0 = socket;
0x00034546 blx 0x8dac | fcn_00008dac ();
| label_15:
0x0003454a ldr r3, [sp, 0x3c] | r3 = var_3ch;
0x0003454c ldr r0, [sp, 0x54] | r0 = dest;
0x0003454e and.w r4, r3, r5, lsr 31 | r4 = r3 & (r5 >> 31);
| if (r0 != 0) {
0x00034552 cbz r0, 0x3455a |
| label_4:
0x00034554 bl 0x7b004 | fcn_0007b004 (r0);
0x00034558 str r0, [sp, 0x54] | dest = r0;
| }
0x0003455a ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x0003455c cmp r4, 0 |
0x0003455e it ne |
| if (r4 == 0) {
0x00034560 movne r3, r5 | r3 = r5;
| }
0x00034562 str r3, [sp, 0x1c] | var_1ch = r3;
| label_5:
0x00034564 mov r0, sb | r0 = sb;
0x00034566 bl 0x69b30 | fcn_00069b30 (r0, r1, r2, r3);
0x0003456a ldr r3, [sp, 0x2c] | r3 = var_2ch;
0x0003456c str r3, [sp, 0x20] | var_20h = r3;
0x0003456e ldr r3, [sp, 0x24] | r3 = var_24h;
0x00034570 ldr fp, [r3, 4]! | fp = *((r3 += 4));
0x00034574 str r3, [sp, 0x24] | var_24h = r3;
0x00034576 cmp.w fp, 0 |
| if (fp != 0) {
0x0003457a bne.w 0x343a8 | goto label_3;
| }
| label_12:
0x0003457e ldr r3, [sp, 0x28] | r3 = var_28h;
0x00034580 ldr r0, [r3, 4] | r0 = *((r3 + 4));
0x00034582 bl 0x7a668 | r0 = fcn_0007a668 (r0);
0x00034586 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x0003458a cmp r0, 6 |
| if (r0 > 6) {
0x0003458c bgt.w 0x34868 | goto label_37;
| }
| label_8:
0x00034590 ldr r3, [sp, 0x44] | r3 = var_44h;
0x00034592 cmp r3, 0 |
| if (r3 == 0) {
0x00034594 beq.w 0x34992 | goto label_38;
| }
| label_9:
0x00034598 mov.w r3, -1 | r3 = -1;
0x0003459c ldr r2, [sp, 0x44] | r2 = var_44h;
0x0003459e str r3, [sp] | *(sp) = r3;
0x000345a0 movs r0, 0 | r0 = 0;
0x000345a2 ldr.w r3, [pc, 0x65c] |
0x000345a6 ldr r1, [sp, 0x4c] | r1 = var_4ch;
0x000345a8 add r3, pc | r3 = 0x691ae;
0x000345aa bl 0x74ccc | r0 = fcn_00074ccc ();
0x000345ae mov r4, r0 | r4 = r0;
0x000345b0 cmp r0, 0 |
| if (r0 == 0) {
0x000345b2 beq.w 0x34a38 | goto label_19;
| }
0x000345b6 movs r5, 0 | r5 = 0;
0x000345b8 add r7, sp, 0x58 | r7 += socket;
0x000345ba movw r1, 0x1ed | r1 = 0x1ed;
0x000345be add.w sl, sp, 0x84 | sl += var_84h;
0x000345c2 bl 0x34e84 | fcn_00034e84 (r0, r1);
0x000345c6 movs r2, 0x28 | r2 = 0x28;
0x000345c8 mov r1, r5 | r1 = r5;
0x000345ca mov r0, r7 | r0 = r7;
0x000345cc mov.w r8, 0x50 | r8 = 0x50;
0x000345d0 blx 0x8c54 | fcn_00008c54 ();
0x000345d4 ldr r3, [sp, 0x28] | r3 = var_28h;
0x000345d6 movs r2, 0x40 | r2 = 0x40;
0x000345d8 mov r1, r5 | r1 = r5;
0x000345da add r0, sp, 0x94 | r0 += var_94h;
0x000345dc str r5, [sp, 0x54] | dest = r5;
0x000345de mov.w sb, 0 | sb = 0;
0x000345e2 str r3, [sp, 0x5c] | var_5ch = r3;
0x000345e4 blx 0x8c54 | fcn_00008c54 ();
0x000345e8 ldr.w r3, [pc, 0x618] |
0x000345ec mov.w ip, 0x50 |
0x000345f0 ldr r2, [sp, 0x38] | r2 = var_38h;
0x000345f2 str.w ip, [sp, 0x9c] | __asm ("str.w ip, [var_9ch]");
0x000345f6 add r3, pc | r3 = 0x691fe;
0x000345f8 str r5, [sp, 0x90] | var_90h = r5;
0x000345fa ldm.w r3, {r0, r1} | r0 = *(r3);
| r1 = *((r3 + 4));
0x000345fe movs r3, 0xf9 | r3 = 0xf9;
0x00034600 str r3, [sp, 0x8c] | var_8ch = r3;
0x00034602 cmp r2, r5 |
0x00034604 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00034606 it ne |
| if (r2 == r5) {
0x00034608 movne r6, 0x10 | r6 = 0x10;
| }
0x0003460a stm.w sl, {r0, r1} | *(sl) = r0;
| *((sl + 4)) = r1;
0x0003460e it eq |
| if (r2 != r5) {
0x00034610 moveq r6, 0x20 | r6 = 0x20;
| }
0x00034612 mov r0, r7 | r0 = r7;
0x00034614 str r6, [sp, 0xb4] | var_b4h = r6;
0x00034616 ldr r1, [r3] | r1 = *(0x691fe);
0x00034618 movs r3, 0x18 | r3 = 0x18;
0x0003461a str r3, [sp, 0xa4] | var_a4h = r3;
0x0003461c movs r3, 0x10 | r3 = 0x10;
0x0003461e str r3, [sp, 0xac] | var_ach = r3;
0x00034620 strd r8, sb, [sp, 0x60] | __asm ("strd r8, sb, [var_60h]");
0x00034624 bl 0x33b1c | fcn_00033b1c (r0, r1, r2);
0x00034628 add r2, sp, 0x54 | r2 += dest;
0x0003462a mov r1, r7 | r1 = r7;
0x0003462c mov r0, r4 | r0 = r4;
0x0003462e bl 0x7d228 | r0 = fcn_0007d228 (r0, r1, r2);
0x00034632 subs.w fp, r0, 0 |
| if (fp < r0) {
0x00034636 blt.w 0x34800 | goto label_39;
| }
0x0003463a ldr r0, [sp, 0x58] | r0 = socket;
0x0003463c blx 0x89b0 | fcn_000089b0 ();
0x00034640 mov.w r1, 0x124 | r1 = 0x124;
0x00034644 blx 0x95b8 | exit (r0);
0x00034648 ldr r0, [sp, 0x58] | r0 = socket;
0x0003464a mov r2, r8 | r2 = r8;
0x0003464c mov r3, sb | r3 = sb;
0x0003464e str r5, [sp] | *(sp) = r5;
0x00034650 blx 0x905c | r0 = fcn_0000905c ();
0x00034654 cmp r0, r5 |
| if (r0 < r5) {
0x00034656 blt.w 0x3499a | goto label_40;
| }
0x0003465a mov r0, r7 | r0 = r7;
0x0003465c ldr r7, [sp, 0x28] | r7 = var_28h;
0x0003465e ldr r2, [sp, 0x38] | r2 = var_38h;
0x00034660 ldr r1, [r7] | r1 = *(r7);
0x00034662 bl 0x33c94 | fcn_00033c94 (r0, r1, r2);
0x00034666 strd r0, r1, [sp, 0xbc] | __asm ("strd r0, r1, [var_bch]");
0x0003466a ldr r0, [sp, 0x58] | r0 = socket;
0x0003466c blx 0x8b8c | r0 = printf_chk ()
0x00034670 mov r3, r0 | r3 = r0;
0x00034672 ldr r0, [r7, 4] | r0 = *((r7 + 4));
0x00034674 subs r3, 0x50 | r3 -= 0x50;
0x00034676 mov.w r2, 1 | r2 = 1;
0x0003467a sbc r1, r1, 0 | __asm ("sbc r1, r1, 0");
0x0003467e str r3, [sp, 0xc4] | var_c4h = r3;
0x00034680 str r1, [sp, 0xc8] | var_c8h = r1;
0x00034682 ldr r3, [sp, 0x58] | r3 = socket;
0x00034684 ldrd r0, r1, [r0] | __asm ("ldrd r0, r1, [r0]");
0x00034688 blx 0x918c | open64_2 ();
0x0003468c ldr r3, [r7, 4] | r3 = *((r7 + 4));
0x0003468e ldr r0, [sp, 0x58] | r0 = socket;
0x00034690 ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x00034692 strd r3, r5, [sp, 0xcc] | __asm ("strd r3, r5, [var_cch]");
0x00034696 blx 0x8b8c | printf_chk ()
0x0003469a movs r2, 0 | r2 = 0;
0x0003469c strd r0, r1, [sp, 0x94] | __asm ("strd r0, r1, [var_94h]");
0x000346a0 mov r8, r0 | r8 = r0;
0x000346a2 movs r3, 0 | r3 = 0;
0x000346a4 ldr r0, [sp, 0x58] | r0 = socket;
0x000346a6 mov r7, r1 | r7 = r1;
0x000346a8 str r5, [sp] | *(sp) = r5;
0x000346aa blx 0x905c | fcn_0000905c ();
0x000346ac ldcl p2, c4, [r8], {0xa8} | __asm ("ldcl p2, c4, [r8], {0xa8}");
| if (r3 < 0) {
0x000346b0 blt.w 0x3499a | goto label_40;
| }
0x000346b4 ldr r3, [sp, 0x58] | r3 = socket;
0x000346b6 movs r1, 0x50 | r1 = 0x50;
0x000346b8 mov r0, sl | r0 = sl;
0x000346ba movs r2, 1 | r2 = 1;
0x000346bc blx 0x918c | open64_2 ();
0x000346c0 ldr r0, [sp, 0x58] | r0 = socket;
0x000346c2 blx 0x94d0 | r0 = fcn_000094d0 ();
0x000346c6 cmp r0, 0 |
| if (r0 != 0) {
0x000346c8 bne.w 0x3499a | goto label_40;
| }
0x000346cc ldr r0, [sp, 0x58] | r0 = socket;
0x000346ce blx 0x8ecc | r0 = fcn_00008ecc ();
0x000346d2 cmp r0, r5 |
| if (r0 < r5) {
0x000346d4 blt.w 0x3499a | goto label_40;
| }
0x000346d6 strh r1, [r4, 0xa] | *((r4 + 0xa)) = r1;
0x000346d8 ldr r0, [sp, 0x58] | r0 = socket;
0x000346da blx 0x89b0 | fcn_000089b0 ();
0x000346de blx 0x8c9c | r0 = fcn_00008c9c ();
0x000346e2 cmp r0, r5 |
| if (r0 < r5) {
0x000346e4 blt.w 0x3499a | goto label_40;
| }
0x000346e8 ldr r0, [sp, 0x54] | r0 = dest;
0x000346ea mov r1, r4 | r1 = r4;
0x000346ec blx 0x8b50 | r0 = strncpy (r0, r1, r2);
0x000346f0 cmp r0, r5 |
| if (r0 < r5) {
0x000346f2 blt.w 0x3499a | goto label_40;
| }
0x000346f6 ldr r0, [sp, 0x58] | r0 = socket;
0x000346f8 blx 0x8b68 | r0 = recv (r0, r1);
0x000346fc bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034700 cmp r0, 6 |
| if (r0 > 6) {
0x00034702 bgt.w 0x34a60 | goto label_41;
| }
| label_16:
0x00034706 ldr r0, [sp, 0x54] | r0 = dest;
0x00034708 blx 0x8dac | fcn_00008dac ();
0x0003470c b 0x349b6 | goto label_17;
| label_35:
0x0003470e ldr.w r3, [pc, 0x4f8] |
0x00034712 mov r0, r5 | r0 = r5;
0x00034714 ldr r2, [sp, 0x18] | r2 = var_18h;
0x00034716 movs r1, 4 | r1 = 4;
0x00034718 str r4, [sp, 0x14] | var_14h = r4;
0x0003471a add r3, pc | r3 = 0x69328;
0x0003471c adds r3, 7 | r3 += 7;
0x0003471e str r3, [sp, 4] | var_4h = r3;
0x00034720 ldr.w r3, [pc, 0x4e8] |
0x00034724 add r3, pc | r3 = 0x69334;
0x00034726 str r3, [sp, 0x10] | var_10h = r3;
0x00034728 ldr.w r3, [pc, 0x4e4] |
0x0003472c add r3, pc |
0x0003472e str r3, [sp, 0xc] | var_ch = r3;
0x00034730 movs r3, 0x16 |
0x00034732 movt r3, 0x4000 | r3 = 0x40069340;
0x00034736 str r3, [sp] | *(sp) = r3;
0x00034738 movw r3, 0x231 | r3 = 0x231;
0x0003473c str r3, [sp, 8] | var_8h = r3;
0x0003473e mov r3, r7 | r3 = r7;
0x00034740 bl 0x722f4 | fcn_000722f4 (r0, r1, r2, r3, r4, r5, r6);
0x00034744 b 0x344d2 | goto label_2;
| label_36:
0x00034746 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00034748 mov r2, r1 | r2 = r1;
0x0003474a ldr r0, [sp, 0x28] | r0 = var_28h;
0x0003474c mov.w r8, 2 | r8 = 2;
0x00034750 ldr r1, [sp, 0x54] | r1 = dest;
0x00034752 strd r7, r3, [sp, 4] | __asm ("strd r7, r3, [var_8h]");
0x00034756 ldr r3, [sp, 0x20] | r3 = var_20h;
0x00034758 str r3, [sp] | *(sp) = r3;
0x0003475a ldr r3, [sp, 0x18] | r3 = var_18h;
0x0003475c bl 0x33fdc | fcn_00033fdc (r0, r1, r2, r3, r4, r5, r6);
0x00034760 b 0x34458 | goto label_1;
| label_25:
0x00034762 mov r5, r0 | r5 = r0;
0x00034764 mov r0, r4 | r0 = r4;
0x00034766 ldr.w fp, [sp, 0x18] | fp = var_18h;
0x0003476a blx 0x8dac | fcn_00008dac ();
0x0003476c invalid |
0x00034770 lsrs r1, r0, 0x1c | r1 = r0 >> 0x1c;
| if (r1 == r0) {
0x00034772 beq 0x347c8 | goto label_42;
| }
| label_7:
0x00034774 ldr r0, [sp, 0x54] | r0 = dest;
0x00034776 movs r4, 0 | r4 = 0;
0x00034778 cmp r0, 0 |
| if (r0 != 0) {
0x0003477a bne.w 0x34554 | goto label_4;
| }
0x0003477e b 0x34564 | goto label_5;
| label_34:
0x00034780 ldr r3, [sp, 0x38] | r3 = var_38h;
0x00034782 mov r2, r4 | r2 = r4;
0x00034784 ldr r1, [sp, 0x54] | r1 = dest;
0x00034786 ldr r0, [sp, 0x28] | r0 = var_28h;
0x00034788 strd r7, r3, [sp, 4] | __asm ("strd r7, r3, [var_8h]");
0x0003478a strb r1, [r0, 0xc] | *((r0 + 0xc)) = r1;
0x0003478c ldr r3, [sp, 0x20] | r3 = var_20h;
0x0003478e str r3, [sp] | *(sp) = r3;
0x00034790 ldr r3, [sp, 0x18] | r3 = var_18h;
0x00034792 bl 0x33fdc | fcn_00033fdc (r0, r1, r2, r3, r4, r5, r6);
0x00034796 b 0x34458 | goto label_1;
| label_22:
0x00034798 ldr.w r3, [pc, 0x478] |
0x0003479c movs r1, 0 | r1 = 0;
0x0003479e ldr.w r2, [pc, 0x478] |
0x000347a2 movs r0, 7 | r0 = 7;
0x000347a4 str.w fp, [sp, 8] | __asm ("str.w fp, [var_8h]");
0x000347a8 add r3, pc | r3 = 0x693c0;
0x000347aa str r3, [sp, 4] | var_4h = r3;
0x000347ac add r2, pc | r2 = 0x693ca;
0x000347ae ldr.w r3, [pc, 0x46c] |
0x000347b2 adds r2, 7 | r2 += 7;
0x000347b4 add r3, pc | r3 = 0x693d6;
0x000347b6 str r3, [sp] | *(sp) = r3;
0x000347b8 mov.w r3, 0x268 | r3 = 0x268;
0x000347bc bl 0x71448 | fcn_00071448 ();
0x000347c0 ldr r3, [sp, 0x24] | r3 = var_24h;
0x000347c2 ldr.w fp, [r3] | fp = *(r3);
0x000347c6 b 0x343b2 | goto label_6;
| label_42:
0x000347c8 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x000347cc cmp r0, 3 |
| if (r0 <= 3) {
0x000347ce ble 0x34774 | goto label_7;
| }
0x000347d0 ldr.w r1, [pc, 0x44c] |
0x000347d4 mov r3, r7 | r3 = r7;
0x000347d6 mov r2, fp | r2 = fp;
0x000347d8 mov r0, r5 | r0 = r5;
0x000347da str r5, [sp] | *(sp) = r5;
0x000347dc add r1, pc | r1 = 0x69400;
0x000347de adds r1, 7 | r1 += 7;
0x000347e0 str r1, [sp, 4] | var_4h = r1;
0x000347e2 ldr.w r1, [pc, 0x440] |
0x000347e6 add r1, pc | r1 = 0x69410;
0x000347e8 str r1, [sp, 0x10] | var_10h = r1;
0x000347ea ldr.w r1, [pc, 0x43c] |
0x000347ee add r1, pc | r1 = 0x6941c;
0x000347f0 str r1, [sp, 0xc] | var_ch = r1;
0x000347f2 mov.w r1, 0x240 | r1 = 0x240;
0x000347f6 str r1, [sp, 8] | var_8h = r1;
0x000347f8 movs r1, 4 | r1 = 4;
0x000347fa bl 0x722f4 | fcn_000722f4 (r0, r1, r2, r3, r4, r5, r6);
0x000347fe b 0x34774 | goto label_7;
| label_39:
0x00034800 ldr r0, [sp, 0x54] | r0 = dest;
0x00034802 blx 0x8dac | fcn_00008dac ();
| label_14:
0x00034806 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x0003480a cmp r0, 2 |
| if (r0 > 2) {
0x0003480c bgt.w 0x34a10 | goto label_43;
| }
0x00034810 rsb.w r3, fp, 0 | r3 = fp - ;
0x00034814 uxtb r3, r3 | r3 = (int8_t) r3;
0x00034816 rsbs r3, r3, 0 | r3 -= ;
0x00034818 str r3, [sp, 0x1c] | var_1ch = r3;
| label_11:
0x0003481a ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x0003481c cmp r3, 0 |
0x0003481e it ge |
| if (r3 < 0) {
0x00034820 mvnge r3, 0x55 | r3 = ~0x55;
| }
0x00034824 str r3, [sp, 0x1c] | var_1ch = r3;
| label_10:
0x00034826 ldr r0, [sp, 0x50] | r0 = var_50h;
| if (r0 != 0) {
0x00034828 cbz r0, 0x34830 |
0x0003482a bl 0x7b004 | fcn_0007b004 (r0);
0x0003482e str r0, [sp, 0x50] | var_50h = r0;
| }
0x00034830 ldr r5, [sp, 0x28] | r5 = var_28h;
0x00034832 ldr r0, [r5] | r0 = *(r5);
0x00034834 bl 0x33bdc | fcn_00033bdc (r0);
0x00034838 ldr r0, [r5, 4] | r0 = *((r5 + 4));
0x0003483a bl 0x7a6a0 | fcn_0007a6a0 (r0);
0x0003483e mov r0, r5 | r0 = r5;
0x00034840 blx 0x8dac | fcn_00008dac ();
| label_13:
0x00034844 mov r0, r4 | r0 = r4;
0x00034846 blx 0x8dac | fcn_00008dac ();
0x0003484a ldr r2, [pc, 0x3e0] |
0x0003484c ldr r3, [pc, 0x388] | r3 = *(0x34bd8);
0x0003484e add r2, pc | r2 = 0x69480;
0x00034850 ldr r3, [r2, r3] | r3 = *(0x69480);
0x00034852 ldr r2, [r3] | r2 = *(0x69480);
0x00034854 ldr r3, [sp, 0xd4] | r3 = var_d4h;
0x00034856 eors r2, r3 | r2 ^= r3;
0x00034858 mov.w r3, 0 | r3 = 0;
| if (r2 != r3) {
0x0003485c bne.w 0x34a4c | goto label_44;
| }
0x00034860 ldr r0, [sp, 0x1c] | r0 = var_1ch;
0x00034862 add sp, 0xdc |
0x00034864 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc} |
0x00034866 ldrh r0, [r6, 0x3e] | r0 = *((r6 + 0x3e));
| label_37:
0x00034868 ldr r6, [pc, 0x3c4] |
0x0003486a movs r1, 0 | r1 = 0;
0x0003486c ldr r3, [pc, 0x3c4] |
0x0003486e movs r0, 7 | r0 = 7;
0x00034870 ldr r5, [pc, 0x3c4] |
0x00034872 add r6, pc | r6 = 0x694a6;
0x00034874 add r3, pc | r3 = 0x694ac;
0x00034876 adds r6, 7 | r6 += 7;
0x00034878 add r5, pc | r5 = 0x694b4;
0x0003487a mov r2, r6 | r2 = r6;
0x0003487c str r3, [sp, 4] | var_4h = r3;
0x0003487e mov.w r3, 0x270 | r3 = 0x270;
0x00034882 str r5, [sp] | *(sp) = r5;
0x00034884 bl 0x71448 | fcn_00071448 ();
0x00034888 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x0003488c cmp r0, 6 |
| if (r0 <= 6) {
0x0003488e ble.w 0x34590 | goto label_8;
| }
0x00034892 ldr r4, [sp, 0x28] | r4 = var_28h;
0x00034894 mov r2, r6 | r2 = r6;
0x00034896 movs r1, 0 | r1 = 0;
0x00034898 movs r0, 7 | r0 = 7;
0x0003489a ldr r3, [r4, 8] | r3 = *((r4 + 8));
0x0003489c str r5, [sp] | *(sp) = r5;
0x0003489e str r3, [sp, 0xc] | var_ch = r3;
0x000348a0 add.w r3, r3, r3, lsl 2 | r3 += (r3 << 2);
0x000348a4 lsls r3, r3, 2 | r3 <<= 2;
0x000348a6 str r3, [sp, 8] | var_8h = r3;
0x000348a8 ldr r3, [pc, 0x390] |
0x000348aa add r3, pc | r3 = 0x694ea;
0x000348ac str r3, [sp, 4] | var_4h = r3;
0x000348ae movw r3, 0x271 | r3 = 0x271;
0x000348b2 bl 0x71448 | fcn_00071448 ();
0x000348b6 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x000348ba cmp r0, 6 |
| if (r0 <= 6) {
0x000348bc ble.w 0x34590 | goto label_8;
| }
0x000348c0 ldr r3, [r4, 0xc] | r3 = *((r4 + 0xc));
0x000348c2 mov r2, r6 | r2 = r6;
0x000348c4 movs r1, 0 | r1 = 0;
0x000348c6 movs r0, 7 | r0 = 7;
0x000348c8 str r5, [sp] | *(sp) = r5;
0x000348ca str r3, [sp, 0xc] | var_ch = r3;
0x000348cc lsls r3, r3, 3 | r3 <<= 3;
0x000348ce str r3, [sp, 8] | var_8h = r3;
0x000348d0 ldr r3, [pc, 0x36c] |
0x000348d2 add r3, pc | r3 = 0x69516;
0x000348d4 str r3, [sp, 4] | var_4h = r3;
0x000348d6 movw r3, 0x273 | r3 = 0x273;
0x000348da bl 0x71448 | fcn_00071448 ();
0x000348de bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x000348e2 cmp r0, 6 |
| if (r0 <= 6) {
0x000348e4 ble.w 0x34590 | goto label_8;
| }
0x000348e8 ldr r3, [r4, 0x10] | r3 = *((r4 + 0x10));
0x000348ea mov r2, r6 | r2 = r6;
0x000348ec movs r1, 0 | r1 = 0;
0x000348ee movs r0, 7 | r0 = 7;
0x000348f0 str r5, [sp] | *(sp) = r5;
0x000348f2 str r3, [sp, 0xc] | var_ch = r3;
0x000348f4 add.w r3, r3, r3, lsl 2 | r3 += (r3 << 2);
0x000348f8 lsls r3, r3, 2 | r3 <<= 2;
0x000348fa str r3, [sp, 8] | var_8h = r3;
0x000348fc ldr r3, [pc, 0x344] |
0x000348fe add r3, pc | r3 = 0x69546;
0x00034900 str r3, [sp, 4] | var_4h = r3;
0x00034902 movw r3, 0x275 | r3 = 0x275;
0x00034906 bl 0x71448 | fcn_00071448 ();
0x0003490a bl 0x70bf8 | fcn_00070bf8 ();
0x0003490c invalid |
| if (r3 <= r3) {
0x00034910 ble.w 0x34590 | goto label_8;
| }
0x00034914 ldr r3, [r4, 4] | r3 = *((r4 + 4));
0x00034916 mov r2, r6 | r2 = r6;
0x00034918 movs r1, 0 | r1 = 0;
0x0003491a movs r0, 7 | r0 = 7;
0x0003491c ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x0003491e str r5, [sp] | *(sp) = r5;
0x00034920 str r3, [sp, 8] | var_8h = r3;
0x00034922 ldr r3, [pc, 0x324] |
0x00034924 add r3, pc | r3 = 0x69572;
0x00034926 str r3, [sp, 4] | var_4h = r3;
0x00034928 movw r3, 0x277 | r3 = 0x277;
0x0003492c bl 0x71448 | fcn_00071448 ();
0x00034930 bl 0x70bf8 | fcn_00070bf8 ();
0x00034932 vld2.8 {d18, d19}, [r2], r6 | __asm ("vld2.8 {d18, d19}, [r2], r6");
| if (r0 <= 7) {
0x00034936 ble.w 0x34590 | goto label_8;
| }
0x0003493a str r4, [sp, 0x28] | var_28h = r4;
0x0003493c movw r3, 0x279 | r3 = 0x279;
0x00034940 ldr r4, [r4, 4] | r4 = *((r4 + 4));
0x00034942 mov r2, r6 | r2 = r6;
0x00034944 ldr.w ip, [pc, 0x304] |
0x00034948 movs r1, 0 | r1 = 0;
0x0003494a movs r0, 7 | r0 = 7;
0x0003494c ldr r7, [r4, 0x10] | r7 = *((r4 + 0x10));
0x0003494e add ip, pc | ip = 0x6959e;
0x00034950 str r7, [sp, 0xc] | var_ch = r7;
0x00034952 ldr r4, [r4, 0x14] | r4 = *((r4 + 0x14));
0x00034954 str r5, [sp] | *(sp) = r5;
0x00034956 strd ip, r4, [sp, 4] | __asm ("strd ip, r4, [var_8h]");
0x0003495a bl 0x71448 | fcn_00071448 ();
0x0003495e bl 0x70bf8 | fcn_00070bf8 ();
0x00034960 vst2.8 {d18, d19}, [fp], r6 | __asm ("vst2.8 {d18, d19}, [fp], r6");
| if (r0 <= 7) {
0x00034964 ble.w 0x34590 | goto label_8;
| }
0x00034968 ldr r4, [sp, 0x28] | r4 = var_28h;
0x0003496a mov r2, r6 | r2 = r6;
0x0003496c ldr r6, [pc, 0x2e0] |
0x0003496e movw r3, 0x27b | r3 = 0x27b;
0x00034972 movs r1, 0 | r1 = 0;
0x00034974 movs r0, 7 | r0 = 7;
0x00034976 ldr r7, [r4, 4] | r7 = *((r4 + 4));
0x00034978 add r6, pc | r6 = 0x695cc;
0x0003497a ldr r4, [r7, 0x1c] | r4 = *((r7 + 0x1c));
0x0003497c str r4, [sp, 0xc] | var_ch = r4;
0x0003497e ldr r4, [r7, 0x18] | r4 = *((r7 + 0x18));
0x00034980 strd r5, r6, [sp] | __asm ("strd r5, r6, [sp]");
0x00034984 str r4, [sp, 8] | var_8h = r4;
0x00034986 bl 0x71448 | fcn_00071448 ();
0x0003498a ldr r3, [sp, 0x44] | r3 = var_44h;
0x0003498c cmp r3, 0 |
| if (r3 != 0) {
0x0003498e bne.w 0x34598 | goto label_9;
| }
| label_38:
0x00034992 ldr r3, [pc, 0x2c0] |
0x00034994 add r3, pc | r3 = 0x695ee;
0x00034996 str r3, [sp, 0x44] | var_44h = r3;
0x00034998 b 0x34598 | goto label_9;
| label_40:
0x0003499a blx 0x9628 | r0 = fcn_00009628 ();
0x0003499e ldr r5, [r0] | r5 = *(r0);
0x000349a0 ldr r0, [sp, 0x58] | r0 = socket;
0x000349a2 blx 0x8b68 | recv (r0, r1);
0x000349a6 ldr r0, [sp, 0x54] | r0 = dest;
0x000349a8 blx 0x8f68 | fcn_00008f68 ();
0x000349ac ldr r0, [sp, 0x54] | r0 = dest;
0x000349ae blx 0x8dac | fcn_00008dac ();
0x000349b0 ldrd r2, sp, [lr, 0]! | __asm ("ldrd r2, sp, [lr, 0]!");
| if (r3 > 0) {
0x000349b4 bgt 0x34a50 | goto label_45;
| }
| label_17:
0x000349b6 movs r2, 0 | r2 = 0;
0x000349b8 mov r1, r4 | r1 = r4;
0x000349ba mov r0, r4 | r0 = r4;
0x000349bc bl 0x34e08 | fcn_00034e08 (r0, r1, r2);
0x000349c0 ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x000349c2 bics.w r3, r3, r0, asr 32 | __asm ("bics.w r3, r3, r0, asr 32");
0x000349c6 it hs |
| if (r2 < 0) {
0x000349c8 movhs r3, r0 | r3 = r0;
| }
0x000349ca str r3, [sp, 0x1c] | var_1ch = r3;
0x000349cc b 0x34826 | goto label_10;
| label_20:
0x000349ce bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x000349d2 cmp r0, 2 |
| if (r0 > 2) {
0x000349d4 bgt 0x349ee | goto label_46;
| }
0x000349d6 rsbs r3, r5, 0 | r3 = r5 - ;
0x000349d8 uxtb r3, r3 | r3 = (int8_t) r3;
0x000349da rsbs r3, r3, 0 | r3 -= ;
0x000349dc str r3, [sp, 0x1c] | var_1ch = r3;
| do {
0x000349de ldr r3, [sp, 0x1c] | r3 = var_1ch;
0x000349e0 movs r4, 0 | r4 = 0;
0x000349e2 cmp r3, 0 |
0x000349e4 itt ge |
| if (r3 < 0) {
0x000349e6 mvnge r3, 0x55 | r3 = ~0x55;
| }
| if (r3 >= 0) {
0x000349ea str r3, [sp, 0x1c] | var_1ch = r3;
| }
0x000349ec b 0x34826 | goto label_10;
| label_46:
0x000349ee ldr r2, [pc, 0x268] |
0x000349f0 mov r1, r5 | r1 = r5;
0x000349f2 ldr r0, [pc, 0x268] |
0x000349f4 ldr r3, [pc, 0x268] |
0x000349f6 add r2, pc | r2 = 0x69654;
0x000349f8 add r0, pc | r0 = 0x6965a;
0x000349fa adds r2, 7 | r2 += 7;
0x000349fc add r3, pc | r3 = 0x69660;
0x000349fe strd r3, r0, [sp] | __asm ("strd r3, r0, [sp]");
0x00034a00 adds r0, 0 | r0 += 0;
0x00034a02 movw r3, 0x265 | r3 = 0x265;
0x00034a06 movs r0, 3 | r0 = 3;
0x00034a08 bl 0x71448 | fcn_00071448 ();
0x00034a0c str r0, [sp, 0x1c] | var_1ch = r0;
0x00034a0e b 0x349de |
| } while (1);
| label_43:
0x00034a10 ldr r3, [pc, 0x250] |
0x00034a12 mov r1, fp | r1 = fp;
0x00034a14 ldr r2, [pc, 0x250] |
0x00034a16 movs r0, 3 | r0 = 3;
0x00034a18 str r4, [sp, 8] | var_8h = r4;
0x00034a1a add r3, pc | r3 = 0x69682;
0x00034a1c str r3, [sp, 4] | var_4h = r3;
0x00034a1e add r2, pc | r2 = 0x6968a;
0x00034a20 ldr r3, [pc, 0x248] |
0x00034a22 adds r2, 7 | r2 += 7;
0x00034a24 add r3, pc | r3 = 0x69694;
0x00034a26 str r3, [sp] | *(sp) = r3;
0x00034a28 movw r3, 0x285 | r3 = 0x285;
0x00034a2c bl 0x71448 | fcn_00071448 ();
0x00034a30 str r0, [sp, 0x1c] | var_1ch = r0;
0x00034a32 b 0x3481a | goto label_11;
| label_21:
0x00034a34 str r3, [sp, 0x1c] | var_1ch = r3;
0x00034a36 b 0x3457e | goto label_12;
| label_19:
0x00034a38 mvn r3, 0xb | r3 = ~0xb;
0x00034a3c movs r4, 0 | r4 = 0;
0x00034a3e str r3, [sp, 0x1c] | var_1ch = r3;
0x00034a40 b 0x34826 | goto label_10;
| label_18:
0x00034a42 mvn r3, 0xb | r3 = ~0xb;
0x00034a46 ldr r4, [sp, 0x28] | r4 = var_28h;
0x00034a48 str r3, [sp, 0x1c] | var_1ch = r3;
0x00034a4a b 0x34844 | goto label_13;
| label_44:
0x00034a4c blx 0x927c | fprintf_chk ()
| label_45:
0x00034a50 rsb.w fp, r5, 0 |
0x00034a54 b 0x34806 | goto label_14;
| label_23:
0x00034a56 blx 0x9628 | r0 = fcn_00009628 ();
0x00034a5a ldr r5, [r0] | r5 = *(r0);
0x00034a5c rsbs r5, r5, 0 | r5 -= ;
0x00034a5e b 0x3454a | goto label_15;
| label_41:
0x00034a60 mov r1, r5 | r1 = r5;
0x00034a62 ldr r5, [pc, 0x20c] |
0x00034a64 ldr r3, [pc, 0x20c] |
0x00034a66 movs r0, 7 | r0 = 7;
0x00034a68 ldr.w sb, [pc, 0x20c] |
0x00034a6c add r5, pc | r5 = 0x696e2;
0x00034a6e add r3, pc | r3 = 0x696e6;
0x00034a70 adds r5, 7 | r5 += 7;
0x00034a72 add sb, pc | sb = 0x696ee;
0x00034a74 mov r2, r5 | r2 = r5;
0x00034a76 str r3, [sp, 4] | var_4h = r3;
0x00034a78 movw r3, 0x19f | r3 = 0x19f;
0x00034a7c str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x00034a80 bl 0x71448 | fcn_00071448 ();
0x00034a84 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034a88 cmp r0, 6 |
| if (r0 <= 6) {
0x00034a8a ble.w 0x34706 | goto label_16;
| }
0x00034a8e ldr r3, [pc, 0x1ec] |
0x00034a90 mov r2, r5 | r2 = r5;
0x00034a92 movs r1, 0 | r1 = 0;
0x00034a94 movs r0, 7 | r0 = 7;
0x00034a96 strd r8, r7, [sp, 8] | __asm ("strd r8, r7, [var_8h]");
0x00034a9a add r3, pc | r3 = 0x6971c;
0x00034a9c str.w sb, [sp] | __asm ("str.w sb, [sp]");
0x00034aa0 str r3, [sp, 4] | var_4h = r3;
0x00034aa2 mov.w r3, 0x1a0 | r3 = 0x1a0;
0x00034aa6 bl 0x71448 | fcn_00071448 ();
0x00034aaa bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034aae cmp r0, 6 |
| if (r0 <= 6) {
0x00034ab0 ble.w 0x34706 | goto label_16;
| }
0x00034ab4 ldr r3, [pc, 0x1c8] |
0x00034ab6 mov r2, r5 | r2 = r5;
0x00034ab8 ldr r7, [pc, 0x1c8] |
0x00034aba movs r1, 0 | r1 = 0;
0x00034abc movs r0, 7 | r0 = 7;
0x00034abe add r3, pc | r3 = 0x69742;
0x00034ac0 str r3, [sp, 4] | var_4h = r3;
0x00034ac2 add r7, pc | r7 = 0x6974a;
0x00034ac4 movs r3, 0x50 | r3 = 0x50;
0x00034ac6 str r7, [sp] | *(sp) = r7;
0x00034ac8 str r3, [sp, 8] | var_8h = r3;
0x00034aca movw r3, 0x1a1 | r3 = 0x1a1;
0x00034ace bl 0x71448 | fcn_00071448 ();
0x00034ad2 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034ad6 cmp r0, 6 |
| if (r0 <= 6) {
0x00034ad8 ble.w 0x34706 | goto label_16;
| }
0x00034adc ldr r1, [sp, 0x68] | r1 = var_68h;
0x00034ade ldr r3, [sp, 0x6c] | r3 = var_6ch;
0x00034ae0 str r7, [sp] | *(sp) = r7;
0x00034ae2 adds r2, r1, r1 | r2 = r1 + r1;
0x00034ae4 str r1, [sp, 0x10] | var_10h = r1;
0x00034ae6 adc.w r0, r3, r3 | __asm ("adc.w r0, r3, r3");
0x00034aea adds r2, r2, r1 | r2 += r1;
0x00034aec str r3, [sp, 0x14] | var_14h = r3;
0x00034aee adc.w r3, r3, r0 | __asm ("adc.w r3, r3, r0");
0x00034af2 lsls r3, r3, 3 | r3 <<= 3;
0x00034af4 movs r1, 0 | r1 = 0;
0x00034af6 movs r0, 7 | r0 = 7;
0x00034af8 orr.w r3, r3, r2, lsr 29 | r3 |= (r2 >> 29);
0x00034afc lsls r2, r2, 3 | r2 <<= 3;
0x00034afe str r3, [sp, 0xc] | var_ch = r3;
0x00034b00 ldr r3, [pc, 0x184] |
0x00034b02 str r2, [sp, 8] | var_8h = r2;
0x00034b04 mov r2, r5 | r2 = r5;
0x00034b06 add r3, pc | r3 = 0x69792;
0x00034b08 str r3, [sp, 4] | var_4h = r3;
0x00034b0a mov.w r3, 0x1a2 | r3 = 0x1a2;
0x00034b0e bl 0x71448 | fcn_00071448 ();
0x00034b12 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034b16 cmp r0, 6 |
| if (r0 <= 6) {
0x00034b18 ble.w 0x34706 | goto label_16;
| }
0x00034b1a add r5, sp, 0x3d4 | r5 = sp + 0x3d4;
0x00034b1c ldr r3, [sp, 0x74] | r3 = var_74h;
0x00034b1e movs r1, 0 | r1 = 0;
0x00034b20 ldr r2, [sp, 0x70] | r2 = var_70h;
0x00034b22 movs r0, 7 | r0 = 7;
0x00034b24 str r7, [sp] | *(sp) = r7;
0x00034b26 str r3, [sp, 0x14] | var_14h = r3;
0x00034b28 lsls r3, r3, 4 | r3 <<= 4;
0x00034b2a str r2, [sp, 0x10] | var_10h = r2;
0x00034b2c orr.w r3, r3, r2, lsr 28 | r3 |= (r2 >> 28);
0x00034b2e strb r2, [r2, 0xc] | *((r2 + 0xc)) = r2;
0x00034b30 lsls r2, r2, 4 | r2 <<= 4;
0x00034b32 str r3, [sp, 0xc] | var_ch = r3;
0x00034b34 ldr r3, [pc, 0x154] |
0x00034b36 str r2, [sp, 8] | var_8h = r2;
0x00034b38 mov r2, r5 | r2 = r5;
0x00034b3a add r3, pc | r3 = 0x697ca;
0x00034b3c str r3, [sp, 4] | var_4h = r3;
0x00034b3e mov.w r3, 0x1a4 | r3 = 0x1a4;
0x00034b42 bl 0x71448 | fcn_00071448 ();
0x00034b46 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034b4a cmp r0, 6 |
| if (r0 <= 6) {
0x00034b4c ble.w 0x34706 | goto label_16;
| }
0x00034b50 ldr r3, [sp, 0x78] | r3 = var_78h;
0x00034b52 movs r0, 7 | r0 = 7;
0x00034b54 ldr r1, [sp, 0x7c] | r1 = var_7ch;
0x00034b56 str r7, [sp] | *(sp) = r7;
0x00034b58 str r3, [sp, 0x10] | var_10h = r3;
0x00034b5a umull r3, r2, r6, r3 | r3:r2 = r6 * r3;
0x00034b5e str r1, [sp, 0x14] | var_14h = r1;
0x00034b60 mla r2, r6, r1, r2 | __asm ("mla r2, r6, r1, r2");
0x00034b64 movs r1, 0 | r1 = 0;
0x00034b66 strd r3, r2, [sp, 8] | __asm ("strd r3, r2, [var_8h]");
0x00034b6a mov r2, r5 | r2 = r5;
0x00034b6c ldr r3, [pc, 0x120] |
0x00034b6e add r3, pc | r3 = 0x69802;
0x00034b70 str r3, [sp, 4] | var_4h = r3;
0x00034b72 mov.w r3, 0x1a6 | r3 = 0x1a6;
0x00034b76 bl 0x71448 | fcn_00071448 ();
0x00034b7a bl 0x70bf8 | fcn_00070bf8 ();
0x00034b7c invalid |
| if (r1 <= 0) {
0x00034b80 ble.w 0x34706 | goto label_16;
| }
0x00034b84 ldr r3, [sp, 0x28] | r3 = var_28h;
0x00034b86 mov r2, r5 | r2 = r5;
0x00034b88 movs r1, 0 | r1 = 0;
0x00034b8a movs r0, 7 | r0 = 7;
0x00034b8c ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x00034b8e ldr r3, [r3, 4] | r3 = *((r3 + 4));
0x00034b90 str r7, [sp] | *(sp) = r7;
0x00034b92 str r3, [sp, 8] | var_8h = r3;
0x00034b94 ldr r3, [pc, 0xfc] |
0x00034b96 add r3, pc | r3 = 0x6982e;
0x00034b98 str r3, [sp, 4] | var_4h = r3;
0x00034b9a mov.w r3, 0x1a8 | r3 = 0x1a8;
0x00034b9e bl 0x71448 | fcn_00071448 ();
0x00034ba2 bl 0x70bf8 | r0 = fcn_00070bf8 ();
0x00034ba6 cmp r0, 6 |
| if (r0 <= 6) {
0x00034ba8 ble.w 0x34706 | goto label_16;
| }
0x00034bac ldr r1, [pc, 0xe8] |
0x00034bae movw r3, 0x1a9 | r3 = 0x1a9;
0x00034bb2 str r7, [sp] | *(sp) = r7;
0x00034bb4 mov r2, r5 | r2 = r5;
0x00034bb6 ldrd r6, r7, [sp, 0x60] | __asm ("ldrd r6, r7, [var_60h]");
0x00034bba movs r0, 7 | r0 = 7;
0x00034bbc add r1, pc | r1 = 0x69858;
0x00034bbe str r1, [sp, 4] | var_4h = r1;
0x00034bc0 movs r1, 0 | r1 = 0;
0x00034bc2 strd r6, r7, [sp, 8] | __asm ("strd r6, r7, [var_8h]");
0x00034bc6 bl 0x71448 | fcn_00071448 ();
0x00034bca ldr r0, [sp, 0x54] | r0 = dest;
0x00034bcc blx 0x8dac | fcn_00008dac ();
0x00034bd0 b 0x349b6 | goto label_17;
| }
[*] Function printf used 4 times udevadm