84 lines
2.7 KiB
C
84 lines
2.7 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1400a7630 FUN_1400a7630
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 FUN_1400a7630(longlong *param_1,ushort *param_2)
|
|
|
|
{
|
|
ushort uVar1;
|
|
ushort uVar2;
|
|
bool bVar3;
|
|
uint uVar4;
|
|
int iVar5;
|
|
char *pcVar6;
|
|
int iVar7;
|
|
|
|
EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 4));
|
|
uVar1 = *param_2;
|
|
iVar5 = (int)param_1[1];
|
|
uVar2 = param_2[1];
|
|
*(uint *)(param_1 + 9) = (uint)uVar1;
|
|
uVar4 = iVar5 - *(int *)((longlong)param_1 + 0x14);
|
|
if (uVar1 != uVar4 && (int)uVar4 <= (int)(uint)uVar1) {
|
|
LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 4));
|
|
return 0;
|
|
}
|
|
iVar7 = (int)param_1[2];
|
|
if (iVar5 < (int)(iVar7 + (uint)uVar1)) {
|
|
iVar5 = iVar5 - iVar7;
|
|
*(int *)((longlong)param_1 + 0x4c) = iVar5;
|
|
*(uint *)(param_1 + 10) = (uint)uVar1 - iVar5;
|
|
memcpy((void *)((longlong)iVar7 + *param_1),param_2,(longlong)iVar5);
|
|
memcpy((void *)*param_1,
|
|
(void *)((longlong)*(int *)((longlong)param_1 + 0x4c) + (longlong)param_2),
|
|
(longlong)(int)param_1[10]);
|
|
*(int *)(param_1 + 2) = (int)param_1[10];
|
|
}
|
|
else {
|
|
memcpy((void *)((longlong)iVar7 + *param_1),param_2,(ulonglong)uVar1);
|
|
*(int *)(param_1 + 2) = (int)param_1[2] + (int)param_1[9];
|
|
iVar5 = (int)param_1[2];
|
|
if (iVar5 == (int)param_1[1]) {
|
|
iVar5 = 0;
|
|
}
|
|
*(int *)(param_1 + 2) = iVar5;
|
|
}
|
|
*(int *)(param_1 + 3) = (int)param_1[3] + 1;
|
|
*(int *)((longlong)param_1 + 0x14) = *(int *)((longlong)param_1 + 0x14) + (int)param_1[9];
|
|
iVar5 = (int)param_1[3];
|
|
if (uVar2 < 0x2329) {
|
|
bVar3 = DAT_140352f38 < iVar5;
|
|
if (bVar3) {
|
|
DAT_140352f38 = iVar5;
|
|
}
|
|
iVar5 = *(int *)((longlong)param_1 + 0x14);
|
|
if ((*(int *)((longlong)param_1 + 0x14) <= DAT_140352f40) && (iVar5 = DAT_140352f40, !bVar3))
|
|
goto LAB_1400a779a;
|
|
DAT_140352f40 = iVar5;
|
|
pcVar6 = "Request Queue : Cur[%d] Max[%d]-Len[%d] MaxLen[%d]\n";
|
|
iVar5 = DAT_140352f40;
|
|
iVar7 = DAT_140352f38;
|
|
}
|
|
else {
|
|
bVar3 = DAT_140352f3c < iVar5;
|
|
if (bVar3) {
|
|
DAT_140352f3c = iVar5;
|
|
}
|
|
iVar5 = *(int *)((longlong)param_1 + 0x14);
|
|
iVar7 = DAT_140352f3c;
|
|
if (DAT_140352f44 < iVar5) {
|
|
pcVar6 = "Result Queue : Cur[%d] Max[%d]-Len[%d] MaxLen[%d]\n";
|
|
DAT_140352f44 = iVar5;
|
|
}
|
|
else {
|
|
if (!bVar3) goto LAB_1400a779a;
|
|
pcVar6 = "Result Queue : Cur[%d] Max[%d]-Len[%d] MaxLen[%d]\n";
|
|
iVar5 = DAT_140352f44;
|
|
}
|
|
}
|
|
FUN_1400a6c80(pcVar6,(int)param_1[3],iVar7,*(undefined4 *)((longlong)param_1 + 0x14),iVar5);
|
|
LAB_1400a779a:
|
|
LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 4));
|
|
return 1;
|
|
}
|
|
|