# Lmx.dll selected decompile ## FUN_10003fc0 at 10003fc0 Signature: `undefined FUN_10003fc0(void)` ```c wchar_t * __thiscall FUN_10003fc0(wchar_t *param_1,short param_2,undefined4 param_3,undefined4 param_4,short param_5) { swprintf_s(param_1,0x104,L"",(int)param_2,param_3, param_4,(int)param_5); return param_1; } ``` ## FUN_10016fd0 at 10016fd0 Signature: `undefined FUN_10016fd0(void)` ```c void __fastcall FUN_10016fd0(int *param_1) { byte bStack_17; *param_1 = (uint)bStack_17 << 8; param_1[1] = 0; param_1[2] = 0; param_1[3] = 0; param_1[4] = 0; return; } ``` ## FUN_1008f150 at 1008f150 Signature: `undefined FUN_1008f150(void)` ```c void __thiscall FUN_1008f150(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5, undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9, undefined4 param_10,undefined4 param_11) { int iVar1; char cVar2; undefined4 uVar3; undefined4 uVar4; basic_ostream_> *pbVar5; int iVar6; int *piVar7; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var8; int *local_258; undefined4 local_254; ulong local_250; ushort local_24c; ushort uStack_24a; uchar local_248 [4]; uchar local_244 [4]; undefined4 local_240; undefined4 local_23c; undefined4 local_238; undefined4 local_234; undefined4 local_230; undefined4 local_22c; undefined4 local_228; undefined4 local_224; GUID local_220 [33]; uint local_8; local_8 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; CoCreateGuid(local_220); cVar2 = FUN_100408d0(); if (cVar2 != '\0') { uVar3 = FUN_10047fe0(local_220[0].Data1,local_220[0]._4_4_,local_220[0].Data4._0_4_, local_220[0].Data4._4_4_); p_Var8 = endl_exref; uVar4 = (**(code **)(*param_2 + 8))(); piVar7 = param_2; pbVar5 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38), L"CReferenceStringResolver::ResolveReference - reference ",param_2, L" guid ",uVar3,L" ref ",uVar4); pbVar5 = std::basic_ostream_>::operator<< (pbVar5,piVar7); uVar3 = FUN_1001a0e0(pbVar5); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_1001a0e0(uVar3); pbVar5 = (basic_ostream_> *) FUN_1001a0e0(uVar3); std::basic_ostream_>::operator<< (pbVar5,p_Var8); } local_250 = local_220[0].Data1; local_24c = local_220[0].Data2; uStack_24a = local_220[0].Data3; local_244[0] = local_220[0].Data4[4]; local_244[1] = local_220[0].Data4[5]; local_244[2] = local_220[0].Data4[6]; local_244[3] = local_220[0].Data4[7]; local_254 = param_11; local_240 = param_7; local_238 = param_9; local_248[0] = local_220[0].Data4[0]; local_248[1] = local_220[0].Data4[1]; local_248[2] = local_220[0].Data4[2]; local_248[3] = local_220[0].Data4[3]; local_234 = param_10; local_258 = param_2; iVar1 = *(int *)(param_1 + 0x24); local_22c = param_4; local_23c = param_8; local_228 = param_5; local_230 = param_3; local_224 = param_6; iVar6 = FUN_1008e910(iVar1,*(undefined4 *)(iVar1 + 4),&local_258); if (*(int *)(param_1 + 0x28) == 0x4924923) { /* WARNING: Subroutine does not return */ std::_Xlength_error("list too long"); } *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1; *(int *)(iVar1 + 4) = iVar6; **(int **)(iVar6 + 4) = iVar6; __security_check_cookie(local_8 ^ (uint)&stack0xfffffffc); return; } ``` ## FUN_10112f20 at 10112f20 Signature: `undefined FUN_10112f20(void)` ```c int * __thiscall FUN_10112f20(int *param_1,int *param_2) { UINT UVar1; BSTR pOVar2; if (*param_1 != *param_2) { AtlComPtrAssign(param_1,*param_2); } if ((BSTR)param_1[1] != (BSTR)param_2[1]) { SysFreeString((BSTR)param_1[1]); pOVar2 = (BSTR)0x0; if ((BSTR)param_2[1] != (BSTR)0x0) { UVar1 = SysStringByteLen((BSTR)param_2[1]); pOVar2 = SysAllocStringByteLen((LPCSTR)param_2[1],UVar1); } param_1[1] = (int)pOVar2; if ((param_2[1] != 0) && (pOVar2 == (BSTR)0x0)) { /* WARNING: Subroutine does not return */ FUN_100013e0(0x8007000e); } } if ((BSTR)param_1[2] != (BSTR)param_2[2]) { SysFreeString((BSTR)param_1[2]); pOVar2 = (BSTR)0x0; if ((BSTR)param_2[2] != (BSTR)0x0) { UVar1 = SysStringByteLen((BSTR)param_2[2]); pOVar2 = SysAllocStringByteLen((LPCSTR)param_2[2],UVar1); } param_1[2] = (int)pOVar2; if ((param_2[2] != 0) && (pOVar2 == (BSTR)0x0)) { /* WARNING: Subroutine does not return */ FUN_100013e0(0x8007000e); } } if ((BSTR)param_1[3] != (BSTR)param_2[3]) { SysFreeString((BSTR)param_1[3]); pOVar2 = (BSTR)0x0; if ((BSTR)param_2[3] != (BSTR)0x0) { UVar1 = SysStringByteLen((BSTR)param_2[3]); pOVar2 = SysAllocStringByteLen((LPCSTR)param_2[3],UVar1); } param_1[3] = (int)pOVar2; if ((param_2[3] != 0) && (pOVar2 == (BSTR)0x0)) { /* WARNING: Subroutine does not return */ FUN_100013e0(0x8007000e); } } if ((BSTR)param_1[4] != (BSTR)param_2[4]) { SysFreeString((BSTR)param_1[4]); pOVar2 = (BSTR)0x0; if ((BSTR)param_2[4] != (BSTR)0x0) { UVar1 = SysStringByteLen((BSTR)param_2[4]); pOVar2 = SysAllocStringByteLen((LPCSTR)param_2[4],UVar1); } param_1[4] = (int)pOVar2; if ((param_2[4] != 0) && (pOVar2 == (BSTR)0x0)) { /* WARNING: Subroutine does not return */ FUN_100013e0(0x8007000e); } } return param_1; } ``` ## FUN_10112da0 at 10112da0 Signature: `undefined FUN_10112da0(void)` ```c void __fastcall FUN_10112da0(undefined4 *param_1) { int *piVar1; uint uVar2; void *local_10; undefined1 *puStack_c; int local_8; puStack_c = &LAB_1017253f; local_10 = ExceptionList; uVar2 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; *param_1 = PreboundReference::vftable; param_1[1] = PreboundReference::vftable; param_1[3] = PreboundReference::vftable; local_8 = 7; piVar1 = (int *)param_1[0x19]; if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 8))(piVar1,uVar2); } local_8._0_1_ = 6; SysFreeString((BSTR)param_1[0x2b]); local_8._0_1_ = 5; SysFreeString((BSTR)param_1[0x27]); local_8._0_1_ = 4; if (7 < (uint)param_1[0x21]) { operator_delete((void *)param_1[0x1c]); } param_1[0x21] = 7; param_1[0x20] = 0; *(undefined2 *)(param_1 + 0x1c) = 0; local_8._0_1_ = 3; piVar1 = (int *)param_1[0x1a]; if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 8))(piVar1); } local_8._0_1_ = 0xc; SysFreeString((BSTR)param_1[0x18]); local_8._0_1_ = 0xb; SysFreeString((BSTR)param_1[0x17]); local_8._0_1_ = 10; SysFreeString((BSTR)param_1[0x16]); local_8._0_1_ = 9; SysFreeString((BSTR)param_1[0x15]); local_8._0_1_ = 2; piVar1 = (int *)param_1[0x14]; if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 8))(piVar1); } local_8._0_1_ = 1; if (7 < (uint)param_1[0x12]) { operator_delete((void *)param_1[0xd]); } param_1[0x12] = 7; param_1[0x11] = 0; *(undefined2 *)(param_1 + 0xd) = 0; local_8 = (uint)local_8._1_3_ << 8; if (7 < (uint)param_1[0xb]) { operator_delete((void *)param_1[6]); } param_1[0xb] = 7; param_1[10] = 0; *(undefined2 *)(param_1 + 6) = 0; *param_1 = MxConnectionCallback::vftable; ExceptionList = local_10; return; } ``` ## FUN_101139c0 at 101139c0 Signature: `undefined FUN_101139c0(void)` ```c undefined4 * __thiscall FUN_101139c0(undefined4 *param_1,short *param_2,undefined4 param_3) { short sVar1; uint uVar2; short *psVar3; void *local_10; undefined1 *puStack_c; undefined4 local_8; puStack_c = &LAB_101726b3; local_10 = ExceptionList; uVar2 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; *param_1 = MxConnectionCallback::vftable; local_8 = 0; param_1[1] = CReferenceToResolve::vftable; *(undefined1 *)(param_1 + 2) = 0; param_1[3] = RedundancyResolutionStatusCallback::vftable; *param_1 = PreboundReference::vftable; param_1[1] = PreboundReference::vftable; param_1[3] = PreboundReference::vftable; *(undefined1 *)(param_1 + 4) = 0; param_1[5] = 0; param_1[0xb] = 7; param_1[10] = 0; *(undefined2 *)(param_1 + 6) = 0; psVar3 = param_2; do { sVar1 = *psVar3; psVar3 = psVar3 + 1; } while (sVar1 != 0); FUN_100363d0(param_2,(int)psVar3 - (int)(param_2 + 1) >> 1); local_8._1_3_ = (undefined3)((uint)local_8 >> 8); param_1[0x12] = 7; param_1[0x11] = 0; *(undefined2 *)(param_1 + 0xd) = 0; local_8._0_1_ = 2; FUN_10113900(param_2); param_1[0x19] = param_3; param_1[0x1a] = 0; *(undefined1 *)(param_1 + 0x1b) = 0; param_1[0x21] = 7; param_1[0x20] = 0; *(undefined2 *)(param_1 + 0x1c) = 0; param_1[0x27] = 0; param_1[0x2a] = 0; param_1[0x2b] = 0; local_8 = CONCAT31(local_8._1_3_,8); *(undefined1 *)(param_1 + 0x2c) = 0; param_1[0x29] = 0; if (DAT_101d8c40 == 0) { FUN_10113070(uVar2); } FUN_101133d0(); (**(code **)(*(int *)param_1[0x19] + 4))((int *)param_1[0x19]); ExceptionList = local_10; return param_1; } ``` ## FUN_10113b10 at 10113b10 Signature: `undefined FUN_10113b10(void)` ```c undefined4 * __thiscall FUN_10113b10(undefined4 *param_1,int *param_2,undefined4 param_3) { undefined4 *puVar1; short sVar2; char cVar3; uint uVar4; int iVar5; short *psVar6; short *psVar7; undefined2 *puVar8; void *local_10; undefined1 *puStack_c; undefined1 local_8; undefined3 uStack_7; puStack_c = &LAB_1017276f; local_10 = ExceptionList; uVar4 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; *param_1 = MxConnectionCallback::vftable; param_1[1] = CReferenceToResolve::vftable; *(undefined1 *)(param_1 + 2) = 0; param_1[3] = RedundancyResolutionStatusCallback::vftable; *param_1 = PreboundReference::vftable; param_1[1] = PreboundReference::vftable; param_1[3] = PreboundReference::vftable; *(undefined1 *)(param_1 + 4) = 0; param_1[5] = 0; param_1[0xb] = 7; param_1[10] = 0; *(undefined2 *)(param_1 + 6) = 0; param_1[0x12] = 7; param_1[0x11] = 0; *(undefined2 *)(param_1 + 0xd) = 0; uStack_7 = 0; local_8 = 2; param_1[0x14] = param_2; if (param_2 != (int *)0x0) { (**(code **)(*param_2 + 4))(param_2,uVar4); } param_1[0x15] = 0; param_1[0x16] = 0; param_1[0x17] = 0; param_1[0x18] = 0; param_1[0x19] = param_3; param_1[0x1a] = 0; *(undefined1 *)(param_1 + 0x1b) = 0; param_1[0x21] = 7; param_1[0x20] = 0; *(undefined2 *)(param_1 + 0x1c) = 0; param_1[0x27] = 0; param_1[0x2a] = 0; param_1[0x2b] = 0; _local_8 = CONCAT31(uStack_7,0xe); *(undefined1 *)(param_1 + 0x2c) = 0; param_1[0x29] = 0; if (DAT_101d8c40 == 0) { FUN_10113070(); } if (param_2 != (int *)0x0) { puVar1 = param_1 + 0x15; SysFreeString((BSTR)param_1[0x15]); *puVar1 = 0; iVar5 = (**(code **)(*(int *)param_1[0x14] + 0x20))((int *)param_1[0x14],puVar1); if (iVar5 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar5,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x3f); } psVar7 = (short *)*puVar1; if (psVar7 == (short *)0x0) { psVar7 = &DAT_1017a514; } psVar6 = psVar7; do { sVar2 = *psVar6; psVar6 = psVar6 + 1; } while (sVar2 != 0); FUN_100363d0(psVar7,(int)psVar6 - (int)(psVar7 + 1) >> 1); puVar1 = param_1 + 0x15; SysFreeString((BSTR)param_1[0x15]); *puVar1 = 0; iVar5 = (**(code **)(*(int *)param_1[0x14] + 0x20))((int *)param_1[0x14],puVar1); if (iVar5 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar5,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x3f); } puVar8 = (undefined2 *)*puVar1; if (puVar8 == (undefined2 *)0x0) { puVar8 = &DAT_1017a514; } cVar3 = FUN_10134a10(puVar8); if (cVar3 != '\0') { psVar6 = (short *)FUN_1005f6b0(); psVar7 = psVar6; do { sVar2 = *psVar7; psVar7 = psVar7 + 1; } while (sVar2 != 0); FUN_100363d0(psVar6,(int)psVar7 - (int)(psVar6 + 1) >> 1); } } FUN_101133d0(); (**(code **)(*(int *)param_1[0x19] + 4))((int *)param_1[0x19]); ExceptionList = local_10; return param_1; } ``` ## FUN_10114620 at 10114620 Signature: `undefined FUN_10114620(void)` ```c void __fastcall FUN_10114620(int param_1) { char cVar1; undefined4 uVar2; undefined4 uVar3; undefined1 local_18 [4]; void *local_14; void *local_10; undefined1 *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_10172866; local_10 = ExceptionList; ExceptionList = &local_10; if (*(char *)(*(int *)(param_1 + 100) + 0x6dc) != '\0') { cVar1 = FUN_1005faf0(DAT_101d60b8 ^ (uint)&stack0xfffffffc); if (cVar1 == '\0') { local_14 = operator_new(0x1c); local_8 = 0; if (local_14 == (void *)0x0) { local_14 = (void *)0x0; } else { local_14 = (void *)FUN_10060b80(); } local_8 = 0xffffffff; FUN_1003ec10(*(undefined4 *)(param_1 + 0x50)); uVar3 = 0; uVar2 = FUN_1002c750(&local_14); FUN_10066e70(local_18,uVar2,uVar3); local_14 = operator_new(0x1c); local_8 = 1; if (local_14 == (void *)0x0) { local_14 = (void *)0x0; } else { local_14 = (void *)FUN_10060b80(); } local_8 = 0xffffffff; FUN_1003ec10(*(undefined4 *)(param_1 + 0x50)); uVar3 = 0; uVar2 = FUN_1002c750(&local_14); FUN_10066e70(local_18,uVar2,uVar3); *(undefined1 *)(*(int *)(param_1 + 100) + 0x6dd) = 1; } } ExceptionList = local_10; return; } ``` ## FUN_10112cd0 at 10112cd0 Signature: `undefined FUN_10112cd0(void)` ```c void __fastcall FUN_10112cd0(int param_1) { uint uVar1; void *pvVar2; void *local_10; undefined1 *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_1017247b; local_10 = ExceptionList; uVar1 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; pvVar2 = operator_new(0x38); local_8 = 0; if (pvVar2 != (void *)0x0) { FUN_1009f240(*(undefined4 *)(param_1 + 0x50),*(undefined2 *)(*(int *)(param_1 + 100) + 0x2ac), param_1,*(int *)(param_1 + 100)); } local_8 = 0xffffffff; (*(code *)**(undefined4 **)(param_1 + 4))(uVar1); ExceptionList = local_10; return; } ```