server-re/decomp/DBCServer_Release_x64/full/functions/0x14019f250.c

63 lines
1.9 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14019f250 FUN_14019f250
* Pseudocode, not original source. */
undefined8 FUN_14019f250(longlong *param_1,int *param_2,longlong param_3)
{
int iVar1;
longlong lVar2;
char cVar3;
int iVar4;
longlong lVar5;
int iVar6;
longlong lVar7;
int local_res10 [4];
ulonglong local_res20;
undefined4 local_28 [4];
iVar1 = *param_2;
cVar3 = FUN_14016ba10(param_2,local_28);
if (cVar3 != '\0') {
cVar3 = FUN_14016ba10(param_2,&local_res20);
if (cVar3 != '\0') {
iVar4 = (**(code **)(*param_1 + 0xd0))(param_1);
iVar6 = (int)local_res20;
if (iVar6 <= iVar4) {
local_res10[0] = iVar6;
FUN_14016abe0(param_3);
FUN_14016b5a0(param_3,local_res20 & 0xffffffff);
lVar7 = *(longlong *)(param_2 + 4);
if (lVar7 == 0) {
lVar5 = *(longlong *)(param_2 + 2);
if (lVar5 == 0) {
/* WARNING: Subroutine does not return */
FUN_14016d1e0();
}
if (*(int *)(lVar5 + 0x18) != 0) {
lVar7 = *(longlong *)(lVar5 + 0x10);
}
}
lVar5 = *(longlong *)(param_3 + 0x10);
if (lVar5 == 0) {
lVar2 = *(longlong *)(param_3 + 8);
if (lVar2 == 0) {
/* WARNING: Subroutine does not return */
FUN_14016d1e0();
}
if (*(int *)(lVar2 + 0x18) != 0) {
lVar5 = *(longlong *)(lVar2 + 0x10);
}
}
iVar4 = FUN_1401c3a70(lVar5,local_res10,
lVar7 + ((int)(*param_2 + (*param_2 >> 0x1f & 7U)) >> 3),local_28[0]);
if ((iVar4 == 0) && (local_res10[0] == iVar6)) {
return 1;
}
}
}
}
FUN_14016b040(param_2,(int)((iVar1 >> 0x1f & 7U) + iVar1) >> 3);
return 0;
}