/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1400c39e0 FUN_1400c39e0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ undefined4 FUN_1400c39e0(undefined8 *param_1,undefined8 *param_2) { undefined4 uVar1; IUnknown *pIVar2; undefined6 uVar3; IUnknown *This; undefined2 uVar4; int iVar5; HRESULT HVar6; ULONG UVar7; undefined4 uVar8; undefined8 *puVar9; wchar_t *pwVar10; longlong lVar11; longlong *plVar12; undefined8 uVar13; undefined8 uVar14; wchar_t *pwVar15; char *riid; char *ppvObject; wchar_t *pwVar16; uint uVar17; wchar_t *pwVar18; undefined1 auStackY_568 [32]; char local_528 [4]; short local_524; short local_520; longlong *local_518; int local_510; int local_50c; undefined4 uVar19; undefined8 local_500; undefined2 uStack_4f4; ushort local_4e2; wchar_t *local_4e0; IUnknown *local_4d8; longlong *local_4d0; undefined4 local_4c8; undefined1 local_4b8 [24]; undefined1 local_4a0 [24]; undefined4 local_488; undefined1 *local_480; undefined4 local_478; undefined8 local_470; undefined1 *local_468; longlong *local_458; LPUNKNOWN local_450; wchar_t *local_448; undefined8 *local_440; undefined8 *local_438; undefined4 local_430; undefined4 local_42c; undefined4 local_428; undefined4 local_424; undefined4 local_420; uchar local_41c [4]; uchar local_418 [4]; undefined4 local_414; undefined8 local_410; undefined1 local_408; undefined8 local_400; undefined1 local_3f8; undefined8 local_3f0; undefined1 local_3e8; undefined8 local_3e0; undefined1 local_3d8; wchar_t *local_3d0; longlong *local_3c8 [2]; undefined4 local_3b8; undefined4 uStack_3b4; undefined4 uStack_3b0; undefined4 uStack_3ac; undefined1 local_3a0 [8]; undefined8 local_398; undefined1 local_390 [24]; undefined1 local_378 [24]; undefined1 local_360 [24]; undefined1 local_348 [24]; undefined1 local_330 [24]; undefined1 local_318 [24]; undefined1 local_300 [24]; undefined1 local_2e8 [24]; undefined1 local_2d0 [24]; undefined1 local_2b8 [24]; undefined1 local_2a0 [24]; undefined1 local_288 [24]; undefined1 local_270 [24]; undefined1 local_258 [24]; undefined1 local_240 [24]; undefined1 local_228 [24]; undefined1 local_210 [24]; undefined1 local_1f8 [24]; undefined1 local_1e0 [24]; undefined1 local_1c8 [24]; undefined1 local_1b0 [24]; undefined1 local_198 [24]; undefined1 local_180 [24]; longlong local_168 [3]; undefined1 local_150 [24]; undefined1 local_138 [24]; undefined1 local_120 [24]; IID local_108; undefined4 local_f8; undefined4 local_f4; undefined4 local_f0; undefined4 local_ec; undefined4 local_e8; undefined4 local_e4; wchar_t local_e0 [12]; ulonglong local_c8; undefined2 local_c0; undefined8 local_be; undefined8 local_b6; undefined8 local_ae; undefined4 local_a6; undefined2 local_a2; undefined8 local_a0; undefined8 local_98; undefined8 local_90; undefined8 local_88; undefined8 local_80; undefined8 local_78; undefined4 local_70; undefined4 local_6c; undefined4 local_68; ulonglong local_58; local_398 = 0xfffffffffffffffe; local_58 = DAT_1403463c0 ^ (ulonglong)auStackY_568; pwVar16 = (wchar_t *)0x0; local_518 = (longlong *)0x0; local_440 = param_1; local_438 = param_2; iVar5 = FUN_140001990(&local_518); if ((iVar5 < 0) && (iVar5 != -0x7fffbffe)) { /* WARNING: Subroutine does not return */ FUN_140218220(iVar5); } local_4d8 = (IUnknown *)0x0; local_4d0 = (longlong *)0x0; Ordinal_8(local_4b8); Ordinal_8(local_4a0); pIVar2 = local_4d8; if ((local_4d8 != (IUnknown *)0x0) && (local_4d8 = (IUnknown *)0x0, pIVar2 != (IUnknown *)0x0)) { (*pIVar2->lpVtbl->Release)(pIVar2); } local_468 = &DAT_14029e010; local_480 = &DAT_14029e010; local_478 = 0; local_470 = 0; if (local_4d8 != (IUnknown *)0x0) { (*local_4d8->lpVtbl->Release)(local_4d8); } HVar6 = CoCreateInstance((IID *)&DAT_14029e088,(LPUNKNOWN)0x0,0x17,(IID *)&DAT_14029dfb0, &local_450); if (-1 < HVar6) { HVar6 = OleRun(local_450); if (-1 < HVar6) { HVar6 = (*local_450->lpVtbl->QueryInterface)(local_450,(IID *)&DAT_14029e078,&local_4d8); } (*local_450->lpVtbl->Release)(local_450); if (-1 < HVar6) goto LAB_1400c3b64; } local_4d8 = (IUnknown *)0x0; LAB_1400c3b64: local_488 = 2; uVar19 = 1; local_4c8 = 1; local_528[0] = '\x01'; pwVar18 = (wchar_t *)0x0; local_4e2 = 0; uVar1 = *(undefined4 *)(param_2 + 1); local_500 = CONCAT44((int)((ulonglong)*param_2 >> 0x20),0x23e60000); uStack_4f4 = 0x106; uVar17 = 0x20; pIVar2 = *(IUnknown **)*param_1; if ((pIVar2 != (IUnknown *)0x0) && (UVar7 = (*pIVar2->lpVtbl[0xb].AddRef)(pIVar2), (int)UVar7 < 0) ) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e018); } iVar5 = FUN_1400a80c0(param_1); if (iVar5 == 0) { FUN_1400a8040(param_1,param_2,0); pIVar2 = local_4d8; if (local_4d8 != (IUnknown *)0x0) { local_50c = 0; UVar7 = (*local_4d8->lpVtbl[0x12].AddRef)(local_4d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } pIVar2 = local_4d8; if (local_50c != 0) { if (local_4d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar7 = (*local_4d8->lpVtbl[10].Release)(local_4d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } } if (local_4d8 != (IUnknown *)0x0) { (*local_4d8->lpVtbl->Release)(local_4d8); local_4d8 = (IUnknown *)0x0; } } local_470 = 0; local_468 = &DAT_14029e010; local_480 = &DAT_14029e010; local_478 = 0; local_488 = 0; Ordinal_9(local_4a0); Ordinal_9(local_4b8); if (local_4d0 != (longlong *)0x0) { (**(code **)(*local_4d0 + 0x10))(); } if (local_4d8 != (IUnknown *)0x0) { (*local_4d8->lpVtbl->Release)(local_4d8); } if (local_518 != (longlong *)0x0) { (**(code **)(*local_518 + 0x10))(); } return 0; } puVar9 = (undefined8 *)FUN_140001f40(*param_1,local_3c8); FUN_140001700(&local_518,*puVar9,"dbo.up_read_rearing_listinfo"); if (local_3c8[0] != (longlong *)0x0) { (**(code **)(*local_3c8[0] + 0x10))(); } local_458 = local_168; local_3b8 = *(undefined4 *)((longlong)param_2 + 0xe); uStack_3b4 = *(undefined4 *)((longlong)param_2 + 0x12); uStack_3b0 = *(undefined4 *)((longlong)param_2 + 0x16); uStack_3ac = *(undefined4 *)((longlong)param_2 + 0x1a); FUN_140063820(local_168,&local_3b8); pwVar10 = operator_new(0x18); local_3d0 = pwVar16; local_448 = pwVar10; if (pwVar10 != (wchar_t *)0x0) { pwVar10[4] = L'\0'; pwVar10[5] = L'\0'; pwVar10[6] = L'\0'; pwVar10[7] = L'\0'; pwVar10[8] = L'\x01'; pwVar10[9] = L'\0'; lVar11 = FUN_1402182d0("cha_uid"); *(longlong *)pwVar10 = lVar11; local_3d0 = pwVar10; } if (local_3d0 == (wchar_t *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x8007000e); } plVar12 = (longlong *)FUN_140001870(&local_518,local_3a0,&local_3d0,0xca); local_458 = plVar12; if (local_518 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } puVar9 = (undefined8 *)FUN_140001650(local_518,&local_448); pIVar2 = (IUnknown *)*puVar9; if (pIVar2 != (IUnknown *)0x0) { UVar7 = (*pIVar2->lpVtbl[3].AddRef)(pIVar2); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029dfc0); } if (local_448 != (wchar_t *)0x0) { (**(code **)(*(longlong *)local_448 + 0x10))(); } if ((longlong *)*plVar12 != (longlong *)0x0) { (**(code **)(*(longlong *)*plVar12 + 0x10))(); } puVar9 = (undefined8 *)FUN_1400016c0(&local_518,&local_458); This = local_4d8; pIVar2 = (IUnknown *)*puVar9; if (local_4d8 != pIVar2) { local_4d8 = pIVar2; if (pIVar2 != (IUnknown *)0x0) { (*pIVar2->lpVtbl->AddRef)(pIVar2); } if (This != (IUnknown *)0x0) { (*This->lpVtbl->Release)(This); } } if (local_458 != (longlong *)0x0) { (**(code **)(*local_458 + 0x10))(); } pIVar2 = local_4d8; if (local_4d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } local_520 = 0; UVar7 = (*local_4d8->lpVtbl[6].Release)(local_4d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } if (local_520 != -1) { while( true ) { pIVar2 = local_4d8; if (local_4d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } local_524 = 0; UVar7 = (*local_4d8->lpVtbl[6].Release)(local_4d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } if (local_524 == -1) break; local_108.Data1 = 0; local_108.Data2 = 0; local_108.Data3 = 0; local_108.Data4[0] = '\0'; local_108.Data4[1] = '\0'; local_108.Data4[2] = '\0'; local_108.Data4[3] = '\0'; local_108.Data4[4] = '\0'; local_108.Data4[5] = '\0'; local_108.Data4[6] = '\0'; local_108.Data4[7] = '\0'; local_f8 = 0; local_f4 = 0; local_f0 = 0; local_ec = 0; local_e8 = 0; local_e4 = 0; local_c0 = 0; local_be = 0; local_b6 = 0; local_ae = 0; local_a6 = 0; local_a2 = 0; local_a0 = 0; local_98 = 0; local_90 = 0; local_88 = 0; local_80 = 0; local_78 = 0; local_70 = 0; local_6c = 0; local_68 = 0; local_e0[0] = L'\0'; local_e0[1] = L'\0'; local_e0[2] = L'\0'; local_e0[3] = L'\0'; local_e0[4] = L'\0'; local_e0[5] = L'\0'; local_e0[6] = L'\0'; local_e0[7] = L'\0'; local_e0[8] = L'\0'; local_e0[9] = L'\0'; local_e0[10] = L'\0'; local_e0[0xb] = L'\0'; local_c8 = 0; uVar13 = FUN_140002290(&local_4d8,local_390,"table_id",local_528); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_108.Data1 = CONCAT22(local_108.Data1._2_2_,uVar4); Ordinal_9(local_390); uVar13 = FUN_140002290(&local_4d8,local_138,"group_id",local_528); FUN_140199590(uVar13); uVar4 = FUN_140063af0(uVar13); local_108.Data1 = CONCAT22(uVar4,(undefined2)local_108.Data1); Ordinal_9(local_138); uVar13 = FUN_140002290(&local_4d8,local_360,"rearing_id",local_528); FUN_140063b70(uVar13,&local_420); local_108.Data2 = (ushort)local_420; local_108.Data3 = local_420._2_2_; local_108.Data4[0] = local_41c[0]; local_108.Data4[1] = local_41c[1]; local_108.Data4[2] = local_41c[2]; local_108.Data4[3] = local_41c[3]; local_108.Data4[4] = local_418[0]; local_108.Data4[5] = local_418[1]; local_108.Data4[6] = local_418[2]; local_108.Data4[7] = local_418[3]; local_f8 = local_414; Ordinal_9(local_360); uVar13 = FUN_140002290(&local_4d8,local_150,"char_id",local_528); FUN_140063b70(uVar13,&local_430); local_f4 = local_430; local_f0 = local_42c; local_ec = local_428; local_e8 = local_424; Ordinal_9(local_150); uVar13 = FUN_140002290(&local_4d8,local_330,&DAT_1402aa2b4,local_528); FUN_140199590(uVar13); local_e4 = FUN_140063af0(uVar13); Ordinal_9(local_330); uVar13 = FUN_140002290(&local_4d8,local_210,&DAT_1402a6218,local_528); FUN_140063de0(uVar13,&local_4e0); FUN_14016d8c0(); pwVar10 = (wchar_t *)PTR_DAT_1403440a0; if (PTR_DAT_1403440a0 == (undefined *)0x0) { pwVar10 = pwVar16; } if (local_4e0 != (wchar_t *)PTR_DAT_1403440a0) { uVar13 = FUN_14016d8c0(); local_3f8 = 0; local_400 = uVar13; FUN_14016db50(uVar13); local_3f8 = 1; if (((pwVar10 != (wchar_t *)0x0) && (pwVar10 != (wchar_t *)PTR_DAT_1403440a0)) && (pwVar10 + -4 != (wchar_t *)0x0)) { uVar14 = FUN_14016d8c0(); local_408 = 0; local_410 = uVar14; FUN_14016db50(uVar14); local_408 = 1; pwVar15 = pwVar10 + -2; *(int *)pwVar15 = *(int *)pwVar15 + -1; if (*(int *)pwVar15 == 0) { FUN_14016d970(pwVar10 + -4); } FUN_14016dbe0(uVar14); local_408 = 0; } pwVar10 = local_4e0; if (((local_4e0 != (wchar_t *)PTR_DAT_1403440a0) && (local_4e0 != (wchar_t *)0x0)) && (local_4e0 != (wchar_t *)0x8)) { *(int *)(local_4e0 + -2) = *(int *)(local_4e0 + -2) + 1; } FUN_14016dbe0(uVar13); local_3f8 = 0; } pwVar15 = pwVar10; if (pwVar10 == (wchar_t *)0x0) { pwVar15 = (wchar_t *)PTR_DAT_1403440a0; } wcsncpy(local_e0,pwVar15,0xf); if (((pwVar10 != (wchar_t *)0x0) && (pwVar10 != (wchar_t *)PTR_DAT_1403440a0)) && (pwVar10 + -4 != (wchar_t *)0x0)) { uVar13 = FUN_14016d8c0(); local_3e8 = 0; local_3f0 = uVar13; FUN_14016db50(uVar13); local_3e8 = 1; pwVar15 = pwVar10 + -2; *(int *)pwVar15 = *(int *)pwVar15 + -1; if (*(int *)pwVar15 == 0) { FUN_14016d970(pwVar10 + -4); } FUN_14016dbe0(uVar13); local_3e8 = 0; } pwVar10 = local_4e0; if (((local_4e0 != (wchar_t *)0x0) && (local_4e0 != (wchar_t *)PTR_DAT_1403440a0)) && (pwVar15 = local_4e0 + -4, pwVar15 != (wchar_t *)0x0)) { uVar13 = FUN_14016d8c0(); local_3d8 = 0; local_3e0 = uVar13; FUN_14016db50(uVar13); local_3d8 = 1; pwVar10 = pwVar10 + -2; *(int *)pwVar10 = *(int *)pwVar10 + -1; if (*(int *)pwVar10 == 0) { FUN_14016d970(pwVar15); } FUN_14016dbe0(uVar13); local_3d8 = 0; } local_4e0 = (wchar_t *)PTR_DAT_1403440a0; Ordinal_9(local_210); local_c8 = local_c8 & 0xffffffffffff; uVar13 = FUN_140002290(&local_4d8,local_300,&DAT_1402a976c,local_528); FUN_140199590(uVar13); local_c0 = FUN_140063af0(uVar13); Ordinal_9(local_300); uVar13 = FUN_140002290(&local_4d8,local_180,"level",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_be = CONCAT44(local_be._4_4_,uVar8); Ordinal_9(local_180); uVar13 = FUN_140002290(&local_4d8,local_2d0,"index",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_ae = CONCAT44(local_ae._4_4_,uVar8); Ordinal_9(local_2d0); uVar13 = FUN_140002290(&local_4d8,local_1e0,"actionpoint",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_ae = CONCAT44(uVar8,(undefined4)local_ae); Ordinal_9(local_1e0); uVar13 = FUN_140002290(&local_4d8,local_2a0,"usedturn",local_528); FUN_140199590(uVar13); local_a6 = FUN_140063af0(uVar13); Ordinal_9(local_2a0); uVar13 = FUN_140002290(&local_4d8,local_120,"endingid",local_528); FUN_140199590(uVar13); local_a2 = FUN_140063af0(uVar13); Ordinal_9(local_120); uVar13 = FUN_140002290(&local_4d8,local_270,"rewarditem",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_a0 = CONCAT44(local_a0._4_4_,uVar8); Ordinal_9(local_270); uVar13 = FUN_140002290(&local_4d8,local_1b0,"createtime",local_528); FUN_140199590(uVar13); local_b6 = FUN_14009f050(uVar13); Ordinal_9(local_1b0); uVar13 = FUN_140002290(&local_4d8,local_240,"vital",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_a0 = CONCAT44(uVar8,(undefined4)local_a0); Ordinal_9(local_240); uVar13 = FUN_140002290(&local_4d8,local_378,"intelligence",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_98 = CONCAT44(local_98._4_4_,uVar8); Ordinal_9(local_378); uVar13 = FUN_140002290(&local_4d8,local_348,"strength",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_98 = CONCAT44(uVar8,(undefined4)local_98); Ordinal_9(local_348); uVar13 = FUN_140002290(&local_4d8,local_318,"temper",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_90 = CONCAT44(local_90._4_4_,uVar8); Ordinal_9(local_318); uVar13 = FUN_140002290(&local_4d8,local_2e8,"charm",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_90 = CONCAT44(uVar8,(undefined4)local_90); Ordinal_9(local_2e8); uVar13 = FUN_140002290(&local_4d8,local_2b8,"exhaust",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_80 = CONCAT44(local_80._4_4_,uVar8); Ordinal_9(local_2b8); uVar13 = FUN_140002290(&local_4d8,local_288,"angry",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_80 = CONCAT44(uVar8,(undefined4)local_80); Ordinal_9(local_288); uVar13 = FUN_140002290(&local_4d8,local_258,"normal",local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_78 = CONCAT44(local_78._4_4_,uVar8); Ordinal_9(local_258); uVar13 = FUN_140002290(&local_4d8,local_228,&DAT_1402aa368,local_528); FUN_140199590(uVar13); uVar8 = FUN_140063af0(uVar13); local_78 = CONCAT44(uVar8,(undefined4)local_78); Ordinal_9(local_228); uVar13 = FUN_140002290(&local_4d8,local_1f8,"sadness",local_528); FUN_140199590(uVar13); local_70 = FUN_140063af0(uVar13); Ordinal_9(local_1f8); uVar13 = FUN_140002290(&local_4d8,local_1c8,"height",local_528); FUN_140199590(uVar13); local_6c = FUN_14009efc0(uVar13); Ordinal_9(local_1c8); uVar13 = FUN_140002290(&local_4d8,local_198,"weight",local_528); FUN_140199590(uVar13); local_68 = FUN_14009efc0(uVar13); Ordinal_9(local_198); riid = (char *)&local_108; ppvObject = (char *)0xa4; memcpy((void *)((longlong)(int)uVar17 + 0x130 + (longlong)param_1),riid,0xa4); uVar17 = uVar17 + 0xa4; local_4e2 = (short)pwVar18 + 1; pwVar18 = (wchar_t *)(ulonglong)local_4e2; if (50000 < uVar17) { uVar3 = local_500._2_6_; local_500 = CONCAT62(local_500._2_6_,(short)uVar17); uVar13 = local_500; riid = (char *)(param_1 + 0x26); local_500._4_2_ = SUB62(uVar3,2); local_500._6_2_ = SUB62(uVar3,4); ((IID *)riid)->Data1 = (undefined4)local_500; ((IID *)riid)->Data2 = local_500._4_2_; ((IID *)riid)->Data3 = local_500._6_2_; param_1[0x27] = (ulonglong)CONCAT24(0x106,uVar1); param_1[0x28] = 0; param_1[0x29] = (ulonglong)local_4e2 << 0x30; iVar5 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0)); if (iVar5 == 0) { ppvObject = "DB Result Queue push error"; riid = "DBResultQueue_Error.Log"; FUN_1400a6d80(param_1[0x23]); } uVar17 = 0x20; local_4e2 = 0; pwVar18 = pwVar16; local_500 = uVar13; } pIVar2 = local_4d8; if (local_4d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } HVar6 = (*local_4d8->lpVtbl[0xc].QueryInterface)(local_4d8,(IID *)riid,(void **)ppvObject); if (HVar6 < 0) { _com_issue_errorex(HVar6,pIVar2,(_GUID *)&DAT_14029e038); } } if (local_528[0] == '\0') { uStack_4f4 = 0x108; uVar19 = 0; } } local_500 = CONCAT62(local_500._2_6_,(short)uVar17); param_1[0x26] = local_500; param_1[0x27] = (ulonglong)CONCAT24(uStack_4f4,uVar1); param_1[0x28] = 0; param_1[0x29] = (ulonglong)local_4e2 << 0x30; iVar5 = FUN_1400a7630(*(undefined8 *)(param_1[0x22] + 0xf0)); if (iVar5 == 0) { FUN_1400a6d80(param_1[0x23],"DBResultQueue_Error.Log","DB Result Queue push error"); } pIVar2 = local_4d8; if (local_4d8 != (IUnknown *)0x0) { local_510 = 0; UVar7 = (*local_4d8->lpVtbl[0x12].AddRef)(local_4d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } pIVar2 = local_4d8; if (local_510 != 0) { if (local_4d8 == (IUnknown *)0x0) { /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); } UVar7 = (*local_4d8->lpVtbl[10].Release)(local_4d8); if ((int)UVar7 < 0) { _com_issue_errorex(UVar7,pIVar2,(_GUID *)&DAT_14029e038); } } if (local_4d8 != (IUnknown *)0x0) { (*local_4d8->lpVtbl->Release)(local_4d8); local_4d8 = (IUnknown *)0x0; } } local_470 = 0; local_468 = &DAT_14029e010; local_480 = &DAT_14029e010; local_478 = 0; local_488 = 0; Ordinal_9(local_4a0); Ordinal_9(local_4b8); if (local_4d0 != (longlong *)0x0) { (**(code **)(*local_4d0 + 0x10))(); } if (local_4d8 != (IUnknown *)0x0) { (*local_4d8->lpVtbl->Release)(local_4d8); } if (local_518 != (longlong *)0x0) { (**(code **)(*local_518 + 0x10))(); } return uVar19; } /* WARNING: Subroutine does not return */ FUN_140218220(0x80004003); }