# LmxProxy.dll selected decompile ## FUN_10003f60 at 10003f60 Signature: `HRESULT __cdecl FUN_10003f60(undefined4 * param_1, undefined2 * param_2, ULONG param_3)` ```c HRESULT __cdecl FUN_10003f60(undefined4 *param_1,undefined2 *param_2,ULONG param_3) { basic_ostream_> bVar1; HRESULT HVar2; basic_ostream_> *pbVar3; SAFEARRAY *pSVar4; HRESULT HVar5; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var6; SAFEARRAYBOUND local_18; LONG local_10; IRecordInfo *local_c; undefined2 *local_8; local_c = (IRecordInfo *)0x0; HVar2 = GetRecordInfoFromGuids((GUID *)&DAT_1001c2d0,1,0,0,(GUID *)&DAT_1001b530,&local_c); if (HVar2 < 0) { if ((HVar2 != -0x7ffd7fe3) && (bVar1 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 4)), bVar1 != (basic_ostream_>)0x0)) { HVar5 = HVar2; p_Var6 = endl_exref; pbVar3 = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 4),L"GetRecordInfoFromGuids failed - hr = "); pbVar3 = std::basic_ostream_>::operator<< (pbVar3,HVar5); std::basic_ostream_>::operator<<(pbVar3,p_Var6); } } else { local_18.lLbound = 0; local_18.cElements = param_3; pSVar4 = SafeArrayCreateEx(0x24,1,&local_18,local_c); *param_1 = pSVar4; (*local_c->lpVtbl->Release)(local_c); if ((SAFEARRAY *)*param_1 == (SAFEARRAY *)0x0) { HVar2 = -0x7fffbffb; } else { HVar2 = SafeArrayGetLBound((SAFEARRAY *)*param_1,1,&local_10); if ((-1 < HVar2) && (HVar2 = SafeArrayAccessData((SAFEARRAY *)*param_1,&local_8), -1 < HVar2)) { *local_8 = *param_2; *(undefined4 *)(local_8 + 2) = *(undefined4 *)(param_2 + 2); *(undefined4 *)(local_8 + 4) = *(undefined4 *)(param_2 + 4); local_8[6] = param_2[6]; SafeArrayUnaccessData((SAFEARRAY *)*param_1); HVar2 = 0; } } } return HVar2; } ``` ## FUN_10015db2 at 10015db2 Signature: `void * __thiscall FUN_10015db2(void * this, int * param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6)` ```c /* WARNING: Function: __EH_prolog3 replaced with injection: EH_prolog3 */ /* WARNING: Function: __EH_epilog3 replaced with injection: EH_epilog3 */ void * __thiscall FUN_10015db2(void *this,int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4, undefined4 param_5,undefined4 param_6) { *(undefined4 *)this = 1; FUN_10015d38((void *)((int)this + 4),param_1); *(undefined4 *)((int)this + 8) = 0; *(undefined4 *)((int)this + 0x10) = param_2; *(undefined4 *)((int)this + 0x14) = param_3; *(undefined4 *)((int)this + 0x18) = param_4; *(undefined4 *)((int)this + 0xc) = param_6; *(undefined4 *)((int)this + 0x1c) = param_5; *(undefined4 *)((int)this + 0x20) = 0; return this; } ``` ## FUN_10015e4e at 10015e4e Signature: `void * __thiscall FUN_10015e4e(void * this, int * param_1, undefined4 param_2, undefined4 param_3, undefined4 param_4, undefined4 param_5, undefined4 param_6)` ```c /* WARNING: Function: __EH_prolog3 replaced with injection: EH_prolog3 */ /* WARNING: Function: __EH_epilog3 replaced with injection: EH_epilog3 */ void * __thiscall FUN_10015e4e(void *this,int *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4, undefined4 param_5,undefined4 param_6) { *(undefined4 *)this = 2; *(undefined4 *)((int)this + 4) = 0; FUN_10015d38((void *)((int)this + 8),param_1); *(undefined4 *)((int)this + 0x20) = 0; *(undefined4 *)((int)this + 0x10) = param_2; *(undefined4 *)((int)this + 0x14) = param_3; *(undefined4 *)((int)this + 0x18) = param_4; *(undefined4 *)((int)this + 0xc) = param_6; *(undefined4 *)((int)this + 0x1c) = param_5; return this; } ```