Last active
October 21, 2017 02:23
-
-
Save ezdiy/07d45b8a0682a4128a74c9c2047a3a22 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
void hairloader() { | |
// .... | |
xx1 = (XXFile *)openxx((int)&a1a, *(_DWORD *)(a1 + 12) + 28, (int)&a3, v35); | |
if ( haircase ) | |
*(_DWORD *)(v39 + 4 * v34 + 0x50) = xx1; | |
else | |
*(_DWORD *)(v39 + 4 * v34 + 0xEB8) = xx1; | |
if ( xx1 ) | |
{ | |
v136 = 1634426704; | |
*(_DWORD *)a4a = 1314869324; | |
v137 = 26989; | |
v138 = 0; | |
memset(&v139, 0, 0xF9u); | |
v140 = 808473409; | |
v141 = 1801408095; | |
v142 = (char *)&loc_696D5E + 3; | |
memset(&v143, 0, 0xF8u); | |
strcpy(fname1, "LPS_N_kao"); | |
memset(&v145, 0, 0xFAu); | |
v146 = *(_DWORD *)"LPA_N_kao"; | |
v147 = *(_DWORD *)"N_kao"; | |
v148 = *(_WORD *)"o"; | |
memset(&v149, 0, 0xFAu); | |
v150 = *(_DWORD *)"a01_J_Neck_03"; | |
v151 = *(_DWORD *)"J_Neck_03"; | |
v152 = *(_DWORD *)"ck_03"; | |
v153 = *(_WORD *)"3"; | |
memset(&v154, 0, 0xF6u); | |
v155 = *(_DWORD *)"a01_J_Neck_03"; | |
v156 = *(_DWORD *)"J_Neck_03"; | |
v157 = *(_DWORD *)"ck_03"; | |
v158 = *(_WORD *)"3"; | |
memset(&v159, 0, 0xF6u); | |
xx3 = xx2; | |
connect_frames(&fname1[260 * (BYTE3(v79) + 2 * v88)], (XXFile *)attachto, xx2, &a4a[260 * v88]); | |
if ( haircase == 1 ) | |
{ | |
v41 = v80; | |
v42 = *(_BYTE *)(v80 + 3); | |
BYTE1(v79) = *(_BYTE *)(v80 + 4); | |
BYTE2(v79) = v42; | |
*(_BYTE *)(v80 + 3) = 50; | |
*(_BYTE *)(v41 + 4) = 50; | |
neck_stuff(a1, 0); | |
v43 = v87; | |
v44 = BYTE1(v79); | |
*(_BYTE *)(v41 + 3) = BYTE2(v79); | |
lpWideCharStr = (LPCWSTR)16; | |
v91 = (void *)64; | |
v92 = (const WCHAR *)32; | |
v93 = (const WCHAR *)128; | |
v45 = (unsigned int)(&lpWideCharStr)[2 * v43] | 3; | |
*(_BYTE *)(v41 + 4) = v44; | |
do_attach(*(_DWORD *)(a1 + 36), v45); | |
} | |
else | |
{ | |
attach(unused, xx3, xx3->m_attachmentFramePrev, &xx3->m_attachmentFrame->m_matrix2); | |
} | |
v88 = (*(int (__thiscall **)(int *))(dword_76F638 + 12))(&dword_76F638) + 16; | |
LOBYTE(v162) = 7; | |
v127 = 0; | |
v128 = 0; | |
v125 = 7929963; | |
v126 = 115; | |
v129 = 7340130; | |
v130 = 115; | |
v131 = 0; | |
v132 = 0; | |
v46 = (wchar_t **)sub_414BE0(&v104, (int)&attachto); | |
LOBYTE(v162) = 8; | |
v47 = *(_BYTE *)(v87 + v80 + 604); | |
sub_4026B0(*v46, v86[0]); | |
LOBYTE(v162) = 7; | |
v48 = attachto - 16; | |
if ( _InterlockedDecrement((volatile signed __int32 *)(attachto - 16 + 12)) <= 0 ) | |
(*(void (__stdcall **)(int))(**(_DWORD **)v48 + 4))(v48); | |
sub_57E960(260, (const char *)&off_6FD674, v83, v88); | |
if ( haircase ) | |
{ | |
v91 = 0; | |
v92 = 0; | |
v93 = 0; | |
LOBYTE(v162) = 14; | |
LOBYTE(v49) = 5; | |
BYTE1(v79) = 5 * (*(_DWORD *)(*(_DWORD *)(a1 + 36) + 56) == 0); | |
sub_42A0C0(v49, (int)&lpWideCharStr, (char *)&v79 + 1); | |
LOBYTE(v51) = 5; | |
BYTE1(v79) = 5 * (*(_DWORD *)(*(_DWORD *)(a1 + 36) + 56) == 0) + 1; | |
sub_42A0C0(v51, (int)&lpWideCharStr, (char *)&v79 + 1); | |
LOBYTE(v52) = 5; | |
BYTE1(v79) = 5 * (*(_DWORD *)(*(_DWORD *)(a1 + 36) + 56) == 0) + 2; | |
sub_42A0C0(v52, (int)&lpWideCharStr, (char *)&v79 + 1); | |
LOBYTE(v53) = 5; | |
BYTE1(v79) = 5 * (*(_DWORD *)(*(_DWORD *)(a1 + 36) + 56) == 0) + 3; | |
sub_42A0C0(v53, (int)&lpWideCharStr, (char *)&v79 + 1); | |
if ( !BYTE3(v79) ) | |
{ | |
BYTE1(v79) = 14; | |
sub_42A0C0(v54, (int)&lpWideCharStr, (char *)&v79 + 1); | |
} | |
sub_402580(&Src, (int)&unused); | |
LOBYTE(v162) = 15; | |
sub_402580(&FileName, (int)&attachto); | |
v55 = xx2; | |
LOBYTE(v162) = 16; | |
v56 = *(_DWORD *)(a1 + 12); | |
v57 = *(_DWORD *)(v56 + 64); | |
sub_60AF70( | |
&attachto, | |
v56 + 28, | |
&unused, | |
xx2, | |
(unsigned __int8)(5 * *(_DWORD *)(*(_DWORD *)(a1 + 36) + 56)), | |
&lpWideCharStr); | |
sub_403610(&attachto); | |
LOBYTE(v162) = 14; | |
sub_403610(&unused); | |
v58 = v87; | |
v59 = *(_DWORD *)(*(_DWORD *)(a1 + 36) + 4 * v87 + 116); | |
if ( (unsigned __int8)sub_41B650(&v106) ) | |
{ | |
sub_57E960(260, v106, v83, *(_BYTE *)(v58 + v80 + 604)); | |
sub_4DE180(v59, (int)v55, &FileName, *(_DWORD *)(a1 + 12) + 28, &Src); | |
} | |
else | |
{ | |
sub_4DE800(); | |
} | |
if ( BYTE3(v79) == 1 ) | |
{ | |
v60 = *(_DWORD *)&v55[1].m_name[16]; | |
if ( v60 ) | |
{ | |
v61 = 0; | |
v83 = (*(_DWORD *)(v60 + 40) - *(_DWORD *)(v60 + 36)) >> 2; | |
if ( v83 > 0 ) | |
{ | |
do | |
{ | |
v62 = sub_46F5B0(v60, v61); | |
v63 = v62; | |
v64 = *(_DWORD *)(v62 + 216) | 8; | |
*(_DWORD *)v86 = v63; | |
*(_DWORD *)(v63 + 216) = v64; | |
if ( operator new(0x28u) ) | |
v65 = sub_46F240(); | |
else | |
v65 = 0; | |
*(_DWORD *)(v65 + 4) = 0; | |
v66 = (*(_DWORD *)(v60 + 40) - *(_DWORD *)(v60 + 36)) >> 2; | |
if ( v66 ) | |
{ | |
if ( v61 >= 0 && v66 - 1 >= v61 ) | |
v66 = *(_DWORD *)(*(_DWORD *)(v60 + 36) + 4 * v61); | |
else | |
v66 = 0; | |
} | |
*(_DWORD *)(v65 + 32) = *(_DWORD *)(v66 + 40); | |
v67 = sub_505CB0(v60, v61); | |
v68 = *(_DWORD *)v86; | |
v70 = __OFSUB__(++v61, v83); | |
v69 = v61 - v83 < 0; | |
*(_DWORD *)(v65 + 28) = v67; | |
*(_DWORD *)(v68 + 248) = v65; | |
} | |
while ( v69 ^ v70 ); | |
} | |
} | |
} | |
if ( v91 ) | |
operator delete(v91); | |
} | |
else | |
{ | |
sub_402580(&Src, (int)v86); | |
LOBYTE(v162) = 9; | |
sub_40E400((LPCWSTR)&Src, (int)&v80); | |
LOBYTE(v162) = 10; | |
sub_431DF0(&v82); | |
LOBYTE(v162) = 11; | |
sub_51D2C0(); | |
if ( (unsigned __int8)sub_5F8A90(&FileName, v82) ) | |
{ | |
v50 = operator new(0x34u) ? sub_59AD80(unused) : 0; | |
v89 = (void (__thiscall ***)(_DWORD, _DWORD))v50; | |
if ( v50 ) | |
{ | |
sub_402580(&Src, (int)&unused); | |
LOBYTE(v162) = 12; | |
sub_402580(&FileName, (int)&attachto); | |
LOBYTE(v162) = 13; | |
sub_59C280(v50, &attachto, *(_DWORD *)(a1 + 12) + 28, xx2); | |
sub_403610(&attachto); | |
sub_403610(&unused); | |
} | |
} | |
sub_51A910(); | |
sub_403610(&v80); | |
sub_403610(v86); | |
} | |
LOBYTE(v162) = 3; | |
v71 = v88 - 16; | |
if ( _InterlockedDecrement((volatile signed __int32 *)(v88 - 16 + 12)) <= 0 ) | |
(*(void (__stdcall **)(int))(**(_DWORD **)v71 + 4))(v71); | |
} | |
if ( haircase ) | |
{ | |
lpWideCharStr = 0; | |
v91 = (void *)1; | |
v92 = (const WCHAR *)2; | |
v93 = (const WCHAR *)3; | |
v72 = sub_5F0C30("A00_M_kami"); | |
v73 = sub_414BE0(&v105, (int)v86); | |
LOBYTE(v162) = 17; | |
sub_535BC0(*(void **)(a1 + 320), (&lpWideCharStr)[2 * v87], v72, v73, *(_DWORD *)(*(_DWORD *)(a1 + 36) + 60)); | |
LOBYTE(v162) = 3; | |
v74 = *(_DWORD *)v86 - 16; | |
if ( _InterlockedDecrement((volatile signed __int32 *)(*(_DWORD *)v86 - 16 + 12)) <= 0 ) | |
(*(void (__stdcall **)(int))(**(_DWORD **)v74 + 4))(v74); | |
if ( haircase == 1 && a4 ) | |
sub_51ABF0(a1); | |
sub_51A930(a1); | |
sub_51AA00(); | |
} | |
else | |
{ | |
*(_DWORD *)(*(_DWORD *)(a1 + 36) + 4 * v87 + 3788) = v89; | |
sub_51A970(a1); | |
} | |
LOBYTE(v162) = 1; | |
v75 = v98 - 16; | |
if ( _InterlockedDecrement((volatile signed __int32 *)(v98 - 16 + 12)) <= 0 ) | |
(*(void (__stdcall **)(int))(**(_DWORD **)v75 + 4))(v75); | |
LOBYTE(v162) = 0; | |
v76 = *(_DWORD *)v99 - 16; | |
if ( _InterlockedDecrement((volatile signed __int32 *)(*(_DWORD *)v99 - 16 + 12)) <= 0 ) | |
(*(void (__stdcall **)(int))(**(_DWORD **)v76 + 4))(v76); | |
v162 = -1; | |
v77 = (int)(v106 - 16); | |
if ( _InterlockedDecrement((volatile signed __int32 *)v106 - 1) <= 0 ) | |
(*(void (__stdcall **)(int))(**(_DWORD **)v77 + 4))(v77); | |
goto LABEL_110; | |
} | |
goto LABEL_39; | |
} | |
LABEL_110: | |
sub_66BC69(v78); | |
} | |
char __stdcall neck_stuff(int a1, char a2) | |
{ | |
XXFile *v2; // ebp@1 | |
char result; // al@2 | |
int v4; // ecx@3 | |
Frame *v5; // esi@3 | |
int v6; // edi@5 | |
float v7; // ST20_4@5 | |
int v8; // ecx@5 | |
float v9; // ST24_4@5 | |
int v10; // ecx@5 | |
double v11; // st7@5 | |
float v12; // [sp+40h] [bp-44h]@5 | |
float v13; // [sp+44h] [bp-40h]@5 | |
float v14; // [sp+48h] [bp-3Ch]@5 | |
float v15; // [sp+4Ch] [bp-38h]@5 | |
float v16; // [sp+50h] [bp-34h]@5 | |
float v17; // [sp+54h] [bp-30h]@5 | |
float v18; // [sp+58h] [bp-2Ch]@5 | |
float v19; // [sp+5Ch] [bp-28h]@5 | |
float v20; // [sp+60h] [bp-24h]@5 | |
float v21; // [sp+64h] [bp-20h]@5 | |
float v22; // [sp+68h] [bp-1Ch]@5 | |
float v23; // [sp+6Ch] [bp-18h]@5 | |
float v24; // [sp+70h] [bp-14h]@5 | |
float v25; // [sp+74h] [bp-10h]@5 | |
float v26; // [sp+78h] [bp-Ch]@5 | |
float v27; // [sp+7Ch] [bp-8h]@5 | |
v2 = *(XXFile **)(*(_DWORD *)(a1 + 36) + 100); | |
if ( v2 | |
&& ((v5 = (Frame *)sub_41B6D0(*(_DWORD *)(a1 + 36), 17)) != 0 || (v5 = find_by_name((int)v2, "a01_J_Neck_03")) != 0) ) | |
{ | |
v6 = *(_DWORD *)(a1 + 40); | |
v7 = *(float *)sub_5281A0(v4, *(_DWORD *)(a1 + 40)); | |
v9 = *(float *)(sub_5281A0(v8, v6) + 4); | |
v11 = *(float *)(sub_5281A0(v10, v6) + 8); | |
v12 = v7; | |
v13 = 0.0; | |
v14 = 0.0; | |
v15 = 0.0; | |
v16 = 0.0; | |
v17 = v9; | |
v18 = 0.0; | |
v19 = 0.0; | |
v20 = 0.0; | |
v21 = 0.0; | |
v23 = 0.0; | |
v24 = 0.0; | |
v25 = 0.0; | |
v26 = 0.0; | |
v22 = v11; | |
v27 = 1.0; | |
v5->m_matrix1._11 = v5->m_matrix5._11; | |
v5->m_matrix1._12 = v5->m_matrix5._12; | |
v5->m_matrix1._13 = v5->m_matrix5._13; | |
v5->m_matrix1._14 = v5->m_matrix5._14; | |
v5->m_matrix1._21 = v5->m_matrix5._21; | |
v5->m_matrix1._22 = v5->m_matrix5._22; | |
v5->m_matrix1._23 = v5->m_matrix5._23; | |
v5->m_matrix1._24 = v5->m_matrix5._24; | |
v5->m_matrix1._31 = v5->m_matrix5._31; | |
v5->m_matrix1._32 = v5->m_matrix5._32; | |
v5->m_matrix1._33 = v5->m_matrix5._33; | |
v5->m_matrix1._34 = v5->m_matrix5._34; | |
v5->m_matrix1._41 = v5->m_matrix5._41; | |
v5->m_matrix1._42 = v5->m_matrix5._42; | |
v5->m_matrix1._43 = v5->m_matrix5._43; | |
v5->m_matrix1._44 = v5->m_matrix5._44; | |
D3DXMatrixMultiply(&v5->m_matrix1, &v12, &v5->m_matrix1); | |
attach(*(_DWORD *)(a1 + 16), v2, v5, &v5->m_parent->m_matrix2); | |
if ( a2 ) | |
do_attach(*(_DWORD *)(a1 + 36), -2); | |
result = 1; | |
} | |
else | |
{ | |
result = 0; | |
} | |
return result; | |
} | |
char __userpurge do_attach@<al>(int a1@<esi>, char a2) | |
{ | |
XXFile *v2; // eax@5 | |
int v3; // eax@10 | |
XXFile *v4; // eax@15 | |
int v5; // eax@20 | |
XXFile *v6; // eax@25 | |
int v7; // eax@30 | |
XXFile *v8; // eax@35 | |
if ( a2 & 1 && *(_DWORD *)(a1 + 100) ) | |
attach( | |
*(_DWORD *)(a1 + 20), | |
*(XXFile **)(a1 + 100), | |
*(Frame **)(*(_DWORD *)(a1 + 100) + 536), | |
(D3DMATRIX *)(*(_DWORD *)(a1 + 100) + 115640)); | |
if ( a2 & 2 ) | |
{ | |
v2 = *(XXFile **)(a1 + 72); | |
if ( v2 ) | |
{ | |
if ( v2->m_attachmentFramePrev && v2->m_attachmentFrame != (Frame *)-84 ) | |
attach(*(_DWORD *)(a1 + 20), v2, v2->m_attachmentFramePrev, &v2->m_attachmentFrame->m_matrix2); | |
} | |
} | |
if ( a2 & 0x10 ) | |
{ | |
v3 = *(_DWORD *)(a1 + 80); | |
if ( v3 ) | |
{ | |
if ( *(_DWORD *)(v3 + 520) && *(_DWORD *)(v3 + 524) != -84 ) | |
attach( | |
*(_DWORD *)(a1 + 20), | |
*(XXFile **)(a1 + 80), | |
*(Frame **)(*(_DWORD *)(a1 + 80) + 520), | |
(D3DMATRIX *)(*(_DWORD *)(*(_DWORD *)(a1 + 80) + 524) + 84)); | |
} | |
} | |
if ( a2 & 0x20 ) | |
{ | |
v4 = *(XXFile **)(a1 + 88); | |
if ( v4 ) | |
{ | |
if ( v4->m_attachmentFramePrev && v4->m_attachmentFrame != (Frame *)-84 ) | |
attach(*(_DWORD *)(a1 + 20), v4, v4->m_attachmentFramePrev, &v4->m_attachmentFrame->m_matrix2); | |
} | |
} | |
if ( a2 & 0x40 ) | |
{ | |
v5 = *(_DWORD *)(a1 + 84); | |
if ( v5 ) | |
{ | |
if ( *(_DWORD *)(v5 + 520) && *(_DWORD *)(v5 + 524) != -84 ) | |
attach( | |
*(_DWORD *)(a1 + 20), | |
*(XXFile **)(a1 + 84), | |
*(Frame **)(*(_DWORD *)(a1 + 84) + 520), | |
(D3DMATRIX *)(*(_DWORD *)(*(_DWORD *)(a1 + 84) + 524) + 84)); | |
} | |
} | |
if ( a2 < 0 ) | |
{ | |
v6 = *(XXFile **)(a1 + 92); | |
if ( v6 ) | |
{ | |
if ( v6->m_attachmentFramePrev && v6->m_attachmentFrame != (Frame *)-84 ) | |
attach(*(_DWORD *)(a1 + 20), v6, v6->m_attachmentFramePrev, &v6->m_attachmentFrame->m_matrix2); | |
} | |
} | |
if ( a2 & 4 ) | |
{ | |
v7 = *(_DWORD *)(a1 + 96); | |
if ( v7 ) | |
{ | |
if ( *(_DWORD *)(v7 + 520) && *(_DWORD *)(v7 + 524) != -84 ) | |
attach( | |
*(_DWORD *)(a1 + 20), | |
*(XXFile **)(a1 + 96), | |
*(Frame **)(*(_DWORD *)(a1 + 96) + 520), | |
(D3DMATRIX *)(*(_DWORD *)(*(_DWORD *)(a1 + 96) + 524) + 84)); | |
} | |
} | |
if ( a2 & 8 ) | |
{ | |
v8 = *(XXFile **)(a1 + 76); | |
if ( v8 ) | |
{ | |
if ( v8->m_attachmentFramePrev && v8->m_attachmentFrame != (Frame *)-84 ) | |
attach(*(_DWORD *)(a1 + 20), v8, v8->m_attachmentFramePrev, &v8->m_attachmentFrame->m_matrix2); | |
} | |
} | |
return 1; | |
} | |
void __cdecl attach(int unused, XXFile *xxfile, Frame *frame, D3DMATRIX *matrix) | |
{ | |
DWORD v4; // eax@2 | |
D3DMATRIX *v5; // esi@2 | |
double v6; // ST20_8@3 | |
float v7; // ST1C_4@3 | |
Frame *v8; // edi@14 | |
signed __int32 v9; // ebx@14 | |
D3DMATRIX mat; // [sp+24h] [bp-80h]@3 | |
char v11; // [sp+64h] [bp-40h]@7 | |
if ( !frame->m_unknown4[8] ) | |
{ | |
v4 = frame->m_unknown1; | |
v5 = &frame->m_matrix2; | |
if ( v4 == 1 ) | |
{ | |
D3DXMatrixMultiply(&mat, &frame->m_matrix1, matrix); | |
*(float *)&v6 = mat._41; | |
*((float *)&v6 + 1) = mat._42; | |
v7 = mat._43; | |
mat._41 = 0.0; | |
mat._42 = 0.0; | |
mat._43 = 0.0; | |
D3DXMatrixMultiply(&frame->m_matrix2, &mat, &frame->m_matrix3); | |
*(double *)frame->m_matrix2.m[3] = v6; | |
frame->m_matrix2._43 = v7; | |
} | |
else if ( v4 == 2 ) | |
{ | |
D3DXMatrixMultiply(&mat, &frame->m_matrix1, matrix); | |
D3DXMatrixMultiply(&frame->m_matrix2, &frame->m_matrix3, &mat); | |
} | |
else | |
{ | |
D3DXMatrixMultiply(&frame->m_matrix2, &frame->m_matrix1, matrix); | |
} | |
D3DXMatrixInverse(&v11, 0, &unk_7851B8); | |
switch ( frame->m_frameFlags[0] ) | |
{ | |
case 1u: | |
sub_5F1A20((int)v5); | |
break; | |
case 2u: | |
sub_5F18A0((int)v5); | |
break; | |
case 3u: | |
sub_5F16C0((int)v5); | |
break; | |
case 4u: | |
sub_5F1510((int)&v11, (int)v5); | |
break; | |
case 5u: | |
sub_5F1360((int)&v11, (int)v5); | |
break; | |
case 6u: | |
sub_5F10B0((int)&v11, (int)v5); | |
break; | |
default: | |
break; | |
} | |
v8 = frame->m_children; | |
v9 = frame->m_nChildren; | |
if ( v9 > 0 ) | |
{ | |
do | |
{ | |
attach(unused, xxfile, v8, v5); | |
++v8; | |
--v9; | |
} | |
while ( v9 ); | |
} | |
} | |
} | |
char __usercall connect_frames@<al>(char *fname1@<eax>, XXFile *xx1@<ecx>, XXFile *xx2, char *fname2) | |
{ | |
XXFile *v4; // esi@1 | |
Frame *v5; // edi@1 | |
Frame *v6; // eax@1 | |
char result; // al@3 | |
v4 = xx1; | |
v5 = find_by_name((int)xx1, fname1); | |
v6 = find_by_name((int)xx2, fname2); | |
if ( v6 && v5 ) | |
result = create_attachment(xx2, v5, v6, v4); | |
else | |
result = 0; | |
return result; | |
} | |
char __usercall create_attachment@<al>(XXFile *a1@<eax>, Frame *a2@<edx>, Frame *a3@<esi>, XXFile *a4) | |
{ | |
char result; // al@3 | |
if ( a2 && a3 ) | |
{ | |
a1->m_attachmentFrame = a2; | |
a1->m_attachmentFramePrev = a3; | |
*(_DWORD *)&a1->m_unknown3[0] = a4; | |
a1->m_unknown2[3] = a4->m_unknown2[3] + 1; | |
*(_DWORD *)&a1->m_ambientLightBlue = *(_DWORD *)&a4->m_ambientLightBlue; | |
inner_attach(a1, a4->m_root->m_meshFlags[1]); | |
result = 1; | |
} | |
else | |
{ | |
result = 0; | |
} | |
return result; | |
} | |
int __usercall inner_attach@<eax>(Frame *result@<eax>, char a2@<dl>) | |
{ | |
bool v2; // zf@2 | |
bool v3; // sf@2 | |
Frame *v4; // esi@2 | |
int v5; // ecx@3 | |
if ( result ) | |
{ | |
result = *(Frame **)&result->m_unknown5[14];// // note: Input 'result' is actually xxfile and this is ->m_root | |
v2 = result->m_nChildren == 0; | |
v3 = (result->m_nChildren & 0x80000000) != 0; | |
v4 = result->m_children; | |
result->m_meshFlags[1] = a2; | |
if ( !v3 && !v2 ) | |
{ | |
do | |
{ | |
result = (Frame *)do_something_with_frame(v4, a2); | |
++v4; | |
} | |
while ( v5 + 1 < (signed __int32)result->m_nChildren ); | |
} | |
} | |
return (int)result; | |
} | |
int __cdecl do_something_with_frame(Frame *a1, int a2) | |
{ | |
signed __int32 v2; // esi@1 | |
bool v3; // zf@1 | |
bool v4; // sf@1 | |
Frame *v5; // edi@1 | |
int result; // eax@2 | |
v2 = 0; | |
v3 = a1->m_nChildren == 0; | |
v4 = (a1->m_nChildren & 0x80000000) != 0; | |
v5 = a1->m_children; | |
a1->m_meshFlags[1] = a2; | |
if ( !v4 && !v3 ) | |
{ | |
do | |
{ | |
result = do_something_with_frame(v5, a2); | |
++v2; | |
++v5; | |
} | |
while ( v2 < (signed __int32)a1->m_nChildren ); | |
} | |
return result; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment