# Lmx.dll selected decompile ## FUN_10100ce0 at 10100ce0 Signature: `undefined FUN_10100ce0(void)` ```c void FUN_10100ce0(short *param_1,int *param_2) { int iVar1; iVar1 = (**(code **)(*param_2 + 0xc))(param_2,¶m_2,4,0); if (iVar1 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar1,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } *param_1 = -(ushort)(((uint)param_2 & 0x80000000) != 0); *(uint *)(param_1 + 2) = (uint)param_2 >> 0x18 & 0xf; *(uint *)(param_1 + 4) = (uint)param_2 >> 0x14 & 0xf; param_1[6] = (short)param_2; return; } ``` ## FUN_10100bc0 at 10100bc0 Signature: `undefined FUN_10100bc0(void)` ```c void FUN_10100bc0(uint *param_1,int *param_2) { int *piVar1; int iVar2; piVar1 = param_2; iVar2 = (**(code **)(*param_2 + 0xc))(param_2,¶m_2,2,0); if (iVar2 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } *param_1 = (uint)param_2 & 0xffff; iVar2 = (**(code **)(*piVar1 + 0xc))(piVar1,¶m_2,2,0); if (iVar2 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } param_1[1] = (uint)param_2 & 0xffff; iVar2 = (**(code **)(*piVar1 + 0xc))(piVar1,¶m_2,2,0); if (iVar2 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } param_1[2] = (uint)param_2 & 0xffff; return; } ``` ## FUN_1005e580 at 1005e580 Signature: `undefined FUN_1005e580(void)` ```c void FUN_1005e580(undefined4 param_1,int *param_2) { int iVar1; iVar1 = (**(code **)(*param_2 + 0xc))(param_2,param_1,4,0); if (iVar1 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar1,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } return; } ``` ## FUN_1010ee00 at 1010ee00 Signature: `undefined FUN_1010ee00(void)` ```c /* WARNING: Function: __alloca_probe replaced with injection: alloca_probe */ void __thiscall FUN_1010ee00(uint param_1,int *param_2,int *param_3,undefined4 *param_4) { char cVar1; int iVar2; undefined4 uVar3; basic_ostream_> *pbVar4; int iVar5; undefined4 *puVar6; uint uVar7; int *piVar8; int extraout_EDX; code *pcVar9; BSTR pOVar10; int *piVar11; int **ppiVar12; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var13; undefined4 uVar14; undefined2 uVar16; int *piVar15; BSTR *ppOVar17; undefined4 uVar18; undefined4 uVar19; uint uStack_2cd4; undefined1 auStack_2cc4 [64]; undefined4 local_2c84; undefined4 local_2c80; undefined4 local_2c7c; undefined4 local_2c78; int *local_2c74; undefined4 local_2c70; undefined4 uStack_2c6c; int *local_2c68; undefined4 local_2c64; uint uStack_2c60; undefined4 local_2c5c; undefined4 local_2c58 [2]; BSTR local_2c50; BSTR local_2c4c; int *local_2c48; int *local_2c44; undefined4 local_2c40; int *local_2c38; int *local_2c2c; undefined4 local_2c28; undefined1 *local_2c24; int local_2c20; uint local_2c1c; undefined1 local_2c15; undefined2 uStack_2c14; byte local_2c11; int *local_2c10; undefined4 *local_2c0c; BSTR local_2c08; int *local_2c04; uint local_2c00; undefined1 local_2bfc [2]; undefined4 local_2bfa; undefined2 local_2bf6; undefined2 uStack_2bf4; undefined2 local_2bf2; undefined2 uStack_2bf0; undefined4 local_2bee; undefined2 local_2bea; undefined4 uStack_2be8; undefined4 uStack_2be4; int local_2be0; undefined4 uStack_2bdc; undefined4 local_2bd8; int *local_2bd4; undefined2 local_2bd0; undefined2 uStack_2bce; undefined2 local_2bcc; ushort uStack_2bca; undefined1 local_120 [48]; short local_f0 [2]; int local_ec; uint local_e8; short local_e4; undefined1 local_e0 [16]; undefined1 local_d0 [2]; undefined4 local_ce; undefined4 local_ca; undefined4 local_c6; undefined4 local_c2; undefined2 local_be; undefined *local_bc; undefined4 local_b8; undefined4 local_b4; undefined4 local_b0; undefined *local_ac; undefined4 local_a8; undefined4 local_a4; undefined4 local_a0; undefined1 local_9c [16]; undefined **ppuStack_8c; undefined1 local_88 [4]; void *pvStack_84; undefined **local_78; undefined1 local_74 [4]; void *local_70; undefined4 local_64; undefined4 local_60; undefined4 local_5c; undefined4 local_58; undefined4 local_54; int local_50; int *local_4c; int local_48; int local_44; int local_40; int local_3c; undefined4 uStack_34; uint uStack_30; uint uStack_2c; int local_28; int local_24; uint local_20; int local_1c; uint local_18; undefined1 *local_14; void *local_10; undefined1 *puStack_c; int local_8; local_8 = 0xffffffff; puStack_c = &LAB_10172302; local_10 = ExceptionList; uStack_2cd4 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; local_14 = (undefined1 *)&uStack_2cd4; ExceptionList = &local_10; local_2c68 = param_2; local_2c38 = param_3; local_2c0c = param_4; local_2bfc[0] = 0; local_2bfa = 0; local_2bf6 = 0; uStack_2bf4 = 0; local_2bf2 = 0; uStack_2bf0 = 0; local_2bee = 0; local_2bea = 0; local_2c00 = param_1; local_18 = uStack_2cd4; FUN_10005170(); local_2c64 = 0xffffffff; local_2c84 = DAT_101d6504; local_2c80 = DAT_101d6508; local_d0[0] = 0; local_ce = 0; local_ca = 0; local_c6 = 0; local_c2 = 0; local_be = 0; local_ac = PTR_101a21c4; local_a8 = DAT_101a21c8; local_a4 = DAT_101a21cc; local_a0 = DAT_101a21d0; local_2c50 = (BSTR)0x0; local_2c4c = (BSTR)0x0; local_8._1_3_ = 0; local_8._0_1_ = 2; local_bc = PTR_101a21c4; local_b8 = DAT_101a21c8; local_b4 = DAT_101a21cc; local_b0 = DAT_101a21d0; local_2c5c = 0; local_2c58[0] = 0; local_2c7c = 0; local_2c78 = 0; iVar2 = (**(code **)(*param_2 + 0xc))(param_2,&local_2c11,1,0); if (iVar2 < 0) { LAB_1010ef7a: /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } local_2c10 = (int *)(uint)local_2c11; uVar19 = 0; uVar18 = 2; ppOVar17 = &local_2c08; piVar11 = param_2; iVar2 = (**(code **)(*param_2 + 0xc))(param_2,ppOVar17,2,0); if (iVar2 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } local_2c1c = (uint)local_2c08 & 0xffff; cVar1 = FUN_100033c0(local_2c10,local_2c08,local_f0); if (cVar1 == '\0') { local_2c00 = (local_ec << 4 | local_e8) << 0x14 | -(uint)(local_f0[0] != 0) & 0x80000000 | (int)local_e4; iVar2 = (**(code **)(*param_3 + 0x10))(param_3,&local_2c00,4,0); if (iVar2 < 0) { LAB_1010f034: /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x19); } if (local_e4 == 0x17) { local_2c00 = FUN_10003390(local_2c10); local_2c00 = local_2c00 & 0xffff; iVar2 = (**(code **)(*param_3 + 0x10))(param_3,&local_2c00,2,0); if (iVar2 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x19); } } pcVar9 = SysFreeString_exref; local_8._0_1_ = 1; SysFreeString((BSTR)0x0); local_8 = (uint)local_8._1_3_ << 8; SysFreeString((BSTR)0x0); local_8 = 0xffffffff; if (local_2c74 != (int *)0x0) { (**(code **)(*local_2c74 + 8))(local_2c74); } goto LAB_10112114; } cVar1 = FUN_100408d0(); if (cVar1 != '\0') { p_Var13 = endl_exref; uVar3 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x18),param_1,L" GetRequest ",local_2c10, L" (version ",local_2c08,L") from ",local_2c0c); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_100a68d0(uVar3); FUN_1001a0e0(uVar3); uVar3 = FUN_10022870(); uVar3 = FUN_1001a0e0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001db00(uVar3); std::basic_ostream_>::operator<< (pbVar4,p_Var13); } iVar2 = DAT_101d8c28; if ((int)(10000U - DAT_101d8c28) < 4) { memset(&DAT_101d6518 + DAT_101d8c28,0xfa,10000U - DAT_101d8c28); iVar2 = 0; } *(undefined2 *)(&DAT_101d6518 + iVar2) = 0x3333; *(undefined2 *)(&DAT_101d651a + iVar2) = 0x3333; iVar5 = iVar2 + 4; if ((int)(10000U - iVar5) < 1) { memset(&DAT_101d651c + iVar2,0xfa,10000U - iVar5); iVar5 = 0; } (&DAT_101d6518)[iVar5] = (char)local_2c10; DAT_101d8c28 = iVar5 + 1; if (((local_2c10 == (int *)0x0) || (local_2c10 == (int *)0x34)) || (cVar1 = FUN_100029c0(local_2c10), cVar1 != '\0')) { FUN_10104e90(param_2,local_2bfc,local_2c10,&local_2c74,&local_2c64,&local_2c84,local_d0, local_2c58,&local_ac,&local_2c50,&local_2c4c,&local_bc,&local_2c5c,&local_2c7c); goto LAB_1011202f; } if (local_2c10 == (int *)0x1c) { uVar19 = 0; uVar18 = 4; ppiVar12 = &local_2c04; iVar2 = (**(code **)(*param_2 + 0xc))(param_2,ppiVar12,4,0); if (iVar2 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar2,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } FUN_10100ce0(local_9c,param_2); if (local_2c04 != (int *)0x0) { local_2c08 = (BSTR)0x0; local_8._0_1_ = 4; uVar3 = FUN_10030d80(); FUN_1014ed80(local_9c,0,uVar3); puVar6 = (undefined4 *)FUN_10005170(); local_8._0_1_ = 5; (**(code **)(*local_2c04 + 8)) (0,*puVar6,0xffffffff,DAT_101d6504,DAT_101d6508,local_9c,local_2c08); local_8._0_1_ = 4; FUN_10005220(); local_8 = CONCAT31(local_8._1_3_,3); SysFreeString(local_2c08); } local_8 = 2; FUN_10112046(ppiVar12,uVar18,uVar19); return; } if (local_2c10 == (int *)0x29) { local_2c2c = (int *)0x0; local_2c28 = (BSTR)0x0; FUN_10100d40(&local_2c2c,param_2); FUN_10100ce0(&local_28,param_2); FUN_100fd820(&local_2c04,&local_2c2c); if (local_2c04 != *(int **)(param_1 + 0x20c)) { local_50 = local_2c04[5]; piVar11 = (int *)local_2c04[6]; local_48 = local_2c04[7]; local_44 = local_2c04[8]; local_40 = local_2c04[9]; local_3c = local_2c04[10]; FUN_10036d40(&local_2c24,local_2c04); iVar2 = local_50; local_8 = CONCAT31(local_8._1_3_,7); if (piVar11 != (int *)0x0) { local_2c08 = (BSTR)0x0; local_8._0_1_ = 8; uVar18 = FUN_10030d80(); FUN_1014ed80(&local_28,0,uVar18); puVar6 = (undefined4 *)FUN_10005170(); local_8._0_1_ = 9; uVar18 = *puVar6; uVar3 = 0xffffffff; uVar19 = DAT_101d6504; (**(code **)(*piVar11 + 8)) (0,uVar18,0xffffffff,DAT_101d6504,DAT_101d6508,&local_28,local_2c08); local_8 = CONCAT31(local_8._1_3_,8); FUN_10005220(); if (((char)local_3c != '\0') && (local_50 != 0)) { (**(code **)(*(int *)(local_50 + 4) + 4))(); } local_8 = CONCAT31(local_8._1_3_,7); SysFreeString(local_2c08); local_8 = 2; FUN_10112046(uVar18,uVar3,uVar19); return; } if (((char)local_3c != '\0') && (local_50 != 0)) { if (*(int *)(local_50 + 200) != 0) { FUN_10067aa0(*(int *)(local_50 + 200),&local_28); } (**(code **)(*(int *)(iVar2 + 4) + 4))(); } local_8 = 2; FUN_10112046(ppOVar17,uVar18,uVar19); return; } cVar1 = FUN_100408d0(); if (cVar1 != '\0') { p_Var13 = endl_exref; uVar3 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x18),param_1, L" MxSetCallback2 ignored - Set-Id Key not found in pendingSetMap"); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar3); std::basic_ostream_>::operator<< (pbVar4,p_Var13); FUN_10112046(ppOVar17,uVar18,uVar19); return; } code_r0x10112046: cVar1 = FUN_100029c0(local_2c10); if (cVar1 != '\0') goto LAB_1011205d; } else { if (local_2c10 == (int *)0x14) { FUN_1005e580(&local_2c20,param_2); FUN_1008cf70(local_88,param_2); puVar6 = local_2c0c; *(int *)(param_1 + 0x53c) = *(int *)(param_1 + 0x53c) + 1; if (local_2c20 != 0) { do { iVar2 = (**(code **)(*param_2 + 0xc))(param_2,&local_28,0x10,0); if (((iVar2 < 0) || (iVar2 = (**(code **)(*param_2 + 0xc))(param_2,&local_2c08,4,0), iVar2 < 0)) || (iVar2 = (**(code **)(*param_2 + 0xc))(param_2,&local_2c00,2,0), iVar2 < 0)) goto LAB_1010ef7a; FUN_10005170(); local_8._0_1_ = 0xb; uVar18 = 0x1010f5b4; piVar11 = local_2c2c; piVar15 = param_2; (**(code **)(*local_2c2c + 0x14))(local_2c2c,param_2); cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar19 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x28),param_1,&DAT_1017b6e4); FUN_1001a0e0(uVar19); } cVar1 = FUN_10003340(local_2c08,local_2c2c,local_2c00,&local_28); if (cVar1 == '\0') { FUN_10031c20(8); local_8._0_1_ = 0xc; cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar19 = FUN_10047fe0(local_28,local_24,local_20,local_1c); pOVar10 = local_2c08; p_Var13 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x2c), L"AccessManager::ProcessNmxRequest - canceling subscription cacheIndex " ,local_2c08,L" guid ",uVar19); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,(long)pOVar10); uVar19 = FUN_1001a0e0(pbVar4); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar19); std::basic_ostream_>:: operator<<(pbVar4,p_Var13); } local_2c11 = 0x12; iVar2 = (*(code *)local_78[4])(&local_78,&local_2c11,1,0); if (iVar2 < 0) goto LAB_1010f034; uVar7 = FUN_10003390(0x12); local_2c04 = (int *)(uVar7 & 0xffff); iVar2 = (*(code *)local_78[4])(&local_78,&local_2c04,2,0); if (((iVar2 < 0) || (iVar2 = (*(code *)local_78[4])(&local_78,&local_2c08,4,0), iVar2 < 0)) || (iVar2 = (*(code *)local_78[4])(&local_78,&local_28,0x10,0), iVar2 < 0)) goto LAB_1010f034; FUN_1010ad00(0,puVar6,0x12,&local_78,0,2,0,0,0,0,0); local_8._0_1_ = 0xb; local_78 = FastStream::vftable; if (local_70 != (void *)0x0) { free(local_70); } } local_2c20 = local_2c20 + -1; local_8._0_1_ = 2; if (local_2c2c != (int *)0x0) { (**(code **)(*local_2c2c + 8))(local_2c2c); } SysFreeString(local_2c28); if (local_2c20 == 0) { FUN_10112046(uVar18,piVar11,piVar15); return; } } while( true ); } goto code_r0x10112046; } if ((local_2c10 == (int *)0x1e) || (local_2c10 == (int *)0x1d)) { FUN_1005e580(&local_2c1c,param_2); FUN_1008cf70(&local_2bd8,param_2); piVar11 = local_2c10; if (local_2c10 == (int *)0x1d) { FUN_1008cf70(&local_28,param_2); } else { local_28 = *(int *)(param_1 + 0x1f0); local_24 = *(int *)(param_1 + 500); local_20 = *(undefined4 *)(param_1 + 0x1f8); local_1c = *(undefined4 *)(param_1 + 0x1fc); } *(int *)(param_1 + 0x53c) = *(int *)(param_1 + 0x53c) + 1; FUN_10005170(); puVar6 = local_2c0c; local_8._0_1_ = 0xd; local_2c24 = (undefined1 *)CONCAT31(local_2c24._1_3_,piVar11 == (int *)0x1d); for (; local_2c1c != 0; local_2c1c = local_2c1c - 1) { iVar2 = (**(code **)(*param_2 + 0xc))(param_2,&local_2c04,4,0); if ((iVar2 < 0) || (iVar2 = (**(code **)(*param_2 + 0xc))(param_2,&uStack_2c6c,2,0), iVar2 < 0)) goto LAB_1010ef7a; (**(code **)(*local_2c2c + 0x14))(local_2c2c,param_2); cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar18 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x28),param_1,&DAT_1017b6e4); FUN_1001a0e0(uVar18); } cVar1 = FUN_1004da60(local_2c04,local_2c2c,uStack_2c6c,&local_2bd8,local_2c24,&local_28); if (cVar1 == '\0') { FUN_10031c20(8); local_8._0_1_ = 0xe; cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar18 = FUN_10047fe0(local_2bd8,local_2bd4,CONCAT22(uStack_2bce,local_2bd0), CONCAT22(uStack_2bca,local_2bcc)); piVar11 = local_2c04; p_Var13 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x2c), L"AccessManager::ProcessNmxRequest - canceling subscription cacheIndex " ,local_2c04,L"publisher guid ",uVar18); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,(long)piVar11); uVar18 = FUN_1001a0e0(pbVar4); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar18); std::basic_ostream_>::operator<< (pbVar4,p_Var13); } local_2c11 = 0x23; iVar2 = (*(code *)ppuStack_8c[4])(&ppuStack_8c,&local_2c11,1,0); if (iVar2 < 0) goto LAB_1010f034; uStack_2c60 = FUN_10003390(0x23); uStack_2c60 = uStack_2c60 & 0xffff; iVar2 = (*(code *)ppuStack_8c[4])(&ppuStack_8c,&uStack_2c60,2,0); if (((iVar2 < 0) || (iVar2 = (*(code *)ppuStack_8c[4])(&ppuStack_8c,&local_2c04,4,0), iVar2 < 0)) || (iVar2 = (*(code *)ppuStack_8c[4])(&ppuStack_8c,&local_28,0x10,0), iVar2 < 0)) goto LAB_1010f034; FUN_1010ad00(0,puVar6,0x23,&ppuStack_8c,0,2,0,0,0,0,0); local_8._0_1_ = 0xd; ppuStack_8c = FastStream::vftable; if (pvStack_84 != (void *)0x0) { free(pvStack_84); } } } LAB_10112020: local_8._0_1_ = 2; FUN_10005220(); } else { if ((local_2c10 == (int *)0x32) || (local_2c10 == (int *)0x33)) { FUN_1005e580(&local_2c1c,param_2); FUN_1008cf70(&local_2bd8,param_2); piVar11 = local_2c10; if (local_2c10 == (int *)0x32) { FUN_1008cf70(&local_28,param_2); } else { local_28 = *(int *)(param_1 + 0x1f0); local_24 = *(int *)(param_1 + 500); local_20 = *(undefined4 *)(param_1 + 0x1f8); local_1c = *(undefined4 *)(param_1 + 0x1fc); } *(int *)(param_1 + 0x53c) = *(int *)(param_1 + 0x53c) + 1; FUN_10005170(); puVar6 = local_2c0c; local_8._0_1_ = 0xf; local_2c24 = (undefined1 *)CONCAT31(local_2c24._1_3_,piVar11 == (int *)0x32); if (local_2c1c != 0) { do { local_2c00 = 0; FUN_1005e580(&local_2c04,param_2); if (local_2c10 == (int *)0x32) { FUN_101004c0(&local_2c00,param_2); } FUN_1005e550(&uStack_2c6c,param_2); FUN_101006e0(&local_2be0,param_2); (**(code **)(*local_2c2c + 0x14))(local_2c2c,param_2); cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar18 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x28),param_1,&DAT_1017b6e4); FUN_1001a0e0(uVar18); } cVar1 = FUN_1004de70(local_2c04,local_2c00,local_2c2c,uStack_2c6c,local_2be0,uStack_2bdc ,&local_2bd8,local_2c24,&local_28); if (cVar1 == '\0') { FUN_10031c20(8); local_8 = CONCAT31(local_8._1_3_,0x10); cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar18 = FUN_10047fe0(local_2bd8,local_2bd4,CONCAT22(uStack_2bce,local_2bd0), CONCAT22(uStack_2bca,local_2bcc)); piVar11 = local_2c04; p_Var13 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x2c), L"AccessManager::ProcessNmxRequest - canceling subscription cacheIndex " ,local_2c04,L"publisher guid ",uVar18); pbVar4 = std::basic_ostream_> ::operator<<(pbVar4,(long)piVar11); uVar18 = FUN_1001a0e0(pbVar4); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar18); std::basic_ostream_>:: operator<<(pbVar4,p_Var13); } FUN_10060d10(0x23,&local_4c); uStack_2c60 = FUN_10003390(0x23); uStack_2c60 = uStack_2c60 & 0xffff; FUN_10063d90(&uStack_2c60,&local_4c); FUN_1008cfd0(&local_2c04,&local_4c); FUN_1005e4c0(&local_28,&local_4c); FUN_1010ad00(0,puVar6,0x23,&local_4c,0,2,0,0,0,0,0); local_8._0_1_ = 0xf; FUN_10005840(); } local_2c1c = local_2c1c - 1; } while (local_2c1c != 0); local_2c1c = 0; } goto LAB_10112020; } if (local_2c10 == (int *)0xc) { FUN_1005f4f0(); local_8._0_1_ = 0x11; piVar15 = param_2; (**(code **)(*local_4c + 0x14))(local_4c,param_2); FUN_10100710(&local_2c08,param_2); iVar2 = *(int *)(param_1 + 0x168); piVar8 = (int *)FUN_100dca80(&local_2c24,&local_2c08); if (*piVar8 != iVar2) { FUN_101417d0(local_4c); local_8 = CONCAT31(local_8._1_3_,2); FUN_10021cc0(); FUN_10112046(piVar15,piVar11,ppOVar17); return; } cVar1 = FUN_100408d0(); if (cVar1 != '\0') { p_Var13 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38), L"AccessManager::ProcessNmxRequest - MxResolveOnPlatformResults failed to find reference " ); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,local_2c08); std::basic_ostream_>::operator<< (pbVar4,p_Var13); } local_8 = CONCAT31(local_8._1_3_,2); FUN_10021cc0(); FUN_10112046(piVar15,piVar11,ppOVar17); return; } if (local_2c10 == (int *)0xd) { FUN_1005f4f0(); local_8._0_1_ = 0x12; piVar15 = param_2; (**(code **)(*local_4c + 0x14))(local_4c,param_2); FUN_1005e580(&local_2c00,param_2); local_2c24 = operator_new(0x48); local_8._0_1_ = 0x13; if (local_2c24 != (undefined1 *)0x0) { FUN_1010d9a0(local_4c,*local_2c0c,local_2c0c[1],local_2c0c[2],local_2c00,param_1); } local_8 = CONCAT31(local_8._1_3_,2); FUN_10021cc0(); FUN_10112046(piVar15,piVar11,ppOVar17); return; } if (local_2c10 == (int *)0xe) { FUN_1005f4f0(); local_8 = CONCAT31(local_8._1_3_,0x14); piVar15 = param_2; (**(code **)(*local_4c + 0x14))(local_4c,param_2); FUN_101004c0(&local_2c00,param_2); FUN_100fd610(&local_2c04,&local_2c00); if (local_2c04 != *(int **)(param_1 + 0x3d4)) { FUN_1009f440(local_4c,local_2c0c[1]); } local_8 = CONCAT31(local_8._1_3_,2); FUN_10021cc0(); FUN_10112046(piVar15,piVar11,ppOVar17); return; } if (local_2c10 == (int *)0x9) { FUN_1008cf70(local_9c,param_2); FUN_1008cf70(local_88,param_2); iVar2 = FUN_10001050(param_1 + 0x1f0,local_9c); if (iVar2 == 0) { local_2bd8 = (uint)local_2bd8._2_2_ << 0x10; local_24 = 5; } else { local_2bd8 = CONCAT22(local_2bd8._2_2_,0xffff); local_24 = 0; } local_20 = (uint)(iVar2 == 0); local_2bcc = 0; local_1c = (uint)uStack_2bca << 0x10; local_28 = local_2bd8; FUN_1005fd00(&local_28,param_3); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if ((local_2c10 != (int *)0x5) && (local_2c10 != (int *)0x6)) { if ((local_2c10 == (int *)0x1f) || ((local_2c10 == (int *)0x2f || (local_2c10 == (int *)0x21)))) { local_2c00 = 0; FUN_1008cf70(&local_28,param_2); *(int *)(param_1 + 0x584) = local_28; *(int *)(param_1 + 0x588) = local_24; *(uint *)(param_1 + 0x58c) = local_20; *(int *)(param_1 + 0x590) = local_1c; if ((local_2c10 == (int *)0x1f) || (local_2c10 == (int *)0x2f)) { FUN_1005e550((short *)(param_1 + 0x594),param_2); if (*(short *)(param_1 + 0x594) == 0) { *(undefined2 *)(param_1 + 0x596) = 0; *(undefined4 *)(param_1 + 0x598) = 0; } else { FUN_1005e550(param_1 + 0x596,param_2); FUN_1005e580(param_1 + 0x598,param_2); } } piVar11 = local_2c10; piVar15 = param_2; FUN_1005d1d0(&uStack_2c14,param_2); uVar16 = (undefined2)((uint)piVar15 >> 0x10); FUN_1005d1d0(&local_2c00,param_2); FUN_101004f0(&local_2bd4,param_2); FUN_1005e580(&local_2c04,param_2); if ((piVar11 == (int *)0x1f) || (piVar11 == (int *)0x2f)) { local_64 = PTR_101a21c4; local_60 = DAT_101a21c8; local_5c = DAT_101a21cc; local_58 = DAT_101a21d0; FUN_10128820(&uStack_2be8,local_2c0c,local_2c04,uStack_2c14,local_2c00,&local_2bd4, &local_28,&local_64,piVar11,param_1 + 0x594); piVar11 = local_2c38; FUN_1005fd00(&uStack_2be8,local_2c38); uStack_2c = (uint)*(ushort *)(param_1 + 0x2ac); uStack_30 = (uint)*(ushort *)(param_1 + 0x2ae); uStack_34 = 1; FUN_10100c50(&uStack_34,piVar11); FUN_1008cfd0(&DAT_101d60ec,piVar11); FUN_1005e4c0(&local_64,piVar11); FUN_1005e4c0(&local_28,piVar11); iVar2 = FUN_10001050(&local_64,&PTR_101a21c4); if ((iVar2 != 0) && (cVar1 = FUN_100408d0(), cVar1 != '\0')) { uVar18 = FUN_10003fc0(uStack_2be8,uStack_2be4,local_2be0,uStack_2bdc); p_Var13 = endl_exref; uVar18 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x2c),L"MxSubscribe2 - status ", uVar18,L" cacheIndex ",local_2c04, L" returning NULL publisher guid"); uVar18 = FUN_1001a0e0(uVar18); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar18); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,(long)local_2c04); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(pbVar4); std::basic_ostream_>:: operator<<(pbVar4,p_Var13); } } else { FUN_10124850(local_2c0c,&local_28,local_2c04,uStack_2c14,local_2bd4, CONCAT22(uStack_2bce,local_2bd0),CONCAT22(uVar16,local_2bcc)); } } else if (((local_2c10 == (int *)0x20) || (local_2c10 == (int *)0x30)) || (local_2c10 == (int *)0x22)) { local_2c00 = 0; local_28 = *(int *)(param_1 + 0x584); local_24 = *(int *)(param_1 + 0x588); local_20 = *(undefined4 *)(param_1 + 0x58c); local_1c = *(undefined4 *)(param_1 + 0x590); piVar11 = param_2; FUN_1005d1d0(&uStack_2c14,param_2); uVar16 = (undefined2)((uint)piVar11 >> 0x10); FUN_1005d1d0(&local_2c00,param_2); FUN_101004f0(&local_2bd4,param_2); FUN_1005e580(&local_2c04,param_2); if ((local_2c10 == (int *)0x20) || (local_2c10 == (int *)0x30)) { local_64 = PTR_101a21c4; local_60 = DAT_101a21c8; local_5c = DAT_101a21cc; local_58 = DAT_101a21d0; FUN_10128820(local_88,local_2c0c,local_2c04,uStack_2c14,local_2c00,&local_2bd4,&local_28 ,&local_64,local_2c10,param_1 + 0x594); FUN_1005fd00(local_88,param_3); uStack_2c = (uint)*(ushort *)(param_1 + 0x2ac); uStack_30 = (uint)*(ushort *)(param_1 + 0x2ae); uStack_34 = 1; FUN_10100c50(&uStack_34,param_3); FUN_1008cfd0(&DAT_101d60ec,param_3); } else { FUN_10124850(local_2c0c,&local_28,local_2c04,uStack_2c14,local_2bd4, CONCAT22(uStack_2bce,local_2bd0),CONCAT22(uVar16,local_2bcc)); } } else { if (local_2c10 == (int *)0x8) { FUN_1005e580(&local_2c24,param_2); FUN_1008cf70(local_88,param_2); FUN_10100ce0(local_74,param_2); FUN_1008cf70(local_120,param_2); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if (local_2c10 == (int *)0x24) { FUN_1005e580(&local_2c00,param_2); FUN_1008cf70(local_e0,param_2); FUN_10100ce0(&local_28,param_2); FUN_1008cf70(local_9c,param_2); cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar3 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x24),param_1,&DAT_1017b6e4); FUN_1001a0e0(uVar3); } FUN_10044c00(local_2c00,local_e0,local_28,local_24,local_20,local_1c,local_9c); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if (local_2c10 == (int *)0xa) { FUN_10044df0(local_2c0c); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if (local_2c10 == (int *)0xf) { FUN_10061c60(); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if (local_2c10 != (int *)0x31) { if (local_2c10 == (int *)0x15) { local_2c2c = (int *)0x15; local_2c28 = (BSTR)((uint)local_2c08 & 0xffff); FUN_100ff1c0(param_2); if ((int)local_2c28._2_2_ - 0x45U < 0x18) { (*(code *)(&PTR_LAB_10112134)[(int)local_2c28._2_2_ - 0x45U])(); return; } } else { if (local_2c10 == (int *)0x10) { FUN_1008d2a0(param_2,local_2c0c); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if (local_2c10 == (int *)0x11) { FUN_10091ed0(param_2); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if (local_2c10 == (int *)0x12) { FUN_1005e580(&local_2c24,param_2); FUN_1008cf70(local_88,param_2); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if (local_2c10 == (int *)0x23) { FUN_1005e580(&local_2c00,param_2); FUN_1008cf70(&local_28,param_2); cVar1 = FUN_10126ef0(local_2c0c,local_2c00,&local_28); if ((cVar1 == '\0') && (cVar1 = FUN_100408d0(), cVar1 != '\0')) { uVar3 = FUN_10047fe0(local_28,local_24,local_20,local_1c); uVar7 = local_2c00; p_Var13 = endl_exref; pbVar4 = (basic_ostream_> * )FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x2c), L"AccessManager::ProcessNmxRequest - MxCancelSubscription failed to remove subscription cacheIndex " ,local_2c00,L" subscriber guid ",uVar3); pbVar4 = std:: basic_ostream_>:: operator<<(pbVar4,uVar7); uVar3 = FUN_1001a0e0(pbVar4); pbVar4 = (basic_ostream_> * )FUN_1001a0e0(uVar3); std::basic_ostream_>:: operator<<(pbVar4,p_Var13); FUN_10112046(ppOVar17,uVar18,uVar19); return; } } else if (local_2c10 == (int *)0x13) { FUN_1005e580(&local_2c00,param_2); if (local_2c00 == 0) { FUN_10061ef0(); FUN_10112046(ppOVar17,uVar18,uVar19); return; } } else { if (local_2c10 != (int *)0x16) { cVar1 = FUN_100f6f20(local_2c10); if (cVar1 != '\0') { FUN_10100e20(&local_2c08,param_2); FUN_10102da0(&local_2c1c,param_2); FUN_10104e90(param_2,local_2bfc,local_2c08,&local_2c74,&local_2c64,&local_2c84, local_d0,local_2c58,&local_ac,&local_2c50,&local_2c4c,&local_bc, &local_2c5c,&local_2c7c); local_2bfc[0] = 1; local_2bfa = CONCAT22(*(undefined2 *)(param_1 + 0x2ac), *(undefined2 *)(param_1 + 0x2ae)); FUN_10005170(); local_64 = (undefined *)((uint)local_64._2_2_ << 0x10); local_60 = 0; local_5c = 0; local_58 = 0; local_2c20 = 0; local_2c11 = 0; local_2c15 = 0; local_8._0_1_ = 0x1d; uVar18 = FUN_10022400(local_2bf6,CONCAT22(local_2bf2,uStack_2bf4)); FUN_10016560(uVar18); local_8 = CONCAT31(local_8._1_3_,0x1e); (**(code **)(*local_2c48 + 0x24)) (local_2c48,&local_2bf2,local_2c74,local_2c40,&local_64); if (7999 < (short)local_58) { local_2c44 = local_2c48; iVar2 = *local_2c48; uVar18 = FUN_10030d80(); (**(code **)(iVar2 + 0x44))(local_2c44,&local_2bf2,&local_64,uVar18); if (local_2c20 == 0) { FUN_1005c2c0(&DAT_1017a514); } } local_5c = 5; local_8 = CONCAT31(local_8._1_3_,0x1d); FUN_10014390(); local_8 = 0x1c; FUN_10110986(); return; } if (extraout_EDX == 0x25) { FUN_1008cf70(local_e0,param_2); FUN_1008cf70(local_9c,param_2); cVar1 = FUN_100408d0(); if (cVar1 != '\0') { uVar3 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x24),param_1, &DAT_1017b6e4); FUN_1001a0e0(uVar3); } FUN_1004d840(local_e0,local_9c,*local_2c0c,local_2c0c[1],local_2c0c[2]); FUN_10112046(ppOVar17,uVar18,uVar19); return; } if ((extraout_EDX == 0x2d) || (extraout_EDX == 0x2e)) { FUN_100838b0(); local_2c24 = (undefined1 *)(param_1 + 0x138); *local_2c24 = 1; local_8._0_1_ = 0x24; FUN_1008cf70(local_74,param_2); local_4c = local_2c10; local_2c04 = (int *)CONCAT31(local_2c04._1_3_,local_2c10 == (int *)0x2d); uVar18 = FUN_10081e00(); local_8._0_1_ = 0x25; uStack_2c = (uint)*(ushort *)(param_1 + 0x2ac); uStack_30 = (uint)*(ushort *)(param_1 + 0x2ae); uStack_34 = 1; uVar18 = FUN_10082820(auStack_2cc4,&uStack_34,uVar18); local_8._0_1_ = 0x26; uVar19 = 0; uVar18 = FUN_10082a00(uVar18); FUN_10083150(&local_2be0,uVar18,uVar19); local_2c68 = (int *)local_2be0; local_8._0_1_ = 0x25; FUN_10081eb0(); local_8 = CONCAT31(local_8._1_3_,0x24); FUN_10081b00(); FUN_100817c0(local_2be0,param_2); local_2c20 = **(int **)(local_2be0 + 0x1c); FUN_10111180(); return; } goto LAB_1011202f; } local_2bd4 = local_2c10; local_2bd0 = 1; uStack_2bce = 0; local_2bcc = 0; FUN_100ff630(param_2); if (CONCAT22(local_2bcc,uStack_2bce) == 1) { local_54 = 0; local_50 = 0; local_4c = (int *)0x0; FUN_100ff5c0(param_2); if (((short)local_3c == 2) || ((short)local_3c == 3)) { FUN_10046810(local_54,local_50,0xffffffff); FUN_10107730(local_54,local_50,local_4c); FUN_10128680(local_54,local_50,local_4c); FUN_10045030(&local_54); FUN_100fd400(local_54,local_50,local_4c,local_48,local_44,local_40,local_3c); if (0 < local_50) { FUN_1002f150(local_50,0xffffffff); } FUN_100ffc90(local_50,local_48,local_44,local_40,local_3c); } else { FUN_10046810(local_54,local_50,local_4c); FUN_10107540(&local_2c24,local_54,local_50,local_4c); FUN_10128510(local_54,local_50,local_4c); FUN_10044df0(&local_54); FUN_1010a5e0(local_54,local_50,local_4c,local_48,local_44,local_40,local_3c); } } if (CONCAT22(local_2bcc,uStack_2bce) == 2) { local_28 = 0; local_24 = 0; local_20 = 0; FUN_100ff670(param_2); if (0 < local_24) { iVar2 = FUN_10022ff0(); if ((*(int *)(iVar2 + 0xb4) == 0) && (iVar5 = FUN_1002f080(), iVar5 == 0)) { uVar3 = 0; } else { uVar3 = *(undefined4 *)(iVar2 + 0xb4); } uVar14 = 0; FUN_10022ff0(uVar3,0); cVar1 = FUN_10022ba0(uVar3,uVar14); if (cVar1 != '\0') { uVar3 = FUN_10022ff0(L"Received RemoteVersion for platform %d version %d", local_24,local_1c); FUN_10022df0(uVar3); } FUN_1002f150(local_24,local_1c); FUN_10112046(ppOVar17,uVar18,uVar19); return; } } } } goto code_r0x10112046; } } } } LAB_1011202f: if ((local_2c10 != (int *)0x0) && (local_2c10 != (int *)0x34)) goto code_r0x10112046; LAB_1011205d: FUN_10103ba0(local_2c38,local_2bfc,local_2c10,&local_2c74,&local_2c64,&local_2c84,local_d0, &local_ac,&local_2c50,&local_2c4c,&local_bc,local_2c5c,local_2c0c,local_2c58[0], local_2c7c,local_2c78); } pcVar9 = SysFreeString_exref; local_8._0_1_ = 1; SysFreeString(local_2c4c); local_8 = (uint)local_8._1_3_ << 8; SysFreeString(local_2c50); local_8 = 0xffffffff; if (local_2c74 != (int *)0x0) { (**(code **)(*local_2c74 + 8))(local_2c74); } LAB_10112114: (*pcVar9)(local_2c70); ExceptionList = local_10; __security_check_cookie(local_18 ^ (uint)&stack0xfffffffc); return; } ``` ## FUN_1010d4a0 at 1010d4a0 Signature: `undefined FUN_1010d4a0(void)` ```c /* WARNING: Removing unreachable block (ram,0x1010d4dc) */ undefined4 __thiscall FUN_1010d4a0(int param_1,uint param_2,long *param_3) { _Container_base0 *p_Var1; undefined4 *puVar2; char cVar3; int iVar4; undefined4 uVar5; basic_ostream_> *pbVar6; int iVar7; uint uVar8; int iVar9; undefined4 *puVar10; long lVar11; long lVar12; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var13; undefined **local_44; LPVOID local_40; undefined4 local_3c; long local_38; undefined4 *local_34; undefined4 *local_30; undefined4 local_2c; int local_24; undefined4 local_20; long local_1c; long local_18; LPVOID local_14; void *local_10; undefined1 *puStack_c; uint local_8; uVar8 = param_2; local_8 = 0; puStack_c = &LAB_10171e10; local_10 = ExceptionList; local_14 = (LPVOID)0x0; ExceptionList = &local_10; local_24 = param_1; iVar4 = (**(code **)(**(int **)(param_1 + 0x270) + 0x50)) (*(int **)(param_1 + 0x270),param_2,&local_20,&local_1c,&local_18,&local_14, DAT_101d60b8 ^ (uint)&stack0xfffffffc); if (iVar4 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar4,0,"e:\\bldsrc\\6\\s\\src\\lmx\\CNmxAdapter.h",99); } if (iVar4 != 0) { local_8 = 0xffffffff; if (local_14 != (LPVOID)0x0) { CoTaskMemFree(local_14); } ExceptionList = local_10; return 0; } *param_3 = local_18; cVar3 = FUN_100408d0(); if (cVar3 != '\0') { uVar8 = uVar8 & 0xff; lVar11 = local_18; lVar12 = local_1c; p_Var13 = endl_exref; uVar5 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x18),param_1, L" AccessManager::ProcessNmxResponses received message block (",local_18, L" bytes) requestId ",local_1c,L" type "); pbVar6 = (basic_ostream_> *) FUN_1001a0e0(uVar5); pbVar6 = std::basic_ostream_>::operator<< (pbVar6,lVar11); pbVar6 = (basic_ostream_> *) FUN_1001a0e0(pbVar6); pbVar6 = std::basic_ostream_>::operator<< (pbVar6,lVar12); pbVar6 = (basic_ostream_> *) FUN_1001a0e0(pbVar6); pbVar6 = std::basic_ostream_>::operator<< (pbVar6,uVar8); std::basic_ostream_>::operator<< (pbVar6,p_Var13); } iVar4 = DAT_101d8c28; if ((int)(10000U - DAT_101d8c28) < 4) { memset(&DAT_101d6518 + DAT_101d8c28,0xfa,10000U - DAT_101d8c28); iVar4 = 0; } *(undefined2 *)(&DAT_101d6518 + iVar4) = 0xfefe; *(undefined2 *)(&DAT_101d651a + iVar4) = 0xfefe; iVar7 = iVar4 + 4; if ((int)(10000U - iVar7) < 1) { memset(&DAT_101d651c + iVar4,0xfa,10000U - iVar7); iVar7 = 0; } (&DAT_101d6518)[iVar7] = (undefined1)local_20; iVar4 = iVar7 + 1; if ((int)(10000U - iVar4) < 4) { memset(&DAT_101d6519 + iVar7,0xfa,10000U - iVar4); iVar4 = 0; } (&DAT_101d6518)[iVar4] = (char)((uint)local_18 >> 0x18); (&DAT_101d6519)[iVar4] = (char)((uint)local_18 >> 0x10); (&DAT_101d651a)[iVar4] = (char)((uint)local_18 >> 8); (&DAT_101d651b)[iVar4] = (char)local_18; iVar7 = iVar4 + 4; if ((int)(10000U - iVar7) < 4) { memset(&DAT_101d651c + iVar4,0xfa,10000U - iVar7); iVar7 = 0; } (&DAT_101d6518)[iVar7] = (char)((uint)local_1c >> 0x18); (&DAT_101d6519)[iVar7] = (char)((uint)local_1c >> 0x10); (&DAT_101d651a)[iVar7] = (char)((uint)local_1c >> 8); (&DAT_101d651b)[iVar7] = (char)local_1c; DAT_101d8c28 = iVar7 + 4; FUN_100fd6e0(¶m_2,&local_1c); uVar8 = param_2; if (param_2 != *(uint *)(param_1 + 0x2a0)) { local_34 = (undefined4 *)0x0; local_30 = (undefined4 *)0x0; local_2c = 0; local_8 = CONCAT31(local_8._1_3_,2); local_3c = 0; p_Var1 = (_Container_base0 *)(param_2 + 0x1c); local_40 = local_14; local_38 = local_18; local_44 = MoreAccessFastReadOnlyStream::vftable; if ((_Container_base0 *)&local_34 != p_Var1) { std::_Container_base0::_Swap_all((_Container_base0 *)&local_34,p_Var1); puVar10 = *(undefined4 **)p_Var1; *(undefined4 **)p_Var1 = local_34; puVar2 = *(undefined4 **)(uVar8 + 0x20); *(undefined4 **)(uVar8 + 0x20) = local_30; uVar5 = *(undefined4 *)(uVar8 + 0x24); *(undefined4 *)(uVar8 + 0x24) = local_2c; local_34 = puVar10; local_30 = puVar2; local_2c = uVar5; } FUN_10078cb0(¶m_2,uVar8); puVar2 = local_30; puVar10 = local_34; iVar7 = (int)local_30 - (int)local_34; iVar9 = iVar7 >> 5; iVar4 = DAT_101d8c28; if ((int)(10000U - DAT_101d8c28) < 4) { memset(&DAT_101d6518 + DAT_101d8c28,0xfa,10000U - DAT_101d8c28); iVar4 = 0; } (&DAT_101d6518)[iVar4] = (char)(iVar7 >> 0x1d); (&DAT_101d6519)[iVar4] = (char)((uint)iVar9 >> 0x10); (&DAT_101d651a)[iVar4] = (char)((uint)iVar9 >> 8); (&DAT_101d651b)[iVar4] = (char)iVar9; iVar7 = iVar4 + 4; if (puVar10 != puVar2) { iVar4 = iVar4 + 4; puVar10 = puVar10 + 5; do { if ((int)(10000U - iVar4) < 4) { memset(&DAT_101d6518 + iVar4,0xfa,10000U - iVar4); iVar4 = 0; } *(undefined2 *)(&DAT_101d6518 + iVar4) = 0x2222; *(undefined2 *)(&DAT_101d651a + iVar4) = 0x2222; iVar7 = iVar4 + 4; uVar5 = puVar10[-4]; DAT_101d8c28 = iVar7; if ((int)(10000U - iVar7) < 1) { memset(&DAT_101d651c + iVar4,0xfa,10000U - iVar7); iVar7 = 0; } (&DAT_101d6518)[iVar7] = (char)uVar5; iVar4 = iVar7 + 1; if ((int)(10000U - iVar4) < 4) { memset(&DAT_101d6519 + iVar7,0xfa,10000U - iVar4); iVar4 = 0; } (&DAT_101d6518)[iVar4] = (char)((uint)local_3c >> 0x18); (&DAT_101d6519)[iVar4] = (char)((uint)local_3c >> 0x10); (&DAT_101d651a)[iVar4] = (char)((uint)local_3c >> 8); (&DAT_101d651b)[iVar4] = (char)local_3c; DAT_101d8c28 = iVar4 + 4; FUN_1010bd10(&local_44,local_20,puVar10[-4],puVar10[-3],puVar10[-2],puVar10[-1],*puVar10, puVar10[1],puVar10[2]); puVar2 = puVar10 + 3; iVar7 = DAT_101d8c28; iVar4 = DAT_101d8c28; puVar10 = puVar10 + 8; } while (puVar2 != local_30); } if ((int)(10000U - iVar7) < 4) { memset(&DAT_101d6518 + iVar7,0xfa,10000U - iVar7); iVar7 = 0; } (&DAT_101d6518)[iVar7] = (char)((uint)local_3c >> 0x18); (&DAT_101d6519)[iVar7] = (char)((uint)local_3c >> 0x10); (&DAT_101d651a)[iVar7] = (char)((uint)local_3c >> 8); (&DAT_101d651b)[iVar7] = (char)local_3c; DAT_101d8c28 = iVar7 + 4; local_8 = local_8 & 0xffffff00; if (local_34 != (undefined4 *)0x0) { std::_Container_base0::_Orphan_all((_Container_base0 *)&local_34); operator_delete(local_34); } local_34 = (undefined4 *)0x0; local_30 = (undefined4 *)0x0; local_2c = 0; } local_8 = 0xffffffff; if (local_14 != (LPVOID)0x0) { CoTaskMemFree(local_14); } ExceptionList = local_10; return 1; } ``` ## FUN_100860c0 at 100860c0 Signature: `undefined FUN_100860c0(void)` ```c void FUN_100860c0(void *param_1,int *param_2,undefined4 param_3,ushort param_4,undefined4 param_5, undefined4 param_6,undefined4 param_7,undefined4 param_8,char param_9, undefined4 param_10) { char cVar1; basic_ostream_> *pbVar2; void *pvVar3; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var4; uint uStack_458; BSTR local_43c; void *local_438; uint local_434; uint local_20; undefined1 *local_1c; void *local_14; undefined1 *puStack_10; uint local_c; undefined4 local_8; local_8 = 0xfffffffe; puStack_10 = &LAB_10150ad2; local_14 = ExceptionList; local_c = DAT_101d60b8 ^ 0x101bd3b8; uStack_458 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; local_1c = (undefined1 *)&uStack_458; ExceptionList = &local_14; local_438 = param_1; local_434 = (uint)param_4; local_20 = uStack_458; cVar1 = FUN_100408d0(); if (cVar1 != '\0') { pvVar3 = local_438; p_Var4 = endl_exref; pbVar2 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14), L"AccessManager::doGetOrSetCallback - reference "); pbVar2 = std::basic_ostream_>::operator<< (pbVar2,pvVar3); std::basic_ostream_>::operator<< (pbVar2,p_Var4); } if (param_2 == (int *)0x0) { cVar1 = FUN_100408d0(); if (cVar1 != '\0') { p_Var4 = endl_exref; pbVar2 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14), L"doGetOrSetCallback found NULL callback address"); std::basic_ostream_>::operator<< (pbVar2,p_Var4); } } else { local_8 = 0; if (param_9 == '\0') { (**(code **)(*param_2 + 4))(param_3,local_434,param_5,param_6,param_7); } else { FUN_1014ed80(param_7,param_8,&local_43c); if (local_43c == (BSTR)0x0) { (**(code **)(*param_2 + 8))(param_10,param_3,local_434,param_5,param_6,param_7,0); } else { (**(code **)(*param_2 + 8))(param_10,param_3,local_434,param_5,param_6,param_7,local_43c); SysFreeString(local_43c); } } local_8 = 0xfffffffe; } ExceptionList = local_14; __security_check_cookie(local_20 ^ (uint)&stack0xfffffffc); return; } ``` ## FUN_10067aa0 at 10067aa0 Signature: `undefined FUN_10067aa0(void)` ```c void __thiscall FUN_10067aa0(int param_1,byte *param_2,undefined4 param_3) { int *piVar1; uint uVar2; int iVar3; int *local_5c; BSTR local_58; undefined **local_54 [2]; void *local_4c; uint local_40; undefined1 local_39; undefined1 local_38 [4]; uint local_34; uint local_30; uint local_2c; undefined1 local_28 [2]; undefined4 local_26; undefined4 local_22; undefined4 local_1e; undefined4 local_1a; undefined2 local_16; uint local_14; void *local_10; undefined1 *puStack_c; int local_8; local_8 = 0xffffffff; puStack_c = &LAB_1015f7b0; local_10 = ExceptionList; uVar2 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_14 = uVar2; FUN_10005550(param_3); local_8 = 0; if (param_2 != (byte *)0x0) { if (((*(ushort *)(param_2 + 4) == *(ushort *)(param_1 + 0x2ac)) && (*(short *)(param_2 + 2) == *(short *)(param_1 + 0x2ae))) && (*param_2 == 1)) { uVar2 = (uint)*(ushort *)(param_2 + 6); if ((uVar2 < (uint)((*(int *)(param_1 + 0x3c4) - *(int *)(param_1 + 0x3c0)) / 0x24)) && (*(int *)(*(int *)(param_1 + 0x3c0) + uVar2 * 0x24) != 0)) { piVar1 = *(int **)(*(int *)(param_1 + 0x3c0) + uVar2 * 0x24); (**(code **)(*piVar1 + 0x2c))(piVar1,param_2 + 10,local_5c,0,local_38); } } else { local_34 = (uint)*param_2; local_30 = (uint)*(ushort *)(param_2 + 2); local_2c = (uint)*(ushort *)(param_2 + 4); FUN_10031c20(8); local_8._0_1_ = 1; local_39 = 3; iVar3 = (*(code *)local_54[0][4])(local_54,&local_39,1,0,uVar2); if (iVar3 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar3,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x19); } local_40 = 1; iVar3 = (*(code *)local_54[0][4])(local_54,&local_40,2,0); if (iVar3 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar3,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x19); } local_40 = (uint)*(ushort *)(param_2 + 6); iVar3 = (*(code *)local_54[0][4])(local_54,&local_40,2,0); if (iVar3 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar3,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x19); } local_40 = (uint)*(ushort *)(param_2 + 8); iVar3 = (*(code *)local_54[0][4])(local_54,&local_40,2,0); if (iVar3 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar3,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x19); } iVar3 = (*(code *)local_54[0][4])(local_54,param_2 + 10,10,0); if (iVar3 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar3,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x19); } iVar3 = (**(code **)(*local_5c + 0x18))(local_5c,local_54,0); if (iVar3 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar3,0,"AccessManager.cpp",0x6e4); } local_28[0] = 0; local_26 = 0; local_22 = 0; local_1e = 0; local_1a = 0; local_16 = 0; FUN_10066650(local_28,local_54); FUN_1010ad00(0,&local_34,3,local_54,0,2,0,0,0,0,0); local_8 = (uint)local_8._1_3_ << 8; local_54[0] = FastStream::vftable; if (local_4c != (void *)0x0) { free(local_4c); } } } local_8 = 0xffffffff; if (local_5c != (int *)0x0) { (**(code **)(*local_5c + 8))(local_5c); } SysFreeString(local_58); ExceptionList = local_10; __security_check_cookie(local_14 ^ (uint)&stack0xfffffffc); return; } ``` ## FUN_10100e20 at 10100e20 Signature: `undefined FUN_10100e20(void)` ```c void FUN_10100e20(uint *param_1,int *param_2) { int iVar1; iVar1 = (**(code **)(*param_2 + 0xc))(param_2,(int)¶m_2 + 3,1,0); if (iVar1 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar1,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } *param_1 = (uint)param_2 >> 0x18; return; } ``` ## FUN_10101360 at 10101360 Signature: `undefined FUN_10101360(void)` ```c void __fastcall FUN_10101360(int param_1) { undefined4 *puVar1; char cVar2; undefined4 uVar3; int *piVar4; int *piVar5; uint uVar6; int iVar7; int *piVar8; undefined2 *puVar9; int local_220; wchar_t local_21c [260]; uint local_14; void *local_10; undefined1 *puStack_c; undefined4 local_8; puStack_c = &LAB_101709ee; local_10 = ExceptionList; uVar6 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; uVar3 = *(undefined4 *)(param_1 + 0x3fc); local_14 = uVar6; if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 0; FUN_10003a90(uVar6); _atexit(FUN_101792e0); } local_8 = 0xffffffff; FUN_10022d50(&DAT_101d6370,L"AccessManager::DumpState - remotePlatformResolvers.size %d",uVar3); if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 1; FUN_10003a90(uVar6); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,L" remotePlatformResolvers.sendResultsRetryCount %d", *(undefined4 *)(param_1 + 0x404)); piVar8 = (int *)**(int **)(param_1 + 0x3f8); local_220 = 0; if (piVar8 != *(int **)(param_1 + 0x3f8)) { do { if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 2; FUN_10003a90(); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,L" remotePlatformResolvers[%d].this %x",local_220, piVar8[3]); iVar7 = piVar8[3]; SysFreeString(*(BSTR *)(iVar7 + 8)); *(undefined4 *)(iVar7 + 8) = 0; iVar7 = (**(code **)(**(int **)(iVar7 + 4) + 0x20)) (*(int **)(iVar7 + 4),(undefined4 *)(iVar7 + 8)); if (iVar7 < 0) { LAB_10101768: /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar7,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x3f); } iVar7 = piVar8[3]; puVar1 = (undefined4 *)(iVar7 + 8); SysFreeString(*(BSTR *)(iVar7 + 8)); *puVar1 = 0; iVar7 = (**(code **)(**(int **)(iVar7 + 4) + 0x20))(*(int **)(iVar7 + 4),puVar1); if (iVar7 < 0) goto LAB_10101768; puVar9 = (undefined2 *)*puVar1; if (puVar9 == (undefined2 *)0x0) { puVar9 = &DAT_1017a514; } if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 3; FUN_10003a90(); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,L" remotePlatformResolvers[%d].mxReference %s",local_220,puVar9 ); iVar7 = piVar8[3]; _snwprintf_s(local_21c,0x104,0xffffffff,L"", *(undefined4 *)(iVar7 + 0x18),*(undefined4 *)(iVar7 + 0x1c), *(undefined4 *)(iVar7 + 0x20)); if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 4; FUN_10003a90(); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,L" remotePlatformResolvers[%d].requesterEngine %s",local_220, local_21c); if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 5; FUN_10003a90(); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,L" remotePlatformResolvers[%d].requesterData %x",local_220, *(undefined4 *)(piVar8[3] + 0x24)); if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 6; FUN_10003a90(); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,L" remotePlatformResolvers[%d].currentEngineId %x",local_220, *(undefined4 *)(piVar8[3] + 0x2c)); if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 7; FUN_10003a90(); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,L" remotePlatformResolvers[%d].retryCount %d",local_220, *(undefined4 *)(piVar8[3] + 0x44)); if (*(char *)((int)piVar8 + 0x11) == '\0') { piVar4 = (int *)piVar8[2]; if (*(char *)((int)piVar4 + 0x11) == '\0') { cVar2 = *(char *)(*piVar4 + 0x11); piVar8 = piVar4; piVar4 = (int *)*piVar4; while (cVar2 == '\0') { cVar2 = *(char *)(*piVar4 + 0x11); piVar8 = piVar4; piVar4 = (int *)*piVar4; } } else { cVar2 = *(char *)(piVar8[1] + 0x11); piVar5 = (int *)piVar8[1]; piVar4 = piVar8; while ((piVar8 = piVar5, cVar2 == '\0' && (piVar4 == (int *)piVar8[2]))) { cVar2 = *(char *)(piVar8[1] + 0x11); piVar5 = (int *)piVar8[1]; piVar4 = piVar8; } } } local_220 = local_220 + 1; } while (piVar8 != *(int **)(param_1 + 0x3f8)); } if ((DAT_101d6444 & 1) == 0) { DAT_101d6444 = DAT_101d6444 | 1; local_8 = 8; FUN_10003a90(); _atexit(FUN_101792e0); local_8 = 0xffffffff; } FUN_10022d50(&DAT_101d6370,&DAT_1017a514); ExceptionList = local_10; __security_check_cookie(local_14 ^ (uint)&stack0xfffffffc); return; } ```