/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400b5f70 FUN_1400b5f70 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x0001400b6220) */ /* WARNING: Removing unreachable block (ram,0x0001400b622a) */ /* WARNING: Removing unreachable block (ram,0x0001400b6235) */ /* WARNING: Removing unreachable block (ram,0x0001400b6245) */ longlong * FUN_1400b5f70(undefined8 *param_1,undefined8 *param_2) { IUnknown *pIVar1; IUnknown *This; int iVar2; HRESULT HVar3; ULONG UVar4; undefined4 uVar5; undefined8 *puVar6; undefined8 uVar7; longlong *plVar8; longlong lVar9; char local_res18 [8]; longlong *local_res20; longlong *local_398; int local_390; int local_38c; IUnknown *local_388; longlong *local_380; undefined4 local_378; undefined1 local_368 [24]; undefined1 local_350 [24]; undefined4 local_338; undefined1 *local_330; undefined4 local_328; undefined8 local_320; undefined1 *local_318; LPUNKNOWN local_308 [2]; undefined4 local_2f8; undefined4 uStack_2f4; undefined4 local_2f0; undefined2 local_2ec; undefined8 local_2ea; undefined8 local_2e2; undefined8 local_2da; undefined8 local_2d2; undefined8 local_2ca; undefined8 local_2c2; undefined8 local_2ba; undefined8 local_2b2; undefined8 local_2aa; undefined8 local_2a2; undefined8 local_29a; longlong *local_288; longlong *local_280; longlong *local_278; longlong *local_270 [3]; undefined4 local_258; undefined4 uStack_254; undefined4 uStack_250; undefined4 uStack_24c; undefined1 local_248 [16]; undefined8 local_238; undefined1 local_230 [24]; undefined1 local_218 [24]; undefined1 local_200 [24]; undefined1 local_1e8 [24]; undefined1 local_1d0 [24]; undefined1 local_1b8 [24]; undefined1 local_1a0 [24]; undefined1 local_188 [24]; undefined1 local_170 [24]; undefined1 local_158 [24]; undefined1 local_140 [24]; undefined1 local_128 [24]; undefined1 local_110 [24]; undefined1 local_f8 [24]; undefined1 local_e0 [24]; undefined1 local_c8 [24]; undefined1 local_b0 [24]; undefined1 local_98 [24]; undefined1 local_80 [24]; undefined1 local_68 [24]; undefined1 local_50 [32]; local_238 = 0xfffffffffffffffe; local_398 = (longlong *)0x0; iVar2 = FUN_140001990(&local_398); if ((iVar2 < 0) && (iVar2 != -0x7fffbffe)) { /* WARNING: Subroutine does not return */ FUN_140218220(iVar2); } local_388 = (IUnknown *)0x0; local_380 = (longlong *)0x0; Ordinal_8(local_368); Ordinal_8(local_350); pIVar1 = local_388; if ((local_388 != (IUnknown *)0x0) && (local_388 = (IUnknown *)0x0, pIVar1 != (IUnknown *)0x0)) { (*pIVar1->lpVtbl->Release)(pIVar1); } local_318 = &DAT_14029e010; local_330 = &DAT_14029e010; local_328 = 0; local_320 = 0; if (local_388 != (IUnknown *)0x0) { (*local_388->lpVtbl->Release)(local_388); } HVar3 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0,local_308 ); if (HVar3 < 0) { LAB_1400b60aa: local_388 = (IUnknown *)0x0; } else { HVar3 = OleRun(local_308[0]); if (-1 < HVar3) { HVar3 = (*local_308[0]->lpVtbl->QueryInterface)(local_308[0],(IID *)&DAT_14029e078,&local_388) ; } (*local_308[0]->lpVtbl->Release)(local_308[0]); if (HVar3 < 0) goto LAB_1400b60aa; } local_338 = 2; local_378 = 1; local_res18[0] = '\x01'; local_2ea = 0; local_2e2 = 0; local_2da = 0; local_2d2 = 0; local_2ca = 0; local_2c2 = 0; local_2ba = 0; local_2b2 = 0; local_2aa = 0; local_2a2 = 0; local_29a = 0; local_2f0 = *(undefined4 *)(param_2 + 1); _local_2f8 = CONCAT44((int)((ulonglong)*param_2 >> 0x20),0x23360000); local_2ec = 1; _local_2f8 = CONCAT62(stack0xfffffffffffffd0a,0x66); pIVar1 = *(IUnknown **)*param_1; if (pIVar1 != (IUnknown *)0x0) { local_38c = 0; UVar4 = (*pIVar1->lpVtbl[0xb].AddRef)(pIVar1); if ((int)UVar4 < 0) { _com_issue_errorex(UVar4,pIVar1,(_GUID *)&DAT_14029e018); } if (local_38c != 0) goto LAB_1400b62e5; } iVar2 = FUN_1400a80c0(param_1); if (iVar2 == 0) { FUN_1400a8040(param_1,param_2,0); pIVar1 = local_388; if (local_388 != (IUnknown *)0x0) { UVar4 = (*local_388->lpVtbl[0x12].AddRef)(local_388); if ((int)UVar4 < 0) { _com_issue_errorex(UVar4,pIVar1,(_GUID *)&DAT_14029e038); } if (local_388 != (IUnknown *)0x0) { (*local_388->lpVtbl->Release)(local_388); local_388 = (IUnknown *)0x0; } } local_320 = 0; local_318 = &DAT_14029e010; local_330 = &DAT_14029e010; local_328 = 0; local_338 = 0; Ordinal_9(local_350); Ordinal_9(local_368); if (local_380 != (longlong *)0x0) { (**(code **)(*local_380 + 0x10))(); } if (local_388 != (IUnknown *)0x0) { (*local_388->lpVtbl->Release)(local_388); } if (local_398 != (longlong *)0x0) { (**(code **)(*local_398 + 0x10))(); } return (longlong *)0x0; } LAB_1400b62e5: puVar6 = (undefined8 *)FUN_140001f40(*param_1,&local_280); FUN_140001700(&local_398,*puVar6,"dbo.up_get_duel_info"); if (local_280 != (longlong *)0x0) { (**(code **)(*local_280 + 0x10))(); } local_res20 = (longlong *)local_1e8; local_258 = *(undefined4 *)((longlong)param_2 + 0xe); uStack_254 = *(undefined4 *)((longlong)param_2 + 0x12); uStack_250 = *(undefined4 *)((longlong)param_2 + 0x16); uStack_24c = *(undefined4 *)((longlong)param_2 + 0x1a); uVar7 = FUN_140063820(local_1e8,&local_258); plVar8 = operator_new(0x18); local_270[0] = (longlong *)0x0; local_288 = plVar8; if (plVar8 != (longlong *)0x0) { plVar8[1] = 0; *(undefined4 *)(plVar8 + 2) = 1; lVar9 = FUN_1402182d0("character_id"); *plVar8 = lVar9; local_270[0] = plVar8; } if (local_270[0] == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar8 = (longlong *)FUN_140001870(&local_398,local_248,local_270,0xca,1,0x26,uVar7); local_res20 = plVar8; if (local_398 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar6 = (undefined8 *)FUN_140001650(local_398,&local_278); pIVar1 = (IUnknown *)*puVar6; if (pIVar1 != (IUnknown *)0x0) { UVar4 = (*pIVar1->lpVtbl[3].AddRef)(pIVar1); if ((int)UVar4 < 0) { _com_issue_errorex(UVar4,pIVar1,(_GUID *)&DAT_14029dfc0); } if (local_278 != (longlong *)0x0) { (**(code **)(*local_278 + 0x10))(); } if ((longlong *)*plVar8 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar8 + 0x10))(); } puVar6 = (undefined8 *)FUN_1400016c0(&local_398,&local_288); This = local_388; pIVar1 = (IUnknown *)*puVar6; if (local_388 != pIVar1) { local_388 = pIVar1; if (pIVar1 != (IUnknown *)0x0) { (*pIVar1->lpVtbl->AddRef)(pIVar1); } if (This != (IUnknown *)0x0) { (*This->lpVtbl->Release)(This); } } if (local_288 != (longlong *)0x0) { (**(code **)(*local_288 + 0x10))(); } pIVar1 = local_388; if (local_388 != (IUnknown *)0x0) { local_res20 = (longlong *)((ulonglong)local_res20 & 0xffffffffffff0000); UVar4 = (*local_388->lpVtbl[6].Release)(local_388); if ((int)UVar4 < 0) { _com_issue_errorex(UVar4,pIVar1,(_GUID *)&DAT_14029e038); } plVar8 = (longlong *)0x1; if ((short)local_res20 != -1) { uVar7 = FUN_140002290(&local_388,local_80,"duel_exp",local_res18); FUN_140199590(uVar7); local_2ea = FUN_140199670(uVar7); Ordinal_9(local_80); uVar7 = FUN_140002290(&local_388,local_50,"duel_point",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2e2 = CONCAT44(local_2e2._4_4_,uVar5); Ordinal_9(local_50); uVar7 = FUN_140002290(&local_388,local_128,"duel_disconnect",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2da._4_4_ = uVar5; Ordinal_9(local_128); uVar7 = FUN_140002290(&local_388,local_230,"duel_pannelty_time",local_res18); FUN_140199590(uVar7); local_2d2 = FUN_14009f050(uVar7); Ordinal_9(local_230); uVar7 = FUN_140002290(&local_388,local_68,"total_win",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2ca = CONCAT44(local_2ca._4_4_,uVar5); Ordinal_9(local_68); uVar7 = FUN_140002290(&local_388,local_1b8,"total_lose",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2ca = CONCAT44(uVar5,(undefined4)local_2ca); Ordinal_9(local_1b8); uVar7 = FUN_140002290(&local_388,local_f8,"pvp_win",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2c2 = CONCAT44(local_2c2._4_4_,uVar5); Ordinal_9(local_f8); uVar7 = FUN_140002290(&local_388,local_188,"pvp_lose",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2c2 = CONCAT44(uVar5,(undefined4)local_2c2); Ordinal_9(local_188); uVar7 = FUN_140002290(&local_388,local_98,"team_win",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2ba = CONCAT44(local_2ba._4_4_,uVar5); Ordinal_9(local_98); uVar7 = FUN_140002290(&local_388,local_158,"team_lose",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2ba = CONCAT44(uVar5,(undefined4)local_2ba); Ordinal_9(local_158); uVar7 = FUN_140002290(&local_388,local_c8,"leader_win",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2b2 = CONCAT44(local_2b2._4_4_,uVar5); Ordinal_9(local_c8); uVar7 = FUN_140002290(&local_388,local_218,"leader_lose",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2b2 = CONCAT44(uVar5,(undefined4)local_2b2); Ordinal_9(local_218); uVar7 = FUN_140002290(&local_388,local_200,"tag_win",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2aa = CONCAT44(local_2aa._4_4_,uVar5); Ordinal_9(local_200); uVar7 = FUN_140002290(&local_388,local_1d0,"tag_lose",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2aa = CONCAT44(uVar5,(undefined4)local_2aa); Ordinal_9(local_1d0); uVar7 = FUN_140002290(&local_388,local_1a0,"death_win",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2a2 = CONCAT44(local_2a2._4_4_,uVar5); Ordinal_9(local_1a0); uVar7 = FUN_140002290(&local_388,local_170,"death_lose",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2a2 = CONCAT44(uVar5,(undefined4)local_2a2); Ordinal_9(local_170); uVar7 = FUN_140002290(&local_388,local_140,"ladder_win",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_29a = CONCAT44(local_29a._4_4_,uVar5); Ordinal_9(local_140); uVar7 = FUN_140002290(&local_388,local_110,"ladder_lose",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_29a = CONCAT44(uVar5,(undefined4)local_29a); Ordinal_9(local_110); uVar7 = FUN_140002290(&local_388,local_e0,"duel_ladder_exp",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2e2 = CONCAT44(uVar5,(undefined4)local_2e2); Ordinal_9(local_e0); uVar7 = FUN_140002290(&local_388,local_b0,"duel_ladder_point",local_res18); FUN_140199590(uVar7); uVar5 = FUN_140063af0(uVar7); local_2da = CONCAT44(local_2da._4_4_,uVar5); Ordinal_9(local_b0); if (local_res18[0] == '\0') { local_2ec = 1; plVar8 = (longlong *)0x0; } } iVar2 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0),&local_2f8); if (iVar2 == 0) { FUN_1400a6d80(param_1[0x23],"DBResultQueue_Error.Log","DB Result Queue push error"); } pIVar1 = local_388; if (local_388 != (IUnknown *)0x0) { local_390 = 0; UVar4 = (*local_388->lpVtbl[0x12].AddRef)(local_388); if ((int)UVar4 < 0) { _com_issue_errorex(UVar4,pIVar1,(_GUID *)&DAT_14029e038); } pIVar1 = local_388; if (local_390 != 0) { if (local_388 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar4 = (*local_388->lpVtbl[10].Release)(local_388); if ((int)UVar4 < 0) { _com_issue_errorex(UVar4,pIVar1,(_GUID *)&DAT_14029e038); } } if (local_388 != (IUnknown *)0x0) { (*local_388->lpVtbl->Release)(local_388); local_388 = (IUnknown *)0x0; } } local_320 = 0; local_318 = &DAT_14029e010; local_330 = &DAT_14029e010; local_328 = 0; local_338 = 0; Ordinal_9(local_350); Ordinal_9(local_368); if (local_380 != (longlong *)0x0) { (**(code **)(*local_380 + 0x10))(); } if (local_388 != (IUnknown *)0x0) { (*local_388->lpVtbl->Release)(local_388); } if (local_398 != (longlong *)0x0) { (**(code **)(*local_398 + 0x10))(); } return plVar8; } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); }