/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140007770 FUN_140007770 * Pseudocode, not original source. */ undefined8 FUN_140007770(longlong param_1,undefined8 param_2,undefined8 param_3,uint *param_4,ulonglong param_5 ) { int *piVar1; uint uVar2; uint *puVar3; undefined8 uVar4; undefined *puVar5; undefined *puVar6; ulonglong uVar7; char *local_20; DWORD local_18; longlong local_10; local_20 = "REQ_MSG_WHISPER_ACK"; local_10 = *(longlong *)**(undefined8 **)(param_1 + 0x80) + 0x68; local_18 = timeGetTime(); piVar1 = (int *)(param_1 + 0x108); FUN_14006b350(piVar1); uVar2 = *param_4; uVar7 = (ulonglong)*(uint *)(param_1 + 0xd0); puVar6 = (undefined *)((ulonglong)uVar2 % uVar7); puVar5 = puVar6; if (*(longlong *)(param_1 + 0xb0) != 0) { puVar3 = *(uint **)(*(longlong *)(param_1 + 0xb0) + (longlong)puVar6 * 8); while( true ) { if ((puVar3 == (uint *)0x0) || (puVar5 = (undefined *)((ulonglong)puVar3[8] % uVar7), (int)puVar6 != (int)puVar5)) goto LAB_1400078af; if (*puVar3 == uVar2) break; puVar3 = *(uint **)(puVar3 + 4); } if (*(longlong *)(puVar3 + 2) != 0) { puVar6 = &DAT_1401ac5d0; puVar5 = (undefined *)(ulonglong)uVar2; (**(code **)(*(longlong *)(param_1 + 0x58) + 0x40))(); FUN_14006b3e0((longlong)piVar1); goto LAB_1400078b8; } } LAB_1400078af: FUN_14006b3e0((longlong)piVar1); param_5 = uVar7; LAB_1400078b8: uVar4 = FUN_1400486e0(&local_20,puVar5,puVar6,param_5); return CONCAT71((int7)((ulonglong)uVar4 >> 8),1); }