// 0032238a google::protobuf::FileDescriptorSet::vfunction19 void __thiscall google::protobuf::FileDescriptorSet::vfunction19(FileDescriptorSet *this) { FUN_003344e2(&(this->data).offset_0x20); return; } // 0032288a google::protobuf::FileDescriptorSet::vfunction20 void __thiscall google::protobuf::FileDescriptorSet::vfunction20(void) { FUN_003227eb(0); return; } // 003229de google::protobuf::FileDescriptorSet::FileDescriptorSet void __thiscall google::protobuf::FileDescriptorSet::FileDescriptorSet(FileDescriptorSet *this,undefined8 param_1) { (this->data).offset_0x0 = param_1; this->vftablePtr = &vftable; (this->data).offset_0x8 = param_1; (this->data).offset_0x10 = 0; (this->data).offset_0x18 = 0; (this->data).offset_0x20 = 0; return; } // 00324b9e google::protobuf::FileDescriptorSet::vfunction10 ulong __thiscall google::protobuf::FileDescriptorSet::vfunction10(FileDescriptorSet *this,ulong param_1) { undefined4 *puVar1; undefined8 *puVar2; undefined8 *puVar3; ulong uVar4; long lVar5; ulong uVar6; ulong uVar7; puVar3 = (undefined8 *)(this->data).offset_0x18; uVar7 = (ulong)*(int *)&(this->data).offset_0x10; if (puVar3 != (undefined8 *)0x0) { puVar3 = puVar3 + 1; } puVar2 = puVar3 + uVar7; uVar6 = param_1; for (; puVar3 != puVar2; puVar3 = puVar3 + 1) { uVar4 = FileDescriptorProto::vfunction10((FileDescriptorProto *)*puVar3,uVar6); lVar5 = FUN_00334266(uVar4); uVar7 = uVar7 + lVar5; } puVar1 = &(this->data).offset_0x20; if ((*(byte *)&(this->data).offset_0x0 & 1) != 0) { uVar7 = FUN_00359fe2(&this->data,uVar7,puVar1,param_1); return uVar7; } FUN_003344e2(puVar1,uVar7 & 0xffffffff); return uVar7; } // 0032a5c2 google::protobuf::FileDescriptorSet::vfunction7 undefined1 __thiscall google::protobuf::FileDescriptorSet::vfunction7(FileDescriptorSet *this) { FileDescriptorProto *this_00; ulong uVar1; int iVar2; iVar2 = *(int *)&(this->data).offset_0x10; do { iVar2 = iVar2 + -1; if (iVar2 < 0) { return 1; } this_00 = (FileDescriptorProto *)FUN_0033596a(&(this->data).offset_0x8,iVar2); uVar1 = FileDescriptorProto::vfunction7(this_00); } while ((char)uVar1 != '\0'); return 0; } // 0032aaf2 google::protobuf::FileDescriptorSet::vfunction13 undefined8 __thiscall google::protobuf::FileDescriptorSet::vfunction13 (FileDescriptorSet *this,byte *param_1,long *param_2) { int iVar1; ulong uVar2; undefined4 uVar3; undefined1 *puVar4; FileDescriptorProto *this_00; byte *pbVar5; undefined8 uVar6; int iVar7; iVar1 = *(int *)&(this->data).offset_0x10; for (iVar7 = 0; iVar7 != iVar1; iVar7 = iVar7 + 1) { puVar4 = (undefined1 *)FUN_002e292a(param_2); this_00 = (FileDescriptorProto *)FUN_0033596a(&(this->data).offset_0x8,iVar7); *puVar4 = 10; uVar3 = FUN_003343d0(&(this_00->data).offset_0xc); pbVar5 = (byte *)FUN_002e2a10(uVar3,puVar4 + 1); param_1 = FileDescriptorProto::vfunction13(this_00,pbVar5,param_2); } uVar2 = (this->data).offset_0x0; if ((uVar2 & 1) != 0) { uVar6 = FUN_00359676((uVar2 & 0xfffffffffffffffc) + 8,param_1,param_2); return uVar6; } return param_1; } // 0032cc54 google::protobuf::FileDescriptorSet::vfunction12 char * __thiscall google::protobuf::FileDescriptorSet::vfunction12 (FileDescriptorSet *this,char *param_1,undefined8 *param_2) { int iVar1; int *piVar2; undefined8 uVar3; ulong uVar4; char cVar5; undefined4 uVar6; char *pcVar7; FileDescriptorProto *this_00; long lVar8; char *local_50; uint local_44; char *local_40 [2]; local_50 = param_1; do { while( true ) { cVar5 = FUN_00334356(param_2,&local_50); if (cVar5 != '\0') { return local_50; } pcVar7 = (char *)FUN_00321c03(local_50,&local_44); if (pcVar7 == (char *)0x0) { return (char *)0x0; } if ((local_44 >> 3 == 1) && (local_44 == 10)) break; if (((local_44 & 7) == 4) || (local_44 == 0)) { *(uint *)(param_2 + 10) = local_44 - 1; return pcVar7; } uVar4 = (this->data).offset_0x0; local_50 = pcVar7; if ((uVar4 & 1) == 0) { lVar8 = FUN_002762f0(&this->data); } else { lVar8 = (uVar4 & 0xfffffffffffffffc) + 8; } local_50 = (char *)FUN_003589df(local_44,lVar8,pcVar7,param_2); if (local_50 == (char *)0x0) { return (char *)0x0; } } local_50 = pcVar7 + -1; do { piVar2 = (int *)(this->data).offset_0x18; pcVar7 = local_50 + 1; local_50 = pcVar7; if (piVar2 == (int *)0x0) { LAB_0032ccfe: FUN_002ecbe4(&(this->data).offset_0x8,*(int *)((long)&(this->data).offset_0x10 + 4) + 1); LAB_0032cd0c: piVar2 = (int *)(this->data).offset_0x18; uVar3 = (this->data).offset_0x8; *piVar2 = *piVar2 + 1; this_00 = (FileDescriptorProto *)FUN_00323394(uVar3); iVar1 = *(int *)&(this->data).offset_0x10; *(int *)&(this->data).offset_0x10 = iVar1 + 1; *(FileDescriptorProto **)((this->data).offset_0x18 + 8 + (long)iVar1 * 8) = this_00; } else { iVar1 = *(int *)&(this->data).offset_0x10; if (*piVar2 <= iVar1) { if (*piVar2 == *(int *)((long)&(this->data).offset_0x10 + 4)) goto LAB_0032ccfe; goto LAB_0032cd0c; } this_00 = *(FileDescriptorProto **)(piVar2 + (long)iVar1 * 2 + 2); *(int *)&(this->data).offset_0x10 = iVar1 + 1; } local_40[0] = pcVar7; uVar6 = FUN_002e2dcc(local_40); if (local_40[0] == (char *)0x0) { return (char *)0x0; } uVar6 = FUN_00334288(param_2,local_40[0],uVar6); piVar2 = (int *)(param_2 + 0xb); *piVar2 = *piVar2 + -1; if (*piVar2 < 0) { return (char *)0x0; } local_40[0] = FileDescriptorProto::vfunction12(this_00,local_40[0],param_2); if (local_40[0] == (char *)0x0) { return (char *)0x0; } *(int *)(param_2 + 0xb) = *(int *)(param_2 + 0xb) + 1; cVar5 = FUN_00334330(param_2,uVar6); if (cVar5 == '\0') { return (char *)0x0; } local_50 = local_40[0]; if (local_40[0] == (char *)0x0) { return (char *)0x0; } } while ((local_40[0] < (char *)*param_2) && (*local_40[0] == '\n')); } while( true ); } // 0032d07a google::protobuf::FileDescriptorSet::~FileDescriptorSet void __thiscall google::protobuf::FileDescriptorSet::~FileDescriptorSet(FileDescriptorSet *this) { undefined8 *puVar1; this->vftablePtr = &vftable; FUN_003349ec(); puVar1 = &(this->data).offset_0x8; FUN_00335c9e(&this->data); FUN_0033689c(puVar1); FUN_002ecda2(puVar1); return; } // 0032d0ac google::protobuf::FileDescriptorSet::vfunction2 void __thiscall google::protobuf::FileDescriptorSet::vfunction2(FileDescriptorSet *this) { ~FileDescriptorSet(this); internal::FieldSkipper::vfunction2((FieldSkipper *)this); return; } // 0032e02a google::protobuf::FileDescriptorSet::vfunction6 void __thiscall google::protobuf::FileDescriptorSet::vfunction6(FileDescriptorSet *this) { FUN_003371c8(&(this->data).offset_0x8); if ((*(byte *)&(this->data).offset_0x0 & 1) != 0) { FUN_002a4470(&this->data); return; } return; } // 0032e1ba google::protobuf::FileDescriptorSet::vfunction16 void __thiscall google::protobuf::FileDescriptorSet::vfunction16(FileDescriptorSet *this,FileDescriptorSet *param_1) { undefined8 uVar1; long lVar2; long extraout_RDX; undefined1 local_39; undefined1 local_38 [32]; if (this == param_1) { FUN_002d0582(local_38,3,"google/protobuf/descriptor.pb.cc",0x569); uVar1 = FUN_002d001e(local_38,"CHECK failed: (&from) != (this): "); FUN_002d0858(&local_39,uVar1); FUN_002d059c(local_38); } FUN_003227eb(0); lVar2 = FUN_00315146(param_1); if (lVar2 == extraout_RDX) { FUN_0032e10a(this,param_1); } else { FUN_0034dd68(param_1,this); } return; } // 0032e266 google::protobuf::FileDescriptorSet::vfunction15 void __thiscall google::protobuf::FileDescriptorSet::vfunction15(FileDescriptorSet *this,FileDescriptorSet *param_1) { if (this != param_1) { vfunction6(this); vfunction16(this,param_1); return; } return; } // 003344d8 google::protobuf::FileDescriptorSet::vfunction11 void __thiscall google::protobuf::FileDescriptorSet::vfunction11(FileDescriptorSet *this) { FUN_003343d0(&(this->data).offset_0x20); return; } // 0033536c google::protobuf::FileDescriptorSet::vfunction5 FileDescriptorSet * __thiscall google::protobuf::FileDescriptorSet::vfunction5(FileDescriptorSet *this,long param_1) { FileDescriptorSet *this_00; if (param_1 == 0) { this_00 = (FileDescriptorSet *)FUN_003a1a2c(0x30); param_1 = 0; } else { this_00 = (FileDescriptorSet *)thunk_FUN_002d7d08(param_1,0x30,0); } FileDescriptorSet(this_00,param_1); return this_00; } // 00335374 google::protobuf::FileDescriptorSet::vfunction4 /* WARNING: Removing unreachable block (ram,0x00323371) */ FileDescriptorSet * __thiscall google::protobuf::FileDescriptorSet::vfunction4(void) { FileDescriptorSet *this; this = (FileDescriptorSet *)FUN_003a1a2c(0x30); FileDescriptorSet(this,0); return this; }