Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __int64 __fastcall AppleUSBXHCIPCI::createPorts(AppleUSBXHCIPCI *this)
- {
- AppleUSBXHCIPCI *v1; // r14@1
- __int64 v2; // rax@1
- __int64 v3; // rax@1
- __int64 v4; // rdi@2
- __int64 v5; // rax@3
- __int64 v6; // rax@4
- __int64 v7; // rsi@4
- __int64 v8; // rax@4
- int v9; // eax@5
- signed int v10; // ecx@5
- unsigned __int64 v11; // rax@8
- unsigned __int64 v12; // r9@8
- int v13; // er15@8
- int v14; // er10@10
- unsigned __int64 v15; // r13@11
- __int64 v16; // STA8_8@12
- int v17; // ST88_4@12
- OSNumber *v18; // rax@12
- OSNumber *v19; // ST58_8@12
- __int64 v20; // rax@12
- unsigned int v21; // ebx@15
- int v22; // er15@15
- signed int v23; // eax@16
- int v24; // eax@24
- __int64 v25; // STA8_8@26
- int v26; // ST88_4@26
- OSNumber *v27; // rax@26
- OSNumber *v28; // ST58_8@26
- __int64 v29; // rax@26
- __int64 v30; // rbx@27
- int v31; // eax@27
- int v32; // ebx@31
- int v33; // er12@33
- int v34; // er15@34
- int v35; // er15@35
- AppleUSBXHCIPCI *v36; // r13@35
- unsigned __int64 v37; // r14@35
- __int64 v38; // r9@36
- int v39; // eax@36
- __int64 v40; // STA8_8@38
- int v41; // STBC_4@38
- __int64 v42; // rax@38
- __int64 v43; // rbx@38
- __int64 v44; // rax@38
- __int64 v45; // rax@41
- __int64 v46; // r13@42
- __int64 v47; // rax@42
- unsigned int v48; // edx@42
- __int64 v49; // STA8_8@43
- int v50; // STBC_4@43
- __int64 v51; // rax@43
- __int64 v52; // rbx@43
- __int64 v53; // rax@43
- int v54; // eax@45
- __int64 v55; // rbx@47
- char v56; // r15@47
- __int64 v57; // r15@49
- __int64 v58; // rax@49
- __int64 v59; // rax@49
- __int64 v60; // rax@53
- __int64 v61; // r15@53
- int v62; // eax@55
- __int64 v63; // ST40_8@57
- int v64; // ST38_4@57
- __int64 v65; // rax@57
- __int64 v66; // ST30_8@57
- __int64 v67; // rax@57
- __int64 v68; // ST48_8@57
- __int64 v69; // rbx@57
- int *v70; // rax@57
- __int64 v71; // r8@57
- __int64 v72; // ST40_8@58
- int v73; // ST38_4@58
- __int64 v74; // rax@58
- __int64 v75; // ST30_8@58
- __int64 v76; // rax@58
- __int64 v77; // ST48_8@58
- __int64 v78; // rbx@58
- int *v79; // rax@58
- __int64 v80; // r8@58
- __int64 v81; // rax@59
- __int64 v82; // rax@61
- __int64 v83; // r9@67
- int v84; // eax@67
- __int64 v85; // ST40_8@69
- int v86; // ST48_4@69
- __int64 v87; // rax@69
- __int64 v88; // r15@69
- __int64 v89; // rbx@69
- __int64 v90; // rax@69
- __int64 v91; // rcx@69
- __int64 v92; // ST40_8@70
- int v93; // ST48_4@70
- __int64 v94; // rax@70
- __int64 v95; // r15@70
- __int64 v96; // rbx@70
- __int64 v97; // rax@70
- __int64 v98; // rcx@70
- __int64 v99; // r9@77
- int v100; // eax@77
- __int64 v101; // ST40_8@79
- int v102; // ST48_4@79
- __int64 v103; // rax@79
- __int64 v104; // r15@79
- __int64 v105; // rax@79
- __int64 v106; // r9@81
- int v107; // eax@81
- __int64 v108; // ST40_8@83
- int v109; // ST48_4@83
- __int64 v110; // rax@83
- __int64 v111; // r15@83
- __int64 v112; // rbx@83
- __int64 v113; // rax@83
- __int64 v114; // rcx@83
- __int64 v115; // ST40_8@84
- int v116; // ST48_4@84
- __int64 v117; // rax@84
- __int64 v118; // r15@84
- __int64 v119; // rbx@84
- __int64 v120; // rax@84
- __int64 v121; // rcx@84
- __int64 v122; // rax@86
- __int64 v123; // rdx@86
- __int64 v124; // rdi@86
- __int64 v125; // rsi@86
- __int64 v126; // ST40_8@87
- int v127; // ST48_4@87
- __int64 v128; // rax@87
- __int64 v129; // r15@87
- __int64 v130; // rbx@87
- __int64 v131; // rax@87
- __int64 v132; // rcx@87
- __int64 v133; // r9@95
- int v134; // eax@95
- __int64 v135; // r15@97
- int v136; // er13@97
- __int64 v137; // rax@97
- __int64 v138; // rbx@97
- __int64 v139; // rax@97
- __int64 v140; // r15@98
- int v141; // er13@98
- __int64 v142; // rax@98
- __int64 v143; // rbx@98
- __int64 v144; // rax@98
- int v145; // eax@100
- __int64 v146; // r12@103
- __int64 v147; // rbx@103
- __int64 v148; // rax@105
- __int64 v149; // r13@105
- unsigned __int64 v150; // rsi@105
- __int64 v151; // rbx@108
- unsigned __int64 v152; // r15@111
- AppleUSB30XHCIPort *v153; // r12@111
- int v154; // eax@112
- __int64 v155; // ST40_8@114
- int v156; // er12@114
- __int64 v157; // rax@114
- __int64 v158; // rbx@114
- __int64 v159; // rax@114
- __int64 v160; // ST40_8@115
- int v161; // er12@115
- __int64 v162; // rax@115
- __int64 v163; // rbx@115
- __int64 v164; // rax@115
- int v165; // eax@119
- __int64 v166; // ST40_8@121
- int v167; // er12@121
- AppleUSBXHCIPCI *v168; // rbx@121
- __int64 v169; // rax@121
- __int64 v170; // r14@121
- __int64 v171; // rax@121
- int v172; // eax@123
- __int64 v173; // r15@125
- int v174; // er12@125
- AppleUSBXHCIPCI *v175; // rbx@125
- __int64 v176; // rax@125
- __int64 v177; // r14@125
- __int64 v178; // rax@125
- __int64 v179; // ST40_8@126
- int v180; // er12@126
- __int64 v181; // rax@126
- __int64 v182; // rbx@126
- __int64 v183; // rax@126
- __int64 v184; // r15@127
- int v185; // er12@127
- __int64 v186; // rax@127
- __int64 v187; // rbx@127
- __int64 v188; // rax@127
- int v189; // eax@131
- AppleUSB30XHCIPort *v190; // rax@132
- AppleUSB30XHCIPort *v191; // rax@137
- __int64 v192; // rax@141
- __int64 v193; // rax@144
- __int64 v194; // rax@144
- void (__fastcall *v195)(_QWORD, _QWORD, _QWORD); // rbx@145
- __int64 v196; // rax@145
- AppleUSBXHCIPCI *v197; // rbx@151
- unsigned __int64 v198; // r14@151
- __int64 v199; // r9@151
- int v200; // eax@151
- __int64 v201; // r15@153
- int v202; // er12@153
- __int64 v203; // rax@153
- __int64 v204; // r13@153
- __int64 v205; // rax@153
- signed __int64 v206; // rsi@153
- __int64 v207; // r15@154
- int v208; // er12@154
- __int64 v209; // rax@154
- __int64 v210; // r13@154
- __int64 v211; // rax@154
- int (__fastcall *v212)(_QWORD, _QWORD); // rbx@159
- __int64 v213; // rax@159
- unsigned __int64 v214; // rax@159
- __int64 v215; // r9@162
- int v216; // eax@162
- __int64 v217; // STC0_8@164
- int v218; // er13@164
- __int64 v219; // rax@164
- __int64 v220; // r12@164
- __int64 v221; // rax@164
- int v222; // eax@166
- __int64 v223; // STC0_8@168
- int v224; // STBC_4@168
- __int64 v225; // rax@168
- __int64 v226; // r13@168
- __int64 v227; // rax@168
- int v228; // ST10_4@168
- __int64 v229; // r8@170
- __int64 v230; // r9@170
- int v231; // eax@170
- __int64 v232; // r15@172
- int v233; // er12@172
- __int64 v234; // rax@172
- __int64 v235; // rbx@172
- __int64 v236; // rax@172
- __int64 v237; // STC0_8@173
- int v238; // er13@173
- __int64 v239; // rax@173
- __int64 v240; // r12@173
- __int64 v241; // rax@173
- __int64 v242; // STC0_8@174
- int v243; // STBC_4@174
- __int64 v244; // rax@174
- __int64 v245; // r13@174
- __int64 v246; // rax@174
- int v247; // ST10_4@174
- __int64 v248; // r15@175
- int v249; // er12@175
- __int64 v250; // rax@175
- __int64 v251; // rbx@175
- __int64 v252; // rax@175
- __int64 v253; // r9@181
- int v254; // eax@181
- __int64 v255; // STC0_8@183
- int v256; // er13@183
- __int64 v257; // rax@183
- __int64 v258; // r15@183
- __int64 v259; // rax@183
- __int64 v260; // r9@185
- int v261; // eax@185
- __int64 v262; // STC0_8@187
- int v263; // er13@187
- __int64 v264; // rax@187
- __int64 v265; // rbx@187
- __int64 v266; // rax@187
- __int64 v267; // STC0_8@188
- int v268; // er13@188
- __int64 v269; // rax@188
- __int64 v270; // r15@188
- __int64 v271; // rax@188
- int v272; // eax@197
- __int64 v273; // r12@199
- int v274; // er13@199
- __int64 v275; // rax@199
- __int64 v276; // rbx@199
- __int64 v277; // rax@199
- int v278; // ST20_4@199
- int v279; // ST18_4@199
- int v280; // ST10_4@199
- int v281; // ST08_4@199
- __int64 v282; // r12@200
- int v283; // er13@200
- __int64 v284; // rax@200
- __int64 v285; // rbx@200
- __int64 v286; // rax@200
- int v287; // ST20_4@200
- int v288; // ST18_4@200
- int v289; // ST10_4@200
- int v290; // ST08_4@200
- int v291; // ST08_4@201
- int v292; // ST00_4@201
- __int64 v294; // STC0_8@204
- int v295; // er13@204
- __int64 v296; // rax@204
- __int64 v297; // rbx@204
- __int64 v298; // rax@204
- __int64 v299; // [sp+0h] [bp-210h]@0
- __int64 v300; // [sp+8h] [bp-208h]@0
- int *v301; // [sp+10h] [bp-200h]@0
- __int64 v302; // [sp+18h] [bp-1F8h]@0
- __int64 v303; // [sp+20h] [bp-1F0h]@0
- __int64 v304; // [sp+48h] [bp-1C8h]@112
- __int64 v305; // [sp+48h] [bp-1C8h]@119
- __int64 v306; // [sp+48h] [bp-1C8h]@123
- const void *v307; // [sp+50h] [bp-1C0h]@32
- OSNumber *v308; // [sp+58h] [bp-1B8h]@32
- __int64 v309; // [sp+60h] [bp-1B0h]@9
- char v310; // [sp+68h] [bp-1A8h]@8
- int v311; // [sp+6Ch] [bp-1A4h]@8
- __int64 v312; // [sp+70h] [bp-1A0h]@9
- __int64 v313; // [sp+78h] [bp-198h]@8
- signed __int64 v314; // [sp+78h] [bp-198h]@9
- unsigned int v315; // [sp+84h] [bp-18Ch]@10
- int v316; // [sp+88h] [bp-188h]@42
- __int64 v317; // [sp+90h] [bp-180h]@1
- signed int v318; // [sp+9Ch] [bp-174h]@9
- __int64 v319; // [sp+A0h] [bp-170h]@1
- __int64 v320; // [sp+A8h] [bp-168h]@41
- unsigned __int64 v321; // [sp+B0h] [bp-160h]@10
- int v322; // [sp+BCh] [bp-154h]@24
- int v323; // [sp+BCh] [bp-154h]@42
- unsigned int v324; // [sp+BCh] [bp-154h]@105
- int v325; // [sp+C0h] [bp-150h]@10
- int v326; // [sp+C0h] [bp-150h]@31
- int v327; // [sp+CCh] [bp-144h]@197
- __int64 v328; // [sp+D0h] [bp-140h]@197
- int v329; // [sp+DCh] [bp-134h]@181
- __int64 v330; // [sp+E0h] [bp-130h]@181
- int v331; // [sp+ECh] [bp-124h]@185
- __int64 v332; // [sp+F0h] [bp-120h]@185
- int v333; // [sp+FCh] [bp-114h]@112
- __int64 v334; // [sp+100h] [bp-110h]@112
- int v335; // [sp+10Ch] [bp-104h]@111
- char v336; // [sp+110h] [bp-100h]@111
- int v337; // [sp+114h] [bp-FCh]@123
- __int64 v338; // [sp+118h] [bp-F8h]@123
- int v339; // [sp+124h] [bp-ECh]@119
- __int64 v340; // [sp+128h] [bp-E8h]@119
- int v341; // [sp+134h] [bp-DCh]@95
- __int64 v342; // [sp+138h] [bp-D8h]@95
- int v343; // [sp+144h] [bp-CCh]@77
- __int64 v344; // [sp+148h] [bp-C8h]@77
- int v345; // [sp+154h] [bp-BCh]@81
- __int64 v346; // [sp+158h] [bp-B8h]@81
- int v347; // [sp+164h] [bp-ACh]@67
- __int64 v348; // [sp+168h] [bp-A8h]@67
- int v349; // [sp+174h] [bp-9Ch]@55
- __int64 v350; // [sp+178h] [bp-98h]@55
- __int64 v351; // [sp+180h] [bp-90h]@51
- int v352; // [sp+18Ch] [bp-84h]@151
- __int64 v353; // [sp+190h] [bp-80h]@151
- int v354; // [sp+19Ch] [bp-74h]@36
- __int64 v355; // [sp+1A0h] [bp-70h]@36
- int v356; // [sp+1ACh] [bp-64h]@166
- __int64 v357; // [sp+1B0h] [bp-60h]@166
- int v358; // [sp+1BCh] [bp-54h]@12
- __int64 v359; // [sp+1C0h] [bp-50h]@12
- int v360; // [sp+1CCh] [bp-44h]@162
- __int64 v361; // [sp+1D0h] [bp-40h]@162
- int v362; // [sp+1DCh] [bp-34h]@170
- __int64 v363; // [sp+1E0h] [bp-30h]@170
- v1 = this;
- LODWORD(v2) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)this + 696LL))(this, "ports");
- v317 = *(_QWORD *)off_E010[0];
- LODWORD(v3) = OSMetaClassBase::safeMetaCast(v2, *(_QWORD *)off_E010[0]);
- v319 = v3;
- if ( v3
- || (v4 = *((_QWORD *)this + 154)) != 0
- && (LODWORD(v5) = (*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v4 + 816LL))(v4, *(_QWORD *)off_E088[0]), v5) )
- {
- LODWORD(v6) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD, _QWORD, signed __int64))(*(_QWORD *)v1 + 720LL))(
- v1,
- "locationID",
- *(_QWORD *)off_E090[0],
- 3LL);
- v7 = *(_QWORD *)off_E040[0];
- LODWORD(v8) = OSMetaClassBase::safeMetaCast(v6, *(_QWORD *)off_E040[0]);
- if ( v8 )
- {
- v9 = (*(int (__fastcall **)(__int64, __int64))(*(_QWORD *)v8 + 328LL))(v8, v7);
- v10 = 20;
- do
- {
- if ( !((15 << v10) & v9) )
- break;
- v10 -= 4;
- }
- while ( v10 >= 0 );
- v310 = v10;
- v311 = v9;
- v313 = **((_BYTE **)v1 + 122);
- LODWORD(v11) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 2800LL))(
- v1,
- *((_QWORD *)v1 + 123));
- v12 = v11;
- v13 = 0;
- if ( !v11 )
- goto LABEL_191;
- v314 = v313 + 1024;
- v309 = *(_QWORD *)off_E048[0];
- v312 = *(_QWORD *)off_E0A0;
- v318 = 1;
- while ( 1 )
- {
- v321 = v12;
- v14 = *(_DWORD *)(v12 + 8);
- v325 = *(_DWORD *)(v12 + 8);
- v315 = *(_DWORD *)(v12 + 8) >> 28;
- if ( v315 )
- {
- v15 = 0LL;
- do
- {
- v21 = *(_DWORD *)(v12 + 4 * v15 + 16) >> 16;
- v22 = *(_DWORD *)(v12 + 4 * v15 + 16) & 0x30;
- if ( v21 == 1500 && (v23 = 0, v22 == 16)
- || (v23 = 1, v21 == 12 && v22 == 32)
- || v22 == 16 && v21 == 12000
- || v21 == 480 && (v23 = 2, v22 == 32)
- || (v23 = 3, v21 == 5 && v22 == 48)
- || v22 == 32 && v21 == 5000 )
- {
- v30 = (unsigned int)v23;
- v31 = *((_DWORD *)v1 + (unsigned int)v23 + 262);
- if ( v31 && v31 != (*(_DWORD *)(v12 + 4 * v15 + 16) & 0xF) )
- {
- v13 = -536870201;
- if ( *((_BYTE *)v1 + 804) & 1 )
- {
- clock_get_system_microtime(&v357, &v356);
- v222 = *((_DWORD *)v1 + 201);
- if ( v222 & 0x40000000 )
- {
- v242 = v357;
- v243 = v356;
- LODWORD(v244) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v245 = v244;
- LODWORD(v246) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- v247 = *((_DWORD *)v1 + 262);
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: speed index %d has inconsistent speed IDs (%d and %d)\n",
- v242,
- (unsigned int)v243,
- v245,
- v246,
- "AppleUSBXHCIPCI");
- }
- else if ( v222 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 670LL,
- 3LL,
- "speed index %d has inconsistent speed IDs (%d and %d)\n",
- (unsigned int)v30,
- *((_DWORD *)v1 + 262));
- }
- else
- {
- v223 = v357;
- v224 = v356;
- LODWORD(v225) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v226 = v225;
- LODWORD(v227) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- v228 = *((_DWORD *)v1 + 262);
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: speed index %d has inconsistent speed IDs (%d and %d)\n",
- v223,
- (unsigned int)v224,
- v226,
- v227,
- "AppleUSBXHCIPCI");
- }
- }
- return (unsigned int)v13;
- }
- *((_DWORD *)v1 + v30 + 262) = *(_DWORD *)(v12 + 4 * v15 + 16) & 0xF;
- }
- else if ( *((_BYTE *)v1 + 804) & 1 )
- {
- v322 = v14;
- v321 = v12;
- clock_get_system_microtime(&v359, &v358);
- v24 = *((_DWORD *)v1 + 201);
- if ( v24 & 0x40000000 )
- {
- v16 = v359;
- v17 = v358;
- LODWORD(v18) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v19 = v18;
- LODWORD(v20) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v301) = (unsigned int)v22 >> 4;
- LODWORD(v300) = v21;
- v299 = (__int64)"createPorts";
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: unsupported speed mantissa %d exponent %d\n",
- v16,
- (unsigned int)v17,
- v19,
- v20,
- "AppleUSBXHCIPCI");
- }
- else if ( v24 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 663LL,
- 2LL,
- "unsupported speed mantissa %d exponent %d\n",
- v21,
- (unsigned int)v22 >> 4);
- }
- else
- {
- v25 = v359;
- v26 = v358;
- LODWORD(v27) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v28 = v27;
- LODWORD(v29) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v301) = (unsigned int)v22 >> 4;
- LODWORD(v300) = v21;
- v299 = (__int64)"createPorts";
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: unsupported speed mantissa %d exponent %d\n",
- v25,
- (unsigned int)v26,
- v28,
- v29,
- "AppleUSBXHCIPCI");
- }
- v12 = v321;
- v14 = v322;
- }
- ++v15;
- }
- while ( v15 < v315 );
- }
- v32 = (unsigned __int8)v14 - 1;
- v326 = BYTE1(v325) + (unsigned __int8)v14 - 1;
- if ( v32 >= (unsigned int)v326 )
- goto LABEL_159;
- v308 = (OSNumber *)(unsigned int)v32;
- v307 = (const void *)(v12 + 4);
- while ( 2 )
- {
- v33 = 16 * v32 + 1024;
- while ( 1 )
- {
- v34 = v32++;
- if ( (unsigned int)v32 > *((_DWORD *)v1 + 206) )
- {
- v35 = v32;
- v36 = v1;
- v37 = v12;
- if ( *((_BYTE *)v36 + 804) & 0x18 )
- {
- clock_get_system_microtime(&v355, &v354);
- v39 = *((_DWORD *)v36 + 201);
- if ( v39 & 0x40000000 )
- {
- v49 = v355;
- v50 = v354;
- LODWORD(v51) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v36 + 904LL))(v36, 0LL);
- v52 = v51;
- LODWORD(v53) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v36 + 952LL))(v36, 0LL);
- LODWORD(v300) = v35;
- v299 = (__int64)"createPorts";
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: powering off unused port %d\n",
- v49,
- (unsigned int)v50,
- v52,
- v53,
- "AppleUSBXHCIPCI");
- }
- else if ( v39 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 683LL,
- 1LL,
- "powering off unused port %d\n",
- (unsigned int)v32,
- v38);
- }
- else
- {
- v40 = v355;
- v41 = v354;
- LODWORD(v42) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v36 + 904LL))(v36, 0LL);
- v43 = v42;
- LODWORD(v44) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v36 + 952LL))(v36, 0LL);
- LODWORD(v300) = v35;
- v299 = (__int64)"createPorts";
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: powering off unused port %d\n",
- v40,
- (unsigned int)v41,
- v43,
- v44,
- "AppleUSBXHCIPCI");
- }
- }
- v54 = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD, _QWORD))(*(_QWORD *)v36 + 2824LL))(
- v36,
- *((_QWORD *)v36 + 124),
- (unsigned int)v33);
- (*(void (__fastcall **)(AppleUSBXHCIPCI *, _QWORD, _QWORD, _QWORD))(*(_QWORD *)v36 + 2840LL))(
- v36,
- *((_QWORD *)v36 + 124),
- (unsigned int)v33,
- v54 & 0xFFFFFDFF);
- v12 = v37;
- v1 = v36;
- v32 = v35;
- goto LABEL_101;
- }
- if ( !*(_QWORD *)(*((_QWORD *)v1 + 102) + 8LL * (unsigned int)v34) )
- break;
- LABEL_101:
- v33 += 16;
- if ( v32 >= (unsigned int)v326 )
- goto LABEL_159;
- }
- if ( (unsigned int)v318 >= 0x10 )
- {
- if ( *((_DWORD *)v1 + 201) & 0x80000001 )
- {
- v197 = v1;
- v198 = v12;
- clock_get_system_microtime(&v353, &v352);
- v200 = *((_DWORD *)v197 + 201);
- if ( v200 & 0x40000000 )
- {
- v207 = v353;
- v208 = v352;
- LODWORD(v209) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v197 + 904LL))(v197, 0LL);
- v210 = v209;
- LODWORD(v211) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v197 + 952LL))(v197, 0LL);
- LODWORD(v300) = *((_DWORD *)v197 + 206) - 15;
- v299 = (__int64)"createPorts";
- v206 = v207;
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: ports limit reached. Not creating the remaining %d ports\n",
- v207,
- (unsigned int)v208,
- v210,
- v211,
- "AppleUSBXHCIPCI");
- }
- else if ( v200 & 0x20000000 )
- {
- v206 = 700LL;
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 700LL,
- 1LL,
- "ports limit reached. Not creating the remaining %d ports\n",
- (unsigned int)(*((_DWORD *)v197 + 206) - 15),
- v199);
- }
- else
- {
- v201 = v353;
- v202 = v352;
- LODWORD(v203) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v197 + 904LL))(v197, 0LL);
- v204 = v203;
- LODWORD(v205) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v197 + 952LL))(v197, 0LL);
- LODWORD(v300) = *((_DWORD *)v197 + 206) - 15;
- v299 = (__int64)"createPorts";
- v206 = v201;
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: ports limit reached. Not creating the remaining %d ports\n",
- v201,
- (unsigned int)v202,
- v204,
- v205,
- "AppleUSBXHCIPCI");
- }
- v12 = v198;
- if ( *((_DWORD *)v197 + 201) < 0 )
- {
- panic(
- "@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IOUSBHostFamily/IOUSBHostFamily-149.1.27/AppleUSBXHCI/AppleUSBXHCIPCI.cpp:700",
- v206,
- v299,
- v300,
- v301,
- v302,
- v303);
- v12 = v198;
- }
- v1 = v197;
- }
- break;
- }
- v320 = (unsigned int)v34;
- LODWORD(v45) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 2888LL))(
- v1,
- (unsigned int)v32);
- if ( v319 )
- {
- v316 = v34;
- v323 = v32;
- v46 = v45;
- LODWORD(v47) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 2896LL))(
- v1,
- (unsigned int)v32);
- }
- else
- {
- v316 = v34;
- v46 = v45;
- v323 = v32;
- LODWORD(v47) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, __int64, _QWORD))(*(_QWORD *)v1 + 2904LL))(
- v1,
- v45,
- (unsigned int)v32);
- }
- v55 = v47;
- v56 = 0;
- if ( v46 && v47 )
- {
- v57 = v47;
- LODWORD(v58) = (*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v46 + 696LL))(v46, "device-properties");
- LODWORD(v59) = OSMetaClassBase::safeMetaCast(v58, v317);
- if ( v59 )
- (*(void (__fastcall **)(__int64, _QWORD, __int64))(*(_QWORD *)v57 + 464LL))(v57, "device-properties", v59);
- v351 = 0LL;
- v55 = v57;
- if ( !(*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v46 + 2224LL))(v46, "MUXS")
- && !(*(int (__fastcall **)(__int64, _QWORD, __int64 *, _QWORD, _QWORD, _QWORD))(*(_QWORD *)v46 + 2240LL))(
- v46,
- "MUXS",
- &v351,
- 0LL,
- 0LL,
- 0LL) )
- {
- LODWORD(v60) = OSMetaClassBase::safeMetaCast(v351, v309);
- v61 = v60;
- if ( v60 )
- {
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- clock_get_system_microtime(&v350, &v349);
- v62 = *((_DWORD *)v1 + 201);
- if ( v62 & 0x40000000 )
- {
- v72 = v350;
- v73 = v349;
- LODWORD(v74) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v75 = v74;
- LODWORD(v76) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- v77 = v55;
- v78 = v76;
- LODWORD(v79) = (*(int (__fastcall **)(__int64))(*(_QWORD *)v61 + 328LL))(v61);
- v301 = v79;
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- v80 = v78;
- v55 = v77;
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: port %d has mux %s\n",
- v72,
- (unsigned int)v73,
- v75,
- v80,
- "AppleUSBXHCIPCI");
- }
- else if ( v62 & 0x20000000 )
- {
- LODWORD(v81) = (*(int (__fastcall **)(__int64, int *))(*(_QWORD *)v61 + 328LL))(v61, &v349);
- generateTracepoint("AppleUSBXHCIPCI", 732LL, 2LL, "port %d has mux %s\n", (unsigned int)v323, v81);
- }
- else
- {
- v63 = v350;
- v64 = v349;
- LODWORD(v65) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v66 = v65;
- LODWORD(v67) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- v68 = v55;
- v69 = v67;
- LODWORD(v70) = (*(int (__fastcall **)(__int64))(*(_QWORD *)v61 + 328LL))(v61);
- v301 = v70;
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- v71 = v69;
- v55 = v68;
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: port %d has mux %s\n",
- v63,
- (unsigned int)v64,
- v66,
- v71,
- "AppleUSBXHCIPCI");
- }
- }
- (*(void (__fastcall **)(__int64, _QWORD, __int64))(*(_QWORD *)v55 + 464LL))(v55, "UsbMux", v61);
- }
- }
- LODWORD(v82) = (*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v55 + 520LL))(
- v55,
- "kUSBHostPortPropertyCardReader");
- if ( v82
- && (unsigned __int8)(*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v82 + 64LL))(v82, *(_QWORD *)v312) )
- {
- if ( (*(int (__fastcall **)(_QWORD, _QWORD))(**((_QWORD **)v1 + 154) + 2224LL))(
- *((_QWORD *)v1 + 154),
- "SPWR") )
- {
- v56 = 0;
- }
- else
- {
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- clock_get_system_microtime(&v348, &v347);
- v84 = *((_DWORD *)v1 + 201);
- if ( v84 & 0x40000000 )
- {
- v92 = v348;
- v93 = v347;
- LODWORD(v94) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v95 = v55;
- v96 = v94;
- LODWORD(v97) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- v98 = v96;
- v55 = v95;
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: port %d has external power gpio\n",
- v92,
- (unsigned int)v93,
- v98,
- v97,
- "AppleUSBXHCIPCI");
- }
- else if ( v84 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 744LL,
- 1LL,
- "port %d has external power gpio\n",
- (unsigned int)v323,
- v83);
- }
- else
- {
- v85 = v348;
- v86 = v347;
- LODWORD(v87) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v88 = v55;
- v89 = v87;
- LODWORD(v90) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- v91 = v89;
- v55 = v88;
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: port %d has external power gpio\n",
- v85,
- (unsigned int)v86,
- v91,
- v90,
- "AppleUSBXHCIPCI");
- }
- }
- (*(void (__fastcall **)(__int64, _QWORD, _QWORD))(*(_QWORD *)v55 + 464LL))(
- v55,
- "kUSBHostPortExternalDevicePowerController",
- *((_QWORD *)v1 + 154));
- v56 = 1;
- }
- if ( (*(int (__fastcall **)(_QWORD, _QWORD))(**((_QWORD **)v1 + 154) + 2224LL))(
- *((_QWORD *)v1 + 154),
- "SRST") )
- {
- if ( !(*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v46 + 2224LL))(v46, "U3SD")
- && !(*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v46 + 2224LL))(v46, "SRST") )
- {
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- clock_get_system_microtime(&v344, &v343);
- v100 = *((_DWORD *)v1 + 201);
- if ( v100 & 0x40000000 )
- {
- v126 = v344;
- v127 = v343;
- LODWORD(v128) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 904LL))(
- v1,
- 0LL);
- v129 = v55;
- v130 = v128;
- LODWORD(v131) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v1 + 952LL))(
- v1,
- 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- v132 = v130;
- v55 = v129;
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: port %d has external power gpio\n",
- v126,
- (unsigned int)v127,
- v132,
- v131,
- "AppleUSBXHCIPCI");
- }
- else if ( v100 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 761LL,
- 1LL,
- "port %d has external power gpio\n",
- (unsigned int)v323,
- v99);
- }
- else
- {
- v101 = v344;
- v102 = v343;
- LODWORD(v103) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v104 = v103;
- LODWORD(v105) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: port %d has external power gpio\n",
- v101,
- (unsigned int)v102,
- v104,
- v105,
- "AppleUSBXHCIPCI");
- }
- }
- v122 = *(_QWORD *)v55;
- v124 = v55;
- v125 = (__int64)"kUSBHostPortExternalDeviceResetController";
- v123 = v46;
- goto LABEL_90;
- }
- }
- else
- {
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- clock_get_system_microtime(&v346, &v345);
- v107 = *((_DWORD *)v1 + 201);
- if ( v107 & 0x40000000 )
- {
- v115 = v346;
- v116 = v345;
- LODWORD(v117) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v118 = v55;
- v119 = v117;
- LODWORD(v120) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- v121 = v119;
- v55 = v118;
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: port %d has external reset gpio\n",
- v115,
- (unsigned int)v116,
- v121,
- v120,
- "AppleUSBXHCIPCI");
- }
- else if ( v107 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 753LL,
- 1LL,
- "port %d has external reset gpio\n",
- (unsigned int)v323,
- v106);
- }
- else
- {
- v108 = v346;
- v109 = v345;
- LODWORD(v110) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v111 = v55;
- v112 = v110;
- LODWORD(v113) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- v114 = v112;
- v55 = v111;
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: port %d has external reset gpio\n",
- v108,
- (unsigned int)v109,
- v114,
- v113,
- "AppleUSBXHCIPCI");
- }
- }
- v122 = *(_QWORD *)v55;
- v123 = *((_QWORD *)v1 + 154);
- v124 = v55;
- v125 = (__int64)"kUSBHostPortExternalDeviceResetController";
- LABEL_90:
- (*(void (__fastcall **)(__int64, __int64, __int64))(v122 + 464))(v124, v125, v123);
- v56 = 1;
- }
- }
- else
- {
- v56 = 0;
- }
- }
- if ( v46 )
- (*(void (__fastcall **)(__int64))(*(_QWORD *)v46 + 40LL))(v46);
- if ( !v55 )
- {
- if ( *((_BYTE *)v1 + 804) & 0x18 )
- {
- clock_get_system_microtime(&v342, &v341);
- v134 = *((_DWORD *)v1 + 201);
- if ( v134 & 0x40000000 )
- {
- v140 = v342;
- v141 = v341;
- LODWORD(v142) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v143 = v142;
- LODWORD(v144) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: powering off unused port %d\n",
- v140,
- (unsigned int)v141,
- v143,
- v144,
- "AppleUSBXHCIPCI");
- }
- else if ( v134 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 773LL,
- 1LL,
- "powering off unused port %d\n",
- (unsigned int)v323,
- v133);
- }
- else
- {
- v135 = v342;
- v136 = v341;
- LODWORD(v137) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v138 = v137;
- LODWORD(v139) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v300) = v323;
- v299 = (__int64)"createPorts";
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: powering off unused port %d\n",
- v135,
- (unsigned int)v136,
- v138,
- v139,
- "AppleUSBXHCIPCI");
- }
- }
- v145 = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD, _QWORD))(*(_QWORD *)v1 + 2824LL))(
- v1,
- *((_QWORD *)v1 + 124),
- (unsigned int)v33);
- (*(void (__fastcall **)(AppleUSBXHCIPCI *, _QWORD, _QWORD, _QWORD))(*(_QWORD *)v1 + 2840LL))(
- v1,
- *((_QWORD *)v1 + 124),
- (unsigned int)v33,
- v145 & 0xFFFFFDFF);
- v12 = v321;
- v32 = v323;
- goto LABEL_101;
- }
- v146 = v55;
- v147 = OSNumber::withNumber(v308, 0x20uLL, v48);
- if ( v147 )
- {
- (*(void (__fastcall **)(__int64, _QWORD, __int64))(*(_QWORD *)v146 + 464LL))(
- v146,
- "kUSBHostPortPropertyOffset",
- v147);
- (*(void (__fastcall **)(__int64))(*(_QWORD *)v147 + 40LL))(v147);
- }
- v324 = v316 + 1;
- LODWORD(v148) = IODeviceMemory::withSubRange(*((_QWORD *)v1 + 120), v314 + 16 * v320, 16LL);
- v149 = v148;
- v150 = v321;
- if ( *(_DWORD *)v307 == 541217621
- && (*(_DWORD *)v321 & 0xFF000000) == 50331648
- && !(*(_DWORD *)v321 & 0xFF0000) )
- {
- v151 = v146;
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- v305 = v146;
- clock_get_system_microtime(&v340, &v339);
- v165 = *((_DWORD *)v1 + 201);
- if ( v165 & 0x40000000 )
- {
- v179 = v340;
- v180 = v339;
- LODWORD(v181) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v182 = v181;
- LODWORD(v183) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v301) = v315;
- LODWORD(v300) = v316 + 1;
- v299 = (__int64)"createPorts";
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: port %d USB 3.0 with %d speed IDs\n",
- v179,
- (unsigned int)v180,
- v182,
- v183,
- "AppleUSBXHCIPCI");
- }
- else
- {
- if ( !(v165 & 0x20000000) )
- {
- v166 = v340;
- v167 = v339;
- v168 = v1;
- LODWORD(v169) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v170 = v169;
- LODWORD(v171) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v168 + 952LL))(
- v168,
- 0LL);
- LODWORD(v301) = v315;
- LODWORD(v300) = v316 + 1;
- v299 = (__int64)"createPorts";
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: port %d USB 3.0 with %d speed IDs\n",
- v166,
- (unsigned int)v167,
- v170,
- v171,
- "AppleUSBXHCIPCI");
- v150 = v321;
- v1 = v168;
- goto LABEL_130;
- }
- generateTracepoint("AppleUSBXHCIPCI", 799LL, 2LL, "port %d USB 3.0 with %d speed IDs\n", v324, v315);
- }
- v150 = v321;
- LABEL_130:
- v151 = v305;
- }
- v189 = v311 | (v318 << v310);
- if ( v56 )
- {
- v152 = v150;
- v153 = AppleUSB30XHCICardReaderPort::withDeviceMemory(v149, v150, v324, v189);
- }
- else
- {
- v152 = v150;
- LODWORD(v190) = AppleUSB30XHCIPort::withDeviceMemory(v149, v150, v324, (unsigned int)v189);
- v153 = v190;
- }
- goto LABEL_138;
- }
- v151 = v146;
- if ( *(_DWORD *)v307 == 541217621
- && (*(_DWORD *)v321 & 0xFF000000) == 0x2000000
- && !(*(_DWORD *)v321 & 0xFF0000) )
- {
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- v306 = v146;
- clock_get_system_microtime(&v338, &v337);
- v172 = *((_DWORD *)v1 + 201);
- if ( v172 & 0x40000000 )
- {
- v184 = v338;
- v185 = v337;
- LODWORD(v186) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v187 = v186;
- LODWORD(v188) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v301) = v315;
- LODWORD(v300) = v316 + 1;
- v299 = (__int64)"createPorts";
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: port %d USB 2.0 with %d speed IDs\n",
- v184,
- (unsigned int)v185,
- v187,
- v188,
- "AppleUSBXHCIPCI");
- }
- else
- {
- if ( !(v172 & 0x20000000) )
- {
- v173 = v338;
- v174 = v337;
- v175 = v1;
- LODWORD(v176) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v177 = v176;
- LODWORD(v178) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, _QWORD))(*(_QWORD *)v175 + 952LL))(
- v175,
- 0LL);
- LODWORD(v301) = v315;
- LODWORD(v300) = v316 + 1;
- v299 = (__int64)"createPorts";
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: port %d USB 2.0 with %d speed IDs\n",
- v173,
- (unsigned int)v174,
- v177,
- v178,
- "AppleUSBXHCIPCI");
- v150 = v321;
- v1 = v175;
- goto LABEL_136;
- }
- generateTracepoint("AppleUSBXHCIPCI", 814LL, 2LL, "port %d USB 2.0 with %d speed IDs\n", v324, v315);
- }
- v150 = v321;
- LABEL_136:
- v151 = v306;
- }
- v152 = v150;
- LODWORD(v191) = AppleUSB20XHCIPort::withDeviceMemory(v149, v150, v324, v311 | (unsigned int)(v318 << v310));
- v153 = v191;
- goto LABEL_138;
- }
- v152 = v321;
- v336 = 0;
- v335 = 0;
- v150 = (unsigned __int64)&v335;
- bcopy(v307, &v335, 4uLL);
- v153 = 0LL;
- if ( *((_BYTE *)v1 + 804) & 1 )
- {
- v304 = v151;
- clock_get_system_microtime(&v334, &v333);
- v154 = *((_DWORD *)v1 + 201);
- if ( v154 & 0x40000000 )
- {
- v160 = v334;
- v161 = v333;
- LODWORD(v162) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v163 = v162;
- LODWORD(v164) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v302) = *(_DWORD *)v321 >> 24;
- v301 = &v335;
- LODWORD(v300) = v316 + 1;
- v299 = (__int64)"createPorts";
- LODWORD(v303) = (unsigned __int8)(*(_DWORD *)v321 >> 16);
- v150 = v160;
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: port %d unsupported protocol %s %02x.%02x\n",
- v160,
- (unsigned int)v161,
- v163,
- v164,
- "AppleUSBXHCIPCI");
- }
- else if ( v154 & 0x20000000 )
- {
- LODWORD(v299) = *(_DWORD *)v321 >> 24;
- LODWORD(v300) = (unsigned __int8)(*(_DWORD *)v321 >> 16);
- v150 = 825LL;
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 825LL,
- 4LL,
- "port %d unsupported protocol %s %02x.%02x\n",
- v324,
- &v335);
- }
- else
- {
- v155 = v334;
- v156 = v333;
- LODWORD(v157) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v158 = v157;
- LODWORD(v159) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- LODWORD(v302) = *(_DWORD *)v321 >> 24;
- v301 = &v335;
- LODWORD(v300) = v316 + 1;
- v299 = (__int64)"createPorts";
- LODWORD(v303) = (unsigned __int8)(*(_DWORD *)v321 >> 16);
- v150 = v155;
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: port %d unsupported protocol %s %02x.%02x\n",
- v155,
- (unsigned int)v156,
- v158,
- v159,
- "AppleUSBXHCIPCI");
- }
- v153 = 0LL;
- v151 = v304;
- }
- LABEL_138:
- if ( v149 )
- (*(void (__fastcall **)(__int64, unsigned __int64))(*(_QWORD *)v149 + 40LL))(v149, v150);
- if ( !v153 )
- {
- v13 = -536870211;
- if ( *((_BYTE *)v1 + 804) & 1 )
- {
- clock_get_system_microtime(&v332, &v331);
- v261 = *((_DWORD *)v1 + 201);
- if ( v261 & 0x40000000 )
- {
- v294 = v332;
- v295 = v331;
- LODWORD(v296) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v297 = v296;
- LODWORD(v298) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: failed to allocate port %d\n",
- v294,
- (unsigned int)v295,
- v297,
- v298,
- "AppleUSBXHCIPCI");
- }
- else if ( v261 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 832LL,
- 1LL,
- "failed to allocate port %d\n",
- (unsigned int)(v316 + 1),
- v260);
- }
- else
- {
- v262 = v332;
- v263 = v331;
- LODWORD(v264) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v265 = v264;
- LODWORD(v266) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: failed to allocate port %d\n",
- v262,
- (unsigned int)v263,
- v265,
- v266,
- "AppleUSBXHCIPCI");
- }
- }
- goto LABEL_191;
- }
- v192 = IORegistryEntry::getPropertyTable(v153);
- if ( v192 )
- {
- (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)v192 + 496LL))(v192, v151);
- }
- else
- {
- (*(void (__fastcall **)(AppleUSB30XHCIPort *, __int64))(*(_QWORD *)v153 + 592LL))(v153, v151);
- (*(void (__fastcall **)(AppleUSB30XHCIPort *, _QWORD, _QWORD, signed __int64))(*(_QWORD *)v153 + 640LL))(
- v153,
- "locationID",
- v311 | (unsigned int)(v318 << v310),
- 32LL);
- }
- (*(void (__fastcall **)(__int64))(*(_QWORD *)v151 + 40LL))(v151);
- LODWORD(v193) = (*(int (__fastcall **)(AppleUSB30XHCIPort *, _QWORD))(*(_QWORD *)v153 + 696LL))(v153, "name");
- LODWORD(v194) = OSMetaClassBase::safeMetaCast(v193, v309);
- if ( v194 )
- {
- v195 = *(void (__fastcall **)(_QWORD, _QWORD, _QWORD))(*(_QWORD *)v153 + 944LL);
- LODWORD(v196) = (*(int (__fastcall **)(__int64, __int64))(*(_QWORD *)v194 + 328LL))(v194, v309);
- v195(v153, v196, 0LL);
- }
- if ( !(unsigned __int8)(*(int (__fastcall **)(AppleUSB30XHCIPort *, AppleUSBXHCIPCI *))(*(_QWORD *)v153
- + 1648LL))(
- v153,
- v1)
- || !(unsigned __int8)(*(int (__fastcall **)(AppleUSB30XHCIPort *, AppleUSBXHCIPCI *))(*(_QWORD *)v153
- + 1472LL))(
- v153,
- v1) )
- {
- if ( *((_BYTE *)v1 + 804) & 1 )
- {
- clock_get_system_microtime(&v330, &v329);
- v254 = *((_DWORD *)v1 + 201);
- if ( v254 & 0x40000000 )
- {
- v267 = v330;
- v268 = v329;
- LODWORD(v269) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v270 = v269;
- LODWORD(v271) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: failed to attach or start port %d\n",
- v267,
- (unsigned int)v268,
- v270,
- v271,
- "AppleUSBXHCIPCI");
- }
- else if ( v254 & 0x20000000 )
- {
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 858LL,
- 1LL,
- "failed to attach or start port %d\n",
- (unsigned int)(v316 + 1),
- v253);
- }
- else
- {
- v255 = v330;
- v256 = v329;
- LODWORD(v257) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v258 = v257;
- LODWORD(v259) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: failed to attach or start port %d\n",
- v255,
- (unsigned int)v256,
- v258,
- v259,
- "AppleUSBXHCIPCI");
- }
- }
- (*(void (__fastcall **)(AppleUSB30XHCIPort *, AppleUSBXHCIPCI *))(*(_QWORD *)v153 + 1656LL))(v153, v1);
- (*(void (__fastcall **)(AppleUSB30XHCIPort *))(*(_QWORD *)v153 + 40LL))(v153);
- v13 = -536870199;
- goto LABEL_191;
- }
- *(_QWORD *)(*((_QWORD *)v1 + 102) + 8 * v320) = v153;
- ++v318;
- v12 = v152;
- v32 = v316 + 1;
- if ( v324 < v326 )
- continue;
- break;
- }
- LABEL_159:
- v212 = *(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 2800LL);
- LODWORD(v213) = (*(int (__fastcall **)(AppleUSBXHCIPCI *, unsigned __int64))(*(_QWORD *)v1 + 2784LL))(v1, v12);
- LODWORD(v214) = v212(v1, v213);
- v12 = v214;
- v13 = 0;
- if ( !v214 )
- {
- LABEL_191:
- if ( !*((_DWORD *)v1 + 262) && !*((_DWORD *)v1 + 263) && !*((_DWORD *)v1 + 264) && !*((_DWORD *)v1 + 265) )
- {
- *((_QWORD *)v1 + 131) = 4294967298LL;
- *((_QWORD *)v1 + 132) = 17179869187LL;
- }
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- clock_get_system_microtime(&v328, &v327);
- v272 = *((_DWORD *)v1 + 201);
- if ( v272 & 0x40000000 )
- {
- v282 = v328;
- v283 = v327;
- LODWORD(v284) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v285 = v284;
- LODWORD(v286) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- v287 = *((_DWORD *)v1 + 265);
- v288 = *((_DWORD *)v1 + 264);
- v289 = *((_DWORD *)v1 + 263);
- v290 = *((_DWORD *)v1 + 262);
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: speed mappings low -> %d full -> %d high -> %d super -> %d\n",
- v282,
- (unsigned int)v283,
- v285,
- v286,
- "AppleUSBXHCIPCI");
- }
- else if ( v272 & 0x20000000 )
- {
- v291 = *((_DWORD *)v1 + 265);
- v292 = *((_DWORD *)v1 + 264);
- generateTracepoint(
- "AppleUSBXHCIPCI",
- 898LL,
- 4LL,
- "speed mappings low -> %d full -> %d high -> %d super -> %d\n",
- *((_DWORD *)v1 + 262),
- *((_DWORD *)v1 + 263));
- }
- else
- {
- v273 = v328;
- v274 = v327;
- LODWORD(v275) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v276 = v275;
- LODWORD(v277) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- v278 = *((_DWORD *)v1 + 265);
- v279 = *((_DWORD *)v1 + 264);
- v280 = *((_DWORD *)v1 + 263);
- v281 = *((_DWORD *)v1 + 262);
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: speed mappings low -> %d full -> %d high -> %d super -> %d\n",
- v273,
- (unsigned int)v274,
- v276,
- v277,
- "AppleUSBXHCIPCI");
- }
- }
- *((_BYTE *)v1 + 1016) = 1;
- (*(void (__fastcall **)(_QWORD, signed __int64, _QWORD))(**((_QWORD **)v1 + 19) + 488LL))(
- *((_QWORD *)v1 + 19),
- (char *)v1 + 1016,
- 0LL);
- return (unsigned int)v13;
- }
- }
- }
- v13 = -536870160;
- if ( *((_BYTE *)v1 + 804) & 1 )
- {
- clock_get_system_microtime(&v361, &v360);
- v216 = *((_DWORD *)v1 + 201);
- if ( v216 & 0x40000000 )
- {
- v237 = v361;
- v238 = v360;
- LODWORD(v239) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v240 = v239;
- LODWORD(v241) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- kprintf(
- "%06lu.%06u %s@%s: %s::%s: %s property is unavailable\n",
- v237,
- (unsigned int)v238,
- v240,
- v241,
- "AppleUSBXHCIPCI");
- }
- else if ( v216 & 0x20000000 )
- {
- generateTracepoint("AppleUSBXHCIPCI", 610LL, 1LL, "%s property is unavailable\n", "locationID", v215);
- }
- else
- {
- v217 = v361;
- v218 = v360;
- LODWORD(v219) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v220 = v219;
- LODWORD(v221) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- IOLog(
- "%06lu.%06u %s@%s: %s::%s: %s property is unavailable\n",
- v217,
- (unsigned int)v218,
- v220,
- v221,
- "AppleUSBXHCIPCI");
- }
- }
- }
- else
- {
- if ( *((_BYTE *)v1 + 804) & 8 )
- {
- clock_get_system_microtime(&v363, &v362);
- v231 = *((_DWORD *)v1 + 201);
- if ( v231 & 0x40000000 )
- {
- v248 = v363;
- v249 = v362;
- LODWORD(v250) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v251 = v250;
- LODWORD(v252) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- kprintf("%06lu.%06u %s@%s: %s::%s: calling super\n", v248, (unsigned int)v249, v251, v252, "AppleUSBXHCIPCI");
- }
- else if ( v231 & 0x20000000 )
- {
- generateTracepoint("AppleUSBXHCIPCI", 602LL, 0LL, "calling super\n", v229, v230);
- }
- else
- {
- v232 = v363;
- v233 = v362;
- LODWORD(v234) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 904LL))(v1, 0LL);
- v235 = v234;
- LODWORD(v236) = (*(int (__fastcall **)(_QWORD, _QWORD))(*(_QWORD *)v1 + 952LL))(v1, 0LL);
- IOLog("%06lu.%06u %s@%s: %s::%s: calling super\n", v232, (unsigned int)v233, v235, v236, "AppleUSBXHCIPCI");
- }
- }
- v13 = (*(int (__fastcall **)(AppleUSBXHCIPCI *))(off_E060[0] + 2688))(v1);
- }
- return (unsigned int)v13;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement