128 lines
3.4 KiB
C
128 lines
3.4 KiB
C
// 0025c670 CMsgShowBrowserContextMenu_ContextCommand::~CMsgShowBrowserContextMenu_ContextCommand
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x0025c750) */
|
|
|
|
void __thiscall
|
|
CMsgShowBrowserContextMenu_ContextCommand::~CMsgShowBrowserContextMenu_ContextCommand
|
|
(CMsgShowBrowserContextMenu_ContextCommand *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();
|
|
}
|
|
|
|
|
|
// 0025df60 CMsgShowBrowserContextMenu_ContextCommand::~CMsgShowBrowserContextMenu_ContextCommand
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x0025e030) */
|
|
|
|
void __thiscall
|
|
CMsgShowBrowserContextMenu_ContextCommand::~CMsgShowBrowserContextMenu_ContextCommand
|
|
(CMsgShowBrowserContextMenu_ContextCommand *this)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
int *piVar2;
|
|
int iVar3;
|
|
long *plVar4;
|
|
ulong uVar5;
|
|
long in_FS_OFFSET;
|
|
undefined1 local_21;
|
|
long local_20;
|
|
|
|
plVar4 = (this->data).offset_0x10;
|
|
local_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,&local_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 (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_00219340();
|
|
}
|
|
FUN_0039deb8(this,0x28);
|
|
return;
|
|
}
|
|
|
|
|
|
// 00275180 CMsgShowBrowserContextMenu_ContextCommand::CMsgShowBrowserContextMenu_ContextCommand_Constructor_or_Destructor
|
|
|
|
void CMsgShowBrowserContextMenu_ContextCommand::
|
|
CMsgShowBrowserContextMenu_ContextCommand_Constructor_or_Destructor(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;
|
|
}
|
|
|
|
|