Files

409 lines
9.7 KiB
C

// 0024e910 CMsgMaximizeRestoreWindow::vfunction13
void __thiscall
CMsgMaximizeRestoreWindow::vfunction13
(CMsgMaximizeRestoreWindow *this,byte *param_1,undefined8 *param_2)
{
ulong uVar1;
byte *pbVar2;
uint uVar3;
uint uVar4;
byte *pbVar5;
if ((*(byte *)&(this->data).offset_0x8 & 1) != 0) {
if ((byte *)*param_2 <= param_1) {
param_1 = (byte *)FUN_002f822a(param_2);
}
uVar4 = (this->data).offset_0x10;
*param_1 = 8;
if (uVar4 < 0x80) {
param_1[1] = (byte)uVar4;
uVar1 = (this->data).offset_0x0;
param_1 = param_1 + 2;
goto joined_r0x0024e98f;
}
param_1[1] = (byte)uVar4 | 0x80;
pbVar2 = param_1 + 2;
uVar3 = uVar4 >> 7;
if (uVar4 < 0x4000) {
param_1[2] = (byte)(uVar4 >> 7);
param_1 = param_1 + 3;
}
else {
do {
pbVar5 = pbVar2;
uVar4 = uVar3 >> 7;
*pbVar5 = (byte)uVar3 | 0x80;
pbVar2 = pbVar5 + 1;
uVar3 = uVar4;
} while (0x7f < uVar4);
param_1 = pbVar5 + 2;
pbVar5[1] = (byte)uVar4;
}
}
uVar1 = (this->data).offset_0x0;
joined_r0x0024e98f:
if ((uVar1 & 1) != 0) {
FUN_00359676((uVar1 & 0xfffffffffffffffc) + 8,param_1,param_2);
return;
}
return;
}
// 00251f00 CMsgMaximizeRestoreWindow::vfunction10
ulong __thiscall CMsgMaximizeRestoreWindow::vfunction10(CMsgMaximizeRestoreWindow *this)
{
int iVar1;
uint uVar2;
ulong uVar3;
uVar3 = 0;
uVar2 = 0;
if ((*(uint *)&(this->data).offset_0x8 & 1) != 0) {
uVar2 = (this->data).offset_0x10 | 1;
iVar1 = 0x1f;
if (uVar2 != 0) {
for (; uVar2 >> iVar1 == 0; iVar1 = iVar1 + -1) {
}
}
uVar2 = (iVar1 * 9 + 0x49U >> 6) + 1;
uVar3 = (ulong)uVar2;
}
if (((this->data).offset_0x0 & 1) == 0) {
*(uint *)((long)&(this->data).offset_0x8 + 4) = uVar2;
return uVar3;
}
uVar3 = FUN_00359fe2(&this->data,uVar3,(undefined1 *)((long)&(this->data).offset_0x8 + 4));
return uVar3;
}
// 00252730 CMsgMaximizeRestoreWindow::vfunction11
undefined4 __thiscall CMsgMaximizeRestoreWindow::vfunction11(CMsgMaximizeRestoreWindow *this)
{
return *(undefined4 *)((long)&(this->data).offset_0x8 + 4);
}
// 00257fb0 CMsgMaximizeRestoreWindow::~CMsgMaximizeRestoreWindow
void __thiscall
CMsgMaximizeRestoreWindow::~CMsgMaximizeRestoreWindow(CMsgMaximizeRestoreWindow *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;
}
// 0025a4d0 CMsgMaximizeRestoreWindow::~CMsgMaximizeRestoreWindow
void __thiscall
CMsgMaximizeRestoreWindow::~CMsgMaximizeRestoreWindow(CMsgMaximizeRestoreWindow *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;
}
// 0026ce30 CMsgMaximizeRestoreWindow::vfunction20
undefined1 [16] __thiscall CMsgMaximizeRestoreWindow::vfunction20(void)
{
FUN_0033e2d0(&DAT_00466400,0);
return *(undefined1 (*) [16])(PTR_DAT_00466448 + 0x890);
}
// 0026f280 CMsgMaximizeRestoreWindow::CMsgMaximizeRestoreWindow
void __thiscall
CMsgMaximizeRestoreWindow::CMsgMaximizeRestoreWindow(CMsgMaximizeRestoreWindow *this,ulong param_1)
{
(this->data).offset_0x0 = param_1;
this->vftablePtr = &vftable;
(this->data).offset_0x8 = 0;
(this->data).offset_0x10 = 0;
return;
}
// 002750d0 CMsgMaximizeRestoreWindow::vfunction5
void __thiscall CMsgMaximizeRestoreWindow::vfunction5(CMsgMaximizeRestoreWindow *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;
return;
}
puVar1 = (undefined8 *)FUN_003a1a2c(0x20);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
*(undefined4 *)(puVar1 + 3) = 0;
return;
}
// 002750e0 CMsgMaximizeRestoreWindow::CMsgMaximizeRestoreWindow_Constructor_or_Destructor
/* WARNING: Removing unreachable block (ram,0x00275066) */
void __thiscall
CMsgMaximizeRestoreWindow::CMsgMaximizeRestoreWindow_Constructor_or_Destructor
(CMsgMaximizeRestoreWindow *this)
{
undefined8 *puVar1;
puVar1 = (undefined8 *)FUN_003a1a2c(0x20);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
*(undefined4 *)(puVar1 + 3) = 0;
return;
}
// 00288b00 CMsgMaximizeRestoreWindow::vfunction12
byte * __thiscall
CMsgMaximizeRestoreWindow::vfunction12
(CMsgMaximizeRestoreWindow *this,byte *param_1,undefined8 *param_2)
{
undefined8 *puVar1;
byte bVar2;
ulong uVar3;
uint uVar4;
long lVar5;
char extraout_DL;
byte *pbVar6;
uint uVar7;
int iVar8;
ulong uVar9;
uint uVar10;
long in_FS_OFFSET;
undefined1 auVar11 [12];
undefined4 local_34;
long local_30;
uVar10 = 0;
local_30 = *(long *)(in_FS_OFFSET + 0x28);
do {
if ((byte *)*param_2 <= param_1) goto LAB_00288c24;
LAB_00288b32:
bVar2 = *param_1;
uVar9 = (ulong)bVar2;
pbVar6 = param_1 + 1;
if (bVar2 < 0x80) {
LAB_00288b57:
uVar4 = (uint)(uVar9 >> 3);
param_1 = pbVar6;
}
else {
uVar9 = (ulong)((uint)bVar2 + (param_1[1] - 1) * 0x80);
if (param_1[1] < 0x80) {
pbVar6 = param_1 + 2;
goto LAB_00288b57;
}
auVar11 = FUN_002ea28a();
uVar9 = (ulong)auVar11._8_4_;
if (auVar11._0_8_ == (byte *)0x0) goto LAB_00288ba4;
uVar4 = auVar11._8_4_ >> 3;
param_1 = auVar11._0_8_;
}
uVar7 = (uint)uVar9;
if (uVar4 != 1) {
if ((uVar7 & 7) == 4) goto LAB_00288ca0;
if (uVar7 != 0) goto LAB_00288b7b;
iVar8 = -1;
goto LAB_00288ca3;
}
if ((char)uVar9 == '\b') {
param_1 = (byte *)FUN_002762b0(param_1,&local_34);
(this->data).offset_0x10 = local_34;
if (param_1 == (byte *)0x0) {
param_1 = (byte *)0x0;
uVar10 = 1;
goto LAB_00288ba6;
}
uVar10 = 1;
if ((byte *)*param_2 <= param_1) {
LAB_00288c24:
iVar8 = (int)((long)param_1 - param_2[1]);
if (iVar8 == *(int *)((long)param_2 + 0x1c)) {
if ((iVar8 < 1) || (param_2[2] != 0)) goto LAB_00288ba6;
goto LAB_00288ba4;
}
param_1 = (byte *)FUN_002ea7d8(param_2,(long)param_1 - param_2[1] & 0xffffffff,
*(undefined4 *)((long)param_2 + 0x5c));
if (extraout_DL != '\0') goto LAB_00288ba6;
}
goto LAB_00288b32;
}
if ((uVar7 & 7) == 4) {
LAB_00288ca0:
iVar8 = uVar7 - 1;
LAB_00288ca3:
*(int *)(param_2 + 10) = iVar8;
goto LAB_00288ba6;
}
LAB_00288b7b:
uVar3 = (this->data).offset_0x0;
if ((uVar3 & 1) == 0) {
lVar5 = FUN_002762f0(&this->data);
}
else {
lVar5 = (uVar3 & 0xfffffffffffffffc) + 8;
}
param_1 = (byte *)FUN_003589df(uVar9,lVar5,param_1,param_2);
if (param_1 == (byte *)0x0) {
LAB_00288ba4:
param_1 = (byte *)0x0;
LAB_00288ba6:
puVar1 = &(this->data).offset_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | uVar10;
if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
return param_1;
}
/* WARNING: Subroutine does not return */
FUN_00219340();
}
} while( true );
}
// 002a0700 CMsgMaximizeRestoreWindow::vfunction16
void __thiscall
CMsgMaximizeRestoreWindow::vfunction16(CMsgMaximizeRestoreWindow *this,undefined8 param_1)
{
undefined8 *puVar1;
undefined4 uVar2;
ulong uVar3;
long lVar4;
long lVar5;
lVar4 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0);
if (lVar4 != 0) {
uVar3 = *(ulong *)(lVar4 + 8);
if ((uVar3 & 1) != 0) {
if ((uVar3 & 1) == 0) {
lVar5 = (*(code *)(ulong)((uint)uVar3 & 1))();
}
else {
lVar5 = (uVar3 & 0xfffffffffffffffc) + 8;
}
FUN_002921f0(&this->data,lVar5);
}
if ((*(byte *)(lVar4 + 0x10) & 1) != 0) {
uVar2 = *(undefined4 *)(lVar4 + 0x18);
puVar1 = &(this->data).offset_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | 1;
(this->data).offset_0x10 = uVar2;
}
return;
}
FUN_0034dd68(param_1,this);
return;
}
// 002a8630 CMsgMaximizeRestoreWindow::vfunction6
void __thiscall CMsgMaximizeRestoreWindow::vfunction6(CMsgMaximizeRestoreWindow *this)
{
(this->data).offset_0x10 = 0;
*(undefined4 *)&(this->data).offset_0x8 = 0;
if (((this->data).offset_0x0 & 1) == 0) {
return;
}
FUN_002a4470(&this->data);
return;
}
// 002ad270 CMsgMaximizeRestoreWindow::vfunction15
void __thiscall
CMsgMaximizeRestoreWindow::vfunction15
(CMsgMaximizeRestoreWindow *this,CMsgMaximizeRestoreWindow *param_1)
{
undefined8 *puVar1;
undefined4 uVar2;
ulong uVar3;
long lVar4;
long lVar5;
if (this == param_1) {
return;
}
(this->data).offset_0x10 = 0;
*(undefined4 *)&(this->data).offset_0x8 = 0;
if (((this->data).offset_0x0 & 1) != 0) {
FUN_002a4470(&this->data);
}
lVar4 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0);
if (lVar4 != 0) {
uVar3 = *(ulong *)(lVar4 + 8);
if ((uVar3 & 1) != 0) {
if ((uVar3 & 1) == 0) {
lVar5 = (*(code *)(ulong)((uint)uVar3 & 1))();
}
else {
lVar5 = (uVar3 & 0xfffffffffffffffc) + 8;
}
FUN_002921f0(&this->data,lVar5);
}
if ((*(byte *)(lVar4 + 0x10) & 1) != 0) {
uVar2 = *(undefined4 *)(lVar4 + 0x18);
puVar1 = &(this->data).offset_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | 1;
(this->data).offset_0x10 = uVar2;
}
return;
}
FUN_0034dd68(param_1,this);
return;
}