Files

429 lines
10 KiB
C

// 00248b70 CMsgSetFocus::vfunction13
void __thiscall CMsgSetFocus::vfunction13(CMsgSetFocus *this,byte *param_1,undefined8 *param_2)
{
byte bVar1;
ulong uVar2;
CMsgSetFocus_vftable *pCVar3;
byte *pbVar4;
uint uVar5;
uint uVar6;
byte *pbVar7;
pCVar3 = this[1].vftablePtr;
if (((ulong)pCVar3 & 1) != 0) {
if ((byte *)*param_2 <= param_1) {
param_1 = (byte *)FUN_002f822a(param_2);
}
uVar6 = (uint)this[1].data.offset_0x0;
*param_1 = 8;
if (uVar6 < 0x80) {
param_1[1] = (byte)uVar6;
param_1 = param_1 + 2;
}
else {
param_1[1] = (byte)uVar6 | 0x80;
pbVar4 = param_1 + 2;
uVar5 = uVar6 >> 7;
if (uVar6 < 0x4000) {
param_1[2] = (byte)(uVar6 >> 7);
param_1 = param_1 + 3;
}
else {
do {
pbVar7 = pbVar4;
uVar6 = uVar5 >> 7;
*pbVar7 = (byte)uVar5 | 0x80;
pbVar4 = pbVar7 + 1;
uVar5 = uVar6;
} while (0x7f < uVar6);
param_1 = pbVar7 + 2;
pbVar7[1] = (byte)uVar6;
}
}
}
pbVar4 = param_1;
if (((ulong)pCVar3 & 2) != 0) {
if ((byte *)*param_2 <= param_1) {
param_1 = (byte *)FUN_002f822a(param_2,param_1);
}
bVar1 = *(byte *)((long)&this[1].data.offset_0x0 + 4);
pbVar4 = param_1 + 2;
*param_1 = 0x10;
param_1[1] = bVar1;
}
uVar2 = (this->data).offset_0x0;
if ((uVar2 & 1) != 0) {
FUN_00359676((uVar2 & 0xfffffffffffffffc) + 8,pbVar4,param_2);
return;
}
return;
}
// 00250af0 CMsgSetFocus::vfunction10
void __thiscall CMsgSetFocus::vfunction10(CMsgSetFocus *this)
{
CMsgSetFocus_vftable *pCVar1;
uint uVar2;
int iVar3;
pCVar1 = this[1].vftablePtr;
iVar3 = 0;
if (((ulong)pCVar1 & 3) != 0) {
if (((ulong)pCVar1 & 1) != 0) {
uVar2 = (uint)this[1].data.offset_0x0 | 1;
iVar3 = 0x1f;
if (uVar2 != 0) {
for (; uVar2 >> iVar3 == 0; iVar3 = iVar3 + -1) {
}
}
iVar3 = (iVar3 * 9 + 0x49U >> 6) + 1;
}
if (((ulong)pCVar1 & 2) != 0) {
iVar3 = iVar3 + 2;
}
}
if (((this->data).offset_0x0 & 1) == 0) {
*(int *)((long)&this[1].vftablePtr + 4) = iVar3;
return;
}
FUN_00359fe2(&this->data,iVar3,(undefined1 *)((long)&this[1].vftablePtr + 4));
return;
}
// 00252d30 CMsgSetFocus::vfunction11
undefined4 __thiscall CMsgSetFocus::vfunction11(CMsgSetFocus *this)
{
return *(undefined4 *)((long)&this[1].vftablePtr + 4);
}
// 002570f0 CMsgSetFocus::~CMsgSetFocus
void __thiscall CMsgSetFocus::~CMsgSetFocus(CMsgSetFocus *this)
{
ulong uVar1;
this->vftablePtr = &vftable;
uVar1 = (this->data).offset_0x0;
if ((((uVar1 & 1) != 0) && ((uVar1 & 3) != 0)) &&
(((uVar1 & 2) != 0 || (*(long *)(uVar1 & 0xfffffffffffffffc) == 0)))) {
FUN_002564b0();
return;
}
return;
}
// 00258eb0 CMsgSetFocus::~CMsgSetFocus
void __thiscall CMsgSetFocus::~CMsgSetFocus(CMsgSetFocus *this)
{
ulong uVar1;
this->vftablePtr = &vftable;
uVar1 = (this->data).offset_0x0;
if ((((uVar1 & 1) != 0) && ((uVar1 & 3) != 0)) &&
(((uVar1 & 2) != 0 || (*(long *)(uVar1 & 0xfffffffffffffffc) == 0)))) {
FUN_002564b0();
FUN_0039deb8(this,0x20);
return;
}
FUN_0039deb8(this,0x20);
return;
}
// 0026c7b0 CMsgSetFocus::vfunction20
undefined1 [16] __thiscall CMsgSetFocus::vfunction20(void)
{
FUN_0033e2d0(&DAT_00466400,0);
return *(undefined1 (*) [16])(PTR_DAT_00466448 + 0x210);
}
// 00270ec0 CMsgSetFocus::vfunction5
void __thiscall CMsgSetFocus::vfunction5(CMsgSetFocus *this,long param_1)
{
undefined8 *puVar1;
if (param_1 != 0) {
puVar1 = (undefined8 *)thunk_FUN_002d7d08(param_1,0x20,&typeinfo);
puVar1[1] = param_1;
*puVar1 = &vftable;
puVar1[2] = 0;
*(undefined4 *)(puVar1 + 3) = 0;
*(undefined1 *)((long)puVar1 + 0x1c) = 0;
return;
}
puVar1 = (undefined8 *)FUN_003a1a2c(0x20);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
*(undefined4 *)(puVar1 + 3) = 0;
*(undefined1 *)((long)puVar1 + 0x1c) = 0;
return;
}
// 00270ed0 CMsgSetFocus::CMsgSetFocus_Constructor_or_Destructor
/* WARNING: Removing unreachable block (ram,0x00270e46) */
void __thiscall CMsgSetFocus::CMsgSetFocus_Constructor_or_Destructor(CMsgSetFocus *this)
{
undefined8 *puVar1;
puVar1 = (undefined8 *)FUN_003a1a2c(0x20);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
*(undefined4 *)(puVar1 + 3) = 0;
*(undefined1 *)((long)puVar1 + 0x1c) = 0;
return;
}
// 0027af00 CMsgSetFocus::vfunction12
byte * __thiscall CMsgSetFocus::vfunction12(CMsgSetFocus *this,byte *param_1,undefined8 *param_2)
{
byte bVar1;
ulong uVar2;
uint uVar3;
uint uVar4;
long lVar5;
char extraout_DL;
int iVar6;
ulong uVar7;
byte *pbVar8;
uint uVar9;
long in_FS_OFFSET;
undefined1 auVar10 [12];
undefined4 local_38;
undefined4 uStack_34;
long local_30;
uVar9 = 0;
local_30 = *(long *)(in_FS_OFFSET + 0x28);
do {
pbVar8 = param_1;
if ((byte *)*param_2 <= param_1) goto LAB_0027b02e;
LAB_0027af32:
bVar1 = *pbVar8;
uVar7 = (ulong)bVar1;
param_1 = pbVar8 + 1;
if (0x7f < bVar1) {
uVar7 = (ulong)((uint)bVar1 + (pbVar8[1] - 1) * 0x80);
if (pbVar8[1] < 0x80) {
param_1 = pbVar8 + 2;
goto LAB_0027af57;
}
auVar10 = FUN_002ea28a();
param_1 = auVar10._0_8_;
uVar7 = (ulong)auVar10._8_4_;
if (param_1 == (byte *)0x0) goto LAB_0027afb8;
uVar3 = auVar10._8_4_ >> 3;
if (uVar3 != 1) goto LAB_0027af65;
LAB_0027affd:
if ((char)uVar7 != '\b') goto LAB_0027b090;
uVar9 = uVar9 | 1;
param_1 = (byte *)FUN_002762b0(param_1,&local_38);
*(undefined4 *)&this[1].data.offset_0x0 = local_38;
if (param_1 == (byte *)0x0) goto LAB_0027afb8;
pbVar8 = param_1;
if ((byte *)*param_2 <= param_1) {
LAB_0027b02e:
iVar6 = (int)((long)param_1 - param_2[1]);
if (iVar6 == *(int *)((long)param_2 + 0x1c)) {
if ((iVar6 < 1) || (param_2[2] != 0)) goto LAB_0027afba;
goto LAB_0027afb8;
}
param_1 = (byte *)FUN_002ea7d8(param_2,(long)param_1 - param_2[1] & 0xffffffff,
*(undefined4 *)((long)param_2 + 0x5c));
pbVar8 = param_1;
if (extraout_DL != '\0') goto LAB_0027afba;
}
goto LAB_0027af32;
}
LAB_0027af57:
uVar3 = (uint)(uVar7 >> 3);
if (uVar3 == 1) goto LAB_0027affd;
LAB_0027af65:
uVar4 = (uint)uVar7;
if (uVar3 != 2) {
if ((uVar4 & 7) == 4) goto LAB_0027b09e;
if (uVar4 != 0) goto LAB_0027af84;
iVar6 = -1;
goto LAB_0027b0a1;
}
if ((char)uVar7 == '\x10') {
uVar9 = uVar9 | 2;
param_1 = (byte *)FUN_00276260(param_1,&local_38);
*(bool *)((long)&this[1].data.offset_0x0 + 4) = CONCAT44(uStack_34,local_38) != 0;
goto joined_r0x0027b085;
}
LAB_0027b090:
uVar4 = (uint)uVar7;
if ((uVar4 & 7) == 4) {
LAB_0027b09e:
iVar6 = uVar4 - 1;
LAB_0027b0a1:
*(int *)(param_2 + 10) = iVar6;
goto LAB_0027afba;
}
LAB_0027af84:
uVar2 = (this->data).offset_0x0;
if ((uVar2 & 1) == 0) {
lVar5 = FUN_002762f0(&this->data);
}
else {
lVar5 = (uVar2 & 0xfffffffffffffffc) + 8;
}
param_1 = (byte *)FUN_003589df(uVar7,lVar5,param_1,param_2);
joined_r0x0027b085:
if (param_1 == (byte *)0x0) {
LAB_0027afb8:
param_1 = (byte *)0x0;
LAB_0027afba:
*(uint *)&this[1].vftablePtr = *(uint *)&this[1].vftablePtr | uVar9;
if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
return param_1;
}
/* WARNING: Subroutine does not return */
FUN_00219340();
}
} while( true );
}
// 002a0d90 CMsgSetFocus::vfunction16
void __thiscall CMsgSetFocus::vfunction16(CMsgSetFocus *this,undefined8 param_1)
{
uint uVar1;
ulong uVar2;
long lVar3;
long lVar4;
lVar3 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0);
if (lVar3 != 0) {
uVar2 = *(ulong *)(lVar3 + 8);
if ((uVar2 & 1) != 0) {
if ((uVar2 & 1) == 0) {
lVar4 = (*(code *)(ulong)((uint)uVar2 & 1))();
}
else {
lVar4 = (uVar2 & 0xfffffffffffffffc) + 8;
}
FUN_002921f0(&this->data,lVar4);
}
uVar1 = *(uint *)(lVar3 + 0x10);
if ((uVar1 & 3) != 0) {
if ((uVar1 & 1) != 0) {
*(undefined4 *)&this[1].data.offset_0x0 = *(undefined4 *)(lVar3 + 0x18);
}
if ((uVar1 & 2) != 0) {
*(undefined1 *)((long)&this[1].data.offset_0x0 + 4) = *(undefined1 *)(lVar3 + 0x1c);
}
*(uint *)&this[1].vftablePtr = *(uint *)&this[1].vftablePtr | uVar1;
}
return;
}
FUN_0034dd68(param_1,this);
return;
}
// 002a5410 CMsgSetFocus::vfunction6
void __thiscall CMsgSetFocus::vfunction6(CMsgSetFocus *this)
{
byte bVar1;
if (((ulong)this[1].vftablePtr & 3) == 0) {
bVar1 = (byte)(this->data).offset_0x0;
*(undefined4 *)&this[1].vftablePtr = 0;
}
else {
bVar1 = (byte)(this->data).offset_0x0;
*(undefined4 *)&this[1].data.offset_0x0 = 0;
*(undefined1 *)((long)&this[1].data.offset_0x0 + 4) = 0;
*(undefined4 *)&this[1].vftablePtr = 0;
}
if ((bVar1 & 1) == 0) {
return;
}
FUN_002a4470(&this->data);
return;
}
// 002b4a20 CMsgSetFocus::vfunction15
void __thiscall CMsgSetFocus::vfunction15(CMsgSetFocus *this,CMsgSetFocus *param_1)
{
uint uVar1;
ulong uVar2;
long lVar3;
long lVar4;
if (this == param_1) {
return;
}
if (((ulong)this[1].vftablePtr & 3) != 0) {
*(undefined4 *)&this[1].data.offset_0x0 = 0;
*(undefined1 *)((long)&this[1].data.offset_0x0 + 4) = 0;
}
*(undefined4 *)&this[1].vftablePtr = 0;
if (((this->data).offset_0x0 & 1) != 0) {
FUN_002a4470(&this->data);
}
lVar3 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0);
if (lVar3 != 0) {
uVar2 = *(ulong *)(lVar3 + 8);
if ((uVar2 & 1) != 0) {
if ((uVar2 & 1) == 0) {
lVar4 = (*(code *)(ulong)((uint)uVar2 & 1))();
}
else {
lVar4 = (uVar2 & 0xfffffffffffffffc) + 8;
}
FUN_002921f0(&this->data,lVar4);
}
uVar1 = *(uint *)(lVar3 + 0x10);
if ((uVar1 & 3) != 0) {
if ((uVar1 & 1) != 0) {
*(undefined4 *)&this[1].data.offset_0x0 = *(undefined4 *)(lVar3 + 0x18);
}
if ((uVar1 & 2) != 0) {
*(undefined1 *)((long)&this[1].data.offset_0x0 + 4) = *(undefined1 *)(lVar3 + 0x1c);
}
*(uint *)&this[1].vftablePtr = *(uint *)&this[1].vftablePtr | uVar1;
}
return;
}
FUN_0034dd68(param_1,this);
return;
}