/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401fb1f0 FUN_1401fb1f0 * Pseudocode, not original source. */ void FUN_1401fb1f0(longlong *param_1,longlong param_2) { longlong lVar1; longlong *plVar2; undefined2 uVar3; undefined4 uVar4; longlong lVar5; undefined8 uVar6; undefined **local_70; undefined4 local_68; undefined2 local_64; undefined4 local_60 [2]; undefined8 local_58; undefined1 local_50; undefined4 local_4c; undefined1 local_48; undefined1 local_47; undefined1 local_40 [8]; undefined1 local_38 [8]; longlong local_30; int local_24; if (((longlong *)param_1[1] != (longlong *)0x0) && (*(longlong *)param_1[1] != 0)) { FUN_14016b440(local_40); FUN_14016abe0(local_40); FUN_14016b5a0(local_40,0x800); FUN_14016b5a0(local_40,0); FUN_14004eef0(local_40,0x27); local_60[0] = 1; lVar5 = 0; local_58 = 0; local_50 = 1; local_4c = 0xffffffff; local_48 = 1; local_47 = DAT_140344dfc; local_70 = Proud::AddrPort::vftable; local_68 = *(undefined4 *)(param_2 + 8); local_64 = *(undefined2 *)(param_2 + 0xc); if (((longlong *)param_1[1] != (longlong *)0x0) && (lVar1 = *(longlong *)param_1[1], lVar1 != 0) ) { lVar5 = lVar1 + -0x40; } plVar2 = (longlong *)param_1[0xcc]; uVar6 = (**(code **)(*param_1 + 8))(param_1); uVar4 = (**(code **)(*plVar2 + 0x30))(plVar2); uVar3 = FUN_1401b5550(uVar4,*(undefined4 *)((longlong)param_1 + 0x55c)); FUN_1401fe430(lVar5,*(undefined4 *)((longlong)param_1 + 0x55c),uVar3,&local_70,local_40,uVar6, local_60); FUN_14016d0e0(local_38); if ((local_30 != 0) && (local_24 < 0)) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } } return; }