Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned int __cdecl luaV_execute(int L, int nexeccalls)
- {
- _DWORD *v4; // edx
- __int64 v5; // xmm4_8
- __m128d v6; // xmm1
- int v7; // eax
- unsigned int *v8; // edi
- int v9; // eax
- _DWORD *v10; // eax
- _DWORD *v11; // eax
- int v12; // eax
- unsigned int v13; // edx
- unsigned int result; // eax
- char v15; // cl
- bool v16; // zf
- unsigned int v17; // ecx
- _DWORD *v18; // edx
- _DWORD *v19; // ecx
- int v20; // eax
- _DWORD *v21; // edx
- _DWORD *v22; // ecx
- unsigned int *v23; // ecx
- unsigned int v24; // eax
- unsigned int v25; // edx
- unsigned int v26; // eax
- int v27; // eax
- int v28; // ecx
- int v29; // eax
- _DWORD *v30; // edx
- _DWORD *v31; // ecx
- unsigned int v32; // eax
- int v33; // eax
- int v34; // eax
- int v35; // edx
- _DWORD *v36; // eax
- int v37; // ecx
- int v38; // ecx
- int v39; // eax
- int v40; // eax
- int v41; // ecx
- _DWORD *v42; // edx
- int v43; // eax
- int v44; // eax
- unsigned int v45; // ecx
- _DWORD *v46; // ecx
- unsigned int v47; // eax
- int v48; // eax
- int v49; // eax
- unsigned int v50; // edx
- int v51; // edx
- __int64 v52; // xmm3_8
- double v53; // xmm1_8
- double v54; // xmm0_8
- int v55; // eax
- __int64 v56; // xmm0_8
- __int64 *v57; // ST08_4
- int v58; // eax
- unsigned int v59; // edx
- int *v60; // edx
- __int64 v61; // xmm3_8
- double v62; // xmm2_8
- __int64 *v63; // eax
- double v64; // xmm2_8
- int *v65; // eax
- int v66; // ecx
- __int64 v67; // xmm3_8
- BOOL v68; // eax
- int v69; // eax
- __int64 *v70; // eax
- double v71; // xmm2_8
- int v72; // eax
- int v73; // eax
- unsigned int v74; // edx
- int v75; // edx
- __int64 *v76; // ST08_4
- int v77; // eax
- unsigned int v78; // edx
- int v79; // edx
- __int64 *v80; // ST08_4
- int v81; // eax
- unsigned int v82; // edx
- int v83; // edx
- __int64 v84; // xmm7_8
- double v85; // xmm6_8
- unsigned __int64 *v86; // eax
- double v87; // xmm5_8
- __m128d v88; // xmm3
- __m128d v89; // xmm0
- double v90; // xmm2_8
- __int64 *v91; // ST08_4
- int v92; // eax
- unsigned int v93; // edx
- int *v94; // edx
- __int128 v95; // xmm2
- __int64 v96; // xmm0_8
- __int64 v97; // ST34_8
- int v98; // eax
- int *v99; // eax
- int v100; // ecx
- __int64 v101; // xmm4_8
- BOOL v102; // eax
- int v103; // eax
- __int128 v104; // xmm2
- __int64 v105; // xmm0_8
- int v106; // eax
- unsigned int v107; // eax
- _DWORD *v108; // edx
- int v109; // eax
- __int64 v110; // xmm2_8
- BOOL v111; // eax
- int v112; // eax
- __int64 *v113; // eax
- double v114; // xmm0_8
- unsigned int v115; // eax
- int v116; // edx
- int v117; // eax
- unsigned int v118; // eax
- _DWORD *v119; // edx
- int v120; // eax
- int v121; // eax
- __m128i v122; // xmm0
- unsigned int v123; // eax
- unsigned int v124; // eax
- _DWORD *v125; // ecx
- unsigned int v126; // edx
- int v127; // esi
- int v128; // eax
- unsigned int v129; // edx
- int v130; // edx
- int v131; // ecx
- BOOL v132; // ecx
- unsigned int v133; // edx
- int v134; // ecx
- int v135; // ecx
- int v136; // ecx
- int v137; // eax
- int v138; // eax
- int v139; // ecx
- int v140; // ecx
- int v141; // eax
- unsigned int *v142; // eax
- unsigned int v143; // eax
- int v144; // eax
- int v145; // edx
- int v146; // eax
- unsigned int v147; // edx
- int v148; // ecx
- int v149; // ecx
- int v150; // ecx
- int v151; // eax
- int v152; // eax
- int v153; // ecx
- int v154; // eax
- unsigned int v155; // eax
- int v156; // eax
- int v157; // edx
- int v158; // eax
- unsigned int v159; // edx
- int v160; // ecx
- int v161; // ecx
- int v162; // ecx
- int v163; // eax
- int v164; // eax
- int v165; // ecx
- int v166; // eax
- BOOL v167; // eax
- unsigned int v168; // edx
- int v169; // edx
- int v170; // eax
- int v171; // ecx
- int v172; // ecx
- int v173; // eax
- int v174; // eax
- unsigned __int64 *v175; // eax
- int v176; // eax
- unsigned int v177; // esi
- unsigned __int64 *v178; // edx
- unsigned int v179; // edx
- int v180; // edx
- int v181; // eax
- int v182; // ecx
- int v183; // eax
- unsigned int v184; // esi
- __int16 v185; // ax
- int v186; // edx
- int v187; // eax
- int v188; // ST10_4
- int v189; // eax
- int v190; // edx
- int v191; // ST0C_4
- int v192; // eax
- unsigned int *v193; // edi
- _DWORD *v194; // edx
- unsigned int v195; // eax
- int v196; // edi
- int v197; // ecx
- int v198; // esi
- int v199; // eax
- int v200; // edx
- unsigned int *v201; // ecx
- int v202; // eax
- int v203; // eax
- _QWORD *v204; // eax
- double v205; // xmm2_8
- __int64 v206; // xmm4_8
- double v207; // xmm3_8
- int v208; // eax
- double v209; // xmm4_8
- bool v210; // cf
- int v211; // eax
- int v212; // edx
- int v213; // ecx
- __int64 *v214; // eax
- unsigned __int64 *v215; // ecx
- __int64 v216; // xmm3_8
- __int64 v217; // xmm0_8
- unsigned int v218; // eax
- double v219; // xmm2_8
- int v220; // esi
- _DWORD *v221; // ecx
- _DWORD *v222; // edx
- _DWORD *v223; // esi
- int v224; // edx
- int v225; // edx
- unsigned int v226; // esi
- int v227; // edx
- int v228; // edx
- int v229; // eax
- int v230; // eax
- int v231; // ecx
- int v232; // eax
- int v233; // edx
- unsigned int v234; // edx
- int v235; // eax
- unsigned int v236; // edx
- _DWORD *v237; // edi
- _DWORD *v238; // eax
- int v239; // ecx
- char v240; // al
- int v241; // ecx
- unsigned int v242; // ecx
- int proto; // eax MAPDST
- int nelems; // eax MAPDST
- int v245; // esi
- int LClosure; // eax MAPDST
- int v247; // edx
- char v248; // cl
- int v249; // edx
- int v251; // eax
- int v252; // eax
- int v253; // edx
- _DWORD *v254; // ecx
- unsigned int v255; // esi
- int v256; // eax
- unsigned int v257; // ecx
- int v258; // edx
- int v259; // eax
- unsigned int v260; // ST08_4
- int v261; // eax
- int v262; // edx
- int v263; // edx
- int *v264; // ecx
- _DWORD *v265; // edx
- unsigned int v266; // eax
- int v267; // edx
- int v268; // ecx
- int v269; // edx
- int v270; // eax
- unsigned int v271; // ecx
- int v272; // esi
- int v273; // ecx
- int v274; // edi
- _DWORD *v275; // eax
- _DWORD *v276; // esi
- int v277; // ecx
- int v278; // edx
- int v279; // esi
- int v280; // edx
- int v281; // eax
- int v282; // edx
- unsigned int *v283; // ST10_4
- int v284; // eax
- _DWORD *v285; // edx
- unsigned int v286; // ecx
- __int64 v287; // [esp-110h] [ebp-11Ch]
- signed int v288; // [esp-108h] [ebp-114h]
- int v289; // [esp-100h] [ebp-10Ch]
- signed int v290; // [esp-F8h] [ebp-104h]
- int v291; // [esp-F0h] [ebp-FCh]
- signed int v292; // [esp-E8h] [ebp-F4h]
- int v293; // [esp-E0h] [ebp-ECh]
- signed int v294; // [esp-D8h] [ebp-E4h]
- int v295; // [esp-D0h] [ebp-DCh]
- signed int v296; // [esp-C8h] [ebp-D4h]
- int v297; // [esp-C0h] [ebp-CCh]
- signed int v298; // [esp-B8h] [ebp-C4h]
- int v299; // [esp-B0h] [ebp-BCh]
- signed int v300; // [esp-A8h] [ebp-B4h]
- int v301; // [esp-A0h] [ebp-ACh]
- int v302; // [esp-98h] [ebp-A4h]
- int v303; // [esp-90h] [ebp-9Ch]
- int v304; // [esp-88h] [ebp-94h]
- int v305; // [esp-80h] [ebp-8Ch]
- int v306; // [esp-78h] [ebp-84h]
- unsigned int v307; // [esp-6Ch] [ebp-78h]
- unsigned int *v308; // [esp-68h] [ebp-74h]
- unsigned int v309; // [esp-64h] [ebp-70h]
- int v310; // [esp-60h] [ebp-6Ch]
- unsigned int *v311; // [esp-5Ch] [ebp-68h]
- unsigned int *v312; // [esp-58h] [ebp-64h]
- unsigned int *v313; // [esp-54h] [ebp-60h]
- int *v314; // [esp-50h] [ebp-5Ch]
- int v315; // [esp-4Ch] [ebp-58h]
- int v316; // [esp-48h] [ebp-54h]
- unsigned __int64 *v318; // [esp-40h] [ebp-4Ch]
- _DWORD *v319; // [esp-3Ch] [ebp-48h]
- int v320; // [esp-38h] [ebp-44h]
- int v321; // [esp-30h] [ebp-3Ch]
- int v322; // [esp-2Ch] [ebp-38h]
- char *v323; // [esp-28h] [ebp-34h]
- unsigned int *v324; // [esp-24h] [ebp-30h] MAPDST
- int v325; // [esp-20h] [ebp-2Ch]
- int v327; // [esp-18h] [ebp-24h]
- unsigned int v328; // [esp-14h] [ebp-20h]
- unsigned int v329; // [esp-10h] [ebp-1Ch]
- unsigned int v331; // [esp-8h] [ebp-14h]
- int v332; // [esp-4h] [ebp-10h]
- _BYTE *v334; // [esp+4h] [ebp-8h]
- _BYTE *retaddr; // [esp+Ch] [ebp+0h]
- v334 = retaddr;
- v4 = (_DWORD *)(L + 20);
- v323 = (char *)(L + 20);
- v319 = (_DWORD *)(L + 24);
- LABEL_2:
- v5 = xmmword_1C72DA0;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- reentry:
- v7 = *(_DWORD *)(L + 32);
- v8 = (_DWORD *)((char *)v4 - *v4);
- v331 = *(_DWORD *)(L + 16);
- v321 = **(_DWORD **)(v7 + 20);
- v9 = (v321 + 16) ^ *(_DWORD *)(v321 + 16);
- v316 = v321 + 16;
- v327 = v9 + 8 - *(_DWORD *)(v9 + 8);
- v10 = (_DWORD *)(L + 24 - *(_DWORD *)(L + 24) + 52);
- v322 = (int)v10 + *v10;
- v11 = (_DWORD *)(((v321 + 16) ^ *(_DWORD *)(v321 + 16)) + 36);
- v310 = (int)v11 - *v11;
- v309 = v322 + 2;
- while ( 1 )
- {
- v12 = (int)v8 - v310;
- v307 = *v8;
- v13 = v322 * v307;
- v324 = v8;
- proto = (int)v8;
- v314 = (int *)v8;
- v311 = v8;
- v315 = (int)v8;
- v320 = (int)v8;
- v318 = (unsigned __int64 *)v8;
- v313 = v8;
- v308 = v8;
- v312 = v8;
- v325 = (int)v8;
- v328 = (unsigned int)v8;
- ++v8;
- result = v12 >> 2;
- v332 = result;
- nelems = (int)v8;
- v329 = v322 * v307;
- if ( v309 < 4 )
- return result;
- v15 = *(_BYTE *)(L + 56);
- if ( !(v15 & 0xC) )
- goto LABEL_10;
- v16 = (*(_DWORD *)(L + 112))-- == 1;
- if ( !v16 && !(v15 & 4) )
- goto LABEL_10;
- sub_C72FB0(L, v8);
- if ( *(_BYTE *)(L + 6) == 1 )
- break;
- v5 = xmmword_1C72DA0;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- v13 = v329;
- result = v332;
- v331 = *(_DWORD *)(L + 16);
- LABEL_10:
- LClosure = v13 >> 26;
- v17 = v331;
- if ( v13 >> 26 <= 0x25 )
- {
- switch ( LClosure )
- {
- case 0:
- v23 = (unsigned int *)(v331 + 16 * (unsigned __int8)(v13 >> 18));
- if ( !(v13 & 0x3FE00) )
- v8 = (unsigned int *)v328;
- *v23 = v13 & 0x1FF;
- v23[2] = 3;
- goto LABEL_21;
- case 1:
- nelems = v331 + 16 * (unsigned __int8)(v13 >> 18);
- *(_DWORD *)v323 = v323 - (char *)v8;
- v26 = v13 >> 9;
- if ( (v13 >> 9) & 0x100 )
- v27 = v327 + 16 * (unsigned __int8)v26;
- else
- v27 = v331 + 16 * ((v13 >> 9) & 0x1FF);
- sub_C6BF10(L, v331 + 16 * (v13 & 0x1FF), v27, nelems, 1);
- goto LABEL_27;
- case 2:
- v21 = *(_DWORD **)(*(_DWORD *)(v321 + 4 * (v13 & 0x1FF) + 20) + 8);
- goto LABEL_17;
- case 3:
- v298 = 7;
- v297 = *(_DWORD *)(v321 + 12);
- *(_DWORD *)v323 = v323 - (char *)v8;
- sub_C6C120(L, &v297, v327 + 16 * (v13 & 0x3FFFF), v331 + 16 * (unsigned __int8)(v13 >> 18));
- goto LABEL_27;
- case 4:
- v21 = (_DWORD *)(v327 + 16 * (v13 & 0x3FFFF));
- LABEL_17:
- v22 = (_DWORD *)(v331 + 16 * (unsigned __int8)(v329 >> 18));
- *v22 = *v21;
- v22[1] = v21[1];
- v22[2] = v21[2];
- continue;
- case 5:
- v28 = v13 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v13, 7) ^ __ROL4__(v13, 13);
- nelems = v331
- + 16
- * (unsigned __int8)((v13 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v13, 7) ^ __ROL4__(v13, 13)) >> 18);
- v29 = *(_DWORD *)(v321 + 4 * (v28 & 0x1FF) + 20);
- v30 = (_DWORD *)(v331
- + 16
- * (unsigned __int8)((v13 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v13, 7) ^ __ROL4__(v13, 13)) >> 18));
- LClosure = *(_DWORD *)(v321 + 4 * (v28 & 0x1FF) + 20);
- if ( (v28 & 0xFC000000) != 335544320 )
- continue;
- v31 = *(_DWORD **)(v29 + 8);
- *v31 = *v30;
- v31[1] = v30[1];
- v31[2] = v30[2];
- if ( v30[2] >= 4 && *(_BYTE *)(*v30 + 4) & 3 && *(_BYTE *)(LClosure + 4) & 4 )
- sub_C64F20(L, LClosure, *v30);
- goto LABEL_28;
- case 6:
- v18 = (_DWORD *)(v331 + 16 * (v13 & 0x1FF));
- v19 = (_DWORD *)(v331 + 16 * (unsigned __int8)(v329 >> 18));
- v16 = (v329 & 0x3FE00) == 0;
- *v19 = *v18;
- v19[1] = v18[1];
- v19[2] = v18[2];
- if ( v16 )
- v20 = *(_DWORD *)(L + 16);
- else
- v20 = *(_DWORD *)(L + 12);
- *(_DWORD *)(L + 12) = v20;
- continue;
- case 7:
- v24 = v331 + 16 * (unsigned __int8)(v13 >> 18);
- v25 = v331 + 16 * (v13 & 0x1FF);
- do
- {
- *(_DWORD *)(v25 + 8) = 0;
- v25 -= 16;
- }
- while ( v25 >= v24 );
- continue;
- case 8:
- v299 = *(_DWORD *)(v321 + 12);
- v300 = 7;
- *(_DWORD *)v323 = v323 - (char *)v8;
- sub_C6BF10(L, &v299, v327 + 16 * (v13 & 0x3FFFF), v331 + 16 * (unsigned __int8)(v13 >> 18), 1);
- goto LABEL_27;
- case 9:
- LClosure = v331 + 16 * (unsigned __int8)(v13 >> 18);
- nelems = v331 + 16 * (v13 & 0x1FF);
- v40 = sub_C68900(L, v331 + 16 * (v13 & 0x1FF));
- v41 = nelems;
- v42 = (_DWORD *)LClosure;
- v16 = *(_DWORD *)(v40 + 8) == 6;
- v43 = *(_DWORD *)nelems;
- if ( v16 )
- {
- *(_DWORD *)LClosure = v43;
- v42[1] = *(_DWORD *)(v41 + 4);
- v44 = *(_DWORD *)(v41 + 8);
- v45 = v329 >> 9;
- v42[2] = v44;
- if ( v45 & 0x100 )
- v46 = (_DWORD *)(v327 + 16 * (unsigned __int8)v45);
- else
- v46 = (_DWORD *)(v331 + 16 * (v45 & 0x1FF));
- v42[4] = *v46;
- v42[5] = v46[1];
- v42[6] = v46[2];
- goto LABEL_28;
- }
- *(_DWORD *)(LClosure + 16) = v43;
- v42[5] = *(_DWORD *)(v41 + 4);
- v42[6] = *(_DWORD *)(v41 + 8);
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v47 = v329 >> 9;
- if ( (v329 >> 9) & 0x100 )
- v48 = v327 + 16 * (unsigned __int8)v47;
- else
- v48 = v331 + 16 * ((v329 >> 9) & 0x1FF);
- sub_C6BF10(L, v41, v48, v42, 1);
- goto LABEL_27;
- case 10:
- LClosure = v331 + 16 * (unsigned __int8)(v13 >> 18);
- if ( v13 & 0x100 )
- v77 = v327 + 16 * (unsigned __int8)v13;
- else
- v77 = v331 + 16 * (v13 & 0x1FF);
- v78 = v13 >> 9;
- nelems = v77;
- if ( v78 & 0x100 )
- v79 = v327 + 16 * (unsigned __int8)v78;
- else
- v79 = v331 + 16 * (v78 & 0x1FF);
- if ( *(_DWORD *)(v77 + 8) == 2 && *(_DWORD *)(v79 + 8) == 2 )
- {
- v52 = xmmword_1FC2B20;
- v54 = COERCE_DOUBLE(*(_QWORD *)v77 ^ xmmword_1FC2B20) / COERCE_DOUBLE(*(_QWORD *)v79 ^ xmmword_1FC2B20);
- goto LABEL_71;
- }
- v80 = (__int64 *)nelems;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- sub_C61690(L, LClosure, v80, (__int64 *)v79, 7);
- goto LABEL_27;
- case 11:
- v325 = v331 + 16 * (unsigned __int8)(v13 >> 18);
- if ( v13 & 0x100 )
- v58 = v327 + 16 * (unsigned __int8)v13;
- else
- v58 = v331 + 16 * (v13 & 0x1FF);
- v59 = v13 >> 9;
- v328 = v58;
- if ( v59 & 0x100 )
- v60 = (int *)(v327 + 16 * (unsigned __int8)v59);
- else
- v60 = (int *)(v331 + 16 * (v59 & 0x1FF));
- v16 = *(_DWORD *)(v58 + 8) == 2;
- v329 = (unsigned int)v60;
- if ( v16 && v60[2] == 2 )
- {
- v61 = xmmword_1FC2B20;
- *(_QWORD *)&v62 = *(_QWORD *)v58 ^ xmmword_1FC2B20;
- v63 = (__int64 *)v325;
- v64 = v62 - COERCE_DOUBLE(*(_QWORD *)v60 ^ xmmword_1FC2B20);
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- *(_DWORD *)(v325 + 8) = 2;
- *v63 = *(_QWORD *)&v64 ^ v61;
- continue;
- }
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v65 = (int *)v328;
- v66 = *(_DWORD *)(v328 + 8);
- if ( v66 == 2 )
- {
- v67 = xmmword_1FC2B20;
- }
- else
- {
- if ( v66 != 4 )
- goto LABEL_94;
- v68 = sub_C68560((unsigned __int8 *)(*(_DWORD *)v328 + 24), (double *)&v306);
- v60 = (int *)v329;
- if ( !v68 )
- goto LABEL_94;
- v65 = &v295;
- v67 = xmmword_1FC2B20;
- v296 = 2;
- *(_QWORD *)&v295 = *(_QWORD *)&v306 ^ xmmword_1FC2B20;
- }
- nelems = (int)v65;
- v69 = v60[2];
- if ( v69 == 2 )
- goto LABEL_92;
- if ( v69 == 4 )
- {
- if ( sub_C68560((unsigned __int8 *)(*v60 + 24), (double *)&v305) )
- {
- v60 = &v293;
- v67 = xmmword_1FC2B20;
- v294 = 2;
- *(_QWORD *)&v293 = *(_QWORD *)&v305 ^ xmmword_1FC2B20;
- LABEL_92:
- v70 = (__int64 *)v325;
- v71 = COERCE_DOUBLE(*(_QWORD *)nelems ^ v67) - COERCE_DOUBLE(*(_QWORD *)v60 ^ v67);
- *(_DWORD *)(v325 + 8) = 2;
- *v70 = *(_QWORD *)&v71 ^ v67;
- goto LABEL_27;
- }
- v60 = (int *)v329;
- }
- LABEL_94:
- v72 = sub_C62AA0(L, v328, v60, v325, 11);
- goto LABEL_95;
- case 12:
- LClosure = v331 + 16 * (unsigned __int8)(v13 >> 18);
- if ( v13 & 0x100 )
- v81 = v327 + 16 * (unsigned __int8)v13;
- else
- v81 = v331 + 16 * (v13 & 0x1FF);
- v82 = v13 >> 9;
- nelems = v81;
- if ( v82 & 0x100 )
- v83 = v327 + 16 * (unsigned __int8)v82;
- else
- v83 = v331 + 16 * (v82 & 0x1FF);
- if ( *(_DWORD *)(v81 + 8) == 2 && *(_DWORD *)(v83 + 8) == 2 )
- {
- v84 = xmmword_1FC2B20;
- *(_QWORD *)&v85 = *(_QWORD *)v81 ^ xmmword_1FC2B20;
- v86 = (unsigned __int64 *)LClosure;
- *(_QWORD *)&v87 = *(_QWORD *)v83 ^ xmmword_1FC2B20;
- *(_DWORD *)(LClosure + 8) = 2;
- *(_QWORD *)&v88.m128d_f64[0] = qword_1C706F0 & COERCE_UNSIGNED_INT64(v85 / v87);
- *(_QWORD *)&v89.m128d_f64[0] = COERCE_UNSIGNED_INT64(v85 / v87) ^ *(_QWORD *)&v88.m128d_f64[0];
- *(_QWORD *)&v89.m128d_f64[0] = (unsigned __int128)_mm_cmplt_sd(v89, v6);
- v90 = v85 / v87
- + COERCE_DOUBLE(*(_QWORD *)&v6.m128d_f64[0] & *(_QWORD *)&v89.m128d_f64[0] | *(_QWORD *)&v88.m128d_f64[0])
- - COERCE_DOUBLE(*(_QWORD *)&v6.m128d_f64[0] & *(_QWORD *)&v89.m128d_f64[0] | *(_QWORD *)&v88.m128d_f64[0]);
- v89.m128d_f64[0] = v90 - v85 / v87;
- *v86 = COERCE_UNSIGNED_INT64(
- v85
- - (v90 - COERCE_DOUBLE(*(unsigned __int128 *)&_mm_cmpgt_sd(v89, v88) & *(_QWORD *)&qword_1C706D0))
- * v87) ^ v84;
- goto LABEL_28;
- }
- v91 = (__int64 *)nelems;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- sub_C61690(L, LClosure, v91, (__int64 *)v83, 9);
- goto LABEL_27;
- case 13:
- nelems = v13 & 0x1FF;
- v34 = (v13 >> 9) & 0x1FF;
- LClosure = v331 + 16 * (unsigned __int8)(v13 >> 18);
- if ( (unsigned __int8)(v13 >> 9) >> 3 )
- v34 = (((v13 >> 9) & 7) + 8) << (((unsigned __int8)(v13 >> 9) >> 3) - 1);
- v35 = nelems;
- if ( (unsigned __int8)nelems >> 3 )
- v35 = ((nelems & 7) + 8) << (((unsigned __int8)nelems >> 3) - 1);
- v36 = sub_C66AF0(L, v35, v34);
- v37 = LClosure;
- *(_DWORD *)LClosure = v36;
- *(_DWORD *)(v37 + 8) = 7;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v38 = L + 24 - *(_DWORD *)(L + 24);
- v39 = L + 24 - *(_DWORD *)(L + 24);
- goto LABEL_50;
- case 14:
- v325 = v331 + 16 * (unsigned __int8)(v13 >> 18);
- if ( v13 & 0x100 )
- v92 = v327 + 16 * (unsigned __int8)v13;
- else
- v92 = v331 + 16 * (v13 & 0x1FF);
- v93 = v13 >> 9;
- v328 = v92;
- if ( v93 & 0x100 )
- v94 = (int *)(v327 + 16 * (unsigned __int8)v93);
- else
- v94 = (int *)(v331 + 16 * (v93 & 0x1FF));
- v16 = *(_DWORD *)(v92 + 8) == 2;
- v329 = (unsigned int)v94;
- if ( v16 && v94[2] == 2 )
- {
- v95 = *(unsigned __int64 *)v94;
- v96 = *(_QWORD *)v92 ^ xmmword_1FC2B20;
- v97 = xmmword_1FC2B20;
- sub_159DFB8();
- v98 = v325;
- *(_QWORD *)v325 = v96 ^ v97;
- *(_DWORD *)(v98 + 8) = 2;
- goto LABEL_28;
- }
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v99 = (int *)v328;
- v100 = *(_DWORD *)(v328 + 8);
- if ( v100 == 2 )
- {
- v101 = xmmword_1FC2B20;
- }
- else
- {
- if ( v100 != 4 )
- goto LABEL_147;
- v102 = sub_C68560((unsigned __int8 *)(*(_DWORD *)v328 + 24), (double *)&v304);
- v94 = (int *)v329;
- if ( !v102 )
- goto LABEL_147;
- v99 = &v291;
- v101 = xmmword_1FC2B20;
- v292 = 2;
- *(_QWORD *)&v291 = *(_QWORD *)&v304 ^ xmmword_1FC2B20;
- }
- nelems = (int)v99;
- v103 = v94[2];
- if ( v103 == 2 )
- goto LABEL_145;
- if ( v103 == 4 )
- {
- if ( sub_C68560((unsigned __int8 *)(*v94 + 24), (double *)&v303) )
- {
- v94 = &v289;
- v101 = xmmword_1FC2B20;
- v290 = 2;
- *(_QWORD *)&v289 = *(_QWORD *)&v303 ^ xmmword_1FC2B20;
- LABEL_145:
- v104 = *(unsigned __int64 *)v94;
- v105 = *(_QWORD *)nelems ^ v101;
- sub_159DFB8();
- v106 = v325;
- *(_QWORD *)v325 = v105 ^ xmmword_1FC2B20;
- *(_DWORD *)(v106 + 8) = 2;
- goto LABEL_27;
- }
- v94 = (int *)v329;
- }
- LABEL_147:
- v72 = sub_C62AA0(L, v328, v94, v325, 12);
- LABEL_95:
- if ( !v72 )
- sub_C664E0(L, (__int64 *)v328, (__int64 *)v329);
- goto LABEL_27;
- case 15:
- nelems = v331 + 16 * (unsigned __int8)(v13 >> 18);
- *(_DWORD *)v323 = v323 - (char *)v8;
- v32 = v13 >> 9;
- if ( (v13 >> 9) & 0x100 )
- v33 = v327 + 16 * (unsigned __int8)v32;
- else
- v33 = v331 + 16 * ((v13 >> 9) & 0x1FF);
- if ( v13 & 0x100 )
- sub_C6C120(L, nelems, v327 + 16 * (unsigned __int8)v13, v33);
- else
- sub_C6C120(L, nelems, v331 + 16 * (v13 & 0x1FF), v33);
- goto LABEL_27;
- case 16:
- LClosure = v331 + 16 * (unsigned __int8)(v13 >> 18);
- if ( v13 & 0x100 )
- v49 = v327 + 16 * (unsigned __int8)v13;
- else
- v49 = v331 + 16 * (v13 & 0x1FF);
- v50 = v13 >> 9;
- nelems = v49;
- if ( v50 & 0x100 )
- v51 = v327 + 16 * (unsigned __int8)v50;
- else
- v51 = v331 + 16 * (v50 & 0x1FF);
- if ( *(_DWORD *)(v49 + 8) == 2 && *(_DWORD *)(v51 + 8) == 2 )
- {
- v52 = xmmword_1FC2B20;
- v53 = COERCE_DOUBLE(*(_QWORD *)v51 ^ xmmword_1FC2B20) + COERCE_DOUBLE(*(_QWORD *)v49 ^ xmmword_1FC2B20);
- goto LABEL_70;
- }
- v57 = (__int64 *)nelems;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- sub_C61690(L, LClosure, v57, (__int64 *)v51, 8);
- goto LABEL_27;
- case 17:
- LClosure = v331 + 16 * (unsigned __int8)(v13 >> 18);
- if ( v13 & 0x100 )
- v73 = v327 + 16 * (unsigned __int8)v13;
- else
- v73 = v331 + 16 * (v13 & 0x1FF);
- v74 = v13 >> 9;
- nelems = v73;
- if ( v74 & 0x100 )
- v75 = v327 + 16 * (unsigned __int8)v74;
- else
- v75 = v331 + 16 * (v74 & 0x1FF);
- if ( *(_DWORD *)(v73 + 8) != 2 || *(_DWORD *)(v75 + 8) != 2 )
- {
- v76 = (__int64 *)nelems;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- sub_C61690(L, LClosure, v76, (__int64 *)v75, 6);
- goto LABEL_27;
- }
- v52 = xmmword_1FC2B20;
- v53 = COERCE_DOUBLE(*(_QWORD *)v75 ^ xmmword_1FC2B20) * COERCE_DOUBLE(*(_QWORD *)v73 ^ xmmword_1FC2B20);
- LABEL_70:
- v54 = v53;
- LABEL_71:
- v55 = LClosure;
- v56 = *(_QWORD *)&v54 ^ v52;
- goto LABEL_72;
- case 18:
- v118 = v13 >> 18;
- v119 = (_DWORD *)(v331 + 16 * (v13 & 0x1FF));
- v329 = (unsigned int)v119;
- v328 = v331 + 16 * (unsigned __int8)v118;
- v120 = v119[2];
- if ( v120 == 4 )
- {
- v124 = v328;
- *(_QWORD *)v328 = COERCE_UNSIGNED_INT64((double)(unsigned int)(*(_DWORD *)(*v119 + 16) - (*v119 + 16))) ^ xmmword_1FC2B20;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- *(_DWORD *)(v124 + 8) = 2;
- continue;
- }
- if ( v120 == 7 )
- {
- v122 = _mm_cvtsi32_si128(sub_C66970(*v119));
- v123 = v328;
- *(_QWORD *)v328 = *(unsigned __int128 *)&_mm_cvtepi32_pd(v122) ^ xmmword_1FC2B20;
- *(_DWORD *)(v123 + 8) = 2;
- goto LABEL_28;
- }
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v121 = sub_C689E0(L, v119, 14);
- if ( !*(_DWORD *)(v121 + 8) )
- {
- v121 = sub_C689E0(L, &unk_1CAC650, 14);
- if ( !*(_DWORD *)(v121 + 8) )
- {
- v324 = (unsigned int *)((char *)&stru_1F13D00.toState + 2);
- sub_C66720(L, v329, &stru_1F13D00.toState - 629010);
- }
- }
- sub_C629E0(L, v328, v121, v329, &unk_1CAC650);
- goto LABEL_27;
- case 19:
- v127 = L;
- *(_DWORD *)v323 = v323 - (char *)v8;
- v143 = v13 >> 9;
- if ( (v13 >> 9) & 0x100 )
- v144 = v327 + 16 * (unsigned __int8)v143;
- else
- v144 = v331 + 16 * ((v13 >> 9) & 0x1FF);
- if ( v13 & 0x100 )
- v145 = v327 + 16 * (unsigned __int8)v13;
- else
- v145 = v331 + 16 * (v13 & 0x1FF);
- v146 = sub_C6C090(L, v145, v144);
- if ( v146 != (unsigned __int8)(v329 >> 18) )
- goto LABEL_215;
- v147 = v322 * *v8;
- v148 = v332++ + 1;
- v328 = v147 >> 26;
- switch ( v147 >> 26 )
- {
- case 5u:
- v149 = v147 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v147, 7) ^ __ROL4__(v147, 13);
- break;
- case 0x14u:
- v149 = v147 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v147, 6) ^ __ROL4__(v147, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v150 = v147 * ((_DWORD)&stru_1F3D89C + v148 + 19) - (_DWORD)&unk_1C0BCC3;
- v152 = v332 * v147 - 5512095;
- goto LABEL_229;
- case 0x1Fu:
- v150 = v148 - 29799480 * v147 - 5512095;
- v151 = 32757935 * v147;
- goto LABEL_228;
- case 0x25u:
- v150 = 32757935 * v147 + v148 - 29408451;
- v151 = 9837702 * v147;
- LABEL_228:
- v152 = v332 + v151;
- LABEL_229:
- v149 = (v328 << 26) | (v152 ^ v150) & 0x3FFFFFF;
- break;
- default:
- v149 = v147;
- break;
- }
- if ( (v149 & 0xFC000000) != 1342177280 )
- goto LABEL_215;
- nelems = v147 >> 26;
- switch ( v147 >> 26 )
- {
- case 5u:
- v142 = v308;
- v139 = v147 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v147, 7) ^ __ROL4__(v147, 13);
- break;
- case 0x14u:
- v142 = v308;
- v139 = v147 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v147, 6) ^ __ROL4__(v147, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v142 = v308;
- v139 = (v147 >> 26 << 26) | ((v332 * v147 - 5512095) ^ (v147 * ((_DWORD)&stru_1F3D89C + v332 + 19)
- - (_DWORD)&unk_1C0BCC3)) & 0x3FFFFFF;
- break;
- case 0x1Fu:
- v153 = v332 - 29799480 * v147 - 5512095;
- v154 = v332 + 32757935 * v147;
- goto LABEL_238;
- case 0x25u:
- v153 = 32757935 * v147 + v332 - 29408451;
- v154 = v332 + 9837702 * v147;
- LABEL_238:
- v139 = (nelems << 26) | (v154 ^ v153) & 0x3FFFFFF;
- v142 = v308;
- break;
- default:
- v142 = v308;
- v139 = v147;
- break;
- }
- goto LABEL_212;
- case 20:
- v329 = __ROR4__(v13, 6) ^ __ROL4__(v13, 9);
- v329 ^= -10065 * v332 & 0x3FFFF;
- v329 ^= v13;
- if ( (v329 & 0xFC000000) != 1342177280 )
- continue;
- v8 = (unsigned int *)(v325 - 524280 + 4 * (v329 & 0x3FFFF));
- if ( retaddr - (_BYTE *)sub_8F1000 < (unsigned int)&loc_F9B1C0
- || retaddr - (_BYTE *)sub_2347000 < (unsigned int)&loc_C5705A + 6 )
- {
- goto LABEL_28;
- }
- dword_20E46C8 |= 0x200000u;
- LODWORD(qword_20E4698) = qword_20E4698 | 0x100000;
- dword_20E7A94 = 0;
- continue;
- case 21:
- v127 = L;
- *(_DWORD *)v323 = v323 - (char *)v8;
- v155 = v13 >> 9;
- if ( (v13 >> 9) & 0x100 )
- v156 = v327 + 16 * (unsigned __int8)v155;
- else
- v156 = v331 + 16 * ((v13 >> 9) & 0x1FF);
- if ( v13 & 0x100 )
- v157 = v327 + 16 * (unsigned __int8)v13;
- else
- v157 = v331 + 16 * (v13 & 0x1FF);
- v158 = sub_C64BB0(L, v157, v156);
- if ( v158 != (unsigned __int8)(v329 >> 18) )
- goto LABEL_215;
- v159 = v322 * *v8;
- v160 = v332++ + 1;
- v328 = v159 >> 26;
- switch ( v159 >> 26 )
- {
- case 5u:
- v161 = v159 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v159, 7) ^ __ROL4__(v159, 13);
- break;
- case 0x14u:
- v161 = v159 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v159, 6) ^ __ROL4__(v159, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v162 = v159 * ((_DWORD)&stru_1F3D89C + v160 + 19) - (_DWORD)&unk_1C0BCC3;
- v164 = v332 * v159 - 5512095;
- goto LABEL_254;
- case 0x1Fu:
- v162 = v160 - 29799480 * v159 - 5512095;
- v163 = 32757935 * v159;
- goto LABEL_253;
- case 0x25u:
- v162 = 32757935 * v159 + v160 - 29408451;
- v163 = 9837702 * v159;
- LABEL_253:
- v164 = v332 + v163;
- LABEL_254:
- v161 = (v328 << 26) | (v164 ^ v162) & 0x3FFFFFF;
- break;
- default:
- v161 = v159;
- break;
- }
- if ( (v161 & 0xFC000000) != 1342177280 )
- goto LABEL_215;
- nelems = v159 >> 26;
- switch ( v159 >> 26 )
- {
- case 5u:
- v142 = v313;
- v139 = v159 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v159, 7) ^ __ROL4__(v159, 13);
- break;
- case 0x14u:
- v142 = v313;
- v139 = v159 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v159, 6) ^ __ROL4__(v159, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v142 = v313;
- v139 = (v159 >> 26 << 26) | ((v332 * v159 - 5512095) ^ (v159 * ((_DWORD)&stru_1F3D89C + v332 + 19)
- - (_DWORD)&unk_1C0BCC3)) & 0x3FFFFFF;
- break;
- case 0x1Fu:
- v165 = v332 - 29799480 * v159 - 5512095;
- v166 = v332 + 32757935 * v159;
- goto LABEL_263;
- case 0x25u:
- v165 = 32757935 * v159 + v332 - 29408451;
- v166 = v332 + 9837702 * v159;
- LABEL_263:
- v139 = (nelems << 26) | (v166 ^ v165) & 0x3FFFFFF;
- v142 = v313;
- break;
- default:
- v142 = v313;
- v139 = v159;
- break;
- }
- goto LABEL_212;
- case 22:
- v115 = v13;
- v116 = 2 * (v13 & 0x1FF);
- v117 = 2 * (unsigned __int8)(v115 >> 18);
- if ( *(_DWORD *)(v331 + 8 * v116 + 8)
- && (*(_DWORD *)(v331 + 8 * v116 + 8) != 3 || *(_DWORD *)(v331 + 8 * v116)) )
- {
- *(_DWORD *)(v331 + 8 * v117 + 8) = 3;
- *(_DWORD *)(v17 + 8 * v117) = 0;
- }
- else
- {
- *(_DWORD *)(v331 + 8 * v117 + 8) = 3;
- *(_DWORD *)(v17 + 8 * v117) = 1;
- }
- continue;
- case 23:
- v167 = !*(_DWORD *)(v331 + 16 * (unsigned __int8)(v13 >> 18) + 8)
- || *(_DWORD *)(v331 + 16 * (unsigned __int8)(v13 >> 18) + 8) == 3
- && !*(_DWORD *)(v331 + 16 * (unsigned __int8)(v13 >> 18));
- if ( v167 == ((v13 >> 9) & 0x1FF) )
- goto LABEL_21;
- v168 = v322 * *v8;
- ++v332;
- v329 = v168;
- v328 = v168 >> 26;
- switch ( v168 >> 26 )
- {
- case 5u:
- v168 = v329 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v329, 7) ^ __ROL4__(v168, 13);
- break;
- case 0x14u:
- v168 = v329 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v329, 6) ^ __ROL4__(v168, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v169 = v329 * ((_DWORD)&stru_1F3D89C + v332 + 19) - (_DWORD)&unk_1C0BCC3;
- v170 = v332 * v329 - 5512095;
- goto LABEL_279;
- case 0x1Fu:
- v169 = v332 - 29799480 * v168 - 5512095;
- v170 = v332 + 32757935 * v329;
- goto LABEL_279;
- case 0x25u:
- v169 = 32757935 * v168 + v332 - 29408451;
- v170 = v332 + 9837702 * v329;
- LABEL_279:
- v168 = (v328 << 26) | (v170 ^ v169) & 0x3FFFFFF;
- break;
- default:
- break;
- }
- if ( (v168 & 0xFC000000) != 1342177280 )
- goto LABEL_21;
- nelems = v329 >> 26;
- switch ( v329 >> 26 )
- {
- case 5u:
- v171 = v329 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v329, 7) ^ __ROL4__(v329, 13);
- break;
- case 0x14u:
- v171 = v329 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v329, 6) ^ __ROL4__(v329, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v171 = (v329 >> 26 << 26) | ((v332 * v329 - 5512095) ^ (v329 * ((_DWORD)&stru_1F3D89C + v332 + 19)
- - (_DWORD)&unk_1C0BCC3)) & 0x3FFFFFF;
- break;
- case 0x1Fu:
- v172 = v332 - 29799480 * v329 - 5512095;
- v173 = v332 + 32757935 * v329;
- goto LABEL_285;
- case 0x25u:
- v172 = 32757935 * v329 + v332 - 29408451;
- v173 = v332 + 9837702 * v329;
- LABEL_285:
- v171 = (nelems << 26) | (v173 ^ v172) & 0x3FFFFFF;
- break;
- default:
- v171 = v329;
- break;
- }
- v174 = (int)v318;
- goto LABEL_290;
- case 24:
- v107 = v13;
- v108 = (_DWORD *)(v331 + 16 * (v13 & 0x1FF));
- v55 = v331 + 16 * (unsigned __int8)(v107 >> 18);
- v329 = (unsigned int)v108;
- LClosure = v55;
- if ( v108[2] != 2 )
- {
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v109 = v108[2];
- if ( v109 == 2 )
- {
- v110 = xmmword_1FC2B20;
- nelems = (int)v108;
- LABEL_155:
- v112 = v108[2];
- if ( v112 == 2 )
- goto LABEL_159;
- if ( v112 == 4 )
- {
- if ( sub_C68560((unsigned __int8 *)(*v108 + 24), (double *)&v301) )
- {
- v110 = xmmword_1FC2B20;
- LABEL_159:
- v5 = xmmword_1C72DA0;
- v113 = (__int64 *)LClosure;
- v114 = COERCE_DOUBLE(*(_QWORD *)nelems ^ v110 ^ xmmword_1C72DA0);
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- *(_DWORD *)(LClosure + 8) = 2;
- *v113 = *(_QWORD *)&v114 ^ v110;
- v331 = *(_DWORD *)(L + 16);
- continue;
- }
- v108 = (_DWORD *)v329;
- }
- }
- else if ( v109 == 4 )
- {
- v111 = sub_C68560((unsigned __int8 *)(*v108 + 24), (double *)&v302);
- v108 = (_DWORD *)v329;
- if ( v111 )
- {
- v110 = xmmword_1FC2B20;
- v288 = 2;
- v287 = *(_QWORD *)&v302 ^ xmmword_1FC2B20;
- nelems = (int)&v287;
- goto LABEL_155;
- }
- }
- if ( !sub_C62AA0(L, v108, v108, LClosure, 10) )
- sub_C664E0(L, (__int64 *)v329, (__int64 *)v329);
- v5 = xmmword_1C72DA0;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- v331 = *(_DWORD *)(L + 16);
- continue;
- }
- v56 = *(_QWORD *)v108 ^ xmmword_1FC2B20 ^ v5 ^ xmmword_1FC2B20;
- LABEL_72:
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- *(_QWORD *)v55 = v56;
- *(_DWORD *)(v55 + 8) = 2;
- continue;
- case 25:
- v328 = v13 & 0x1FF;
- *(_DWORD *)v323 = v323 - (char *)v8;
- sub_C68C20(L, ((v13 >> 9) & 0x1FF) - (v13 & 0x1FF) + 1, (v13 >> 9) & 0x1FF);
- if ( *(_DWORD *)(L + 24 - *(_DWORD *)(L + 24) + 76) >= *(_DWORD *)(L + 24 - *(_DWORD *)(L + 24) + 72) )
- sub_C652E0(L);
- v331 = *(_DWORD *)(L + 16);
- v328 = v331 + 16 * v328;
- v125 = (_DWORD *)(v331 + 16 * (unsigned __int8)(v329 >> 18));
- v126 = v328;
- *v125 = *(_DWORD *)v328;
- v125[1] = *(_DWORD *)(v126 + 4);
- v125[2] = *(_DWORD *)(v126 + 8);
- goto LABEL_28;
- case 26:
- v127 = L;
- if ( v13 & 0x100 )
- v128 = v327 + 16 * (unsigned __int8)v13;
- else
- v128 = v331 + 16 * (v13 & 0x1FF);
- v129 = v13 >> 9;
- nelems = v128;
- if ( v129 & 0x100 )
- v130 = v327 + 16 * (unsigned __int8)v129;
- else
- v130 = v331 + 16 * (v129 & 0x1FF);
- v131 = nelems;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v132 = *(_DWORD *)(v131 + 8) == *(_DWORD *)(v130 + 8) && sub_C69060(L, v131, v130);
- if ( v132 == (unsigned __int8)(v329 >> 18) )
- {
- v133 = v322 * *v8;
- v134 = v332++ + 1;
- v328 = v133 >> 26;
- switch ( v133 >> 26 )
- {
- case 5u:
- v135 = v133 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v133, 7) ^ __ROL4__(v133, 13);
- break;
- case 0x14u:
- v135 = v133 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v133, 6) ^ __ROL4__(v133, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v136 = v133 * ((_DWORD)&stru_1F3D89C + v134 + 19) - (_DWORD)&unk_1C0BCC3;
- v138 = v133 * v332 - 5512095;
- goto LABEL_198;
- case 0x1Fu:
- v136 = v134 - 29799480 * v133 - 5512095;
- v137 = 32757935 * v133;
- goto LABEL_197;
- case 0x25u:
- v136 = 32757935 * v133 + v134 - 29408451;
- v137 = 9837702 * v133;
- LABEL_197:
- v138 = v332 + v137;
- LABEL_198:
- v135 = (v328 << 26) | (v138 ^ v136) & 0x3FFFFFF;
- break;
- default:
- v135 = v133;
- break;
- }
- if ( (v135 & 0xFC000000) == 1342177280 )
- {
- nelems = v133 >> 26;
- switch ( v133 >> 26 )
- {
- case 5u:
- v139 = v133 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v133, 7) ^ __ROL4__(v133, 13);
- break;
- case 0x14u:
- v139 = v133 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v133, 6) ^ __ROL4__(v133, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v139 = (v133 >> 26 << 26) | ((v332 * v133 - 5512095) ^ (v133 * ((_DWORD)&stru_1F3D89C + v332 + 19)
- - (_DWORD)&unk_1C0BCC3)) & 0x3FFFFFF;
- break;
- case 0x1Fu:
- v140 = v332 - 29799480 * v133 - 5512095;
- v141 = v332 + 32757935 * v133;
- goto LABEL_207;
- case 0x25u:
- v140 = 32757935 * v133 + v332 - 29408451;
- v141 = v332 + 9837702 * v133;
- LABEL_207:
- v139 = (nelems << 26) | (v141 ^ v140) & 0x3FFFFFF;
- break;
- default:
- v139 = v133;
- break;
- }
- v142 = v312;
- LABEL_212:
- v8 = &v142[(v139 & 0x3FFFF) - 131070];
- if ( retaddr - (_BYTE *)sub_8F1000 >= (unsigned int)&loc_F9B1C0
- && retaddr - (_BYTE *)sub_2347000 >= (unsigned int)&loc_C5705A + 6 )
- {
- dword_20E46C8 |= 0x200000u;
- LODWORD(qword_20E4698) = qword_20E4698 | 0x100000;
- dword_20E7A94 = 0;
- }
- }
- }
- LABEL_215:
- v331 = *(_DWORD *)(v127 + 16);
- goto LABEL_216;
- case 27:
- v328 = v13 * ((_DWORD)&stru_1F3D89C + result + 19) - (_DWORD)&unk_1C0BCC3;
- v328 ^= result * v13 - 5512095;
- v320 = v331 + 16 * (unsigned __int8)((v328 & 0x3FFFFFF | 0x6C000000) >> 18);
- v190 = (v328 & 0x3FFFFFF | 0x6C000000) & 0x1FF;
- if ( v190 )
- *(_DWORD *)(L + 12) = v331 + 16 * (unsigned __int8)((v328 & 0x3FFFFFF | 0x6C000000) >> 18) + 16 * v190;
- v191 = v320;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- *(_DWORD *)(L + 12) = *(_DWORD *)(L + 16);
- v192 = sub_C65960(L, v191, -1);
- if ( !v192 )
- goto LABEL_27;
- if ( v192 != 1 )
- goto LABEL_430;
- v193 = (unsigned int *)(*(_DWORD *)(L + 32) - 24);
- v16 = *(_DWORD *)(L + 100) == 0;
- v324 = v193;
- v194 = (_DWORD *)v193[11];
- nelems = v193[5];
- LClosure = (int)v194;
- if ( !v16 )
- {
- sub_C660B0(L, v193[1]);
- v194 = (_DWORD *)LClosure;
- }
- v195 = ((v193[7] - (_DWORD)v194) & 0xFFFFFFF0) + v193[5];
- v193[1] = v195;
- v196 = 0;
- *(_DWORD *)(L + 16) = v195;
- if ( (unsigned int)v194 < *(_DWORD *)(L + 12) )
- {
- v197 = 0;
- do
- {
- v198 = nelems;
- ++v196;
- *(_DWORD *)(v197 + nelems) = *v194;
- *(_DWORD *)(v197 + v198 + 4) = v194[1];
- v199 = v194[2];
- v200 = v198;
- *(_DWORD *)(v197 + v200 + 8) = v199;
- v197 = 16 * v196;
- v194 = (_DWORD *)(16 * v196 + LClosure);
- }
- while ( (unsigned int)v194 < *(_DWORD *)(L + 12) );
- }
- v201 = v324;
- v4 = (_DWORD *)(L + 20);
- v202 = 16 * v196 + nelems;
- *(_DWORD *)(L + 12) = v202;
- v201[3] = v202;
- v203 = (int)v4 - *v4;
- ++v201[2];
- v201[4] = v203;
- *(_DWORD *)(L + 32) -= 24;
- goto LABEL_2;
- case 28:
- v220 = (unsigned __int8)(v13 >> 18);
- v221 = (_DWORD *)(v331 + 16 * v220);
- v222 = v221 + 12;
- v222[8] = v221[8];
- v222[9] = v221[9];
- v222[10] = v221[10];
- v222[4] = v221[4];
- v222[5] = v221[5];
- v222[6] = v221[6];
- *v222 = *v221;
- v222[1] = v221[1];
- v222[2] = v221[2];
- *(_DWORD *)(L + 12) = v221 + 24;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- sub_C65440(L, (int)(v221 + 12), (v329 >> 9) & 0x1FF);
- v331 = *(_DWORD *)(L + 16);
- v223 = (_DWORD *)(v331 + 16 * (v220 + 3));
- *(_DWORD *)(L + 12) = *(_DWORD *)(*(_DWORD *)(L + 32) + 12);
- if ( !v223[2] )
- goto LABEL_216;
- v224 = v332;
- *(v223 - 4) = *v223;
- v225 = v224 + 1;
- *(v223 - 3) = v223[1];
- *(v223 - 2) = v223[2];
- v226 = v322 * *v8;
- v332 = v225;
- v328 = v226 >> 26;
- switch ( v226 >> 26 )
- {
- case 5u:
- v227 = v226 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v226, 7) ^ __ROL4__(v226, 13);
- break;
- case 0x14u:
- v227 = v226 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v226, 6) ^ __ROL4__(v226, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v228 = v226 * ((_DWORD)&stru_1F3D89C + v225 + 19) - (_DWORD)&unk_1C0BCC3;
- v230 = v332 * v226 - 5512095;
- goto LABEL_355;
- case 0x1Fu:
- v228 = v225 - 29799480 * v226 - 5512095;
- v229 = 32757935 * v226;
- goto LABEL_354;
- case 0x25u:
- v228 = 32757935 * v226 + v225 - 29408451;
- v229 = 9837702 * v226;
- LABEL_354:
- v230 = v332 + v229;
- LABEL_355:
- v227 = (v328 << 26) | (v230 ^ v228) & 0x3FFFFFF;
- break;
- default:
- v227 = v226;
- break;
- }
- if ( (v227 & 0xFC000000) != 1342177280 )
- goto LABEL_216;
- switch ( v226 >> 26 )
- {
- case 5u:
- v231 = v226 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v226, 7) ^ __ROL4__(v226, 13);
- break;
- case 0x14u:
- v231 = v226 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v226, 6) ^ __ROL4__(v226, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v231 = (v226 >> 26 << 26) | ((v226 * v332 - 5512095) ^ (v226 * ((_DWORD)&stru_1F3D89C + v332 + 19)
- - (_DWORD)&unk_1C0BCC3)) & 0x3FFFFFF;
- break;
- case 0x1Fu:
- v231 = (v226 >> 26 << 26) | ((v332 + 32757935 * v226) ^ (v332 - 29799480 * v226 - 5512095)) & 0x3FFFFFF;
- break;
- case 0x25u:
- v231 = (v226 >> 26 << 26) | ((v332 + 9837702 * v226) ^ (32757935 * v226 + v332 - 29408451)) & 0x3FFFFFF;
- break;
- default:
- v231 = v226;
- break;
- }
- v8 = (unsigned int *)&v314[(v231 & 0x3FFFF) - 131070];
- if ( retaddr - (_BYTE *)sub_8F1000 >= (unsigned int)&loc_F9B1C0
- && retaddr - (_BYTE *)sub_2347000 >= (unsigned int)&loc_C5705A + 6 )
- {
- dword_20E46C8 |= 0x200000u;
- LODWORD(qword_20E4698) = qword_20E4698 | 0x100000;
- ++v8;
- dword_20E7A94 = 0;
- }
- else
- {
- LABEL_216:
- ++v8;
- }
- goto LABEL_28;
- case 29:
- v204 = (_QWORD *)(v331 + 16 * (unsigned __int8)(v13 >> 18));
- v320 = (int)v204;
- *(_QWORD *)&v205 = v204[4] ^ xmmword_1FC2B20;
- v206 = v204[2];
- v207 = COERCE_DOUBLE(*v204 ^ xmmword_1FC2B20) + v205;
- v208 = 0;
- *(_QWORD *)&v209 = v206 ^ xmmword_1FC2B20;
- if ( v205 <= 0.0 )
- v210 = v207 < v209;
- else
- v210 = v209 < v207;
- v5 = xmmword_1C72DA0;
- LOBYTE(v208) = !v210;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- if ( !v208 )
- continue;
- v8 = (unsigned int *)(v315 - 524280 + 4 * (v13 & 0x3FFFF));
- if ( retaddr - (_BYTE *)sub_8F1000 >= (unsigned int)&loc_F9B1C0
- && retaddr - (_BYTE *)sub_2347000 >= (unsigned int)&loc_C5705A + 6 )
- {
- dword_20E46C8 |= 0x200000u;
- LODWORD(qword_20E4698) = qword_20E4698 | 0x100000;
- dword_20E7A94 = 0;
- }
- v211 = v320;
- *(_QWORD *)v320 = *(_QWORD *)&v207 ^ xmmword_1FC2B20;
- *(_DWORD *)(v211 + 8) = 2;
- *(_QWORD *)(v211 + 48) = *(_QWORD *)&v207 ^ xmmword_1FC2B20;
- *(_DWORD *)(v211 + 56) = 2;
- goto LABEL_28;
- case 30:
- v332 = v331 + 16 * (unsigned __int8)(v13 >> 18);
- v232 = v13 & 0x1FF;
- v233 = (v13 >> 9) & 0x1FF;
- v325 = v232;
- if ( !v232 )
- {
- v325 = ((*(_DWORD *)(L + 12) - v332) >> 4) - 1;
- *(_DWORD *)(L + 12) = *(_DWORD *)(*(_DWORD *)(L + 32) + 12);
- }
- if ( !v233 )
- {
- v234 = *v8;
- v8 = (unsigned int *)(proto + 8);
- v233 = v322 * v234;
- nelems = proto + 8;
- }
- if ( *(_DWORD *)(v332 + 8) != 7 )
- continue;
- v328 = *(_DWORD *)v332;
- v235 = v325 - 50 + 50 * v233;
- v236 = v328;
- v329 = v235;
- if ( v235 > *(_DWORD *)(v328 + 20) )
- {
- sub_C66C80(L, v328, v235);
- v236 = v328;
- }
- v5 = xmmword_1C72DA0;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- if ( v325 <= 0 )
- continue;
- v237 = (_DWORD *)(v332 + 16 * v325);
- do
- {
- v238 = (_DWORD *)sub_C66D60(L, v236, v329);
- v239 = *v237;
- --v329;
- v236 = v328;
- *v238 = v239;
- v238[1] = v237[1];
- v238[2] = v237[2];
- if ( v237[2] >= 4 )
- {
- if ( *(_BYTE *)(*v237 + 4) & 3 )
- {
- v240 = *(_BYTE *)(v236 + 4);
- if ( v240 & 4 )
- {
- v241 = L + 24 - *(_DWORD *)(L + 24);
- *(_BYTE *)(v236 + 4) = v240 & 0xFB;
- *(_DWORD *)(v236 + 12) = *(_DWORD *)(v241 + 40);
- *(_DWORD *)(v241 + 40) = v236;
- }
- }
- }
- v237 -= 4;
- --v325;
- }
- while ( v325 > 0 );
- v8 = (unsigned int *)nelems;
- goto LABEL_28;
- case 31:
- v184 = ((v332 + 32757935 * v13) ^ (v332 - 29799480 * v13 - 5512095)) & 0x3FFFFFF | 0x7C000000;
- v185 = (v332 - 10065 * v13) ^ (v332 - -19400 * v13 - 7071);
- v186 = v331 + 16 * (unsigned __int8)(v184 >> 18);
- nelems = ((v184 >> 9) & 0x1FF) - 1;
- v187 = v185 & 0x1FF;
- if ( v187 )
- *(_DWORD *)(L + 12) = v186 + 16 * v187;
- v188 = nelems;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v189 = sub_C65960(L, v186, v188);
- if ( !v189 )
- {
- ++nexeccalls;
- v4 = (_DWORD *)(L + 20);
- goto LABEL_2;
- }
- if ( v189 != 1 )
- goto LABEL_430;
- if ( nelems >= 0 )
- *(_DWORD *)(L + 12) = *(_DWORD *)(*(_DWORD *)(L + 32) + 12);
- LABEL_27:
- v331 = *(_DWORD *)(L + 16);
- LABEL_28:
- v5 = xmmword_1C72DA0;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- continue;
- case 32:
- v8 = v324 + 2;
- sub_C660B0(L, v331 + 16 * (unsigned __int8)(v13 >> 18));
- goto LABEL_28;
- case 33:
- v328 = v331 + 16 * (unsigned __int8)(v13 >> 18);
- v175 = (unsigned __int64 *)(v331 + 16 * (v13 & 0x1FF));
- v318 = v175;
- nelems = !*((_DWORD *)v175 + 2) || *((_DWORD *)v175 + 2) == 3 && !*(_DWORD *)v175;
- if ( nelems == ((v13 >> 9) & 0x1FF) )
- goto LABEL_21;
- v176 = *(_DWORD *)v175;
- v177 = v328;
- ++v332;
- *(_DWORD *)v328 = v176;
- v178 = v318;
- *(_DWORD *)(v177 + 4) = *((_DWORD *)v318 + 1);
- *(_DWORD *)(v177 + 8) = *((_DWORD *)v178 + 2);
- v179 = v322 * *v8;
- v329 = v179;
- v328 = v179 >> 26;
- switch ( v179 >> 26 )
- {
- case 5u:
- v179 = v329 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v329, 7) ^ __ROL4__(v179, 13);
- break;
- case 0x14u:
- v179 = v329 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v329, 6) ^ __ROL4__(v179, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v180 = v329 * ((_DWORD)&stru_1F3D89C + v332 + 19) - (_DWORD)&unk_1C0BCC3;
- v181 = v332 * v329 - 5512095;
- goto LABEL_305;
- case 0x1Fu:
- v180 = v332 - 29799480 * v179 - 5512095;
- v181 = v332 + 32757935 * v329;
- goto LABEL_305;
- case 0x25u:
- v180 = 32757935 * v179 + v332 - 29408451;
- v181 = v332 + 9837702 * v329;
- LABEL_305:
- v179 = (v328 << 26) | (v181 ^ v180) & 0x3FFFFFF;
- break;
- default:
- break;
- }
- if ( (v179 & 0xFC000000) != 1342177280 )
- goto LABEL_21;
- nelems = v329 >> 26;
- switch ( v329 >> 26 )
- {
- case 5u:
- v174 = v320;
- v171 = v329 ^ 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v329, 7) ^ __ROL4__(v329, 13);
- break;
- case 0x14u:
- v174 = v320;
- v171 = v329 ^ -10065 * v332 & 0x3FFFF ^ __ROR4__(v329, 6) ^ __ROL4__(v329, 9);
- break;
- case 0x1Bu:
- case 0x22u:
- v174 = v320;
- v171 = (v329 >> 26 << 26) | ((v329 * v332 - 5512095) ^ (v329 * ((_DWORD)&stru_1F3D89C + v332 + 19)
- - (_DWORD)&unk_1C0BCC3)) & 0x3FFFFFF;
- break;
- case 0x1Fu:
- v182 = v332 - 29799480 * v329 - 5512095;
- v183 = v332 + 32757935 * v329;
- goto LABEL_311;
- case 0x25u:
- v182 = 32757935 * v329 + v332 - 29408451;
- v183 = v332 + 9837702 * v329;
- LABEL_311:
- v171 = (nelems << 26) | (v183 ^ v182) & 0x3FFFFFF;
- v174 = v320;
- break;
- default:
- v174 = v320;
- v171 = v329;
- break;
- }
- LABEL_290:
- v8 = (unsigned int *)(v174 - 524280 + 4 * (v171 & 0x3FFFF));
- if ( retaddr - (_BYTE *)sub_8F1000 < (unsigned int)&loc_F9B1C0
- || retaddr - (_BYTE *)sub_2347000 < (unsigned int)&loc_C5705A + 6 )
- {
- LABEL_21:
- ++v8;
- }
- else
- {
- dword_20E46C8 |= 0x200000u;
- LODWORD(qword_20E4698) = qword_20E4698 | 0x100000;
- ++v8;
- dword_20E7A94 = 0;
- }
- continue;
- case 34:
- nelems = v13 >> 26;
- switch ( v13 >> 26 )
- {
- case 5u:
- v327 = 9837702 * v332 & 0x3FC01FF ^ __ROR4__(v13, 7) ^ __ROL4__(v13, 13);
- v327 ^= v13;
- v13 = v327;
- break;
- case 0x14u:
- v327 = -10065 * v332 & 0x3FFFF ^ __ROR4__(v13, 6) ^ __ROL4__(v13, 9);
- v327 ^= v13;
- v17 = v331;
- v13 = v327;
- break;
- case 0x1Bu:
- case 0x22u:
- v279 = v13 * ((_DWORD)&stru_1F3D89C + v332 + 19) - (_DWORD)&unk_1C0BCC3;
- v280 = v332 * v13 - 5512095;
- v327 = v280 ^ v279;
- v278 = v280 ^ v279;
- goto LABEL_421;
- case 0x1Fu:
- v327 = v332 - 29799480 * v13 - 5512095;
- v278 = (v332 + 32757935 * v13) ^ v327;
- LABEL_421:
- v13 = (nelems << 26) | v278 & 0x3FFFFFF;
- break;
- case 0x25u:
- v17 = v331;
- v327 = v332 - 29408451 + 32757935 * v13;
- v13 = (nelems << 26) | ((v332 + 9837702 * v13) ^ v327) & 0x3FFFFFF;
- break;
- default:
- break;
- }
- v281 = v17 + 16 * (unsigned __int8)(v13 >> 18);
- v324 = (unsigned int *)(v17 + 16 * (unsigned __int8)(v13 >> 18));
- v282 = v13 & 0x1FF;
- if ( v282 )
- *(_DWORD *)(L + 12) = 16 * v282 + v281 - 16;
- if ( *(_DWORD *)(L + 100) )
- sub_C660B0(L, v17);
- v283 = v324;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v284 = sub_C658C0(L, v283);
- if ( !--nexeccalls )
- goto LABEL_430;
- v5 = xmmword_1C72DA0;
- v4 = (_DWORD *)(L + 20);
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- if ( !v284 )
- goto reentry;
- v4 = (_DWORD *)(L + 20);
- *(_DWORD *)(L + 12) = *(_DWORD *)(*(_DWORD *)(L + 32) + 12);
- goto LABEL_2;
- case 35:
- v212 = v331 + 16 * (unsigned __int8)(v13 >> 18);
- v318 = (unsigned __int64 *)v212;
- v320 = v212 + 32;
- v213 = v212 + 16;
- v315 = v212 + 16;
- *(_DWORD *)v323 = v323 - (char *)v8;
- if ( *(_DWORD *)(v212 + 8) != 2 )
- {
- if ( !sub_C6C310(v212, v212) )
- {
- v324 = (unsigned int *)((char *)&stru_1FB8C64.action + 3);
- sub_C666F0(L, &stru_1FB8C64.action - 797928);
- }
- v213 = v315;
- }
- if ( *(_DWORD *)(v213 + 8) != 2 && !sub_C6C310(v213, v213) )
- {
- v324 = (unsigned int *)((char *)&stru_1FBA9AC.pTryBlockMap + 1);
- sub_C666F0(L, &stru_1FBA9AC.pTryBlockMap - 799795);
- }
- v214 = (__int64 *)v320;
- if ( *(_DWORD *)(v320 + 8) != 2 )
- {
- v214 = (__int64 *)sub_C6C310(v320, v320);
- if ( !v214 )
- {
- v324 = (unsigned int *)&unk_1FBC707;
- sub_C666F0(L, (char *)&unk_1FBC707 - 3206647);
- }
- }
- v215 = v318;
- v216 = xmmword_1FC2B20;
- v217 = *v214;
- v218 = v329;
- *(_QWORD *)&v219 = *v318 ^ xmmword_1FC2B20;
- *((_DWORD *)v318 + 2) = 2;
- *v215 = COERCE_UNSIGNED_INT64(v219 - COERCE_DOUBLE(v217 ^ v216)) ^ v216;
- v8 = &v311[(v218 & 0x3FFFF) - 131070];
- if ( retaddr - (_BYTE *)sub_8F1000 >= (unsigned int)&loc_F9B1C0
- && retaddr - (_BYTE *)sub_2347000 >= (unsigned int)&loc_C5705A + 6 )
- {
- dword_20E46C8 |= 0x200000u;
- LODWORD(qword_20E4698) = qword_20E4698 | 0x100000;
- dword_20E7A94 = 0;
- }
- goto LABEL_28;
- case 36:
- v266 = v13 >> 18;
- v267 = (v13 & 0x1FF) - 1;
- v324 = (unsigned int *)(16 * (unsigned __int8)v266);
- LClosure = (int)v324 + v331;
- v329 = *(_DWORD *)(L + 32);
- v332 = (*(_DWORD *)(v329 + 4) - *(_DWORD *)(v329 + 20)) >> 4;
- v332 -= *(unsigned __int8 *)((v316 ^ *(_DWORD *)v316) + 0x4D);
- --v332;
- if ( v267 == -1 )
- {
- v268 = v332;
- v269 = v332;
- *(_DWORD *)(L + 20) = L + 20 - (_DWORD)v8;
- v270 = *(_DWORD *)(L + 8) - *(_DWORD *)(L + 12);
- proto = 16 * v269;
- if ( v270 <= 16 * v269 )
- sub_C657A0(L, v268);
- v271 = *(_DWORD *)(L + 16);
- v267 = v332;
- LClosure = (int)v324 + v271;
- v331 = v271;
- *(_DWORD *)(L + 12) = (char *)v324 + v271 + proto;
- }
- v5 = xmmword_1C72DA0;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- v325 = 0;
- if ( v267 > 0 )
- {
- v272 = v332;
- v273 = v325;
- v274 = -16 * v332;
- v275 = (_DWORD *)(LClosure + 8);
- v328 = LClosure + 8;
- do
- {
- if ( v273 >= v272 )
- {
- *v275 = 0;
- }
- else
- {
- v276 = (_DWORD *)v328;
- v277 = *(_DWORD *)(v329 + 4);
- *(_DWORD *)(v328 - 8) = *(_DWORD *)(v277 + v274);
- *(v276 - 1) = *(_DWORD *)(v277 + v274 + 4);
- *v276 = *(_DWORD *)(v277 + v274 + 8);
- v275 = v276;
- v273 = v325;
- v272 = v332;
- }
- ++v273;
- v275 += 4;
- v274 += 16;
- v325 = v273;
- v328 = (unsigned int)v275;
- }
- while ( v273 < v267 );
- v5 = xmmword_1C72DA0;
- *(_QWORD *)&v6.m128d_f64[0] = qword_1C706E0;
- v8 = (unsigned int *)nelems;
- }
- continue;
- case 37:
- v242 = ((v332 + 9837702 * v13) ^ (32757935 * v13 + v332 - 29408451)) & 0x3FFFFFF | 0x94000000;
- v314 = (int *)(v331 + 16 * (unsigned __int8)(v242 >> 18));
- proto = *(_DWORD *)(4 * (v242 & 0x3FFFF)
- - *(_DWORD *)((v316 ^ *(_DWORD *)v316) + 0x20)
- + (v316 ^ *(_DWORD *)v316)
- + 32);
- nelems = *(unsigned __int8 *)(proto + 79);
- v245 = *(_DWORD *)(v321 + 12);
- v324 = (unsigned int *)nelems;
- LClosure = luaM_realloc_(L, 0, 0, 4 * nelems + 20, 4);
- v247 = (int)v319 - *v319;
- *(_DWORD *)LClosure = *(_DWORD *)(v247 + 28);
- v248 = *(_BYTE *)(v247 + 20);
- *(_DWORD *)(v247 + 28) = LClosure;
- v249 = nelems;
- *(_BYTE *)(LClosure + 4) = v248 & 3;
- *(_WORD *)(LClosure + 5) = 6;
- *(_DWORD *)(LClosure + 12) = v245;
- *(_BYTE *)(LClosure + 7) = v249;
- if ( v249 )
- {
- v251 = LClosure + 4 * v249 + 20;
- do
- {
- *(_DWORD *)(v251 - 4) = 0;
- v251 -= 4;
- v324 = (unsigned int *)((char *)v324 - 1);
- }
- while ( v324 );
- }
- *(_DWORD *)(LClosure + 16) = (LClosure + 16) ^ proto;
- v252 = 0;
- v332 = 0;
- if ( !v249 )
- goto LABEL_402;
- v253 = LClosure + 24;
- v254 = (_DWORD *)(LClosure + 20);
- v325 = LClosure + 24;
- v329 = LClosure + 20;
- break;
- }
- while ( 2 )
- {
- v255 = v322 * *v8;
- v328 = v322 * *v8;
- v328 >>= 26;
- switch ( v328 )
- {
- case 0x10u:
- v256 = sub_C661B0(L, v331 + 16 * (v255 & 0x1FF));
- v257 = v329;
- v258 = v325;
- ++v8;
- *(_DWORD *)v329 = v256;
- v254 = (_DWORD *)(v257 + 4);
- v252 = v332 + 1;
- v253 = v258 + 4;
- goto LABEL_400;
- case 0xBu:
- ++v8;
- *v254 = *(_DWORD *)(v321 + 4 * (v255 & 0x1FF) + 20);
- ++v254;
- v252 = v332 + 1;
- v253 += 4;
- goto LABEL_400;
- case 0x11u:
- v259 = sub_C661B0(L, v331 + 16 * (v255 & 0x1FF));
- v260 = v331 + 16 * ((v255 >> 9) & 0x1FF);
- *(_DWORD *)v329 = v259;
- v261 = sub_C661B0(L, v260);
- v254 = (_DWORD *)v329;
- LABEL_399:
- v263 = v325;
- ++v8;
- v254 += 2;
- *(_DWORD *)v325 = v261;
- v252 = v332 + 2;
- v253 = v263 + 8;
- LABEL_400:
- v325 = v253;
- v329 = (unsigned int)v254;
- v332 = v252;
- break;
- case 0xAu:
- v262 = v321;
- *v254 = *(_DWORD *)(v321 + 4 * (v255 & 0x1FF) + 20);
- v261 = *(_DWORD *)(v262 + 4 * ((v255 >> 9) & 0x1FF) + 20);
- goto LABEL_399;
- }
- if ( v252 >= nelems )
- {
- LABEL_402:
- v264 = v314;
- v265 = v319;
- *v314 = LClosure;
- v264[2] = 6;
- *(_DWORD *)v323 = v323 - (char *)v8;
- v38 = (int)v265 - *v265;
- v39 = (int)v265 - *v265;
- LABEL_50:
- if ( *(_DWORD *)(v39 + 76) >= *(_DWORD *)(v38 + 72) )
- sub_C652E0(L);
- goto LABEL_27;
- }
- continue;
- }
- }
- }
- *(_DWORD *)v323 = v323 - (char *)v8 + 4;
- LABEL_430:
- v286 = 0;
- v319 = (_DWORD *)-16363968;
- while ( *v285 != -1 )
- {
- result = v285[1] - 25739712;
- if ( result <= (unsigned int)v319 )
- {
- result = v286 + 2 * v286 + 1;
- goto LABEL_438;
- }
- ++v286;
- v285 = (_DWORD *)*v285;
- if ( v286 >= 2 )
- return result;
- }
- result = v285[6] - 25739712;
- if ( result > (unsigned int)v319 )
- return result;
- result = 3 * v286;
- LABEL_438:
- if ( 1 << result )
- {
- nelems = 4096;
- v324 = (unsigned int *)&unk_20F5760;
- result = 4096;
- unk_20F5760 |= 0x1000u;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement