44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x1400f8640 FUN_1400f8640
|
|
* Pseudocode, not original source. */
|
|
|
|
void FUN_1400f8640(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
int iVar1;
|
|
uint uVar2;
|
|
size_t _Size;
|
|
void *_Dst;
|
|
ulonglong uVar3;
|
|
ulonglong uVar4;
|
|
|
|
uVar3 = 0x80000000;
|
|
uVar4 = *(longlong *)(param_1 + 0x30) + 0x80000000;
|
|
if (0xffffffff < uVar4) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14006be60(L"Proud::CStreamQueue::Shrink",uVar4,param_3,param_4);
|
|
}
|
|
_Size = *(size_t *)(param_1 + 0x38);
|
|
if (0 < (longlong)_Size) {
|
|
iVar1 = *(int *)(param_1 + 0x30);
|
|
if (-1 < iVar1) {
|
|
uVar2 = *(uint *)(param_1 + 0x20);
|
|
uVar3 = (ulonglong)uVar2;
|
|
if (iVar1 < (int)uVar2) {
|
|
_Dst = *(void **)(param_1 + 0x18);
|
|
if ((int)uVar2 < 1) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14006be30(uVar3,(void *)((longlong)_Dst + (longlong)iVar1),_Size,_Dst);
|
|
}
|
|
memmove(_Dst,(void *)((longlong)_Dst + (longlong)iVar1),_Size);
|
|
goto LAB_1400f8692;
|
|
}
|
|
}
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14006be30(uVar3,uVar4,_Size,param_4);
|
|
}
|
|
LAB_1400f8692:
|
|
*(undefined8 *)(param_1 + 0x30) = 0;
|
|
return;
|
|
}
|
|
|