# LmxProxy.dll selected decompile ## FUN_10012f24 at 10012f24 Signature: `undefined __stdcall FUN_10012f24(int param_1, uint param_2, long param_3, long param_4, undefined1 * param_5, uint param_6, ULONG param_7, undefined4 param_8, undefined4 param_9)` ```c /* WARNING: Function: __EH_prolog3_catch_GS replaced with injection: EH_prolog3 */ void FUN_10012f24(int param_1,uint param_2,long param_3,long param_4,undefined1 *param_5, uint param_6,ULONG param_7,undefined4 param_8,undefined4 param_9) { basic_ostream_> bVar1; uint uVar2; basic_ostream_> *pbVar3; int iVar4; uint uVar5; wchar_t *pwVar6; long lVar7; wchar_t *pwVar8; long lVar9; wchar_t *pwVar10; undefined1 *puVar11; wchar_t *pwVar12; undefined4 uVar13; long *plVar14; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var15; undefined1 **ppuVar16; _union_2683 local_6c; long local_50; int local_4c; undefined1 *local_48; long local_44; uint local_40; int local_3c; _func_void_uint__EXCEPTION_POINTERS_ptr *local_38 [4]; undefined4 local_28; undefined4 uStack_24; undefined4 uStack_20; undefined4 uStack_1c; uint local_8; undefined4 uStack_4; uStack_4 = 0x5c; local_3c = param_1; local_40 = param_2; local_50 = param_3; local_44 = param_4; local_48 = param_5; local_6c._0_4_ = param_6; local_6c.decVal.Hi32 = param_7; local_6c._8_4_ = param_8; local_6c._12_4_ = param_9; local_8 = 0; FUN_10011b07(local_38); local_8 = CONCAT31(local_8._1_3_,1); local_4c = 0; bVar1 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 0xc)); if (bVar1 != (basic_ostream_>)0x0) { uVar2 = local_6c._0_4_ & 0xffff; pwVar12 = L" Variant Type "; pwVar10 = L" VerifierUserID "; pwVar8 = L" CurrentUserID "; pwVar6 = L" Item Handle "; uVar5 = local_40; lVar7 = local_50; lVar9 = local_44; puVar11 = local_48; p_Var15 = endl_exref; pbVar3 = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 0xc), L"CLMXProxyServer::WriteSecured - Server Handle "); pbVar3 = std::basic_ostream_>::operator<<(pbVar3,uVar5) ; pbVar3 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar3,pwVar6); pbVar3 = std::basic_ostream_>::operator<<(pbVar3,lVar7) ; pbVar3 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar3,pwVar8); pbVar3 = std::basic_ostream_>::operator<<(pbVar3,lVar9) ; pbVar3 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar3,pwVar10); pbVar3 = std::basic_ostream_>::operator<< (pbVar3,(long)puVar11); pbVar3 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar3,pwVar12); pbVar3 = std::basic_ostream_>::operator<<(pbVar3,uVar2) ; std::basic_ostream_>::operator<<(pbVar3,p_Var15); } uVar2 = local_40; iVar4 = FUN_1000fb02((void *)(param_1 + -8),local_40,local_50,(int *)&local_40,&local_4c); uVar5 = local_40; if (-1 < iVar4) { if (*(char *)(local_4c + 0xf) == '\0') { FUN_1000f629((void *)(local_40 + 0x3c),&local_40,&local_44); if (local_40 == *(uint *)(uVar5 + 0x40)) { iVar4 = -0x7ff8ffa9; } else { local_28 = DAT_100201f8; uStack_24 = DAT_100201fc; uStack_20 = DAT_10020200; uStack_1c = DAT_10020204; ppuVar16 = &local_48; plVar14 = &local_44; uVar13 = 0x10013078; FUN_1000f629((void *)(uVar5 + 0x3c),plVar14,(int *)ppuVar16); if (local_44 != *(int *)(uVar5 + 0x40)) { local_28 = *(undefined4 *)(local_44 + 0x10); uStack_24 = *(undefined4 *)(local_44 + 0x14); uStack_20 = *(undefined4 *)(local_44 + 0x18); uStack_1c = *(undefined4 *)(local_44 + 0x1c); } local_48 = &stack0xffffff74; uVar2 = uVar2 & 0xffff0000; ATL::CComVariant::InternalCopy((CComVariant *)&stack0xffffff74,(tagVARIANT *)&local_6c.n2); local_8 = CONCAT31((int3)(local_8 >> 8),1); FUN_1000d36d((void *)(local_3c + -8),uVar2,uVar13,plVar14,ppuVar16); iVar4 = (**(code **)(**(int **)(uVar5 + 0x14) + 0x18)) (*(int **)(uVar5 + 0x14),*(undefined4 *)(local_4c + 8), *(undefined4 *)(local_3c + 0x34),local_40 + 0x10); } } else { iVar4 = -0x7fffbfdf; } } bVar1 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 0xc)); if (bVar1 != (basic_ostream_>)0x0) { p_Var15 = endl_exref; pbVar3 = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 0xc), L"CLMXProxyServer::WriteVerified - returning HRESULT "); pbVar3 = std::basic_ostream_>::operator<<(pbVar3,iVar4) ; std::basic_ostream_>::operator<<(pbVar3,p_Var15); } local_8 = local_8 & 0xffffff00; _set_se_translator(local_38[0]); FUN_100131a1(); return; } ``` ## FUN_100135fe at 100135fe Signature: `undefined __stdcall FUN_100135fe(int param_1, uint param_2, long param_3, long param_4, undefined1 * param_5, uint param_6, ULONG param_7, undefined4 param_8, undefined4 param_9, uint param_10, ULONG param_11, undefined4 param_12, undefined4 param_13)` ```c /* WARNING: Function: __EH_prolog3_catch_GS replaced with injection: EH_prolog3 */ void FUN_100135fe(int param_1,uint param_2,long param_3,long param_4,undefined1 *param_5, uint param_6,ULONG param_7,undefined4 param_8,undefined4 param_9,uint param_10, ULONG param_11,undefined4 param_12,undefined4 param_13) { undefined4 *puVar1; basic_ostream_> bVar2; uint uVar3; uint uVar4; basic_ostream_> *pbVar5; int iVar6; uint uVar7; wchar_t *pwVar8; long lVar9; wchar_t *pwVar10; long lVar11; wchar_t *pwVar12; undefined1 *puVar13; wchar_t *pwVar14; wchar_t *pwVar15; undefined4 uVar16; long *plVar17; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var18; undefined1 **ppuVar19; _union_2683 local_78; _union_2683 local_68; long local_4c; undefined1 *local_48; uint local_44; long local_40; _func_void_uint__EXCEPTION_POINTERS_ptr *local_3c; int local_38 [4]; undefined4 local_28; undefined4 uStack_24; undefined4 uStack_20; undefined4 uStack_1c; uint local_8; undefined4 uStack_4; uStack_4 = 0x68; local_44 = param_2; local_40 = param_3; local_4c = param_4; local_48 = param_5; local_68._0_4_ = param_6; local_68.decVal.Hi32 = param_7; local_68._8_4_ = param_8; local_68._12_4_ = param_9; local_78._0_4_ = param_10; local_78.decVal.Hi32 = param_11; local_78._8_4_ = param_12; local_78._12_4_ = param_13; local_8 = 0; FUN_10011b07(&local_3c); local_8 = CONCAT31(local_8._1_3_,1); local_38[0] = 0; bVar2 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 0xc)); if (bVar2 != (basic_ostream_>)0x0) { uVar3 = local_78._0_4_ & 0xffff; pwVar15 = L" Time Type "; uVar4 = local_68._0_4_ & 0xffff; pwVar14 = L" Variant Type "; pwVar12 = L" VerifierUserID "; pwVar10 = L" CurrentUserID "; pwVar8 = L" Item Handle "; uVar7 = local_44; lVar9 = local_40; lVar11 = local_4c; puVar13 = local_48; p_Var18 = endl_exref; pbVar5 = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 0xc), L"CLMXProxyServer::WriteSecured - Server Handle "); pbVar5 = std::basic_ostream_>::operator<<(pbVar5,uVar7) ; pbVar5 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar5,pwVar8); pbVar5 = std::basic_ostream_>::operator<<(pbVar5,lVar9) ; pbVar5 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar5,pwVar10); pbVar5 = std::basic_ostream_>::operator<< (pbVar5,lVar11); pbVar5 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar5,pwVar12); pbVar5 = std::basic_ostream_>::operator<< (pbVar5,(long)puVar13); pbVar5 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar5,pwVar14); pbVar5 = std::basic_ostream_>::operator<<(pbVar5,uVar4) ; pbVar5 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar5,pwVar15); pbVar5 = std::basic_ostream_>::operator<<(pbVar5,uVar3) ; std::basic_ostream_>::operator<<(pbVar5,p_Var18); } uVar7 = local_44; iVar6 = FUN_1000fb02((void *)(param_1 + -8),local_44,local_40,&local_40,local_38); lVar9 = local_40; if (-1 < iVar6) { FUN_1000f629((void *)(local_40 + 0x3c),&local_44,&local_4c); if (local_44 == *(uint *)(lVar9 + 0x40)) { iVar6 = -0x7ff8ffa9; } else { local_28 = DAT_100201f8; uStack_24 = DAT_100201fc; uStack_20 = DAT_10020200; uStack_1c = DAT_10020204; ppuVar19 = &local_48; plVar17 = &local_4c; uVar16 = 0x10013769; FUN_1000f629((void *)(local_40 + 0x3c),plVar17,(int *)ppuVar19); if (local_4c != *(int *)(local_40 + 0x40)) { local_28 = *(undefined4 *)(local_4c + 0x10); uStack_24 = *(undefined4 *)(local_4c + 0x14); uStack_20 = *(undefined4 *)(local_4c + 0x18); uStack_1c = *(undefined4 *)(local_4c + 0x1c); } local_48 = &stack0xffffff68; uVar7 = uVar7 & 0xffff0000; ATL::CComVariant::InternalCopy((CComVariant *)&stack0xffffff68,(tagVARIANT *)&local_68.n2); local_8._1_3_ = (undefined3)(local_8 >> 8); local_8._0_1_ = 1; FUN_1000d36d((void *)(param_1 + -8),uVar7,uVar16,plVar17,ppuVar19); local_48 = &stack0xffffff68; uVar7 = uVar7 & 0xffff0000; ATL::CComVariant::InternalCopy((CComVariant *)&stack0xffffff68,(tagVARIANT *)&local_78.n2); local_8 = CONCAT31(local_8._1_3_,1); FUN_1000d4d1((void *)(param_1 + -8),uVar7,uVar16,plVar17,ppuVar19); puVar1 = (undefined4 *)(local_38[0] + 8); local_38[0] = *(int *)(param_1 + 0x34); iVar6 = (**(code **)(**(int **)(local_40 + 0x14) + 0x58)) (*(int **)(local_40 + 0x14),*puVar1,*(int *)(param_1 + 0x34),0, *(undefined4 *)(param_1 + 0x3c),*(undefined4 *)(param_1 + 0x40), local_44 + 0x10); } } bVar2 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 0xc)); if (bVar2 != (basic_ostream_>)0x0) { p_Var18 = endl_exref; pbVar5 = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 0xc), L"CLMXProxyServer::WriteVerified - returning HRESULT "); pbVar5 = std::basic_ostream_>::operator<<(pbVar5,iVar6) ; std::basic_ostream_>::operator<<(pbVar5,p_Var18); } local_8 = local_8 & 0xffffff00; _set_se_translator(local_3c); FUN_100138c0(); return; } ```