Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __thiscall Blaze__Tdf__visit(Blaze::Tdf *this, Blaze::TdfVisitor *visitor, Blaze::Tdf *rootTdf, Blaze::Tdf *referenceTdfUncasted)
- {
- int TdfMemberInfo; // ecx@1
- Blaze::Tdf *TdfVar1; // ebp@1
- Blaze::Tdf *TdfVar2; // ebx@2
- Blaze::TdfVisitor *TdfVisitorVar; // esi@2
- unsigned int v8; // eax@3
- int v9; // ecx@3
- char *v10; // ecx@4
- int v11; // edi@4
- unsigned __int8 v12; // al@31
- int v13; // [sp+Ch] [bp-1Ch]@19
- int TdfMemberInfo2; // [sp+20h] [bp-8h]@1
- unsigned int v15; // [sp+2Ch] [bp+4h]@3
- TdfVar1 = this;
- TdfMemberInfo = ((int (*)(void))this->vfptr->getTdfMemberInfo)();
- TdfMemberInfo2 = TdfMemberInfo;
- if ( TdfMemberInfo )
- {
- TdfVar2 = rootTdf;
- TdfVisitorVar = visitor;
- while ( 1 )
- {
- v8 = *(_DWORD *)TdfMemberInfo;
- v9 = *(_WORD *)(TdfMemberInfo + 6);
- v15 = v8;
- if ( v8 & 1 )
- {
- v11 = *(int *)((char *)&TdfVar1->vfptr + v9);
- v10 = *(char **)((char *)&referenceTdfUncasted->vfptr + v9);
- v8 &= 0xFFFFFFFEu;
- v15 = v8;
- }
- else
- {
- v11 = (int)((char *)TdfVar1 + v9);
- v10 = (char *)referenceTdfUncasted + v9;
- }
- switch ( *(_BYTE *)(TdfMemberInfo2 + 4) )
- {
- case 0:
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- TdfVar2,
- TdfVar1,
- v8,
- (Blaze::TdfMapBase *)v11,
- (Blaze::TdfMapBase *)v10);
- break;
- case 1:
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- TdfVar2,
- TdfVar1,
- v8,
- (Blaze::TdfVectorBase *)v11,
- (Blaze::TdfVectorBase *)v10);
- break;
- case 2:
- TdfVar2 = rootTdf;
- ((void (__thiscall *)(Blaze::TdfVisitor *, Blaze::Tdf *, Blaze::Tdf *, unsigned int, int, _DWORD, _DWORD))TdfVisitorVar->vfptr->visit)(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- v11,
- *(float *)v10,
- *(float *)(TdfMemberInfo2 + 8));
- break;
- case 3:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (int *)v11,
- *(_DWORD *)v10,
- *(Blaze::TdfEnumMap **)(TdfMemberInfo2 + 12),
- *(_DWORD *)(TdfMemberInfo2 + 8));
- break;
- case 4:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (Blaze::TdfString *)v11,
- (Blaze::TdfString *)v10,
- *(const char **)(TdfMemberInfo2 + 8),
- *(_DWORD *)(TdfMemberInfo2 + 12));
- break;
- case 5:
- TdfVisitorVar->vfptr->visit(TdfVisitorVar, TdfVar2, TdfVar1, v8, (Blaze::Tdf *)v11, (Blaze::Tdf *)v10);
- break;
- case 6:
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- TdfVar2,
- TdfVar1,
- v8,
- (Blaze::VariableTdfBase *)v11,
- (Blaze::VariableTdfBase *)v10);
- break;
- case 7:
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- TdfVar2,
- TdfVar1,
- v8,
- (Blaze::TdfBitfield *)v11,
- (Blaze::TdfBitfield *)v10);
- break;
- case 8:
- TdfVisitorVar->vfptr->visit(TdfVisitorVar, TdfVar2, TdfVar1, v8, (Blaze::TdfBlob *)v11, (Blaze::TdfBlob *)v10);
- break;
- case 9:
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- TdfVar2,
- TdfVar1,
- v8,
- (Blaze::TdfUnion *)v11,
- (Blaze::TdfUnion *)v10);
- break;
- case 0xA:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (Blaze::Tdf *)(v11 + *(_WORD *)(TdfMemberInfo2 + 8)),
- (Blaze::Tdf *)&v10[*(_WORD *)(TdfMemberInfo2 + 8)]);
- break;
- case 0xB:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (Blaze::BlazeObjectType *)v11,
- (Blaze::BlazeObjectType *)v10,
- BLAZE_OBJECT_TYPE_INVALID_9);
- break;
- case 0xC:
- TdfVar2 = rootTdf;
- ((void (__thiscall *)(Blaze::TdfVisitor *, Blaze::Tdf *, Blaze::Tdf *, unsigned int, int, char *, _DWORD, _DWORD, _DWORD, int))TdfVisitorVar->vfptr->visit)(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- v11,
- v10,
- BLAZE_OBJECT_ID_INVALID_9.id,
- HIDWORD(BLAZE_OBJECT_ID_INVALID_9.id),
- *(_DWORD *)&BLAZE_OBJECT_ID_INVALID_9.type.component,
- v13);
- break;
- case 0xD:
- TdfVar2 = rootTdf;
- ((void (__thiscall *)(Blaze::TdfVisitor *, Blaze::Tdf *, Blaze::Tdf *, unsigned int, int, char *, _DWORD, _DWORD))TdfVisitorVar->vfptr->visit)(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- v11,
- v10,
- *(_DWORD *)(TdfMemberInfo2 + 8),
- *(_DWORD *)(TdfMemberInfo2 + 12));
- break;
- case 0xE:
- case 0xF:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (bool *)v11,
- (unsigned __int8)*v10,
- *(_DWORD *)(TdfMemberInfo2 + 8) != 0);
- break;
- case 0x10:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (char *)v11,
- *v10,
- *(_BYTE *)(TdfMemberInfo2 + 8));
- break;
- case 0x11:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (char *)v11,
- *v10,
- *(_BYTE *)(TdfMemberInfo2 + 8));
- break;
- case 0x12:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (__int16 *)v11,
- *(_WORD *)v10,
- *(_WORD *)(TdfMemberInfo2 + 8));
- break;
- case 0x13:
- case 0x19:
- case 0x1A:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (unsigned __int16 *)v11,
- *(_WORD *)v10,
- *(_WORD *)(TdfMemberInfo2 + 8));
- break;
- case 0x14:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (int *)v11,
- *(_DWORD *)v10,
- *(_DWORD *)(TdfMemberInfo2 + 8));
- break;
- case 0x15:
- TdfVar2 = rootTdf;
- TdfVisitorVar->vfptr->visit(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- (unsigned int *)v11,
- *(_DWORD *)v10,
- *(_DWORD *)(TdfMemberInfo2 + 8));
- break;
- case 0x16:
- case 0x18:
- TdfVar2 = rootTdf;
- ((void (__thiscall *)(Blaze::TdfVisitor *, Blaze::Tdf *, Blaze::Tdf *, unsigned int, int, _DWORD, _DWORD, _DWORD, _DWORD))TdfVisitorVar->vfptr->visit)(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- v11,
- *(_DWORD *)v10,
- *((_DWORD *)v10 + 1),
- *(_DWORD *)(TdfMemberInfo2 + 8),
- *(_DWORD *)(TdfMemberInfo2 + 12));
- break;
- case 0x17:
- TdfVar2 = rootTdf;
- ((void (__thiscall *)(Blaze::TdfVisitor *, Blaze::Tdf *, Blaze::Tdf *, unsigned int, int, _DWORD, _DWORD, _DWORD, _DWORD))TdfVisitorVar->vfptr->visit)(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v8,
- v11,
- *(_DWORD *)v10,
- *((_DWORD *)v10 + 1),
- *(_DWORD *)(TdfMemberInfo2 + 8),
- *(_DWORD *)(TdfMemberInfo2 + 12));
- break;
- case 0x1B:
- TdfVar2 = rootTdf;
- ((void (__thiscall *)(Blaze::TdfVisitor *, Blaze::Tdf *, Blaze::Tdf *, unsigned int, int, _DWORD, _DWORD, _DWORD, _DWORD))TdfVisitorVar->vfptr->visit)(
- TdfVisitorVar,
- rootTdf,
- TdfVar1,
- v15,
- v11,
- *(_DWORD *)v10,
- *((_DWORD *)v10 + 1),
- *(_DWORD *)(TdfMemberInfo2 + 8),
- (unsigned __int64)*(_DWORD *)(TdfMemberInfo2 + 8) >> 32);
- break;
- default:
- break;
- }
- v12 = *(_BYTE *)(TdfMemberInfo2 + 5);
- if ( !v12 )
- break;
- TdfMemberInfo2 += v12;
- TdfMemberInfo = TdfMemberInfo2;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement