/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400de100 FUN_1400de100 * Pseudocode, not original source. */ void FUN_1400de100(undefined4 *param_1,undefined4 *param_2) { uint uVar1; uint uVar2; longlong lVar3; ulonglong uVar4; undefined8 uVar5; uint *puVar6; uint *puVar7; uint uVar8; uint local_res8 [2]; if (*(longlong *)(param_1 + 10) == 0) { puVar7 = (uint *)0x0; } else { puVar7 = *(uint **)(param_1 + 6); } do { if (puVar7 == (uint *)0x0) { *param_2 = *param_1; return; } if (puVar7 == (uint *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400064e0(0x80004005); } uVar1 = *puVar7; uVar2 = param_2[0xc]; lVar3 = *(longlong *)(param_2 + 4); uVar4 = (ulonglong)uVar1 % (ulonglong)uVar2; uVar8 = (uint)uVar4; local_res8[0] = uVar1; if (lVar3 == 0) { LAB_1400de1be: uVar5 = FUN_1400a1910((longlong)(param_2 + 2),uVar2,'\x01'); if ((char)uVar5 == '\0') { /* WARNING: Subroutine does not return */ FUN_1400064e0(0x8007000e); } } else { for (puVar6 = *(uint **)(lVar3 + uVar4 * 8); (puVar6 != (uint *)0x0 && (uVar8 == puVar6[6] % uVar2)); puVar6 = *(uint **)(puVar6 + 2)) { if (*puVar6 == uVar1) goto LAB_1400de1fe; } if (lVar3 == 0) goto LAB_1400de1be; for (puVar6 = *(uint **)(lVar3 + uVar4 * 8); (puVar6 != (uint *)0x0 && (uVar8 == puVar6[6] % uVar2)); puVar6 = *(uint **)(puVar6 + 2)) { if (*puVar6 == uVar1) goto LAB_1400de1fa; } if (lVar3 == 0) goto LAB_1400de1be; } FUN_1400cadd0((char *)(param_2 + 2)); puVar6 = FUN_14007d400((char *)(param_2 + 2),local_res8,uVar8,uVar1); FUN_1400cadd0((char *)(param_2 + 2)); LAB_1400de1fa: *(undefined1 *)(puVar6 + 1) = 0; LAB_1400de1fe: puVar7 = *(uint **)(puVar7 + 6); } while( true ); }