/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400c7790 FUN_1400c7790 * Pseudocode, not original source. */ undefined8 FUN_1400c7790(longlong param_1,undefined8 *param_2) { bool bVar1; uint uVar2; undefined *puVar3; longlong lVar4; undefined8 uVar5; IMAGE_DOS_HEADER *pIVar6; int *piVar7; wchar_t *pwVar8; int *piVar9; TypeDescriptor *pTVar10; ulonglong uVar11; TypeDescriptor *pTVar12; undefined *local_res18; pTVar12 = &Proud::CTcpLayer_C::RTTI_Type_Descriptor; pTVar10 = &Proud::ICompletionContext::RTTI_Type_Descriptor; uVar5 = 0; puVar3 = (undefined *)__RTDynamicCast(*param_2); if (puVar3 == (undefined *)0x0) { uVar5 = 0; } else { piVar9 = (int *)(param_1 + 0x10); local_res18 = puVar3; FUN_14003d040(piVar9); bVar1 = true; if (*(int *)(param_2 + 2) == 1) { lVar4 = (**(code **)(**(longlong **)(puVar3 + 0x120) + 0x38))(); uVar5 = FUN_1400c1230(lVar4,(ulonglong)param_2,pTVar10,pTVar12); } else if (*(int *)(param_2 + 2) == 2) { pIVar6 = (IMAGE_DOS_HEADER *)(**(code **)(**(longlong **)(puVar3 + 0x120) + 0x38))(); uVar5 = FUN_1400c7080(pIVar6,(longlong)param_2,&pTVar10->pVFTable,&pTVar12->pVFTable); } else { piVar7 = piVar9; FUN_14003d0d0((longlong)piVar9); bVar1 = false; FUN_14003e7c0(piVar7,uVar5,pTVar10,pTVar12); local_res18 = PTR_DAT_14016f010; uVar2 = FUN_14003e620(L"Unexpected at Client IOCP TCP completion!"); puVar3 = FUN_140001ee0((longlong *)&local_res18,uVar2); uVar11 = (ulonglong)uVar2; pwVar8 = L"Unexpected at Client IOCP TCP completion!"; FUN_14003e650(puVar3,L"Unexpected at Client IOCP TCP completion!",uVar2); FUN_140001fc0((longlong *)&local_res18); uVar5 = FUN_1400416f0((longlong *)&local_res18,pwVar8,uVar11,pTVar12); } if (bVar1) { uVar5 = FUN_14003d0d0((longlong)piVar9); } uVar5 = CONCAT71((int7)((ulonglong)uVar5 >> 8),1); } return uVar5; }