Files

588 lines
15 KiB
C

// 002526c0 CMsgImeCommitText::vfunction11
undefined4 __thiscall CMsgImeCommitText::vfunction11(CMsgImeCommitText *this)
{
return *(undefined4 *)&(this->data).field_0xc;
}
// 00254eb0 CMsgImeCommitText::vfunction10
long __thiscall CMsgImeCommitText::vfunction10(CMsgImeCommitText *this)
{
byte bVar1;
int iVar2;
long lVar3;
uint uVar4;
uint uVar5;
uVar5 = *(uint *)&(this->data).field_0x8;
lVar3 = 0;
if ((uVar5 & 3) != 0) {
if ((uVar5 & 1) != 0) {
lVar3 = *(long *)(*(long *)((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe) + -0x18);
uVar4 = (uint)lVar3 | 1;
iVar2 = 0x1f;
if (uVar4 != 0) {
for (; uVar4 >> iVar2 == 0; iVar2 = iVar2 + -1) {
}
}
lVar3 = lVar3 + 1 + (ulong)(iVar2 * 9 + 0x49U >> 6);
}
if ((uVar5 & 2) != 0) {
uVar5 = *(uint *)&this[1].vftablePtr | 1;
iVar2 = 0x1f;
if (uVar5 != 0) {
for (; uVar5 >> iVar2 == 0; iVar2 = iVar2 + -1) {
}
}
lVar3 = lVar3 + (ulong)((iVar2 * 9 + 0x49U >> 6) + 1);
bVar1 = (byte)(this->data).offset_0x0;
goto joined_r0x00254f1a;
}
}
bVar1 = (byte)(this->data).offset_0x0;
joined_r0x00254f1a:
if ((bVar1 & 1) == 0) {
*(int *)&(this->data).field_0xc = (int)lVar3;
return lVar3;
}
lVar3 = FUN_00359fe2(&this->data,lVar3,&(this->data).field_0xc);
return lVar3;
}
// 0025c850 CMsgImeCommitText::~CMsgImeCommitText
/* WARNING: Removing unreachable block (ram,0x0025c930) */
void __thiscall CMsgImeCommitText::~CMsgImeCommitText(CMsgImeCommitText *this)
{
undefined8 *puVar1;
int *piVar2;
int iVar3;
long *plVar4;
ulong uVar5;
long in_FS_OFFSET;
undefined1 uStack_21;
long lStack_20;
plVar4 = (this->data).offset_0x10;
lStack_20 = *(long *)(in_FS_OFFSET + 0x28);
this->vftablePtr = &vftable;
if ((plVar4 != (long *)0x0) && (plVar4 != (long *)&DAT_0046ab18)) {
puVar1 = (undefined8 *)(*plVar4 + -0x18);
if (puVar1 != &DAT_0046e8a0) {
LOCK();
piVar2 = (int *)(*plVar4 + -8);
iVar3 = *piVar2;
*piVar2 = *piVar2 + -1;
UNLOCK();
if (iVar3 < 1) {
FUN_003ce482(puVar1,&uStack_21);
}
}
FUN_0039deb8(plVar4,8);
}
uVar5 = (this->data).offset_0x0;
if ((((uVar5 & 1) == 0) || ((uVar5 & 3) == 0)) ||
(((uVar5 & 2) == 0 && (*(long *)(uVar5 & 0xfffffffffffffffc) != 0)))) {
if (lStack_20 == *(long *)(in_FS_OFFSET + 0x28)) {
return;
}
}
else if (lStack_20 == *(long *)(in_FS_OFFSET + 0x28)) {
FUN_002564b0();
return;
}
/* WARNING: Subroutine does not return */
FUN_00219340();
}
// 0025e120 CMsgImeCommitText::~CMsgImeCommitText
/* WARNING: Removing unreachable block (ram,0x0025e1f0) */
void __thiscall CMsgImeCommitText::~CMsgImeCommitText(CMsgImeCommitText *this)
{
undefined8 *puVar1;
int *piVar2;
int iVar3;
long *plVar4;
ulong uVar5;
long in_FS_OFFSET;
undefined1 uStack_21;
long lStack_20;
plVar4 = (this->data).offset_0x10;
lStack_20 = *(long *)(in_FS_OFFSET + 0x28);
this->vftablePtr = &vftable;
if ((plVar4 != (long *)0x0) && (plVar4 != (long *)&DAT_0046ab18)) {
puVar1 = (undefined8 *)(*plVar4 + -0x18);
if (puVar1 != &DAT_0046e8a0) {
LOCK();
piVar2 = (int *)(*plVar4 + -8);
iVar3 = *piVar2;
*piVar2 = *piVar2 + -1;
UNLOCK();
if (iVar3 < 1) {
FUN_003ce482(puVar1,&uStack_21);
}
}
FUN_0039deb8(plVar4,8);
}
uVar5 = (this->data).offset_0x0;
if ((((uVar5 & 1) != 0) && ((uVar5 & 3) != 0)) &&
(((uVar5 & 2) != 0 || (*(long *)(uVar5 & 0xfffffffffffffffc) == 0)))) {
FUN_002564b0();
}
if (lStack_20 != *(long *)(in_FS_OFFSET + 0x28)) {
/* WARNING: Subroutine does not return */
FUN_00219340();
}
FUN_0039deb8(this,0x28);
return;
}
// 00262f90 CMsgImeCommitText::vfunction13
void __thiscall CMsgImeCommitText::vfunction13(CMsgImeCommitText *this,byte *param_1,long *param_2)
{
uint uVar1;
long lVar2;
ulong uVar3;
byte *pbVar4;
long lVar5;
uint uVar6;
uint uVar7;
byte *pbVar8;
long *plVar9;
uVar1 = *(uint *)&(this->data).field_0x8;
if ((uVar1 & 2) != 0) {
if ((byte *)*param_2 <= param_1) {
param_1 = (byte *)FUN_002f822a(param_2);
}
uVar7 = *(uint *)&this[1].vftablePtr;
*param_1 = 8;
if (uVar7 < 0x80) {
param_1[1] = (byte)uVar7;
param_1 = param_1 + 2;
}
else {
param_1[1] = (byte)uVar7 | 0x80;
pbVar4 = param_1 + 2;
uVar6 = uVar7 >> 7;
if (uVar7 < 0x4000) {
param_1[2] = (byte)(uVar7 >> 7);
param_1 = param_1 + 3;
}
else {
do {
pbVar8 = pbVar4;
uVar7 = uVar6 >> 7;
*pbVar8 = (byte)uVar6 | 0x80;
pbVar4 = pbVar8 + 1;
uVar6 = uVar7;
} while (0x7f < uVar7);
param_1 = pbVar8 + 2;
pbVar8[1] = (byte)uVar7;
}
}
}
if ((uVar1 & 1) != 0) {
plVar9 = (long *)((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe);
lVar2 = *(long *)(*plVar9 + -0x18);
if ((lVar2 < 0x80) && (lVar2 < (*param_2 - (long)param_1) + 0xf)) {
*param_1 = 0x12;
param_1[1] = (byte)lVar2;
lVar5 = FUN_002197d0(param_1 + 2,*plVar9,lVar2);
param_1 = (byte *)(lVar5 + lVar2);
}
else {
param_1 = (byte *)FUN_002f83fe(param_2,2,plVar9,param_1);
}
}
uVar3 = (this->data).offset_0x0;
if ((uVar3 & 1) != 0) {
FUN_00359676((uVar3 & 0xfffffffffffffffc) + 8,param_1,param_2);
return;
}
return;
}
// 0026ceb0 CMsgImeCommitText::vfunction20
undefined1 [16] __thiscall CMsgImeCommitText::vfunction20(void)
{
FUN_0033e2d0(&DAT_00466400,0);
return *(undefined1 (*) [16])(PTR_DAT_00466448 + 0x910);
}
// 00275600 CMsgImeCommitText::vfunction5
void __thiscall CMsgImeCommitText::vfunction5(CMsgImeCommitText *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] = &DAT_0046ab18;
*(undefined4 *)(puVar1 + 4) = 0;
return;
}
puVar1 = (undefined8 *)FUN_003a1a2c(0x28);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
puVar1[3] = &DAT_0046ab18;
*(undefined4 *)(puVar1 + 4) = 0;
return;
}
// 00275610 CMsgImeCommitText::CMsgImeCommitText_Constructor_or_Destructor
/* WARNING: Removing unreachable block (ram,0x00275586) */
void __thiscall
CMsgImeCommitText::CMsgImeCommitText_Constructor_or_Destructor(CMsgImeCommitText *this)
{
undefined8 *puVar1;
puVar1 = (undefined8 *)FUN_003a1a2c(0x28);
puVar1[1] = 0;
*puVar1 = &vftable;
puVar1[2] = 0;
puVar1[3] = &DAT_0046ab18;
*(undefined4 *)(puVar1 + 4) = 0;
return;
}
// 00289ae0 CMsgImeCommitText::vfunction12
byte * __thiscall
CMsgImeCommitText::vfunction12(CMsgImeCommitText *this,byte *param_1,undefined8 *param_2)
{
undefined1 *puVar1;
byte bVar2;
ulong uVar3;
long lVar4;
undefined8 uVar5;
char extraout_DL;
uint uVar6;
int iVar7;
ulong uVar8;
byte *pbVar9;
uint uVar10;
long in_FS_OFFSET;
undefined1 auVar11 [16];
undefined4 local_34;
long local_30;
uVar10 = 0;
local_30 = *(long *)(in_FS_OFFSET + 0x28);
do {
pbVar9 = param_1;
if ((byte *)*param_2 <= param_1) goto LAB_00289c08;
while( true ) {
bVar2 = *pbVar9;
uVar8 = (ulong)bVar2;
param_1 = pbVar9 + 1;
if (0x7f < bVar2) {
param_1 = pbVar9 + 2;
uVar8 = (ulong)((uint)bVar2 + (pbVar9[1] - 1) * 0x80);
if (0x7f < pbVar9[1]) {
auVar11 = FUN_002ea28a();
param_1 = auVar11._0_8_;
uVar8 = auVar11._8_8_ & 0xffffffff;
if (param_1 == (byte *)0x0) goto LAB_00289ba2;
}
}
uVar6 = (uint)uVar8;
iVar7 = (int)(uVar8 >> 3);
if (iVar7 != 1) break;
if ((char)uVar8 != '\b') goto LAB_00289c80;
param_1 = (byte *)FUN_002762b0(param_1,&local_34);
*(undefined4 *)&this[1].vftablePtr = local_34;
if (param_1 == (byte *)0x0) {
param_1 = (byte *)0x0;
uVar10 = 2;
goto LAB_00289ba4;
}
uVar10 = 2;
pbVar9 = param_1;
if ((byte *)*param_2 <= param_1) {
LAB_00289c08:
iVar7 = (int)((long)param_1 - param_2[1]);
if (iVar7 == *(int *)((long)param_2 + 0x1c)) {
if ((iVar7 < 1) || (param_2[2] != 0)) goto LAB_00289ba4;
goto LAB_00289ba2;
}
param_1 = (byte *)FUN_002ea7d8(param_2,(long)param_1 - param_2[1] & 0xffffffff,
*(undefined4 *)((long)param_2 + 0x5c));
pbVar9 = param_1;
if (extraout_DL != '\0') goto LAB_00289ba4;
}
}
if (iVar7 != 2) {
if ((uVar6 & 7) == 4) goto LAB_00289c8e;
if (uVar6 != 0) goto LAB_00289b72;
iVar7 = -1;
goto LAB_00289c91;
}
if ((char)uVar8 == '\x12') {
uVar8 = (this->data).offset_0x0;
puVar1 = &(this->data).field_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | 1;
if ((uVar8 & 3) == 0) {
uVar8 = uVar8 & 0xfffffffffffffffc;
}
else if ((uVar8 & 2) == 0) {
uVar8 = *(ulong *)(uVar8 & 0xfffffffffffffffc);
}
else {
uVar8 = 0;
}
uVar5 = FUN_002d7f56(&(this->data).offset_0x10,uVar8);
param_1 = (byte *)FUN_002ea63f(uVar5,param_1,param_2);
goto joined_r0x00289c75;
}
LAB_00289c80:
if ((uVar6 & 7) == 4) {
LAB_00289c8e:
iVar7 = uVar6 - 1;
LAB_00289c91:
*(int *)(param_2 + 10) = iVar7;
goto LAB_00289ba4;
}
LAB_00289b72:
uVar3 = (this->data).offset_0x0;
if ((uVar3 & 1) == 0) {
lVar4 = FUN_002762f0(&this->data);
}
else {
lVar4 = (uVar3 & 0xfffffffffffffffc) + 8;
}
param_1 = (byte *)FUN_003589df(uVar8,lVar4,param_1,param_2);
joined_r0x00289c75:
if (param_1 == (byte *)0x0) {
LAB_00289ba2:
param_1 = (byte *)0x0;
LAB_00289ba4:
puVar1 = &(this->data).field_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 );
}
// 002a2d20 CMsgImeCommitText::vfunction16
void __thiscall CMsgImeCommitText::vfunction16(CMsgImeCommitText *this,undefined8 param_1)
{
undefined1 *puVar1;
uint uVar2;
ulong uVar3;
long lVar4;
long lVar5;
ulong uVar6;
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 & 3) != 0) {
if ((uVar2 & 1) != 0) {
uVar3 = *(ulong *)(lVar4 + 0x18);
uVar6 = (this->data).offset_0x0;
puVar1 = &(this->data).field_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | 1;
if ((uVar6 & 3) == 0) {
uVar6 = uVar6 & 0xfffffffffffffffc;
}
else if ((uVar6 & 2) == 0) {
uVar6 = *(ulong *)(uVar6 & 0xfffffffffffffffc);
}
else {
uVar6 = 0;
}
FUN_002d7f16(&(this->data).offset_0x10,uVar3 & 0xfffffffffffffffe,uVar6);
}
if ((uVar2 & 2) != 0) {
*(undefined4 *)&this[1].vftablePtr = *(undefined4 *)(lVar4 + 0x20);
}
puVar1 = &(this->data).field_0x8;
*(uint *)puVar1 = *(uint *)puVar1 | uVar2;
}
return;
}
FUN_0034dd68(param_1,this);
return;
}
// 002a89b0 CMsgImeCommitText::vfunction6
/* WARNING: Removing unreachable block (ram,0x002a8a78) */
/* WARNING: Removing unreachable block (ram,0x002a8ac6) */
void __thiscall CMsgImeCommitText::vfunction6(CMsgImeCommitText *this)
{
undefined8 *puVar1;
int *piVar2;
int iVar3;
undefined1 *puVar4;
long *plVar5;
long in_FS_OFFSET;
undefined1 uStack_21;
long lStack_20;
lStack_20 = *(long *)(in_FS_OFFSET + 0x28);
if (((this->data).field_0x8 & 1) != 0) {
plVar5 = (long *)((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe);
if (*(int *)(*plVar5 + -8) < 1) {
puVar4 = (undefined1 *)*plVar5;
if (puVar4 != &DAT_0046e8b8) {
*(undefined4 *)(puVar4 + -8) = 0;
*(undefined8 *)(puVar4 + -0x18) = 0;
*puVar4 = 0;
}
}
else {
puVar1 = (undefined8 *)(*plVar5 + -0x18);
if (puVar1 != &DAT_0046e8a0) {
LOCK();
piVar2 = (int *)(*plVar5 + -8);
iVar3 = *piVar2;
*piVar2 = *piVar2 + -1;
UNLOCK();
if (iVar3 < 1) {
FUN_003ce482(puVar1,&uStack_21);
}
}
*plVar5 = (long)&DAT_0046e8b8;
}
}
*(undefined4 *)&this[1].vftablePtr = 0;
*(undefined4 *)&(this->data).field_0x8 = 0;
if (((this->data).offset_0x0 & 1) == 0) {
if (lStack_20 == *(long *)(in_FS_OFFSET + 0x28)) {
return;
}
}
else if (lStack_20 == *(long *)(in_FS_OFFSET + 0x28)) {
FUN_002a4470(&this->data);
return;
}
/* WARNING: Subroutine does not return */
FUN_00219340();
}
// 002b3490 CMsgImeCommitText::vfunction15
/* WARNING: Removing unreachable block (ram,0x002b35e0) */
/* WARNING: Removing unreachable block (ram,0x002b3635) */
void __thiscall CMsgImeCommitText::vfunction15(CMsgImeCommitText *this,CMsgImeCommitText *param_1)
{
undefined8 *puVar1;
int *piVar2;
int iVar3;
undefined1 *puVar4;
long lVar5;
long *plVar6;
long in_FS_OFFSET;
undefined1 local_31;
long local_30;
local_30 = *(long *)(in_FS_OFFSET + 0x28);
if (this == param_1) {
if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
return;
}
}
else {
if (((this->data).field_0x8 & 1) != 0) {
plVar6 = (long *)((ulong)(this->data).offset_0x10 & 0xfffffffffffffffe);
if (*(int *)(*plVar6 + -8) < 1) {
puVar4 = (undefined1 *)*plVar6;
if (puVar4 != &DAT_0046e8b8) {
*(undefined4 *)(puVar4 + -8) = 0;
*(undefined8 *)(puVar4 + -0x18) = 0;
*puVar4 = 0;
}
}
else {
puVar1 = (undefined8 *)(*plVar6 + -0x18);
if (puVar1 != &DAT_0046e8a0) {
LOCK();
piVar2 = (int *)(*plVar6 + -8);
iVar3 = *piVar2;
*piVar2 = *piVar2 + -1;
UNLOCK();
if (iVar3 < 1) {
FUN_003ce482(puVar1,&local_31);
}
}
*plVar6 = (long)&DAT_0046e8b8;
}
}
*(undefined4 *)&this[1].vftablePtr = 0;
*(undefined4 *)&(this->data).field_0x8 = 0;
if (((this->data).offset_0x0 & 1) != 0) {
FUN_002a4470(&this->data);
}
lVar5 = FUN_0039e006(param_1,&google::protobuf::Message::typeinfo,&typeinfo,0);
if (lVar5 == 0) {
if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
FUN_0034dd68(param_1,this);
return;
}
}
else if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
FUN_0029d8c0(this);
return;
}
}
/* WARNING: Subroutine does not return */
FUN_00219340();
}