Files
steam/decomp/steamrt64_chromehtml.so/src/CMsgSetAccessibilitySettings.c

543 lines
14 KiB
C

// 0024fe10 CMsgSetAccessibilitySettings::vfunction13
void __thiscall
CMsgSetAccessibilitySettings::vfunction13
(CMsgSetAccessibilitySettings *this,byte *param_1,undefined8 *param_2)
{
int iVar1;
byte *pbVar2;
byte *pbVar3;
byte bVar4;
uint uVar5;
uint uVar6;
ulong uVar7;
ulong uVar8;
byte *pbVar9;
uVar6 = *(uint *)&(this->data).offset_0x8;
pbVar3 = param_1;
if ((uVar6 & 1) != 0) {
if ((byte *)*param_2 <= param_1) {
param_1 = (byte *)FUN_002f822a(param_2);
}
bVar4 = *(byte *)&(this->data).offset_0x10;
pbVar3 = param_1 + 2;
*param_1 = 8;
param_1[1] = bVar4;
}
if ((uVar6 & 2) != 0) {
if ((byte *)*param_2 <= pbVar3) {
pbVar3 = (byte *)FUN_002f822a(param_2,pbVar3);
}
iVar1 = *(int *)((long)&(this->data).offset_0x10 + 4);
uVar7 = (ulong)iVar1;
*pbVar3 = 0x10;
bVar4 = (byte)iVar1;
if (uVar7 < 0x80) {
pbVar3[1] = bVar4;
pbVar3 = pbVar3 + 2;
}
else {
pbVar3[1] = bVar4 | 0x80;
uVar8 = uVar7 >> 7;
pbVar2 = pbVar3 + 2;
if (uVar7 < 0x4000) {
pbVar3[2] = (byte)(uVar7 >> 7);
pbVar3 = pbVar3 + 3;
}
else {
do {
pbVar9 = pbVar2;
uVar7 = uVar8 >> 7;
*pbVar9 = (byte)uVar8 | 0x80;
uVar8 = uVar7;
pbVar2 = pbVar9 + 1;
} while (0x7f < uVar7);
pbVar3 = pbVar9 + 2;
pbVar9[1] = (byte)uVar7;
}
}
}
if ((uVar6 & 4) != 0) {
if ((byte *)*param_2 <= pbVar3) {
pbVar3 = (byte *)FUN_002f822a(param_2,pbVar3);
}
uVar6 = (this->data).offset_0x18;
*pbVar3 = 0x18;
if (uVar6 < 0x80) {
pbVar3[1] = (byte)uVar6;
uVar7 = (this->data).offset_0x0;
pbVar3 = pbVar3 + 2;
goto joined_r0x0024ff17;
}
pbVar3[1] = (byte)uVar6 | 0x80;
pbVar2 = pbVar3 + 2;
uVar5 = uVar6 >> 7;
if (uVar6 < 0x4000) {
pbVar3[2] = (byte)(uVar6 >> 7);
pbVar3 = pbVar3 + 3;
}
else {
do {
pbVar9 = pbVar2;
uVar6 = uVar5 >> 7;
*pbVar9 = (byte)uVar5 | 0x80;
pbVar2 = pbVar9 + 1;
uVar5 = uVar6;
} while (0x7f < uVar6);
pbVar3 = pbVar9 + 2;
pbVar9[1] = (byte)uVar6;
}
}
uVar7 = (this->data).offset_0x0;
joined_r0x0024ff17:
if ((uVar7 & 1) != 0) {
FUN_00359676((uVar7 & 0xfffffffffffffffc) + 8,pbVar3,param_2);
return;
}
return;
}
// 00252460 CMsgSetAccessibilitySettings::vfunction10
long __thiscall CMsgSetAccessibilitySettings::vfunction10(CMsgSetAccessibilitySettings *this)
{
byte bVar1;
int iVar2;
long lVar3;
uint uVar4;
ulong uVar5;
uint uVar6;
uVar6 = *(uint *)&(this->data).offset_0x8;
lVar3 = 0;
if ((uVar6 & 7) != 0) {
lVar3 = (ulong)(uVar6 & 1) * 2;
if ((uVar6 & 2) != 0) {
uVar4 = *(uint *)((long)&(this->data).offset_0x10 + 4);
if ((int)uVar4 < 0) {
uVar5 = 10;
}
else {
uVar4 = uVar4 | 1;
iVar2 = 0x1f;
if (uVar4 != 0) {
for (; uVar4 >> iVar2 == 0; iVar2 = iVar2 + -1) {
}
}
uVar5 = (ulong)(iVar2 * 9 + 0x49U >> 6);
}
lVar3 = uVar5 + 1 + lVar3;
}
if ((uVar6 & 4) != 0) {
uVar6 = (this->data).offset_0x18 | 1;
iVar2 = 0x1f;
if (uVar6 != 0) {
for (; uVar6 >> iVar2 == 0; iVar2 = iVar2 + -1) {
}
}
lVar3 = lVar3 + (ulong)((iVar2 * 9 + 0x49U >> 6) + 1);
bVar1 = (byte)(this->data).offset_0x0;
goto joined_r0x002524c2;
}
}
bVar1 = (byte)(this->data).offset_0x0;
joined_r0x002524c2:
if ((bVar1 & 1) == 0) {
*(int *)((long)&(this->data).offset_0x8 + 4) = (int)lVar3;
return lVar3;
}
lVar3 = FUN_00359fe2(&this->data,lVar3,(undefined1 *)((long)&(this->data).offset_0x8 + 4));
return lVar3;
}
// 00252590 CMsgSetAccessibilitySettings::vfunction11
undefined4 __thiscall CMsgSetAccessibilitySettings::vfunction11(CMsgSetAccessibilitySettings *this)
{
return *(undefined4 *)((long)&(this->data).offset_0x8 + 4);
}
// 002583f0 CMsgSetAccessibilitySettings::~CMsgSetAccessibilitySettings
void __thiscall
CMsgSetAccessibilitySettings::~CMsgSetAccessibilitySettings(CMsgSetAccessibilitySettings *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;
}
// 0025ab30 CMsgSetAccessibilitySettings::~CMsgSetAccessibilitySettings
void __thiscall
CMsgSetAccessibilitySettings::~CMsgSetAccessibilitySettings(CMsgSetAccessibilitySettings *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,0x28);
return;
}
FUN_0039deb8(this,0x28);
return;
}
// 0026cfe0 CMsgSetAccessibilitySettings::vfunction20
undefined1 [16] __thiscall CMsgSetAccessibilitySettings::vfunction20(void)
{
FUN_0033e2d0(&DAT_00466400,0);
return *(undefined1 (*) [16])(PTR_DAT_00466448 + 0xa40);
}
// 0026f8e0 CMsgSetAccessibilitySettings::CMsgSetAccessibilitySettings
void __thiscall
CMsgSetAccessibilitySettings::CMsgSetAccessibilitySettings
(CMsgSetAccessibilitySettings *this,ulong param_1)
{
(this->data).offset_0x0 = param_1;
this->vftablePtr = &vftable;
(this->data).offset_0x8 = 0;
(this->data).offset_0x10 = 0;
(this->data).offset_0x18 = 0;
return;
}
// 00276190 CMsgSetAccessibilitySettings::vfunction5
void __thiscall
CMsgSetAccessibilitySettings::vfunction5(CMsgSetAccessibilitySettings *this,long param_1)
{
undefined8 *puVar1;
if (param_1 != 0) {
puVar1 = (undefined8 *)thunk_FUN_002d7d08(param_1,0x28,&typeinfo);
puVar1[1] = param_1;
*puVar1 = &vftable;
puVar1[2] = 0;
puVar1[3] = 0;
*(undefined4 *)(puVar1 + 4) = 0;
return;
}
puVar1 = (undefined8 *)FUN_003a1a2c(0x28);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
puVar1[3] = 0;
*(undefined4 *)(puVar1 + 4) = 0;
return;
}
// 002761a0 CMsgSetAccessibilitySettings::CMsgSetAccessibilitySettings_Constructor_or_Destructor
/* WARNING: Removing unreachable block (ram,0x00276116) */
void __thiscall
CMsgSetAccessibilitySettings::CMsgSetAccessibilitySettings_Constructor_or_Destructor
(CMsgSetAccessibilitySettings *this)
{
undefined8 *puVar1;
puVar1 = (undefined8 *)FUN_003a1a2c(0x28);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
puVar1[3] = 0;
*(undefined4 *)(puVar1 + 4) = 0;
return;
}
// 0028bfc0 CMsgSetAccessibilitySettings::vfunction12
byte * __thiscall
CMsgSetAccessibilitySettings::vfunction12
(CMsgSetAccessibilitySettings *this,byte *param_1,undefined8 *param_2)
{
undefined8 *puVar1;
byte bVar2;
ulong uVar3;
undefined8 uVar4;
uint uVar5;
uint uVar6;
int iVar7;
long lVar8;
char extraout_DL;
ulong uVar9;
uint uVar10;
long in_FS_OFFSET;
undefined1 auVar11 [16];
uint uStack_38;
undefined4 uStack_34;
long lStack_30;
uVar10 = 0;
lStack_30 = *(long *)(in_FS_OFFSET + 0x28);
LAB_0028bfe4:
do {
if ((byte *)*param_2 <= param_1) goto LAB_0028c108;
LAB_0028bfee:
bVar2 = *param_1;
uVar9 = (ulong)bVar2;
if (0x7f < bVar2) {
uVar9 = (ulong)((uint)bVar2 + (param_1[1] - 1) * 0x80);
if (param_1[1] < 0x80) {
param_1 = param_1 + 2;
LAB_0028c013:
uVar5 = (uint)(uVar9 >> 3);
if (uVar5 == 2) goto LAB_0028c0aa;
goto LAB_0028c021;
}
auVar11 = FUN_002ea28a(param_1);
param_1 = auVar11._0_8_;
uVar9 = auVar11._8_8_ & 0xffffffff;
if (param_1 != (byte *)0x0) goto LAB_0028c013;
goto LAB_0028c068;
}
param_1 = param_1 + 1;
uVar5 = (uint)(bVar2 >> 3);
if (uVar5 != 2) {
LAB_0028c021:
uVar6 = (uint)uVar9;
if (uVar5 == 3) {
if ((char)uVar9 != '\x18') goto LAB_0028c200;
uVar10 = uVar10 | 4;
param_1 = (byte *)FUN_002762b0(param_1,&uStack_38);
(this->data).offset_0x18 = uStack_38;
if (param_1 == (byte *)0x0) goto LAB_0028c068;
goto LAB_0028bfe4;
}
if (uVar5 != 1) {
if ((uVar6 & 7) == 4) goto LAB_0028c20e;
if (uVar6 != 0) goto LAB_0028c16e;
iVar7 = -1;
goto LAB_0028c211;
}
if ((char)uVar9 != '\b') goto LAB_0028c200;
uVar10 = uVar10 | 1;
param_1 = (byte *)FUN_00276260(param_1,&uStack_38);
*(bool *)&(this->data).offset_0x10 = CONCAT44(uStack_34,uStack_38) != 0;
joined_r0x0028c060:
if (param_1 != (byte *)0x0) goto LAB_0028bfe4;
LAB_0028c068:
param_1 = (byte *)0x0;
LAB_0028c06a:
puVar1 = &(this->data).offset_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | uVar10;
if (lStack_30 == *(long *)(in_FS_OFFSET + 0x28)) {
return param_1;
}
/* WARNING: Subroutine does not return */
FUN_00219340();
}
LAB_0028c0aa:
if ((char)uVar9 != '\x10') {
LAB_0028c200:
uVar6 = (uint)uVar9;
if ((uVar6 & 7) == 4) {
LAB_0028c20e:
iVar7 = uVar6 - 1;
LAB_0028c211:
*(int *)(param_2 + 10) = iVar7;
goto LAB_0028c06a;
}
LAB_0028c16e:
uVar3 = (this->data).offset_0x0;
if ((uVar3 & 1) == 0) {
lVar8 = FUN_002762f0(&this->data);
}
else {
lVar8 = (uVar3 & 0xfffffffffffffffc) + 8;
}
param_1 = (byte *)FUN_003589df(uVar9,lVar8,param_1,param_2);
goto joined_r0x0028c060;
}
param_1 = (byte *)FUN_00276260(param_1,&uStack_38);
uVar4 = CONCAT44(uStack_34,uStack_38);
if (param_1 == (byte *)0x0) goto LAB_0028c068;
if (2 < uStack_38) break;
puVar1 = &(this->data).offset_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | 2;
*(uint *)((long)&(this->data).offset_0x10 + 4) = uStack_38;
} while( true );
uVar9 = (this->data).offset_0x0;
if ((uVar9 & 1) == 0) {
lVar8 = FUN_002762f0(&this->data);
}
else {
lVar8 = (uVar9 & 0xfffffffffffffffc) + 8;
}
FUN_003588ce(lVar8,2,uVar4);
if (param_1 < (byte *)*param_2) goto LAB_0028bfee;
LAB_0028c108:
iVar7 = (int)((long)param_1 - param_2[1]);
if (iVar7 != *(int *)((long)param_2 + 0x1c)) {
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_0028bfee;
goto LAB_0028c06a;
}
if ((iVar7 < 1) || (param_2[2] != 0)) goto LAB_0028c06a;
goto LAB_0028c068;
}
// 002a1f50 CMsgSetAccessibilitySettings::vfunction16
void __thiscall
CMsgSetAccessibilitySettings::vfunction16(CMsgSetAccessibilitySettings *this,undefined8 param_1)
{
undefined8 *puVar1;
uint 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);
}
uVar2 = *(uint *)(lVar4 + 0x10);
if ((uVar2 & 7) != 0) {
if ((uVar2 & 1) != 0) {
*(undefined1 *)&(this->data).offset_0x10 = *(undefined1 *)(lVar4 + 0x18);
}
if ((uVar2 & 2) != 0) {
*(undefined4 *)((long)&(this->data).offset_0x10 + 4) = *(undefined4 *)(lVar4 + 0x1c);
}
if ((uVar2 & 4) != 0) {
(this->data).offset_0x18 = *(undefined4 *)(lVar4 + 0x20);
}
puVar1 = &(this->data).offset_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | uVar2;
}
return;
}
FUN_0034dd68(param_1,this);
return;
}
// 002a9440 CMsgSetAccessibilitySettings::vfunction6
void __thiscall CMsgSetAccessibilitySettings::vfunction6(CMsgSetAccessibilitySettings *this)
{
byte bVar1;
if ((*(byte *)&(this->data).offset_0x8 & 7) == 0) {
bVar1 = (byte)(this->data).offset_0x0;
*(undefined4 *)&(this->data).offset_0x8 = 0;
}
else {
bVar1 = (byte)(this->data).offset_0x0;
(this->data).offset_0x10 = 0;
(this->data).offset_0x18 = 0;
*(undefined4 *)&(this->data).offset_0x8 = 0;
}
if ((bVar1 & 1) == 0) {
return;
}
FUN_002a4470(&this->data);
return;
}
// 002b6870 CMsgSetAccessibilitySettings::vfunction15
void __thiscall
CMsgSetAccessibilitySettings::vfunction15
(CMsgSetAccessibilitySettings *this,CMsgSetAccessibilitySettings *param_1)
{
undefined8 *puVar1;
uint uVar2;
ulong uVar3;
long lVar4;
long lVar5;
if (this == param_1) {
return;
}
if ((*(byte *)&(this->data).offset_0x8 & 7) != 0) {
(this->data).offset_0x10 = 0;
(this->data).offset_0x18 = 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);
}
uVar2 = *(uint *)(lVar4 + 0x10);
if ((uVar2 & 7) != 0) {
if ((uVar2 & 1) != 0) {
*(undefined1 *)&(this->data).offset_0x10 = *(undefined1 *)(lVar4 + 0x18);
}
if ((uVar2 & 2) != 0) {
*(undefined4 *)((long)&(this->data).offset_0x10 + 4) = *(undefined4 *)(lVar4 + 0x1c);
}
if ((uVar2 & 4) != 0) {
(this->data).offset_0x18 = *(undefined4 *)(lVar4 + 0x20);
}
puVar1 = &(this->data).offset_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | uVar2;
}
return;
}
FUN_0034dd68(param_1,this);
return;
}