/* 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; }