/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401c2fa0 FUN_1401c2fa0 * Pseudocode, not original source. */ ulonglong FUN_1401c2fa0(longlong param_1,undefined8 param_2) { longlong lVar1; undefined4 uVar2; ulonglong uVar3; longlong lVar4; int iVar5; undefined4 local_res18 [2]; undefined4 local_res20 [2]; undefined4 local_28; undefined4 local_24 [3]; uVar3 = FUN_14016ba10(param_2,local_res18); if ((char)uVar3 == '\0') { return uVar3; } FUN_1401c2dc0(param_1,local_res18[0]); uVar3 = (ulonglong)*(uint *)(param_1 + 0x18); iVar5 = 0; lVar4 = 0; if (0 < (int)*(uint *)(param_1 + 0x18)) { do { if ((lVar4 < 0) || ((int)uVar3 <= iVar5)) { /* WARNING: Subroutine does not return */ FUN_14016d6e0(); } lVar1 = *(longlong *)(param_1 + 0x10); uVar3 = FUN_14016b370(param_2,local_res18,1); if ((char)uVar3 == '\0') goto LAB_1401c30bd; if ((char)local_res18[0] == '\0') { uVar3 = FUN_14016b370(param_2,local_res20,4); if ((char)uVar3 == '\0') { LAB_1401c30b6: *(undefined4 *)(lVar1 + lVar4 * 8) = 0; LAB_1401c30bd: return uVar3 & 0xffffffffffffff00; } *(undefined4 *)(lVar1 + lVar4 * 8) = local_res20[0]; uVar2 = local_res20[0]; } else { uVar3 = FUN_14016b370(param_2,&local_28,4); if ((char)uVar3 == '\0') goto LAB_1401c30b6; *(undefined4 *)(lVar1 + lVar4 * 8) = local_28; uVar3 = FUN_14016b370(param_2,local_24,4); uVar2 = local_24[0]; if ((char)uVar3 == '\0') { *(undefined4 *)(lVar1 + 4 + lVar4 * 8) = 0; return uVar3 & 0xffffffffffffff00; } } *(undefined4 *)(lVar1 + 4 + lVar4 * 8) = uVar2; uVar3 = (ulonglong)*(uint *)(param_1 + 0x18); iVar5 = iVar5 + 1; lVar4 = lVar4 + 1; } while (iVar5 < (int)*(uint *)(param_1 + 0x18)); } return CONCAT71((int7)(uVar3 >> 8),1); }