/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14003cdd0 FUN_14003cdd0 * Pseudocode, not original source. */ /* WARNING: Type propagation algorithm not settling */ void FUN_14003cdd0(longlong param_1) { int *piVar1; longlong lVar2; HANDLE FileHandle; longlong *plVar3; undefined8 *puVar4; undefined1 auStack_d8 [32]; int *local_b8; longlong *local_b0; undefined8 local_a8; int local_98 [4]; longlong *local_88; undefined8 local_78; int *local_70; undefined1 local_68; longlong local_60 [3]; undefined8 local_48 [3]; undefined1 local_30 [16]; ulonglong local_20; local_78 = 0xfffffffffffffffe; local_20 = DAT_14016f5a0 ^ (ulonglong)auStack_d8; puVar4 = (undefined8 *)0x0; if (param_1 != 0) { puVar4 = *(undefined8 **)(param_1 + 0x58); } do { local_98[0] = 0x10; FileHandle = (HANDLE)Ordinal_1(*(undefined8 *)(param_1 + 0x20),local_30,local_98); plVar3 = malloc(0x270); *plVar3 = (longlong)FileHandle; memcpy(plVar3 + 1,local_30,(longlong)local_98[0]); CreateIoCompletionPort(FileHandle,*(HANDLE *)(param_1 + 0x18),(ulonglong)plVar3 & 0xffffffff,0); local_b0 = plVar3 + 7; *local_b0 = 0; plVar3[8] = 0; plVar3[9] = 0; plVar3[10] = 0; *(undefined4 *)(plVar3 + 0x4c) = 0x208; plVar3[0x4d] = (longlong)(plVar3 + 0xb); local_98[1] = 0; local_a8 = 0; local_b8 = local_98 + 1; WSARecv(*plVar3,plVar3 + 0x4c,1); lVar2 = *plVar3; piVar1 = (int *)(puVar4 + 0xe); local_70 = piVar1; FUN_14003d040(piVar1); local_68 = 1; *(int *)(puVar4 + 0x15) = *(int *)(puVar4 + 0x15) + 1; local_88 = FUN_14003c690(puVar4); *local_88 = (longlong)*(int *)(puVar4 + 0x15); local_88[1] = lVar2; local_98[2] = *(int *)(puVar4 + 0x15); if (puVar4[10] == 0) { FUN_14003c840(puVar4 + 6,local_60,local_98 + 2); } else { FUN_14000e3f0(puVar4 + 6,local_48,local_98 + 2,local_98 + 2); } printf("ApiSocket Join [Now:%d] !!!\n"); FUN_14003d0d0((longlong)piVar1); } while( true ); }