# Lmx.dll selected decompile ## FUN_1010b990 at 1010b990 Signature: `undefined FUN_1010b990(void)` ```c void __thiscall FUN_1010b990(undefined4 *param_1,char param_2,short *param_3,int *param_4) { int *piVar1; char cVar2; undefined4 uVar3; basic_ostream_> *pbVar4; int iVar5; short *psVar6; int *piVar7; int *piVar8; int *piVar9; int *piVar10; wchar_t *pwVar11; undefined4 *puVar12; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var13; uint local_224; wchar_t local_220 [260]; short local_18 [2]; uint local_14; uint local_10; undefined2 local_c; uint local_8; local_8 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; if (param_2 == '\0') { cVar2 = FUN_100408d0(); if (cVar2 == '\0') goto LAB_1010bb4d; uVar3 = *(undefined4 *)(DAT_101d6474 + 0x44); puVar12 = param_1 + 5; pwVar11 = L"ScanOnDemandCallback::MultipleOperationComplete with sameStatus FALSE - destEngine " ; p_Var13 = endl_exref; } else { cVar2 = FUN_100408d0(); if (cVar2 != '\0') { swprintf_s(local_220,0x104,L"", (int)(short)*(undefined4 *)param_3,*(undefined4 *)(param_3 + 2), *(undefined4 *)(param_3 + 4),(int)param_3[6]); p_Var13 = endl_exref; uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x44), L"ScanOnDemandCallback::MultipleOperationComplete with sameStatus TRUE - mxStatus " ,local_220,L" destEngine ",param_1 + 5); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_1001a0e0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001db00(uVar3); std::basic_ostream_>::operator<< (pbVar4,p_Var13); } if (((*param_3 != 0) || (*(int *)(param_3 + 2) != 3)) || ((param_3[6] != 2 && (param_3[6] != 1)))) goto LAB_1010bb4d; if ((int)param_1[0xf] < 4) { param_1[0xf] = param_1[0xf] + 1; FUN_1010ad00(0,param_1 + 5,param_1[9],param_1 + 10,0,2,param_1,0,0,0,0); __security_check_cookie(local_8 ^ (uint)&stack0xfffffffc); return; } cVar2 = FUN_100408d0(); if (cVar2 == '\0') goto LAB_1010bb4d; puVar12 = param_1 + 5; pwVar11 = L" message to destEngine "; p_Var13 = endl_exref; uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 4), L"ScanOnDemandCallback::OperationComplete - Send retry limit reached for ", param_1[9],L" message to destEngine ",puVar12); uVar3 = FUN_100a68d0(uVar3); } uVar3 = FUN_1001a0e0(uVar3,pwVar11,puVar12); pbVar4 = (basic_ostream_> *) FUN_1001db00(uVar3); std::basic_ostream_>::operator<< (pbVar4,p_Var13); LAB_1010bb4d: piVar8 = *(int **)param_1[2]; if (piVar8 != (int *)param_1[2]) { do { piVar10 = *(int **)piVar8[5]; if (piVar10 != (int *)piVar8[5]) { do { piVar9 = *(int **)piVar10[5]; if (piVar9 != (int *)piVar10[5]) { do { if (param_2 == '\0') { iVar5 = (**(code **)(*param_4 + 0xc))(param_4,&local_224,4,0); if (iVar5 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar5,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } local_18[0] = -(ushort)((local_224 & 0x80000000) != 0); local_10 = local_224 >> 0x14 & 0xf; piVar7 = (int *)piVar9[7]; local_14 = local_224 >> 0x18 & 0xf; local_c = (undefined2)local_224; if (piVar7 != (int *)0x0) { psVar6 = local_18; goto LAB_1010bbf0; } } else { piVar7 = (int *)piVar9[7]; psVar6 = param_3; if (piVar7 != (int *)0x0) { LAB_1010bbf0: (**(code **)(*piVar7 + 0x14))(0,psVar6); } } if (*(char *)((int)piVar9 + 0x21) == '\0') { piVar7 = (int *)piVar9[2]; if (*(char *)((int)piVar7 + 0x21) == '\0') { cVar2 = *(char *)(*piVar7 + 0x21); piVar9 = piVar7; piVar7 = (int *)*piVar7; while (cVar2 == '\0') { cVar2 = *(char *)(*piVar7 + 0x21); piVar9 = piVar7; piVar7 = (int *)*piVar7; } } else { cVar2 = *(char *)(piVar9[1] + 0x21); piVar1 = (int *)piVar9[1]; piVar7 = piVar9; while ((piVar9 = piVar1, cVar2 == '\0' && (piVar7 == (int *)piVar9[2]))) { cVar2 = *(char *)(piVar9[1] + 0x21); piVar1 = (int *)piVar9[1]; piVar7 = piVar9; } } } } while (piVar9 != (int *)piVar10[5]); } if (*(char *)((int)piVar10 + 0x21) == '\0') { piVar9 = (int *)piVar10[2]; if (*(char *)((int)piVar9 + 0x21) == '\0') { cVar2 = *(char *)(*piVar9 + 0x21); piVar10 = piVar9; piVar9 = (int *)*piVar9; while (cVar2 == '\0') { cVar2 = *(char *)(*piVar9 + 0x21); piVar10 = piVar9; piVar9 = (int *)*piVar9; } } else { cVar2 = *(char *)(piVar10[1] + 0x21); piVar7 = (int *)piVar10[1]; piVar9 = piVar10; while ((piVar10 = piVar7, cVar2 == '\0' && (piVar9 == (int *)piVar10[2]))) { cVar2 = *(char *)(piVar10[1] + 0x21); piVar7 = (int *)piVar10[1]; piVar9 = piVar10; } } } } while (piVar10 != (int *)piVar8[5]); } if (*(char *)((int)piVar8 + 0x21) == '\0') { piVar10 = (int *)piVar8[2]; if (*(char *)((int)piVar10 + 0x21) == '\0') { cVar2 = *(char *)(*piVar10 + 0x21); piVar8 = piVar10; piVar10 = (int *)*piVar10; while (cVar2 == '\0') { cVar2 = *(char *)(*piVar10 + 0x21); piVar8 = piVar10; piVar10 = (int *)*piVar10; } } else { cVar2 = *(char *)(piVar8[1] + 0x21); piVar9 = (int *)piVar8[1]; piVar10 = piVar8; while ((piVar8 = piVar9, cVar2 == '\0' && (piVar10 == (int *)piVar8[2]))) { cVar2 = *(char *)(piVar8[1] + 0x21); piVar9 = (int *)piVar8[1]; piVar10 = piVar8; } } } } while (piVar8 != (int *)param_1[2]); } (**(code **)*param_1)(1); __security_check_cookie(local_8 ^ (uint)&stack0xfffffffc); return; } ``` ## FUN_1010dc80 at 1010dc80 Signature: `undefined FUN_1010dc80(void)` ```c void __thiscall FUN_1010dc80(undefined4 *param_1,undefined4 param_2,short *param_3) { char cVar1; undefined4 uVar2; basic_ostream_> *pbVar3; int iVar4; int iVar5; long lVar6; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var7; undefined4 uVar8; wchar_t local_210 [260]; uint local_8; local_8 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; cVar1 = FUN_100408d0(); if (cVar1 != '\0') { swprintf_s(local_210,0x104,L"", (int)(short)*(undefined4 *)param_3,*(undefined4 *)(param_3 + 2), *(undefined4 *)(param_3 + 4),(int)param_3[6]); lVar6 = param_1[9]; p_Var7 = endl_exref; uVar2 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38), L"RemotePlatformResolver::OperationComplete - mxStatus ",local_210, L" requesterEngine ",param_1 + 6,L" requesterData "); uVar2 = FUN_1001a0e0(uVar2); uVar2 = FUN_1001a0e0(uVar2); uVar2 = FUN_1001db00(uVar2); pbVar3 = (basic_ostream_> *) FUN_1001a0e0(uVar2); pbVar3 = std::basic_ostream_>::operator<< (pbVar3,lVar6); std::basic_ostream_>::operator<< (pbVar3,p_Var7); } if (((*param_3 != 0) || (*(int *)(param_3 + 2) != 3)) || ((param_3[6] != 2 && (param_3[6] != 1)))) goto LAB_1010de0d; if ((int)param_1[0x11] < 4) { param_1[0x11] = param_1[0x11] + 1; *(int *)(param_1[10] + 0x404) = *(int *)(param_1[10] + 0x404) + 1; FUN_1010ad00(0,param_1 + 6,0xe,param_1 + 0xc,0,0,param_1,0,0,0,0); __security_check_cookie(local_8 ^ (uint)&stack0xfffffffc); return; } iVar4 = FUN_10022ff0(); if (*(int *)(iVar4 + 0xac) == 0) { iVar5 = FUN_1002f080(); if (iVar5 != 0) goto LAB_1010ddd5; uVar2 = 0; } else { LAB_1010ddd5: uVar2 = *(undefined4 *)(iVar4 + 0xac); } uVar8 = 0; FUN_10022ff0(uVar2,0); cVar1 = FUN_10022ba0(uVar2,uVar8); if (cVar1 != '\0') { uVar2 = FUN_10022ff0(L"RemotePlatformResolver::OperationComplete - Send retry count for MxResolveOffPlatformResults message to requesterEngine g %d p %d e %d" ,param_1[6],param_1[7],param_1[8]); FUN_10022cb0(uVar2); } LAB_1010de0d: if (param_1 != (undefined4 *)0x0) { (**(code **)*param_1)(1); } __security_check_cookie(local_8 ^ (uint)&stack0xfffffffc); return; } ``` ## FUN_1010bd10 at 1010bd10 Signature: `undefined FUN_1010bd10(void)` ```c void FUN_1010bd10(int *param_1,long param_2,int param_3,BSTR param_4,int param_5,long param_6, void *param_7,int param_8,int param_9) { int iVar1; char cVar2; undefined4 uVar3; basic_ostream_> *pbVar4; int *piVar5; int iVar6; undefined4 uVar7; int iVar8; undefined4 *puVar9; undefined4 *puVar10; long lVar11; long lVar12; BSTR pOVar13; void *pvVar14; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var15; undefined4 local_354; undefined4 local_350; uint local_34c; undefined4 local_348 [8]; int *local_328; BSTR local_324; undefined4 local_320; undefined4 local_31c; int local_314; uint local_310; void *local_30c; undefined4 local_308; undefined4 local_304; undefined4 local_300; BSTR local_2fc; long local_2f8; long local_2f4; int local_2f0; char local_2e9; void *local_2e8; BSTR local_2e4; int local_2e0; undefined *local_54; int local_50; int local_4c; int local_48; undefined *local_44; int local_40; int local_3c; int local_38; undefined4 local_34; undefined4 local_30; undefined4 local_2c; undefined4 local_28; undefined4 local_24; int local_20; undefined4 local_1c; uint local_18; uint local_14; void *local_10; undefined1 *puStack_c; uint local_8; local_8 = 0xffffffff; puStack_c = &LAB_10171dc6; local_10 = ExceptionList; local_14 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_2f4 = param_2; local_2e0 = param_3; local_2f0 = param_5; local_2f8 = param_6; local_30c = param_7; local_2e4 = param_4; local_300 = 0; local_308 = DAT_101d6504; local_304 = DAT_101d6508; FUN_10005170(local_14); local_24 = (uint)local_24._2_2_ << 0x10; local_20 = 0; local_1c = 0; local_18 = 0; local_2e9 = '\0'; local_2fc = (BSTR)0x0; local_8 = 1; local_320 = 0; local_3c = DAT_101a21cc; local_4c = DAT_101a21cc; local_30 = 0; local_2c = 0; local_28 = 0; local_44 = PTR_101a21c4; local_40 = DAT_101a21c8; local_38 = DAT_101a21d0; local_54 = PTR_101a21c4; local_50 = DAT_101a21c8; local_48 = DAT_101a21d0; cVar2 = FUN_100408d0(); if (cVar2 != '\0') { lVar12 = local_2f4; lVar11 = local_2f8; p_Var15 = endl_exref; uVar3 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x18),local_2e8,&DAT_1017b6e4, L"GetResponse ",local_2e0,L" responseCode ",local_2f4,L" correlationId "); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_100a68d0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar3); pbVar4 = std::basic_ostream_>::operator<< (pbVar4,lVar12); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(pbVar4); pbVar4 = std::basic_ostream_>::operator<< (pbVar4,lVar11); std::basic_ostream_>::operator<< (pbVar4,p_Var15); } pvVar14 = local_2e8; if (local_2f4 == 0) { if (((local_2e0 == 0) || (local_2e0 == 0x34)) || (cVar2 = FUN_100029c0(local_2e0), cVar2 != '\0')) { FUN_10100ce0(&local_24,param_1); (**(code **)(*local_328 + 0x14))(local_328,param_1); iVar8 = local_2e0; if ((local_2e0 == 0) || (local_2e0 == 0x34)) { iVar6 = (**(code **)(*param_1 + 0xc))(param_1,&local_300,2,0); if (iVar6 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar6,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } if (iVar8 == 0x34) { cVar2 = FUN_100408d0(); if (cVar2 != '\0') { uVar3 = FUN_10004010(local_308,local_304); uVar7 = FUN_100040a0(local_300); lVar11 = 0; lVar12 = local_2f8; p_Var15 = endl_exref; uVar3 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x18),local_2e8,&DAT_1017b6e4, L"GetResponse ",0x34,L" responseCode ",0,L" correlationId ", local_2f8,L" quality ",uVar7,L" timestamp ",uVar3); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_100a68d0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar3); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,lVar11); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(pbVar4); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,lVar12); uVar3 = FUN_1001a0e0(pbVar4); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_1001a0e0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar3); std::basic_ostream_>::operator<< (pbVar4,p_Var15); } iVar8 = (**(code **)(*param_1 + 0xc))(param_1,&local_308,8,0); goto LAB_1010c44d; } } goto LAB_1010cc29; } if (local_2e0 != 5) { if ((local_2e0 == 0x1f) || (local_2e0 == 0x2f)) { FUN_10100ce0(&local_24,param_1); FUN_10100bc0(&local_30,param_1); iVar8 = (**(code **)(*param_1 + 0xc))(param_1,&local_320,4,0); if ((iVar8 < 0) || ((iVar8 = (**(code **)(*param_1 + 0xc))(param_1,&local_44,0x10,0), iVar8 < 0 || (iVar8 = (**(code **)(*param_1 + 0xc))(param_1,&local_54,0x10,0), iVar8 < 0)))) goto LAB_1010c455; puVar9 = (undefined4 *)FUN_100f6dc0(); local_354 = local_30; local_350 = local_2c; local_34c = local_28; puVar10 = local_348; for (iVar8 = 8; pvVar14 = local_2e8, iVar8 != 0; iVar8 = iVar8 + -1) { *puVar10 = *puVar9; puVar9 = puVar9 + 1; puVar10 = puVar10 + 1; } uVar7 = 0; uVar3 = FUN_100fe160(&local_354); FUN_100fdde0(&local_314,uVar3,uVar7); if (local_314 == *(int *)((int)pvVar14 + 0x6e4)) { local_314 = FUN_1006b760(0x8007000e); } *(undefined **)(local_314 + 0x18) = local_44; *(int *)(local_314 + 0x1c) = local_40; *(int *)(local_314 + 0x20) = local_3c; *(int *)(local_314 + 0x24) = local_38; *(undefined **)(local_314 + 0x28) = local_54; *(int *)(local_314 + 0x2c) = local_50; *(int *)(local_314 + 0x30) = local_4c; *(int *)(local_314 + 0x34) = local_48; param_4 = local_2e4; LAB_1010cc29: if ((((((local_2e0 == 1) || (local_2e0 == 4)) || (local_2e0 == 0x26)) || ((local_2e0 == 0x28 || (local_2e0 == 0x3d)))) || ((local_2e0 == 0x3f || ((local_2e0 == 0x35 || (local_2e0 == 0x38)))))) && (7999 < (short)local_18)) { SysFreeString(local_2fc); local_2fc = (BSTR)0x0; SysFreeString((BSTR)0x0); local_2fc = (BSTR)0x0; FUN_10102c70(&local_2e4,param_1); pOVar13 = local_2e4; if (local_2e4 != (BSTR)0x0) { SysFreeString((BSTR)0x0); local_2fc = pOVar13; } } goto LAB_1010ccab; } if ((local_2e0 == 0x20) || (local_2e0 == 0x30)) { FUN_10100ce0(&local_24,param_1); FUN_10100bc0(&local_30,param_1); FUN_1005e580(&local_320,param_1); pvVar14 = local_2e8; FUN_100fd9c0(&local_2e4,&local_30); if (local_2e4 == *(BSTR *)((int)pvVar14 + 0x6e4)) { local_44 = PTR_101a21c4; local_40 = DAT_101a21c8; local_3c = DAT_101a21cc; local_38 = DAT_101a21d0; local_54 = PTR_101a21c4; local_50 = DAT_101a21c8; local_4c = DAT_101a21cc; local_48 = DAT_101a21d0; } else { local_44 = *(undefined **)(local_2e4 + 0xc); local_40 = *(int *)(local_2e4 + 0xe); local_3c = *(int *)(local_2e4 + 0x10); local_38 = *(int *)(local_2e4 + 0x12); local_54 = *(undefined **)(local_2e4 + 0x14); local_50 = *(int *)(local_2e4 + 0x16); local_4c = *(int *)(local_2e4 + 0x18); local_48 = *(int *)(local_2e4 + 0x1a); } goto LAB_1010cc29; } if ((local_2e0 == 0xe) && (param_4 != (BSTR)0x0)) { local_24 = CONCAT22(local_24._2_2_,0xffff); goto LAB_1010c0f5; } cVar2 = FUN_100f6f20(local_2e0); if (cVar2 == '\0') goto LAB_1010cc29; FUN_10100ce0(&local_24,param_1); cVar2 = FUN_100f6fe0(local_2e0); if ((((cVar2 != '\0') && ((short)local_24 == 0)) && (local_20 == 4)) && ((short)local_18 == 0x1f42)) { local_2e9 = '\x01'; } (**(code **)(*local_328 + 0x14))(local_328,param_1); if (7999 < (short)local_18) { SysFreeString((BSTR)0x0); local_2fc = (BSTR)0x0; FUN_10102ce0(&local_2fc,param_1); } FUN_100860c0(local_2f0,local_2f0,local_328,local_300,local_308,local_304,&local_24,local_2fc,1 ,local_2f8); SysFreeString(local_2fc); local_2fc = (BSTR)0x0; if (local_2e0 != 0x17) { FUN_10100ce0(&local_24,param_1); (**(code **)(*local_328 + 0x14))(local_328,param_1); if (((local_2e0 == 0x18) || (local_2e0 == 0x39)) && (FUN_1005e550(&local_300,param_1), local_2e0 == 0x39)) { cVar2 = FUN_100408d0(); if (cVar2 != '\0') { uVar3 = FUN_10004010(local_308,local_304); uVar7 = FUN_100040a0(local_300); lVar11 = 0; lVar12 = local_2f8; p_Var15 = endl_exref; uVar3 = FUN_1001db60(*(undefined4 *)(DAT_101d6474 + 0x18),local_2e8,&DAT_1017b6e4, L"GetResponse ",0x39,L" responseCode ",0,L" correlationId ", local_2f8,L" quality ",uVar7,L" timestamp ",uVar3); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_100a68d0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar3); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,lVar11); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(pbVar4); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,lVar12); uVar3 = FUN_1001a0e0(pbVar4); uVar3 = FUN_1001a0e0(uVar3); uVar3 = FUN_1001a0e0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(uVar3); std::basic_ostream_>::operator<< (pbVar4,p_Var15); } FUN_101006e0(&local_308,param_1); goto LAB_1010ccf0; } if ((((local_2e0 == 0x19) || (local_2e0 == 0x1a)) || ((local_2e0 == 0x2a || (local_2e0 == 0x2b)))) && (7999 < (short)local_18)) { SysFreeString((BSTR)0x0); local_2fc = (BSTR)0x0; FUN_10102ce0(&local_2fc,param_1); } goto LAB_1010cc29; } local_2e4 = (BSTR)0x0; FUN_10100e20(&local_2e4); FUN_10100ce0(&local_24,param_1); FUN_10100bc0(&local_30,param_1); FUN_1005e580(&local_320,param_1); cVar2 = FUN_100408d0(); pOVar13 = local_2e4; if (cVar2 != '\0') { p_Var15 = endl_exref; uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x18), L" - Nested subscribe response type is ",local_2e4,L" from ",&local_30 ); uVar3 = FUN_100a68d0(uVar3); uVar3 = FUN_1001a0e0(uVar3); pbVar4 = (basic_ostream_> *) FUN_1001db00(uVar3); std::basic_ostream_>::operator<< (pbVar4,p_Var15); } pvVar14 = local_2e8; if ((pOVar13 == (BSTR)0x1f) || (pOVar13 == (BSTR)0x2f)) { FUN_1008cf70(&local_44,param_1); FUN_1008cf70(&local_54,param_1); puVar9 = (undefined4 *)FUN_100f6dc0(); local_354 = local_30; local_350 = local_2c; local_34c = local_28; puVar10 = local_348; for (iVar8 = 8; pvVar14 = local_2e8, iVar8 != 0; iVar8 = iVar8 + -1) { *puVar10 = *puVar9; puVar9 = puVar9 + 1; puVar10 = puVar10 + 1; } uVar7 = 0; uVar3 = FUN_100fe160(&local_354); FUN_100fdde0(&local_314,uVar3,uVar7); if (local_314 == *(int *)((int)pvVar14 + 0x6e4)) { local_314 = FUN_1006b760(0x8007000e); } *(undefined **)(local_314 + 0x18) = local_44; *(int *)(local_314 + 0x1c) = local_40; *(int *)(local_314 + 0x20) = local_3c; *(int *)(local_314 + 0x24) = local_38; *(undefined **)(local_314 + 0x28) = local_54; *(int *)(local_314 + 0x2c) = local_50; *(int *)(local_314 + 0x30) = local_4c; *(int *)(local_314 + 0x34) = local_48; } else { FUN_100fd9c0(&local_2e4,&local_30); if (local_2e4 == *(BSTR *)((int)pvVar14 + 0x6e4)) { local_44 = PTR_101a21c4; local_40 = DAT_101a21c8; local_3c = DAT_101a21cc; local_38 = DAT_101a21d0; local_54 = PTR_101a21c4; local_50 = DAT_101a21c8; local_4c = DAT_101a21cc; local_48 = DAT_101a21d0; } else { local_44 = *(undefined **)(local_2e4 + 0xc); local_40 = *(int *)(local_2e4 + 0xe); local_3c = *(int *)(local_2e4 + 0x10); local_38 = *(int *)(local_2e4 + 0x12); local_54 = *(undefined **)(local_2e4 + 0x14); local_50 = *(int *)(local_2e4 + 0x16); local_4c = *(int *)(local_2e4 + 0x18); local_48 = *(int *)(local_2e4 + 0x1a); } } goto LAB_1010c6ec; } FUN_10100ce0(&local_24,param_1); FUN_10100bc0(&local_30,param_1); iVar8 = (**(code **)(*param_1 + 0xc))(param_1,&local_320,4,0); if (iVar8 < 0) { /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar8,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } iVar8 = (**(code **)(*param_1 + 0xc))(param_1,&local_44,0x10,0); LAB_1010c44d: if (iVar8 < 0) { LAB_1010c455: /* WARNING: Subroutine does not return */ FUN_1005bf30(iVar8,0, "E:\\BldSrc\\6\\s\\sharedcomponents\\internal\\MagellanPublic\\Includes\\BaseRuntimeComponentServer\\LoadSave.h" ,0x12); } goto LAB_1010ccf0; } switch(local_2f4) { case 1: *(int *)((int)local_2e8 + 0x520) = *(int *)((int)local_2e8 + 0x520) + 1; break; case 2: *(int *)((int)local_2e8 + 0x524) = *(int *)((int)local_2e8 + 0x524) + 1; break; case 3: *(int *)((int)local_2e8 + 0x528) = *(int *)((int)local_2e8 + 0x528) + 1; break; case 4: *(int *)((int)local_2e8 + 0x52c) = *(int *)((int)local_2e8 + 0x52c) + 1; break; case 5: *(int *)((int)local_2e8 + 0x530) = *(int *)((int)local_2e8 + 0x530) + 1; break; case 6: case 7: case 8: case 9: case 10: case 0xb: case 0xc: case 0xd: case 0xe: case 0xf: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: case 0x18: case 0x19: break; case 0x1a: *(int *)((int)local_2e8 + 0x534) = *(int *)((int)local_2e8 + 0x534) + 1; break; default: goto switchD_1010bed9_default; } switch(local_2f4) { case 1: case 2: local_31c = local_31c >> 0x10; goto LAB_1010bf66; case 3: local_31c = (uint)local_31c._2_2_; local_20 = 4; goto LAB_1010bf6b; case 4: local_20 = 4; local_31c = (uint)local_31c._2_2_ << 0x10; local_1c = 3; break; case 5: local_20 = 3; local_31c = (uint)local_31c._2_2_ << 0x10; local_1c = 3; break; default: goto switchD_1010bed9_default; case 0x1a: local_31c = (uint)local_31c._2_2_; LAB_1010bf66: local_20 = 3; LAB_1010bf6b: local_31c = local_31c << 0x10; local_1c = 2; } local_310 = CONCAT22(local_310._2_2_,(short)local_2f4); local_24 = local_31c; local_18 = local_310; switchD_1010bed9_default: if (local_2e0 == 3) { if ((((short)local_24 != -1) && (local_2f0 != 0)) && (*(int *)(local_2f0 + 200) != 0)) { FUN_10067aa0(*(int *)(local_2f0 + 200),&local_24); } goto LAB_1010ccf0; } if ((local_2e0 == 0x27) || (local_2e0 == 0x37)) { if ((((short)local_24 != -1) && ((local_2f0 != 0 && (FUN_100fd820(&local_2e4,¶m_8), local_2e4 != *(BSTR *)((int)pvVar14 + 0x20c))))) && (*(int *)(local_2f0 + 200) != 0)) { FUN_10067aa0(*(int *)(local_2f0 + 200),&local_24); } LAB_1010ccab: if ((local_2e0 == 0x10) || (local_2e0 == 0x11)) { if (local_2f4 == 0) { local_34 = CONCAT22(local_34._2_2_,0xffff); local_28 = local_28 & 0xffff0000; local_20 = 0; local_24 = local_34; local_1c = 1; local_18 = local_28; } (**(code **)(*(int *)param_4 + 0x14))(local_2f8,&local_24); goto LAB_1010d3df; } if ((((local_2e0 != 0x1f) && (local_2e0 != 0x2f)) && (local_2e0 != 0x20)) && ((local_2e0 != 0x30 && (local_2e0 != 0x17)))) goto LAB_1010ccf0; LAB_1010c6ec: iVar8 = local_2e0; if (local_2f0 != 0) { FUN_10147530(&local_24,local_30,local_2c,local_28,local_320,&local_44,&local_54,local_2e0); iVar8 = local_2e0; } LAB_1010c736: pvVar14 = local_2e8; if (((local_2f4 == 0) && (local_2f0 != 0)) && (iVar6 = *(int *)(local_2f0 + 200), iVar6 != 0)) { if ((param_8 != 0) || (param_9 != 0)) { FUN_100fd820(&local_2e4,¶m_8); if (local_2e4 != *(BSTR *)((int)pvVar14 + 0x20c)) { FUN_10067aa0(iVar6,&local_24); } goto LAB_1010d28a; } LAB_1010d2f2: iVar8 = local_2e0; if (local_20 != 1) { LAB_1010d2fe: if ((((iVar8 == 0x27) || (iVar8 == 0x2c)) || ((iVar8 == 0x37 || (iVar8 == 0x3c)))) && ((FUN_100fd820(&local_2e4,¶m_8), local_2e4 != *(BSTR *)((int)local_2e8 + 0x20c) && (FUN_10036d40(&local_310,local_2e4), local_2f0 != 0)))) { (**(code **)(*(int *)(local_2f0 + 4) + 4))(); } } } else { LAB_1010d28a: if ((((param_8 == 0) && (param_9 == 0)) || (local_20 == 1)) || (((((iVar8 != 0x26 && (iVar8 != 0x28)) && ((iVar8 != 0x3d && ((iVar8 != 0x3f && (iVar8 != 0x35)))))) && (iVar8 != 0x38)) && (((((iVar8 != 0x2a && (iVar8 != 0x2b)) && (iVar8 != 0x3a)) && ((iVar8 != 0x3b && (iVar8 != 0x3e)))) && (iVar8 != 0x40)))))) { if (local_2f4 == 0) goto LAB_1010d2f2; goto LAB_1010d2fe; } FUN_10052750(¶m_8); } pvVar14 = local_30c; if ((local_2e9 == '\0') && (local_30c != (void *)0x0)) { FUN_100a94e0(); operator_delete(pvVar14); } } else { if (local_2e0 == 0xd) { if (param_4 == (BSTR)0x0) { LAB_1010c10e: cVar2 = FUN_100f6f20(local_2e0); iVar8 = local_2f0; if ((cVar2 != '\0') && (FUN_100860c0(local_2f0,local_2f0,local_328,local_300,local_308,local_304,&local_24,0,1, local_2f8), local_2e0 != 0x17)) { if ((local_2e0 == 0x18) || (local_2e0 == 0x39)) { cVar2 = '\0'; } else { cVar2 = '\x01'; } local_2e4 = (BSTR)CONCAT31(local_2e4._1_3_,cVar2); if ((((local_30c == (void *)0x0) && (cVar2 == '\0')) || (local_20 != 4)) || ((local_2e0 != 0x2a && (local_2e0 != 0x19)))) { FUN_100860c0(iVar8,param_4,local_328,local_300,local_308,local_304,&local_24,0,local_2e4 ,local_2f8); if (((short)local_24 != -1) && ((((local_2e0 == 0x1b || (local_2e0 == 0x2c)) || (local_2e0 == 0x3c)) && ((iVar8 != 0 && (*(int *)(iVar8 + 200) != 0)))))) { FUN_10067aa0(*(int *)(iVar8 + 200),&local_24); } } else if ((local_30c == (void *)0x0) && (local_2e9 = '\x01', iVar8 != 0)) { FUN_1003ef70(iVar8); } } goto LAB_1010ccab; } iVar8 = *(int *)((int)local_2e8 + 1000); local_2e4 = param_4; piVar5 = (int *)FUN_100fd880(&local_310,&local_2e4); if (*piVar5 == iVar8) { cVar2 = FUN_100408d0(); if (cVar2 != '\0') { pvVar14 = local_2e8; p_Var15 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38), L"AccessManager::ProcessNmxResponse - failed to find local platform resolver " ); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,pvVar14); std::basic_ostream_>::operator<< (pbVar4,p_Var15); } } else { cVar2 = FUN_100408d0(); if (cVar2 != '\0') { pOVar13 = param_4; p_Var15 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38), L"AccessManager::ProcessNmxResponse - calling local platform resolver " ,param_4,L" callback "); pbVar4 = std::basic_ostream_>:: operator<<(pbVar4,pOVar13); pbVar4 = (basic_ostream_> *) FUN_1001a0e0(pbVar4); std::basic_ostream_>::operator<< (pbVar4,p_Var15); } (**(code **)(*(int *)param_4 + 8))(0,0,0xffffffff,DAT_101d6504,DAT_101d6508,&local_24,0); } } else { if ((local_2e0 != 0xe) || (param_4 == (BSTR)0x0)) goto LAB_1010c10e; LAB_1010c0f5: (**(code **)(*(int *)param_4 + 0x14))(local_2f8,&local_24); } LAB_1010ccf0: iVar8 = local_2e0; cVar2 = FUN_100f6ef0(local_2e0); if ((cVar2 == '\0') && (cVar2 = FUN_100f6f80(iVar8), cVar2 == '\0')) { if (iVar8 == 9) { if (param_4 != (BSTR)0x0) { if (local_2f4 == 0) { FUN_10100ce0(&local_24,param_1); (**(code **)(*(int *)param_4 + 0xc))((short)local_24 == -1,&local_24); } else if (local_2f4 == 0x1a) { (**(code **)(*(int *)param_4 + 0xc))(1,&local_24); } else { (**(code **)(*(int *)param_4 + 0xc))(0,&local_24); } } } else if (iVar8 == 8) { if (param_4 != (BSTR)0x0) { if (local_2f4 == 0) { local_34 = CONCAT22(local_34._2_2_,0xffff); local_28 = local_28 & 0xffff0000; local_20 = 0; local_24 = local_34; local_1c = 1; local_18 = local_28; } (**(code **)(*(int *)param_4 + 0x14))(local_2f8,&local_24); } } else if (iVar8 == 0x24) { if (param_4 != (BSTR)0x0) { if (local_2f4 == 0) { local_34 = CONCAT22(local_34._2_2_,0xffff); local_28 = (uint)local_28._2_2_ << 0x10; local_20 = 0; local_24 = local_34; local_1c = 1; local_18 = local_28; } (**(code **)(*(int *)param_4 + 0x14))(local_2f8,&local_24); } } else if (iVar8 == 0x14) { if (param_4 != (BSTR)0x0) { if (local_2f4 == 0x1a) { (**(code **)(*(int *)param_4 + 0xc))(1); } else { (**(code **)(*(int *)param_4 + 0xc))(local_2f4 == 0,&local_24); } } } else if (((iVar8 == 0x1d) || (iVar8 == 0x1e)) && (param_4 != (BSTR)0x0)) { iVar6 = *(int *)param_4; if (local_2f4 == 0x1a) { (**(code **)(iVar6 + 0xc))(1); } else { LAB_1010cec6: (**(code **)(iVar6 + 0xc))(local_2f4 == 0,&local_24); } } else if (((iVar8 == 0x32) || (iVar8 == 0x33)) && (param_4 != (BSTR)0x0)) { iVar6 = *(int *)param_4; if (local_2f4 != 0x1a) goto LAB_1010cec6; (**(code **)(iVar6 + 0xc))(1,&local_24); } else if (iVar8 == 0x25) { if (param_4 != (BSTR)0x0) { if (local_2f4 == 0) { local_34 = CONCAT22(local_34._2_2_,0xffff); local_28 = (uint)local_28._2_2_ << 0x10; local_20 = 0; local_24 = local_34; local_1c = 1; local_18 = local_28; } (**(code **)(*(int *)param_4 + 0x14))(local_2f8,&local_24); } } else if ((iVar8 == 0x2d) || (iVar8 == 0x2e)) { if (local_2f4 != 0) { puVar9 = &local_24; } else { puVar9 = &local_34; } FUN_1010b990(local_2f4 != 0,puVar9,param_1); } LAB_1010cf4e: if (local_2e9 == '\0') { LAB_1010cf5b: iVar1 = local_20; iVar6 = local_2f0; if (((local_20 == 3) || (local_20 == 4)) && (local_2f0 != 0)) { cVar2 = FUN_100029c0(iVar8); if (((cVar2 == '\0') && (cVar2 = FUN_100f6fe0(iVar8), cVar2 == '\0')) || ((*(char *)(iVar6 + 0x1bd) == '\0' || (iVar1 != 3)))) { FUN_1013f750(&local_24); } else { cVar2 = FUN_100408d0(); if (cVar2 != '\0') { p_Var15 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x18), L"AccessManager::ProcessNmxResponse - will SKIP referenceWentBad call" ); std::basic_ostream_>:: operator<<(pbVar4,p_Var15); } } } } goto LAB_1010c736; } if (local_2e9 != '\0') { if (local_30c != (void *)0x0) { FUN_10040fe0(&local_30c); goto LAB_1010cf4e; } cVar2 = FUN_100029c0(iVar8); if (cVar2 == '\0') { cVar2 = FUN_100f6fe0(iVar8); local_2e4 = (BSTR)((uint)local_2e4 & 0xffffff00); if (cVar2 != '\0') goto LAB_1010d04d; } else { LAB_1010d04d: local_2e4 = (BSTR)CONCAT31(local_2e4._1_3_,1); } local_34 = (uint)local_34._2_2_ << 0x10; local_28 = CONCAT22(local_28._2_2_,0x1f42); local_30 = 4; local_2c = 1; FUN_100860c0(local_2f0,param_4,local_328,local_300,local_308,local_304,&local_34,local_2fc, local_2e4,local_2f8); goto LAB_1010cf4e; } if (((local_30c == (void *)0x0) || (local_20 != 4)) || (7999 < (short)local_18)) { cVar2 = FUN_100029c0(iVar8); if ((cVar2 == '\0') && (cVar2 = FUN_100f6fe0(iVar8), cVar2 == '\0')) { local_2e4 = (BSTR)((uint)local_2e4 & 0xffffff00); } else { local_2e4 = (BSTR)CONCAT31(local_2e4._1_3_,1); if (param_4 != (BSTR)0x0) { (**(code **)(*(int *)param_4 + 0x18))(); } } if ((iVar8 != 0x39) || (local_2f4 == 0)) { FUN_100860c0(local_2f0,param_4,local_328,local_300,local_308,local_304,&local_24,local_2fc, local_2e4,local_2f8); } goto LAB_1010cf5b; } if (local_2f0 == 0) goto LAB_1010c736; if ((((param_8 != 0) || (iVar6 = local_2f0, param_9 != 0)) && (FUN_100fd820(&local_2e4,¶m_8), iVar6 = local_2f0, local_2e4 != *(BSTR *)((int)local_2e8 + 0x20c))) && (((FUN_10036d40(&local_310,local_2e4), iVar6 = local_2f0, iVar8 == 0x27 || (iVar8 == 0x2c)) || ((iVar8 == 0x37 || (iVar8 == 0x3c)))))) { (**(code **)(*(int *)(local_2f0 + 4) + 4))(); } cVar2 = FUN_1009f970(); if ((cVar2 == '\0') && (*(int *)(iVar6 + 0xa4) != 7)) { FUN_1003ef70(iVar6); } else { *(undefined1 *)((int)local_30c + 0x44) = 1; } FUN_10040fe0(&local_30c); if (*(int *)(iVar6 + 200) != 0) { local_34 = CONCAT22(local_34._2_2_,0xffff); local_28 = local_28 & 0xffff0000; local_30 = 1; local_2c = 0; FUN_10067aa0(*(int *)(iVar6 + 200),&local_34); } } if (local_2f0 != 0) { (**(code **)(*(int *)(local_2f0 + 4) + 4))(); } LAB_1010d3df: local_8 = local_8 & 0xffffff00; SysFreeString(local_2fc); local_8 = 0xffffffff; if (local_328 != (int *)0x0) { (**(code **)(*local_328 + 8))(local_328); } SysFreeString(local_324); ExceptionList = local_10; __security_check_cookie(local_14 ^ (uint)&stack0xfffffffc); return; } ``` ## FUN_1010e410 at 1010e410 Signature: `undefined FUN_1010e410(void)` ```c void FUN_1010e410(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4) { undefined4 local_18; undefined4 local_14; undefined4 local_10; undefined4 local_c; uint local_8; local_8 = DAT_101d60b8 ^ (uint)&stack0xfffffffc; local_18 = param_1; local_10 = param_3; local_14 = param_2; local_c = param_4; FUN_1010b990(1,&local_18,0); __security_check_cookie(local_8 ^ (uint)&stack0xfffffffc); return; } ```