46 lines
1.4 KiB
C
46 lines
1.4 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x14003a75c ATL::CAtlStringMgr::Allocate
|
|
* Pseudocode, not original source. */
|
|
|
|
/* Library Function - Single Match
|
|
public: virtual struct ATL::CStringData * __ptr64 __cdecl ATL::CAtlStringMgr::Allocate(int,int)
|
|
__ptr64
|
|
|
|
Libraries: Visual Studio 2008 Release, Visual Studio 2010 Release */
|
|
|
|
CStringData * __thiscall ATL::CAtlStringMgr::Allocate(CAtlStringMgr *this,int param_1,int param_2)
|
|
|
|
{
|
|
undefined1 auVar1 [16];
|
|
CStringData *pCVar2;
|
|
uint uVar3;
|
|
ulonglong uVar4;
|
|
|
|
uVar3 = param_1 + 8U & 0xfffffff8;
|
|
if (uVar3 == 0) {
|
|
uVar4 = 0;
|
|
}
|
|
else {
|
|
auVar1._8_8_ = 0;
|
|
auVar1._0_8_ = (longlong)(int)uVar3;
|
|
if (SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xffffffffffffffff)) / auVar1,0) <
|
|
(ulonglong)(longlong)param_2) {
|
|
return (CStringData *)0x0;
|
|
}
|
|
uVar4 = (longlong)(int)uVar3 * (longlong)param_2;
|
|
if (0xffffffffffffffe7 < uVar4) {
|
|
return (CStringData *)0x0;
|
|
}
|
|
}
|
|
pCVar2 = (CStringData *)
|
|
(**(code **)**(undefined8 **)(this + 8))(*(undefined8 **)(this + 8),uVar4 + 0x18);
|
|
if (pCVar2 == (CStringData *)0x0) {
|
|
return (CStringData *)0x0;
|
|
}
|
|
*(undefined4 *)(pCVar2 + 8) = 0;
|
|
*(CAtlStringMgr **)pCVar2 = this;
|
|
*(undefined4 *)(pCVar2 + 0x10) = 1;
|
|
*(uint *)(pCVar2 + 0xc) = uVar3 - 1;
|
|
return pCVar2;
|
|
}
|
|
|