239 lines
7.5 KiB
C
239 lines
7.5 KiB
C
// 0036d9c0 CFileWriterThread::CLogFileWorkItem::~CLogFileWorkItem
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __thiscall CFileWriterThread::CLogFileWorkItem::~CLogFileWorkItem(CLogFileWorkItem *this)
|
|
|
|
{
|
|
this->vftablePtr = &vftable;
|
|
(**(code **)(*_g_pMemAllocSteam + 0x20))(_g_pMemAllocSteam,(this->data).offset_0x28,0);
|
|
(**(code **)(*_g_pMemAllocSteam + 0x20))(_g_pMemAllocSteam,(this->data).offset_0x18,0);
|
|
(**(code **)(*_g_pMemAllocSteam + 0x20))(_g_pMemAllocSteam,(this->data).offset_0x10,0);
|
|
return;
|
|
}
|
|
|
|
|
|
// 0036e640 CFileWriterThread::CLogFileWorkItem::~CLogFileWorkItem
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
void __thiscall CFileWriterThread::CLogFileWorkItem::~CLogFileWorkItem(CLogFileWorkItem *this)
|
|
|
|
{
|
|
this->vftablePtr = &vftable;
|
|
(**(code **)(*_g_pMemAllocSteam + 0x20))(_g_pMemAllocSteam,(this->data).offset_0x28,0);
|
|
(**(code **)(*_g_pMemAllocSteam + 0x20))(_g_pMemAllocSteam,(this->data).offset_0x18,0);
|
|
(**(code **)(*_g_pMemAllocSteam + 0x20))(_g_pMemAllocSteam,(this->data).offset_0x10,0);
|
|
FUN_0039deb8(this,0x40);
|
|
return;
|
|
}
|
|
|
|
|
|
// 0036e740 CFileWriterThread::CLogFileWorkItem::vfunction4
|
|
|
|
void __thiscall
|
|
CFileWriterThread::CLogFileWorkItem::vfunction4(CLogFileWorkItem *this,undefined8 param_1)
|
|
|
|
{
|
|
long lVar1;
|
|
|
|
FUN_00218930(param_1,"10CUtlString",&(this->data).offset_0x10,"m_strFileName");
|
|
lVar1 = (this->data).offset_0x10;
|
|
if (lVar1 != 0) {
|
|
FUN_00218cd0(param_1,lVar1,0);
|
|
}
|
|
FUN_00218bb0(param_1);
|
|
FUN_00218930(param_1,"10CUtlString",&(this->data).offset_0x18,"m_strFileNamePrevious");
|
|
lVar1 = (this->data).offset_0x18;
|
|
if (lVar1 != 0) {
|
|
FUN_00218cd0(param_1,lVar1,0);
|
|
}
|
|
FUN_00218bb0(param_1);
|
|
FUN_00218930(param_1,"10CUtlString",&(this->data).offset_0x28,"m_strLogLine");
|
|
lVar1 = (this->data).offset_0x28;
|
|
if (lVar1 != 0) {
|
|
FUN_00218cd0(param_1,lVar1,0);
|
|
}
|
|
FUN_00218bb0(param_1);
|
|
return;
|
|
}
|
|
|
|
|
|
// 0037d2b0 CFileWriterThread::CLogFileWorkItem::vfunction3
|
|
|
|
void __thiscall CFileWriterThread::CLogFileWorkItem::vfunction3(CLogFileWorkItem *this)
|
|
|
|
{
|
|
long *plVar1;
|
|
code *pcVar2;
|
|
bool bVar3;
|
|
char cVar4;
|
|
int iVar5;
|
|
long lVar6;
|
|
ulong uVar7;
|
|
undefined8 uVar8;
|
|
undefined1 *puVar9;
|
|
undefined1 *puVar10;
|
|
long in_FS_OFFSET;
|
|
ulong local_38;
|
|
long local_30;
|
|
|
|
bVar3 = false;
|
|
local_30 = *(long *)(in_FS_OFFSET + 0x28);
|
|
lVar6 = (**(code **)**(undefined8 **)&this->data)();
|
|
if ((ulong)*(uint *)&(this->data).field_0x20 <= (ulong)*(uint *)&this[1].vftablePtr + lVar6) {
|
|
lVar6 = *(long *)&(this->data).field_0x8;
|
|
CFileWriter::FlushInternal(lVar6,1);
|
|
pcVar2 = DAT_0046b088;
|
|
iVar5 = *(int *)(lVar6 + 8);
|
|
if (iVar5 != -1) {
|
|
*(undefined4 *)(lVar6 + 8) = 0xffffffff;
|
|
if (pcVar2 != (code *)0x0) {
|
|
(*pcVar2)(iVar5,9);
|
|
}
|
|
FUN_00218fe0(iVar5);
|
|
if (*(char *)(lVar6 + 0x24) != '\0') {
|
|
FUN_0037bdd0(lVar6);
|
|
}
|
|
}
|
|
bVar3 = true;
|
|
(**(code **)(**(long **)&this->data + 8))(*(long **)&this->data,0);
|
|
}
|
|
if (*(int *)(*(long *)&(this->data).field_0x8 + 8) == -1) {
|
|
LAB_0037d460:
|
|
cVar4 = (**(code **)(**(long **)&this->data + 0x18))();
|
|
if (cVar4 == '\0') {
|
|
puVar9 = (undefined1 *)(this->data).offset_0x10;
|
|
if (puVar9 == (undefined1 *)0x0) {
|
|
puVar9 = &DAT_0020c965;
|
|
}
|
|
lVar6 = CPathString::CPathString_Constructor_or_Destructor(puVar9);
|
|
if ((lVar6 < 0) || (bVar3)) {
|
|
if (lVar6 == -1) {
|
|
puVar9 = (undefined1 *)(this->data).offset_0x10;
|
|
if (puVar9 == (undefined1 *)0x0) {
|
|
puVar9 = &DAT_0020c965;
|
|
}
|
|
uVar7 = CPathString::CPathString_Constructor_or_Destructor(puVar9);
|
|
if ((char)uVar7 != '\0') goto LAB_0037d58a;
|
|
}
|
|
else {
|
|
LAB_0037d58a:
|
|
puVar9 = (undefined1 *)(this->data).offset_0x18;
|
|
if (puVar9 == (undefined1 *)0x0) {
|
|
puVar9 = &DAT_0020c965;
|
|
}
|
|
FUN_00373a50(puVar9);
|
|
puVar9 = (undefined1 *)(this->data).offset_0x18;
|
|
puVar10 = (undefined1 *)(this->data).offset_0x10;
|
|
if (puVar9 == (undefined1 *)0x0) {
|
|
puVar9 = &DAT_0020c965;
|
|
}
|
|
if (puVar10 == (undefined1 *)0x0) {
|
|
puVar10 = &DAT_0020c965;
|
|
}
|
|
CPathString::CPathString_Constructor_or_Destructor(puVar10,puVar9);
|
|
}
|
|
uVar8 = 0;
|
|
}
|
|
else {
|
|
uVar8 = 1;
|
|
if (*(long *)&(this->data).field_0x20 < (long)(lVar6 + (ulong)*(uint *)&this[1].vftablePtr))
|
|
goto LAB_0037d58a;
|
|
}
|
|
puVar9 = (undefined1 *)(this->data).offset_0x10;
|
|
if (puVar9 == (undefined1 *)0x0) {
|
|
puVar9 = &DAT_0020c965;
|
|
}
|
|
CFileWriter::BOpenFileInternal(*(CFileWriter **)&(this->data).field_0x8,puVar9,uVar8,1,0,0);
|
|
plVar1 = *(long **)&this->data;
|
|
iVar5 = *(int *)(*(long *)&(this->data).field_0x8 + 8);
|
|
pcVar2 = *(code **)(*plVar1 + 8);
|
|
if (iVar5 == -1) {
|
|
(*pcVar2)(plVar1,0);
|
|
}
|
|
else {
|
|
local_38 = 0;
|
|
iVar5 = FUN_003704b0(iVar5,&local_38);
|
|
uVar7 = 0xffffffffffffffff;
|
|
if (iVar5 == 0) {
|
|
uVar7 = local_38;
|
|
}
|
|
(*pcVar2)(plVar1,uVar7);
|
|
local_38 = local_38 & 0xffffffff00000000;
|
|
iVar5 = FUN_0036ffc0(*(undefined4 *)(*(long *)&(this->data).field_0x8 + 8),&DAT_0020920d,4,
|
|
&local_38);
|
|
if (iVar5 != 0) {
|
|
(**(code **)(**(long **)&this->data + 0x10))(*(long **)&this->data,(long)(int)local_38);
|
|
}
|
|
}
|
|
}
|
|
lVar6 = *(long *)&(this->data).field_0x8;
|
|
iVar5 = *(int *)(lVar6 + 8);
|
|
if (iVar5 == -1) goto LAB_0037d346;
|
|
}
|
|
else {
|
|
cVar4 = (**(code **)(**(long **)&this->data + 0x18))();
|
|
if (cVar4 != '\0') {
|
|
lVar6 = *(long *)&(this->data).field_0x8;
|
|
CFileWriter::FlushInternal(lVar6,1);
|
|
iVar5 = *(int *)(lVar6 + 8);
|
|
if (iVar5 != -1) {
|
|
*(undefined4 *)(lVar6 + 8) = 0xffffffff;
|
|
if (DAT_0046b088 != (code *)0x0) {
|
|
(*DAT_0046b088)(iVar5,9);
|
|
}
|
|
FUN_00218fe0(iVar5);
|
|
if (*(char *)(lVar6 + 0x24) != '\0') {
|
|
FUN_0037bdd0(lVar6);
|
|
}
|
|
}
|
|
}
|
|
iVar5 = *(int *)(*(long *)&(this->data).field_0x8 + 8);
|
|
if (iVar5 == -1) goto LAB_0037d460;
|
|
}
|
|
local_38 = local_38 & 0xffffffff00000000;
|
|
if (*(int *)&this[1].vftablePtr == 0) {
|
|
lVar6 = 0;
|
|
LAB_0037d32b:
|
|
if (*(char *)((long)&this[1].vftablePtr + 4) != '\0') {
|
|
FUN_002195c0(*(undefined4 *)(*(long *)&(this->data).field_0x8 + 8));
|
|
}
|
|
(**(code **)(**(long **)&this->data + 0x10))(*(long **)&this->data,lVar6);
|
|
}
|
|
else {
|
|
puVar9 = (undefined1 *)(this->data).offset_0x28;
|
|
if (puVar9 == (undefined1 *)0x0) {
|
|
puVar9 = &DAT_0020c965;
|
|
}
|
|
FUN_0036ffc0(iVar5,puVar9,*(int *)&this[1].vftablePtr,&local_38);
|
|
lVar6 = (long)(int)local_38;
|
|
if ((*(int *)&this[1].vftablePtr == 0) || ((int)local_38 != 0)) goto LAB_0037d32b;
|
|
(**(code **)(**(long **)&this->data + 8))(*(long **)&this->data,0);
|
|
lVar6 = *(long *)&(this->data).field_0x8;
|
|
CFileWriter::FlushInternal(lVar6,1);
|
|
pcVar2 = DAT_0046b088;
|
|
iVar5 = *(int *)(lVar6 + 8);
|
|
if (iVar5 != -1) {
|
|
*(undefined4 *)(lVar6 + 8) = 0xffffffff;
|
|
if (pcVar2 != (code *)0x0) {
|
|
(*pcVar2)(iVar5,9);
|
|
}
|
|
FUN_00218fe0(iVar5);
|
|
if (*(char *)(lVar6 + 0x24) != '\0') {
|
|
FUN_0037bdd0(lVar6);
|
|
}
|
|
}
|
|
}
|
|
lVar6 = *(long *)&(this->data).field_0x8;
|
|
LAB_0037d346:
|
|
if (local_30 != *(long *)(in_FS_OFFSET + 0x28)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_00219340();
|
|
}
|
|
FUN_00218a80(lVar6 + 0x20);
|
|
return;
|
|
}
|
|
|
|
|