/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401c1f70 FUN_1401c1f70 * Pseudocode, not original source. */ void FUN_1401c1f70(undefined4 *param_1,undefined4 *param_2) { uint uVar1; uint uVar2; longlong lVar3; ulonglong uVar4; char cVar5; uint *puVar6; uint *puVar7; 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_14004dc60(0x80004005); } uVar1 = *puVar7; uVar2 = param_2[0xc]; lVar3 = *(longlong *)(param_2 + 4); uVar4 = (ulonglong)uVar1 % (ulonglong)uVar2; local_res8[0] = uVar1; if (lVar3 == 0) { LAB_1401c202e: cVar5 = FUN_1401b5a10(param_2 + 2,(ulonglong)uVar2,CONCAT71((int7)((ulonglong)lVar3 >> 8),1)); if (cVar5 == '\0') { /* WARNING: Subroutine does not return */ FUN_14004dc60(0x8007000e); } } else { for (puVar6 = *(uint **)(lVar3 + uVar4 * 8); (puVar6 != (uint *)0x0 && ((uint)uVar4 == puVar6[6] % uVar2)); puVar6 = *(uint **)(puVar6 + 2)) { if (*puVar6 == uVar1) goto LAB_1401c206e; } if (lVar3 == 0) goto LAB_1401c202e; for (puVar6 = *(uint **)(lVar3 + uVar4 * 8); (puVar6 != (uint *)0x0 && ((uint)uVar4 == puVar6[6] % uVar2)); puVar6 = *(uint **)(puVar6 + 2)) { if (*puVar6 == uVar1) goto LAB_1401c206a; } if (lVar3 == 0) goto LAB_1401c202e; } FUN_140173d40(param_2 + 2); puVar6 = (uint *)FUN_140175ab0(param_2 + 2,local_res8,uVar4,uVar1); FUN_140173d40(param_2 + 2); LAB_1401c206a: *(undefined1 *)(puVar6 + 1) = 0; LAB_1401c206e: puVar7 = *(uint **)(puVar7 + 6); } while( true ); }