Created
March 14, 2019 22:40
-
-
Save jugeeya/b5d8121d16b49edb1e0d03fb9e243e8e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Peach turnip 1 function | |
float __fastcall app::peachdaikon::PEACH_PEACHDAIKON_DAIKON_1_POWER(app::peachdaikon *this) | |
{ | |
return *(float *)(*(_QWORD *)(*(_QWORD *)(*off_710456A320[0] + 840) + 344LL) + 32LL); | |
} | |
// Peach turnip 1 assembly | |
EXPORT _ZN3app11peachdaikon32PEACH_PEACHDAIKON_DAIKON_1_POWEREv | |
.text:00000071010795D0 _ZN3app11peachdaikon32PEACH_PEACHDAIKON_DAIKON_1_POWEREv | |
.text:00000071010795D0 ADRP X8, #off_710456A320@PAGE | |
.text:00000071010795D4 LDR X8, [X8,#off_710456A320@PAGEOFF] | |
.text:00000071010795D8 LDR X8, [X8] ; lib::Singleton<app::FighterParamAccessor2>::instance_ | |
.text:00000071010795DC LDR X8, [X8,#0x348] | |
.text:00000071010795E0 LDR X8, [X8,#0x158] | |
.text:00000071010795E4 LDR S0, [X8,#0x20] | |
.text:00000071010795E8 RET | |
// ATTACK function | |
__int64 __fastcall sub_71019420D0(__int64 a1, __int64 a2) | |
{ | |
__int64 v2; // x20 | |
__int64 v3; // x25 | |
__int64 v4; // x24 | |
__int64 v5; // x19 | |
__int128 v6; // q0 | |
unsigned int v7; // w21 | |
__int64 v8; // x8 | |
__int64 v9; // x9 | |
__int64 v10; // x1 | |
__int64 v11; // x2 | |
void **v12; // x8 | |
unsigned __int64 v13; // x9 | |
void **v14; // x26 | |
int v15; // w8 | |
float v16; // w8 | |
signed __int64 v17; // x0 | |
_QWORD *v18; // x8 | |
__int64 v19; // x8 | |
void **v20; // x26 | |
int v21; // w8 | |
float v22; // w8 | |
signed __int64 v23; // x0 | |
_QWORD *v24; // x8 | |
__int64 v25; // x8 | |
void **v26; // x26 | |
int v27; // w8 | |
float v28; // s0 | |
signed __int64 v29; // x0 | |
_QWORD *v30; // x8 | |
__int64 v31; // x8 | |
__int128 v32; // q1 | |
void **v33; // x26 | |
int v34; // w8 | |
float v35; // s0 | |
signed __int64 v36; // x0 | |
_QWORD *v37; // x8 | |
__int64 v38; // x8 | |
__int128 v39; // q1 | |
void **v40; // x26 | |
int v41; // w8 | |
float v42; // s0 | |
signed __int64 v43; // x0 | |
_QWORD *v44; // x8 | |
__int64 v45; // x8 | |
__int128 v46; // q1 | |
_QWORD *v47; // x8 | |
__int64 v48; // x10 | |
unsigned __int64 v49; // x9 | |
void **v50; // x11 | |
unsigned __int64 v51; // x8 | |
void **v52; // x26 | |
int v53; // w8 | |
float v54; // s0 | |
signed __int64 v55; // x0 | |
_QWORD *v56; // x8 | |
__int64 v57; // x8 | |
__int128 v58; // q1 | |
void **v59; // x26 | |
int v60; // w8 | |
float v61; // s0 | |
signed __int64 v62; // x0 | |
_QWORD *v63; // x8 | |
__int64 v64; // x8 | |
__int128 v65; // q1 | |
void **v66; // x26 | |
int v67; // w8 | |
float v68; // s0 | |
signed __int64 v69; // x0 | |
_QWORD *v70; // x8 | |
__int64 v71; // x8 | |
__int128 v72; // q1 | |
unsigned __int64 v73; // x8 | |
void **v74; // x26 | |
int v75; // w8 | |
float v76; // w8 | |
signed __int64 v77; // x0 | |
_QWORD *v78; // x8 | |
__int64 v79; // x8 | |
void **v80; // x26 | |
int v81; // w8 | |
float v82; // w8 | |
signed __int64 v83; // x0 | |
_QWORD *v84; // x8 | |
__int64 v85; // x8 | |
void **v86; // x8 | |
int v87; // w9 | |
int v88; // w8 | |
__int64 v89; // x0 | |
void **v90; // x26 | |
int v91; // w8 | |
float v92; // s1 | |
float v93; // w8 | |
signed __int64 v94; // x0 | |
_QWORD *v95; // x8 | |
__int64 v96; // x8 | |
void **v97; // x26 | |
int v98; // w8 | |
signed __int64 v99; // x0 | |
_QWORD *v100; // x8 | |
unsigned __int64 v101; // x8 | |
_QWORD *v102; // x8 | |
void **v103; // x10 | |
unsigned __int64 v104; // x9 | |
int v105; // w11 | |
bool v106; // zf | |
char v107; // w10 | |
void **v108; // x10 | |
int v109; // w11 | |
bool v110; // zf | |
char v111; // w10 | |
void **v112; // x10 | |
int v113; // w11 | |
bool v114; // zf | |
void **v115; // x11 | |
int v116; // w12 | |
bool v117; // zf | |
char v118; // w11 | |
void **v119; // x8 | |
int v120; // w9 | |
unsigned __int64 v121; // x24 | |
bool v122; // zf | |
char v123; // w8 | |
int v124; // w0 | |
void **v125; // x8 | |
int v126; // w9 | |
bool v127; // zf | |
char v128; // w8 | |
unsigned __int64 i; // x8 | |
unsigned __int64 v130; // x9 | |
__int128 v132; // [xsp+0h] [xbp-150h] | |
__int128 v133; // [xsp+10h] [xbp-140h] | |
__int64 v134; // [xsp+20h] [xbp-130h] | |
__int64 v135; // [xsp+28h] [xbp-128h] | |
__int64 v136; // [xsp+30h] [xbp-120h] | |
__int64 v137; // [xsp+38h] [xbp-118h] | |
float v138; // [xsp+40h] [xbp-110h] | |
__int64 v139; // [xsp+48h] [xbp-108h] | |
int v140; // [xsp+50h] [xbp-100h] | |
char v141; // [xsp+54h] [xbp-FCh] | |
__int64 v142; // [xsp+58h] [xbp-F8h] | |
__int64 v143; // [xsp+60h] [xbp-F0h] | |
__int64 v144; // [xsp+68h] [xbp-E8h] | |
char v145; // [xsp+70h] [xbp-E0h] | |
__int16 v146; // [xsp+71h] [xbp-DFh] | |
char v147; // [xsp+73h] [xbp-DDh] | |
__int16 v148; // [xsp+74h] [xbp-DCh] | |
char v149; // [xsp+76h] [xbp-DAh] | |
__int64 v150; // [xsp+78h] [xbp-D8h] | |
__int16 v151; // [xsp+80h] [xbp-D0h] | |
__int64 v152; // [xsp+88h] [xbp-C8h] | |
__int128 v153; // [xsp+90h] [xbp-C0h] | |
int v154; // [xsp+A0h] [xbp-B0h] | |
__int16 v155; // [xsp+A4h] [xbp-ACh] | |
char v156; // [xsp+A6h] [xbp-AAh] | |
int v157; // [xsp+A8h] [xbp-A8h] | |
int v158; // [xsp+ACh] [xbp-A4h] | |
__int64 v159; // [xsp+B0h] [xbp-A0h] | |
__int64 v160; // [xsp+B8h] [xbp-98h] | |
__int16 v161; // [xsp+C0h] [xbp-90h] | |
__int16 v162; // [xsp+C4h] [xbp-8Ch] | |
int v163; // [xsp+C8h] [xbp-88h] | |
__int64 v164; // [xsp+CCh] [xbp-84h] | |
__int64 v165; // [xsp+D4h] [xbp-7Ch] | |
__int64 v166; // [xsp+DCh] [xbp-74h] | |
int v167; // [xsp+E4h] [xbp-6Ch] | |
char v168; // [xsp+E8h] [xbp-68h] | |
char v169; // [xsp+E9h] [xbp-67h] | |
__int64 v170; // [xsp+F0h] [xbp-60h] | |
__int64 v171; // [xsp+F8h] [xbp-58h] | |
v2 = a2; | |
v3 = **(_QWORD **)(a2 + 32); | |
v4 = *(_QWORD *)(a2 + 16); | |
v133 = 0uLL; | |
v134 = 0LL; | |
v135 = 0LL; | |
v138 = 1.0; | |
v136 = 0LL; | |
v137 = 4575657222473777152LL; | |
v139 = 0x31ED91FCALL; | |
v132 = 0uLL; | |
v5 = a1; | |
v146 = 0; | |
v141 = 0; | |
v140 = 0; | |
v147 = 0; | |
v148 = 0; | |
v151 = 0; | |
v145 = 0; | |
v144 = 0LL; | |
v150 = 0LL; | |
v152 = 0x31ED91FCALL; | |
v142 = 0x15A2C502B3LL; | |
v143 = 0LL; | |
v149 = 12; | |
v6 = *(_OWORD *)off_710456A310; | |
v157 = 0x3F800000; | |
v158 = 0; | |
v159 = 0x425CBFC4FLL; | |
v160 = 0x7FB997A80LL; | |
v154 = 0; | |
v156 = 0; | |
v155 = 0; | |
v161 = 0; | |
v162 = 0; | |
v163 = 0xBF800000; | |
v153 = v6; | |
v166 = 0LL; | |
v165 = 0LL; | |
v164 = 0LL; | |
v167 = -1; | |
v168 = 3; | |
v169 = 0; | |
v7 = sub_71029ACA40(a2, 1LL, 0LL); | |
sub_71029ACA40(v2, 2LL, 0LL); | |
v139 = sub_71029ACA40(v2, 3LL, 0LL); | |
v8 = **(_QWORD **)(v2 + 32); | |
v9 = *(_QWORD *)(v2 + 16); | |
sub_71029ACA40(v139, v10, v11); | |
if ( (unsigned __int64)v12 >= v13 ) | |
v14 = &off_7103C42FD0; | |
else | |
v14 = v12; | |
v15 = *((_DWORD *)v14 + 2); | |
if ( v15 == 3 ) | |
{ | |
v16 = *(float *)v14; | |
} | |
else if ( v15 == 19 ) | |
{ | |
v16 = (float)(signed __int64)*v14; | |
} | |
else if ( ((_DWORD)v14[1] & 0xF) != 4 | |
|| ((v17 = sub_71029C0CE0((unsigned __int8 *)*v14 + 24, (_BOOL8 *)&v170), v18 = *v14, *((_BYTE *)*v14 + 8) != 4) ? (v19 = v18[2]) : (v19 = *((unsigned __int8 *)v18 + 11)), | |
v17 != v19 + 1) ) | |
{ | |
v16 = 0.0; | |
} | |
else if ( (_DWORD)v171 == 19 ) | |
{ | |
v16 = (float)v170; | |
} | |
else | |
{ | |
v16 = *(float *)&v170; | |
} | |
*(float *)&v134 = v16; | |
LODWORD(v135) = sub_71029ACA40(v2, 5LL, 0LL); | |
HIDWORD(v135) = sub_71029ACA40(v2, 6LL, 0LL); | |
LODWORD(v136) = sub_71029ACA40(v2, 7LL, 0LL); | |
HIDWORD(v136) = sub_71029ACA40(v2, 8LL, 0LL); | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 144LL) >= *(_QWORD *)(v2 + 16) ) | |
v20 = &off_7103C42FD0; | |
else | |
v20 = (void **)(**(_QWORD **)(v2 + 32) + 144LL); | |
v21 = *((_DWORD *)v20 + 2); | |
if ( v21 == 3 ) | |
{ | |
v22 = *(float *)v20; | |
} | |
else if ( v21 == 19 ) | |
{ | |
v22 = (float)(signed __int64)*v20; | |
} | |
else if ( ((_DWORD)v20[1] & 0xF) != 4 | |
|| ((v23 = sub_71029C0CE0((unsigned __int8 *)*v20 + 24, (_BOOL8 *)&v170), v24 = *v20, *((_BYTE *)*v20 + 8) != 4) ? (v25 = v24[2]) : (v25 = *((unsigned __int8 *)v24 + 11)), | |
v23 != v25 + 1) ) | |
{ | |
v22 = 0.0; | |
} | |
else if ( (_DWORD)v171 == 19 ) | |
{ | |
v22 = (float)v170; | |
} | |
else | |
{ | |
v22 = *(float *)&v170; | |
} | |
*((float *)&v134 + 1) = v22; | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 160LL) >= *(_QWORD *)(v2 + 16) ) | |
v26 = &off_7103C42FD0; | |
else | |
v26 = (void **)(**(_QWORD **)(v2 + 32) + 160LL); | |
v27 = *((_DWORD *)v26 + 2); | |
if ( v27 == 3 ) | |
{ | |
v28 = *(float *)v26; | |
} | |
else if ( v27 == 19 ) | |
{ | |
v28 = (float)(signed __int64)*v26; | |
} | |
else if ( ((_DWORD)v26[1] & 0xF) != 4 | |
|| ((v29 = sub_71029C0CE0((unsigned __int8 *)*v26 + 24, (_BOOL8 *)&v170), v30 = *v26, *((_BYTE *)*v26 + 8) != 4) ? (v31 = v30[2]) : (v31 = *((unsigned __int8 *)v30 + 11)), | |
v29 != v31 + 1) ) | |
{ | |
v28 = 0.0; | |
} | |
else | |
{ | |
v28 = (float)v170; | |
if ( (_DWORD)v171 != 19 ) | |
v28 = *(float *)&v170; | |
} | |
v32 = v132; | |
*(float *)&v32 = v28; | |
v132 = v32; | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 176LL) >= *(_QWORD *)(v2 + 16) ) | |
v33 = &off_7103C42FD0; | |
else | |
v33 = (void **)(**(_QWORD **)(v2 + 32) + 176LL); | |
v34 = *((_DWORD *)v33 + 2); | |
if ( v34 == 3 ) | |
{ | |
v35 = *(float *)v33; | |
} | |
else if ( v34 == 19 ) | |
{ | |
v35 = (float)(signed __int64)*v33; | |
} | |
else if ( ((_DWORD)v33[1] & 0xF) != 4 | |
|| ((v36 = sub_71029C0CE0((unsigned __int8 *)*v33 + 24, (_BOOL8 *)&v170), v37 = *v33, *((_BYTE *)*v33 + 8) != 4) ? (v38 = v37[2]) : (v38 = *((unsigned __int8 *)v37 + 11)), | |
v36 != v38 + 1) ) | |
{ | |
v35 = 0.0; | |
} | |
else | |
{ | |
v35 = (float)v170; | |
if ( (_DWORD)v171 != 19 ) | |
v35 = *(float *)&v170; | |
} | |
v39 = v132; | |
*((float *)&v39 + 1) = v35; | |
v132 = v39; | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 192LL) >= *(_QWORD *)(v2 + 16) ) | |
v40 = &off_7103C42FD0; | |
else | |
v40 = (void **)(**(_QWORD **)(v2 + 32) + 192LL); | |
v41 = *((_DWORD *)v40 + 2); | |
if ( v41 == 3 ) | |
{ | |
v42 = *(float *)v40; | |
} | |
else if ( v41 == 19 ) | |
{ | |
v42 = (float)(signed __int64)*v40; | |
} | |
else if ( ((_DWORD)v40[1] & 0xF) != 4 | |
|| ((v43 = sub_71029C0CE0((unsigned __int8 *)*v40 + 24, (_BOOL8 *)&v170), v44 = *v40, *((_BYTE *)*v40 + 8) != 4) ? (v45 = v44[2]) : (v45 = *((unsigned __int8 *)v44 + 11)), | |
v43 != v45 + 1) ) | |
{ | |
v42 = 0.0; | |
} | |
else | |
{ | |
v42 = (float)v170; | |
if ( (_DWORD)v171 != 19 ) | |
v42 = *(float *)&v170; | |
} | |
*(_QWORD *)&v46 = v132; | |
*((_QWORD *)&v46 + 1) = LODWORD(v42); | |
v132 = v46; | |
v47 = *(_QWORD **)(v2 + 32); | |
v48 = *v47; | |
v49 = *(_QWORD *)(v2 + 16); | |
v50 = (void **)(*v47 + 192LL); | |
if ( ((unsigned __int64)v50 >= v49 || v50 == &off_7103C42FD0 || *(_BYTE *)(v48 + 200) & 0xF) | |
&& (v48 + 208 >= v49 || (void **)(v48 + 208) == &off_7103C42FD0 || *(_BYTE *)(v48 + 216) & 0xF) | |
&& (v48 + 224 >= v49 || (void **)(v48 + 224) == &off_7103C42FD0 || *(_BYTE *)(v48 + 232) & 0xF) ) | |
{ | |
v147 = 2; | |
v51 = *v47 + 208LL; | |
if ( v51 >= v49 ) | |
v52 = &off_7103C42FD0; | |
else | |
v52 = (void **)v51; | |
v53 = *((_DWORD *)v52 + 2); | |
if ( v53 == 3 ) | |
{ | |
v54 = *(float *)v52; | |
} | |
else if ( v53 == 19 ) | |
{ | |
v54 = (float)(signed __int64)*v52; | |
} | |
else if ( ((_DWORD)v52[1] & 0xF) != 4 | |
|| ((v55 = sub_71029C0CE0((unsigned __int8 *)*v52 + 24, (_BOOL8 *)&v170), | |
v56 = *v52, | |
*((_BYTE *)*v52 + 8) != 4) ? (v57 = v56[2]) : (v57 = *((unsigned __int8 *)v56 + 11)), | |
v55 != v57 + 1) ) | |
{ | |
v54 = 0.0; | |
} | |
else | |
{ | |
v54 = (float)v170; | |
if ( (_DWORD)v171 != 19 ) | |
v54 = *(float *)&v170; | |
} | |
v58 = v133; | |
*(float *)&v58 = v54; | |
v133 = v58; | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 224LL) >= *(_QWORD *)(v2 + 16) ) | |
v59 = &off_7103C42FD0; | |
else | |
v59 = (void **)(**(_QWORD **)(v2 + 32) + 224LL); | |
v60 = *((_DWORD *)v59 + 2); | |
if ( v60 == 3 ) | |
{ | |
v61 = *(float *)v59; | |
} | |
else if ( v60 == 19 ) | |
{ | |
v61 = (float)(signed __int64)*v59; | |
} | |
else if ( ((_DWORD)v59[1] & 0xF) != 4 | |
|| ((v62 = sub_71029C0CE0((unsigned __int8 *)*v59 + 24, (_BOOL8 *)&v170), | |
v63 = *v59, | |
*((_BYTE *)*v59 + 8) != 4) ? (v64 = v63[2]) : (v64 = *((unsigned __int8 *)v63 + 11)), | |
v62 != v64 + 1) ) | |
{ | |
v61 = 0.0; | |
} | |
else | |
{ | |
v61 = (float)v170; | |
if ( (_DWORD)v171 != 19 ) | |
v61 = *(float *)&v170; | |
} | |
v65 = v133; | |
*((float *)&v65 + 1) = v61; | |
v133 = v65; | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 240LL) >= *(_QWORD *)(v2 + 16) ) | |
v66 = &off_7103C42FD0; | |
else | |
v66 = (void **)(**(_QWORD **)(v2 + 32) + 240LL); | |
v67 = *((_DWORD *)v66 + 2); | |
if ( v67 == 3 ) | |
{ | |
v68 = *(float *)v66; | |
} | |
else if ( v67 == 19 ) | |
{ | |
v68 = (float)(signed __int64)*v66; | |
} | |
else if ( ((_DWORD)v66[1] & 0xF) != 4 | |
|| ((v69 = sub_71029C0CE0((unsigned __int8 *)*v66 + 24, (_BOOL8 *)&v170), | |
v70 = *v66, | |
*((_BYTE *)*v66 + 8) != 4) ? (v71 = v70[2]) : (v71 = *((unsigned __int8 *)v70 + 11)), | |
v69 != v71 + 1) ) | |
{ | |
v68 = 0.0; | |
} | |
else | |
{ | |
v68 = (float)v170; | |
if ( (_DWORD)v171 != 19 ) | |
v68 = *(float *)&v170; | |
} | |
*(_QWORD *)&v72 = v133; | |
*((_QWORD *)&v72 + 1) = LODWORD(v68); | |
v133 = v72; | |
v47 = *(_QWORD **)(v2 + 32); | |
v49 = *(_QWORD *)(v2 + 16); | |
} | |
else | |
{ | |
v147 = 0; | |
} | |
v73 = *v47 + 256LL; | |
if ( v73 >= v49 ) | |
v74 = &off_7103C42FD0; | |
else | |
v74 = (void **)v73; | |
v75 = *((_DWORD *)v74 + 2); | |
if ( v75 == 3 ) | |
{ | |
v76 = *(float *)v74; | |
} | |
else if ( v75 == 19 ) | |
{ | |
v76 = (float)(signed __int64)*v74; | |
} | |
else if ( ((_DWORD)v74[1] & 0xF) != 4 | |
|| ((v77 = sub_71029C0CE0((unsigned __int8 *)*v74 + 24, (_BOOL8 *)&v170), v78 = *v74, *((_BYTE *)*v74 + 8) != 4) ? (v79 = v78[2]) : (v79 = *((unsigned __int8 *)v78 + 11)), | |
v77 != v79 + 1) ) | |
{ | |
v76 = 0.0; | |
} | |
else if ( (_DWORD)v171 == 19 ) | |
{ | |
v76 = (float)v170; | |
} | |
else | |
{ | |
v76 = *(float *)&v170; | |
} | |
*((float *)&v137 + 1) = v76; | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 272LL) >= *(_QWORD *)(v2 + 16) ) | |
v80 = &off_7103C42FD0; | |
else | |
v80 = (void **)(**(_QWORD **)(v2 + 32) + 272LL); | |
v81 = *((_DWORD *)v80 + 2); | |
if ( v81 == 3 ) | |
{ | |
v82 = *(float *)v80; | |
} | |
else if ( v81 == 19 ) | |
{ | |
v82 = (float)(signed __int64)*v80; | |
} | |
else if ( ((_DWORD)v80[1] & 0xF) != 4 | |
|| ((v83 = sub_71029C0CE0((unsigned __int8 *)*v80 + 24, (_BOOL8 *)&v170), v84 = *v80, *((_BYTE *)*v80 + 8) != 4) ? (v85 = v84[2]) : (v85 = *((unsigned __int8 *)v84 + 11)), | |
v83 != v85 + 1) ) | |
{ | |
v82 = 0.0; | |
} | |
else if ( (_DWORD)v171 == 19 ) | |
{ | |
v82 = (float)v170; | |
} | |
else | |
{ | |
v82 = *(float *)&v170; | |
} | |
v138 = v82; | |
BYTE5(v144) = *((float *)&v137 + 1) <= 0.0; | |
BYTE2(v143) = sub_71029ACA40(v2, 18LL, 0LL); | |
BYTE2(v144) = sub_71029ACA40(v2, 19LL, 0LL); | |
v86 = (void **)(**(_QWORD **)(v2 + 32) + 320LL); | |
if ( (unsigned __int64)v86 >= *(_QWORD *)(v2 + 16) ) | |
v86 = &off_7103C42FD0; | |
v87 = *((_DWORD *)v86 + 2); | |
if ( !v87 ) | |
goto LABEL_191; | |
if ( v87 == 19 ) | |
{ | |
if ( !*v86 || (float)(signed __int64)*v86 == 0.0 ) | |
goto LABEL_191; | |
LABEL_188: | |
if ( v87 != 3 || *(float *)v86 != 0.0 ) | |
goto LABEL_190; | |
LABEL_191: | |
LOBYTE(v88) = 0; | |
goto LABEL_192; | |
} | |
if ( v87 != 1 ) | |
{ | |
if ( ((_DWORD)v86[1] & 0xF) == 3 && *(float *)v86 == 0.0 ) | |
goto LABEL_191; | |
goto LABEL_188; | |
} | |
v88 = *(_DWORD *)v86; | |
if ( v88 ) | |
LABEL_190: | |
v88 = *(_DWORD *)(*(_QWORD *)(*off_710456A320[0] + 80) + 1284LL); | |
LABEL_192: | |
BYTE6(v150) = v88; | |
v89 = sub_71029ACA40(v2, 21LL, 0LL); | |
if ( v89 == 10329139231LL ) | |
{ | |
BYTE4(v143) = 0; | |
} | |
else | |
{ | |
BYTE4(v143) = 1; | |
v148 = v89; | |
} | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 352LL) >= *(_QWORD *)(v2 + 16) ) | |
v90 = &off_7103C42FD0; | |
else | |
v90 = (void **)(**(_QWORD **)(v2 + 32) + 352LL); | |
v91 = *((_DWORD *)v90 + 2); | |
v92 = 0.0; | |
if ( v91 == 3 ) | |
{ | |
v93 = *(float *)v90; | |
} | |
else if ( v91 == 19 ) | |
{ | |
v93 = (float)(signed __int64)*v90; | |
} | |
else if ( ((_DWORD)v90[1] & 0xF) != 4 | |
|| ((v94 = sub_71029C0CE0((unsigned __int8 *)*v90 + 24, (_BOOL8 *)&v170), v95 = *v90, *((_BYTE *)*v90 + 8) != 4) ? (v96 = v95[2]) : (v96 = *((unsigned __int8 *)v95 + 11)), | |
v92 = 0.0, | |
v94 != v96 + 1) ) | |
{ | |
v93 = 0.0; | |
} | |
else if ( (_DWORD)v171 == 19 ) | |
{ | |
v93 = (float)v170; | |
} | |
else | |
{ | |
v93 = *(float *)&v170; | |
} | |
*(float *)&v137 = v93; | |
if ( (unsigned __int64)(**(_QWORD **)(v2 + 32) + 368LL) >= *(_QWORD *)(v2 + 16) ) | |
v97 = &off_7103C42FD0; | |
else | |
v97 = (void **)(**(_QWORD **)(v2 + 32) + 368LL); | |
v98 = *((_DWORD *)v97 + 2); | |
if ( v98 == 3 ) | |
{ | |
v92 = *(float *)v97; | |
} | |
else if ( v98 == 19 ) | |
{ | |
v92 = (float)(signed __int64)*v97; | |
} | |
else if ( ((_DWORD)v97[1] & 0xF) == 4 ) | |
{ | |
v99 = sub_71029C0CE0((unsigned __int8 *)*v97 + 24, (_BOOL8 *)&v170); | |
v100 = *v97; | |
v101 = *((_BYTE *)*v97 + 8) == 4 ? (unsigned __int64)*((unsigned __int8 *)v100 + 11) : v100[2]; | |
v92 = 0.0; | |
if ( v99 == v101 + 1 ) | |
{ | |
v92 = *(float *)&v170; | |
if ( (_DWORD)v171 == 19 ) | |
v92 = (float)v170; | |
} | |
} | |
LODWORD(v150) = (unsigned int)v92; | |
v102 = *(_QWORD **)(v2 + 32); | |
v103 = (void **)(*v102 + 384LL); | |
v104 = *(_QWORD *)(v2 + 16); | |
if ( (unsigned __int64)v103 >= v104 ) | |
v103 = &off_7103C42FD0; | |
v105 = *((_DWORD *)v103 + 2); | |
switch ( v105 ) | |
{ | |
case 0: | |
goto LABEL_237; | |
case 19: | |
if ( !*v103 || (float)(signed __int64)*v103 == 0.0 ) | |
goto LABEL_237; | |
break; | |
case 1: | |
v106 = *(_DWORD *)v103 == 0; | |
goto LABEL_240; | |
default: | |
if ( ((_DWORD)v103[1] & 0xF) == 3 && *(float *)v103 == 0.0 ) | |
{ | |
LABEL_237: | |
v107 = 0; | |
goto LABEL_245; | |
} | |
break; | |
} | |
if ( v105 != 3 ) | |
{ | |
v107 = 1; | |
goto LABEL_245; | |
} | |
v106 = *(float *)v103 == 0.0; | |
LABEL_240: | |
v107 = !v106; | |
LABEL_245: | |
BYTE5(v143) = v107; | |
v108 = (void **)(*v102 + 400LL); | |
if ( (unsigned __int64)v108 >= v104 ) | |
v108 = &off_7103C42FD0; | |
v109 = *((_DWORD *)v108 + 2); | |
switch ( v109 ) | |
{ | |
case 0: | |
goto LABEL_256; | |
case 19: | |
if ( !*v108 || (float)(signed __int64)*v108 == 0.0 ) | |
goto LABEL_256; | |
break; | |
case 1: | |
v110 = *(_DWORD *)v108 == 0; | |
goto LABEL_259; | |
default: | |
if ( ((_DWORD)v108[1] & 0xF) == 3 && *(float *)v108 == 0.0 ) | |
{ | |
LABEL_256: | |
v111 = 0; | |
goto LABEL_264; | |
} | |
break; | |
} | |
if ( v109 != 3 ) | |
{ | |
v111 = 1; | |
goto LABEL_264; | |
} | |
v110 = *(float *)v108 == 0.0; | |
LABEL_259: | |
v111 = !v110; | |
LABEL_264: | |
BYTE6(v143) = v111; | |
v112 = (void **)(*v102 + 416LL); | |
if ( (unsigned __int64)v112 >= v104 ) | |
v112 = &off_7103C42FD0; | |
v113 = *((_DWORD *)v112 + 2); | |
if ( v113 ) | |
{ | |
if ( v113 == 19 ) | |
{ | |
if ( !*v112 || (float)(signed __int64)*v112 == 0.0 ) | |
goto LABEL_275; | |
} | |
else | |
{ | |
if ( v113 == 1 ) | |
{ | |
v114 = *(_DWORD *)v112 == 0; | |
LABEL_278: | |
LOBYTE(v113) = !v114; | |
goto LABEL_283; | |
} | |
if ( ((_DWORD)v112[1] & 0xF) == 3 && *(float *)v112 == 0.0 ) | |
{ | |
LABEL_275: | |
LOBYTE(v113) = 0; | |
goto LABEL_283; | |
} | |
} | |
if ( v113 != 3 ) | |
{ | |
LOBYTE(v113) = 1; | |
goto LABEL_283; | |
} | |
v114 = *(float *)v112 == 0.0; | |
goto LABEL_278; | |
} | |
LABEL_283: | |
v145 = v113; | |
v115 = (void **)(*v102 + 432LL); | |
if ( (unsigned __int64)v115 >= v104 ) | |
v115 = &off_7103C42FD0; | |
v116 = *((_DWORD *)v115 + 2); | |
switch ( v116 ) | |
{ | |
case 0: | |
goto LABEL_294; | |
case 19: | |
if ( !*v115 || (float)(signed __int64)*v115 == 0.0 ) | |
goto LABEL_294; | |
break; | |
case 1: | |
v117 = *(_DWORD *)v115 == 0; | |
goto LABEL_297; | |
default: | |
if ( ((_DWORD)v115[1] & 0xF) == 3 && *(float *)v115 == 0.0 ) | |
{ | |
LABEL_294: | |
v118 = 0; | |
goto LABEL_302; | |
} | |
break; | |
} | |
if ( v116 != 3 ) | |
{ | |
v118 = 1; | |
goto LABEL_302; | |
} | |
v117 = *(float *)v115 == 0.0; | |
LABEL_297: | |
v118 = !v117; | |
LABEL_302: | |
BYTE6(v144) = v118; | |
v119 = (void **)(*v102 + 448LL); | |
if ( (unsigned __int64)v119 >= v104 ) | |
v119 = &off_7103C42FD0; | |
v120 = *((_DWORD *)v119 + 2); | |
v121 = v4 - (v3 + 16); | |
switch ( v120 ) | |
{ | |
case 0: | |
goto LABEL_313; | |
case 19: | |
if ( !*v119 || (float)(signed __int64)*v119 == 0.0 ) | |
goto LABEL_313; | |
break; | |
case 1: | |
v122 = *(_DWORD *)v119 == 0; | |
goto LABEL_316; | |
default: | |
if ( ((_DWORD)v119[1] & 0xF) == 3 && *(float *)v119 == 0.0 ) | |
{ | |
LABEL_313: | |
v123 = 0; | |
goto LABEL_321; | |
} | |
break; | |
} | |
if ( v120 != 3 ) | |
{ | |
v123 = 1; | |
goto LABEL_321; | |
} | |
v122 = *(float *)v119 == 0.0; | |
LABEL_316: | |
v123 = !v122; | |
LABEL_321: | |
HIBYTE(v143) = v123; | |
v124 = sub_71029ACA40(v2, 29LL, 0LL); | |
if ( v124 & 0x80000000 ) | |
HIBYTE(v146) = 1; | |
BYTE2(v140) = v124; | |
LOWORD(v140) = sub_71029ACA40(v2, 30LL, 0LL); | |
v141 = sub_71029ACA40(v2, 31LL, 0LL); | |
v125 = (void **)(**(_QWORD **)(v2 + 32) + 512LL); | |
if ( (unsigned __int64)v125 >= *(_QWORD *)(v2 + 16) ) | |
v125 = &off_7103C42FD0; | |
v126 = *((_DWORD *)v125 + 2); | |
switch ( v126 ) | |
{ | |
case 0: | |
goto LABEL_334; | |
case 19: | |
if ( !*v125 || (float)(signed __int64)*v125 == 0.0 ) | |
goto LABEL_334; | |
break; | |
case 1: | |
v127 = *(_DWORD *)v125 == 0; | |
goto LABEL_337; | |
default: | |
if ( ((_DWORD)v125[1] & 0xF) == 3 && *(float *)v125 == 0.0 ) | |
{ | |
LABEL_334: | |
v128 = 0; | |
goto LABEL_342; | |
} | |
break; | |
} | |
if ( v126 != 3 ) | |
{ | |
v128 = 1; | |
goto LABEL_342; | |
} | |
v127 = *(float *)v125 == 0.0; | |
LABEL_337: | |
v128 = !v127; | |
LABEL_342: | |
BYTE4(v144) = v128; | |
v142 = sub_71029ACA40(v2, 33LL, 0LL); | |
LOBYTE(v143) = sub_71029ACA40(v2, 34LL, 0LL); | |
BYTE1(v143) = sub_71029ACA40(v2, 35LL, 0LL); | |
LOBYTE(v146) = sub_71029ACA40(v2, 36LL, 0LL); | |
if ( (v121 >> 4) & 0x80000000 ) | |
{ | |
v130 = *(_QWORD *)(v2 + 16); | |
for ( i = **(_QWORD **)(v2 + 32) + ((signed __int64)((v121 << 28) ^ 0xFFFFFFFF00000000LL) >> 28) + 16; | |
v130 < i; | |
v130 = *(_QWORD *)(v2 + 16) ) | |
{ | |
*(_QWORD *)(v2 + 16) = v130 + 16; | |
*(_DWORD *)(v130 + 8) = 0; | |
} | |
} | |
else | |
{ | |
i = *(_QWORD *)(v2 + 16) | |
+ ((signed __int64)((unsigned __int64)(unsigned int)-(signed __int64)(v121 >> 4) << 32) >> 28); | |
} | |
*(_QWORD *)(v2 + 16) = i; | |
if ( (v139 & 0xFFFFFFFFFFLL) == 0x57AC2C32ELL ) | |
{ | |
sub_710032C9E0(&v170, *(unsigned int *)(v5 + 8), 1LL); | |
if ( !(*(_DWORD *)(v171 + 8) >> 28) && *(_DWORD *)(v171 + 12) == 6 ) | |
v139 = 0x4DBA80BB2LL; | |
} | |
return (*(__int64 (__cdecl **)(_QWORD, _QWORD))(**(_QWORD **)(v5 + 160) + 104LL))(*(_QWORD *)(v5 + 160), v7); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment