/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14005fa80 FUN_14005fa80 * Pseudocode, not original source. */ void FUN_14005fa80(ulonglong *param_1,int *param_2,longlong param_3) { char cVar1; longlong lVar2; int iVar3; longlong lVar4; longlong lVar5; ulonglong uVar6; char *_Str; char *pcVar7; char *pcVar8; char *pcVar9; bool bVar10; _Str = (char *)0x0; lVar2 = *(longlong *)(param_3 + 0xa0); for (lVar5 = lVar2; pcVar7 = _Str, lVar5 != param_3 + 0x58; lVar5 = *(longlong *)(lVar5 + 0x48)) { lVar4 = 7; pcVar7 = (char *)(*(longlong *)(lVar5 + 0x20) + 0x10); bVar10 = pcVar7 == (char *)0x0; pcVar8 = "string"; do { if (lVar4 == 0) break; lVar4 = lVar4 + -1; bVar10 = *pcVar7 == *pcVar8; pcVar7 = pcVar7 + 1; pcVar8 = pcVar8 + 1; } while (bVar10); if (bVar10) { pcVar7 = (char *)(*(longlong *)(lVar5 + 0x30) + 0x10); break; } } do { if (lVar2 == param_3 + 0x58) break; lVar5 = 8; pcVar8 = (char *)(*(longlong *)(lVar2 + 0x20) + 0x10); bVar10 = pcVar8 == (char *)0x0; pcVar9 = "timeout"; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; bVar10 = *pcVar8 == *pcVar9; pcVar8 = pcVar8 + 1; pcVar9 = pcVar9 + 1; } while (bVar10); if (bVar10) { _Str = (char *)(*(longlong *)(lVar2 + 0x30) + 0x10); break; } lVar2 = *(longlong *)(lVar2 + 0x48); } while( true ); if (pcVar7 != (char *)0x0) { uVar6 = 0xffffffffffffffff; pcVar8 = pcVar7; do { if (uVar6 == 0) break; uVar6 = uVar6 - 1; cVar1 = *pcVar8; pcVar8 = pcVar8 + 1; } while (cVar1 != '\0'); FUN_140003e60(param_1,pcVar7,~uVar6 - 1); } if (_Str != (char *)0x0) { iVar3 = atoi(_Str); *param_2 = iVar3; } return; }