/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401df000 FUN_1401df000 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x0001401df1ac) */ /* WARNING: Removing unreachable block (ram,0x0001401df1b5) */ /* WARNING: Removing unreachable block (ram,0x0001401df1d6) */ /* WARNING: Removing unreachable block (ram,0x0001401df1df) */ undefined8 * FUN_1401df000(undefined8 *param_1,undefined8 param_2,undefined1 param_3,undefined8 param_4) { undefined8 *puVar1; undefined8 *puVar2; undefined8 *puVar3; bool bVar4; undefined8 *puVar5; undefined8 *puVar6; undefined4 uVar7; undefined8 uVar8; longlong lVar9; longlong lVar10; double dVar11; undefined8 *local_res10; undefined8 *local_res18; undefined8 local_50; undefined4 local_44; longlong local_40; FUN_14019f360(param_1,param_2,param_3,param_4,0xfffffffffffffffe); lVar10 = 0; param_1[0x10] = 0; param_1[0x14] = 0; param_1[0x15] = 0; param_1[0x16] = 0; *param_1 = Proud::CNetClientImpl::vftable; param_1[0xc] = Proud::CNetClientImpl::vftable; param_1[0xd] = Proud::CNetClientImpl::vftable; param_1[0xe] = Proud::CNetClientImpl::vftable; param_1[0xf] = Proud::CNetClientImpl::vftable; param_1[0x11] = Proud::CNetClientImpl::vftable; param_1[0x12] = Proud::CNetClientImpl::vftable; param_1[0x13] = Proud::CNetClientImpl::vftable; FUN_1401c59f0(param_1 + 0x17,DAT_140344d28 * 10.0 * 2.0); *(undefined4 *)(param_1 + 0x93) = 0; param_1[0x96] = 0; param_1[0x97] = 0; param_1[0x98] = 0; param_1[0x99] = 0; param_1[0x95] = Proud::ByteArray::vftable; *(undefined1 *)(param_1 + 0x9a) = 0; param_1[0x9c] = 0; uVar7 = FUN_140171510(); FUN_14016da70(param_1 + 0xa3,uVar7,1); param_1[0xba] = 0; param_1[0xbb] = 0; *(undefined1 *)(param_1 + 0xbc) = 0; param_1[0xc6] = 0; param_1[0xbd] = 0; param_1[0xbe] = 0; param_1[0xbf] = 0; *(undefined4 *)(param_1 + 0xc1) = 0x11; param_1[0xc0] = 0; *(undefined4 *)(param_1 + 0xc5) = 0; *(undefined4 *)((longlong)param_1 + 0x60c) = 0x3f400000; *(undefined4 *)(param_1 + 0xc2) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0x614) = 0x40100000; param_1[0xc3] = 0x26; param_1[0xc4] = 4; param_1[0xc4] = 0; param_1[199] = 0; *(undefined1 *)((longlong)param_1 + 0x68c) = 0; *(undefined4 *)(param_1 + 0xd1) = 0; *(undefined4 *)(param_1 + 0xd2) = 0; param_1[0xcb] = 0; param_1[0xcc] = 0; param_1[0xd0] = 0; param_1[0xcf] = 0; param_1[0xce] = 0; param_1[0xcd] = 0; FUN_1401c2a30(param_1 + 0xd4); *(undefined4 *)(param_1 + 0xda) = 0; *(undefined4 *)((longlong)param_1 + 0x6d4) = 0; *(undefined4 *)(param_1 + 0xdb) = 0; *(undefined4 *)((longlong)param_1 + 0x6dc) = 0; param_1[0xdc] = 0; param_1[0xdf] = 0; param_1[0xdd] = 0; param_1[0xde] = 0; *(undefined4 *)(param_1 + 0x159) = 0; param_1[0x15c] = 0; param_1[0x15d] = 0; param_1[0x15e] = 0; param_1[0x15f] = 0; param_1[0x15b] = Proud::ByteArray::vftable; *(undefined1 *)(param_1 + 0x160) = 0; puVar1 = param_1 + 0x161; local_res10 = puVar1; FUN_14019ea70(puVar1); FUN_14019eb90(puVar1); param_1[0x2a4] = 0; *(undefined1 *)(param_1 + 0x2a5) = 0; param_1[0x2a6] = 0; param_1[0x2a9] = 0; param_1[0x2a7] = 0; param_1[0x2a8] = 0; param_1[0x2aa] = Proud::CNetClientImpl::ServerAsSendDest::vftable; param_1[0x2ab] = Proud::CNetClientImpl::ServerAsSendDest::vftable; param_1[0x2ac] = param_1; param_1[0x2ad] = 0; param_1[0x2ae] = 0; FUN_1401bbb30(param_1 + 0x2b1); param_1[699] = 0; param_1[700] = 0; param_1[0x2bf] = 0; param_1[0x2bd] = 0; param_1[0x2be] = 0; param_1[0x2c0] = 0; param_1[0x2c3] = 0; param_1[0x2c1] = 0; param_1[0x2c2] = 0; FUN_1401a1dd0(param_1 + 0x2c4); *(undefined1 *)(param_1 + 0x2ca) = 0; param_1[0x2d4] = 0; param_1[0x2cb] = 0; param_1[0x2cc] = 0; param_1[0x2cd] = 0; *(undefined4 *)(param_1 + 0x2cf) = 0x11; param_1[0x2ce] = 0; *(undefined4 *)(param_1 + 0x2d3) = 0; *(undefined4 *)((longlong)param_1 + 0x167c) = 0x3f400000; *(undefined4 *)(param_1 + 0x2d0) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0x1684) = 0x40100000; param_1[0x2d1] = 0x26; param_1[0x2d2] = 4; param_1[0x2d2] = 0; *(undefined1 *)(param_1 + 0x2d5) = 0; param_1[0x2df] = 0; param_1[0x2d6] = 0; param_1[0x2d7] = 0; param_1[0x2d8] = 0; *(undefined4 *)(param_1 + 0x2da) = 0x11; param_1[0x2d9] = 0; *(undefined4 *)(param_1 + 0x2de) = 0; *(undefined4 *)((longlong)param_1 + 0x16d4) = 0x3f400000; *(undefined4 *)(param_1 + 0x2db) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0x16dc) = 0x40100000; param_1[0x2dc] = 0x26; param_1[0x2dd] = 0; param_1[0x2e0] = 0; param_1[0x2e3] = 0; param_1[0x2e1] = 0; param_1[0x2e2] = 0; *(undefined1 *)(param_1 + 0x2e4) = 0; param_1[0x2ee] = 0; param_1[0x2e5] = 0; param_1[0x2e6] = 0; param_1[0x2e7] = 0; *(undefined4 *)(param_1 + 0x2e9) = 0x11; param_1[0x2e8] = 0; *(undefined4 *)(param_1 + 0x2ed) = 0; *(undefined4 *)((longlong)param_1 + 0x174c) = 0x3f400000; *(undefined4 *)(param_1 + 0x2ea) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0x1754) = 0x40100000; param_1[0x2eb] = 0x26; param_1[0x2ec] = 0; FUN_1401c59f0(param_1 + 0x2ef,DAT_140344db0); param_1[0x2f4] = 0; param_1[0x2f5] = 0; param_1[0x2f6] = 0; param_1[0x2f9] = 0; param_1[0x2f7] = 0; param_1[0x2f8] = 0; puVar1 = param_1 + 0x2fa; local_res10 = puVar1; FUN_14016dca0(puVar1); *puVar1 = ProudC2C::Proxy::vftable; if (*(int *)((longlong)param_1 + 0x17e4) != 1) { FUN_14016f090(PTR_u_PIDL_compiler_is_incompatible_to_1403440e0); } *puVar1 = Proud::CNetClientImpl::C2CProxy::vftable; FUN_14016eb50(param_1 + 0x2fe); param_1[0x2fe] = Proud::CNetClientImpl::C2CStub::vftable; puVar2 = param_1 + 0x303; local_res10 = puVar2; FUN_14016dca0(puVar2); *puVar2 = ProudC2S::Proxy::vftable; if (*(int *)((longlong)param_1 + 0x182c) != 1) { FUN_14016f090(PTR_u_PIDL_compiler_is_incompatible_to_1403440e0); } *puVar2 = Proud::CNetClientImpl::C2SProxy::vftable; FUN_14016eb50(param_1 + 0x307); param_1[0x307] = Proud::CNetClientImpl::S2CStub::vftable; param_1[0x30d] = 0; param_1[0x30e] = 0; FUN_1401c59f0(param_1 + 0x30f,DAT_140344dd0); *(undefined2 *)(param_1 + 0x319) = 0; *(undefined1 *)((longlong)param_1 + 0x18ca) = 0; param_1[0x30c] = DAT_140344dd0; uVar8 = FUN_1401d1ec0(&local_res10); FUN_1401c84c0(param_1 + 0xbb,uVar8); puVar5 = local_res10; if (local_res10 != (undefined8 *)0x0) { FUN_14016db50(local_res10); bVar4 = true; local_res10[8] = local_res10[8] + -1; if (local_res10[8] == 0) { FUN_14016dbe0(puVar5); puVar6 = local_res10; bVar4 = false; local_res18 = local_res10; puVar3 = (undefined8 *)local_res10[7]; if (puVar3 != (undefined8 *)0x0) { (**(code **)*puVar3)(puVar3,1); } FUN_14016dc00(puVar6); FUN_14016d970(puVar6); } if (bVar4) { FUN_14016dbe0(puVar5); } } FUN_14016f180(); *(undefined1 *)(param_1 + 0xca) = 0; *(undefined4 *)(param_1 + 0xd3) = DAT_140344d40; param_1[0x2b0] = 0; param_1[0x2c9] = 0; *(undefined4 *)(param_1 + 0x2af) = 0; *(undefined4 *)(param_1 + 0xb8) = 0; *(undefined4 *)(param_1 + 0xb0) = 0; *(undefined4 *)(param_1 + 0xa1) = 0; lVar9 = lVar10; if (param_1[0xbb] != 0) { lVar9 = *(longlong *)(param_1[0xbb] + 0x38); } dVar11 = (double)FUN_1401eac50(lVar9); param_1[0xa2] = dVar11 + DAT_140344d30; FUN_14019f7b0(param_1,puVar1); FUN_14019f7b0(param_1,puVar2); FUN_14019f9b0(param_1,param_1 + 0x307); FUN_14019f9b0(param_1,param_1 + 0x2fe); *(undefined1 *)(param_1 + 0x2fc) = 1; *(undefined1 *)(param_1 + 0x305) = 1; *(undefined1 *)(param_1 + 0x30a) = 1; *(undefined1 *)(param_1 + 0x301) = 1; param_1[0x302] = param_1; param_1[0x30b] = param_1; *(undefined1 *)(param_1 + 0x2f2) = 0; param_1[0x2f3] = 0x3ff0000000000000; FUN_1401b3aa0(&local_50); local_50 = 0; local_44 = 0; if (param_1[0xbb] != 0) { lVar10 = *(longlong *)(param_1[0xbb] + 0x38); } local_40 = lVar10 + 0x10; uVar8 = FUN_14016da10(0x800,&local_50); param_1[0x9c] = uVar8; FUN_140207a70(param_1 + 0xdc); FUN_140207a70(param_1 + 700); FUN_140207a70(param_1 + 0x2c0); FUN_140207a70(param_1 + 0x2a6); return param_1; }