fe2a6db786
rust / build / test / clippy / fmt (push) Has been cancelled
Layout:
- src/ .NET 10 x64 reference: MxNativeCodec, MxNativeClient,
MxAsbClient, probes, tests, harnesses. Executable spec.
- design/ Architectural plan for the Rust port (M0–M6), error
model, protocol invariants, risks (R1–R16), adversarial
review log (review.md).
- rust/ Rust workspace. M0 skeleton + M1 codec parity.
mxaccess-codec: 215 unit tests + 2 cross-implementation
parity tests (byte-identical against .NET reference).
Other crates are M0 stubs awaiting M2+.
- captures/ Frida + netsh + pcap evidence per CLAUDE.md
("captures are evidence, not throwaway logs").
- analysis/ Decompiled C# (frida/proxy/decompiled-*),
Ghidra exports for native DLLs (`exports/` only —
working state at `projects/` and AVEVA's input
binaries at `input/` are gitignored).
- docs/ Reverse-engineering reference docs.
- tools/ Setup-LiveProbeEnv.ps1 (Infisical credential fetcher),
Compute-Crc.ps1 (.NET parity helper).
- .github/workflows/ Rust CI: fmt + build + test + clippy on Windows.
- LICENSE MIT (Joseph Doherty, 2026).
Verified:
- cargo test --workspace → 217 passed (215 unit + 2 .NET parity), 0 failed
- cargo clippy --workspace -- -D warnings → clean
- cargo fmt --all -- --check → clean
- cargo publish --dry-run -p mxaccess-codec → packages cleanly
Excluded from history (see .gitignore):
- **/bin, **/obj, **/target — build artifacts
- analysis/ghidra/projects/ — Ghidra working state (regenerable)
- analysis/ghidra/input/ — AVEVA proprietary DLLs (vendor IP)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
65 KiB
65 KiB
Lmx.dll selected decompile
FUN_100ea780 at 100ea780
Signature: undefined FUN_100ea780(void)
void FUN_100ea780(int param_1,OLECHAR *param_2,long *param_3)
{
int *piVar1;
BSTR pOVar2;
char cVar3;
undefined1 uVar4;
undefined4 uVar5;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar6;
undefined4 *puVar7;
int iVar8;
int iVar9;
uint *puVar10;
UINT UVar11;
undefined4 *puVar12;
long lVar13;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var14;
long local_44;
int local_40;
BSTR local_3c;
undefined4 *local_34;
BSTR local_30;
int local_2c;
uint local_14;
void *local_10;
undefined1 *puStack_c;
int local_8;
local_8 = 0xffffffff;
puStack_c = &LAB_1016e5de;
local_10 = ExceptionList;
local_14 = DAT_101d60b8 ^ (uint)&stack0xfffffffc;
ExceptionList = &local_10;
local_2c = param_1;
local_44 = -0x7fffbffb;
if (DAT_101d6458 == '\0') {
LAB_100ea902:
cVar3 = FUN_100408d0();
if (cVar3 != '\0') {
p_Var14 = endl_exref;
uVar5 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::PrebindReference - ENTER referenceString ");
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar5);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,p_Var14);
}
local_34 = operator_new(0xb4);
local_8 = 4;
if (local_34 == (void *)0x0) {
puVar7 = (undefined4 *)0x0;
}
else {
puVar7 = (undefined4 *)FUN_101139c0();
}
local_8 = 0xffffffff;
local_34 = puVar7;
}
else {
cVar3 = FUN_10096c70();
if (cVar3 == '\0') goto LAB_100ea902;
if (param_2 == (OLECHAR *)0x0) {
local_30 = (BSTR)0x0;
}
else {
local_30 = SysAllocString(param_2);
if (local_30 == (BSTR)0x0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(0x8007000e,0);
}
}
pOVar2 = local_30;
local_3c = (BSTR)0x0;
local_8._0_1_ = 1;
local_8._1_3_ = 0;
local_34 = (undefined4 *)&stack0xffffff8c;
FUN_1008fb20();
local_8 = CONCAT31(local_8._1_3_,1);
FUN_10096f60();
cVar3 = FUN_100408d0();
if (cVar3 != '\0') {
p_Var14 = endl_exref;
uVar5 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::PrebindReference - ENTER referenceString \'",param_2,
L"\' Substituted String \'",local_3c);
uVar5 = FUN_1001a0e0(uVar5);
uVar5 = FUN_1001a0e0(uVar5);
uVar5 = FUN_1001a0e0(uVar5);
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001dc00(uVar5);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,p_Var14);
}
local_34 = operator_new(0xb4);
local_8._0_1_ = 3;
if (local_34 == (void *)0x0) {
puVar7 = (undefined4 *)0x0;
}
else {
puVar7 = (undefined4 *)FUN_101139c0();
}
local_8 = (uint)local_8._1_3_ << 8;
local_34 = puVar7;
SysFreeString(local_3c);
local_8 = 0xffffffff;
SysFreeString(pOVar2);
}
cVar3 = FUN_10048d60(puVar7 != (undefined4 *)0x0);
if (cVar3 == '\0') goto LAB_100eab0d;
FUN_100db730();
FUN_100c3730(&local_40);
if ((char)local_3c == '\0') {
if (puVar7 != (undefined4 *)0x0) {
(**(code **)*puVar7)();
}
puVar7 = *(undefined4 **)(local_40 + 0xc);
goto LAB_100eab0d;
}
FUN_1005f590();
puVar12 = (undefined4 *)(local_2c + 0x9c);
iVar8 = (**(code **)(**(int **)(local_2c + 0x9c) + 0x24))();
if (iVar8 < 0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(iVar8,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x45);
}
uVar5 = FUN_1005f6b0();
piVar1 = (int *)*puVar12;
iVar9 = (**(code **)(*piVar1 + 0x44))(piVar1,uVar5);
iVar8 = local_2c;
if (iVar9 < 0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(iVar9,0);
}
local_34 = puVar12;
FUN_1006b120();
pOVar2 = local_30;
if (local_30 != *(BSTR *)(*(int *)(iVar8 + 0x1c) + 400)) {
puVar10 = (uint *)FUN_1005f730();
if (((((char)*puVar10 != '\0') && (*puVar10 >> 0x10 != 0)) && ((short)puVar10[1] != 0)) &&
((puVar10[1] >> 0x10 != 0 && ((short)(puVar10[2] >> 0x10) != 0)))) {
if ((BSTR)puVar7[0x2b] != (BSTR)0x0) {
UVar11 = SysStringLen((BSTR)puVar7[0x2b]);
if (UVar11 != 0) goto LAB_100eab04;
}
FUN_1003ec10();
FUN_101129c0(3);
puVar12 = (undefined4 *)FUN_10001920();
iVar8 = *(int *)(pOVar2 + 6);
*(undefined4 *)(iVar8 + 0x14) = *puVar12;
*(undefined4 *)(iVar8 + 0x18) = puVar12[1];
}
}
LAB_100eab04:
piVar1 = (int *)(*(int *)(local_40 + 0xc) + 0x14);
*piVar1 = *piVar1 + 1;
LAB_100eab0d:
cVar3 = FUN_10048d60(puVar7 != (undefined4 *)0x0);
if (cVar3 != '\0') {
uVar4 = FUN_100e18b0(puVar7,param_3);
cVar3 = FUN_10048d60(uVar4);
if (cVar3 != '\0') {
FUN_10113d40();
local_44 = 0;
}
}
cVar3 = FUN_100408d0();
if (cVar3 != '\0') {
lVar13 = *param_3;
p_Var14 = endl_exref;
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::PrebindReference - EXIT *preboundRefHandle ",lVar13,
L" hResult ");
pbVar6 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,lVar13);
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(pbVar6);
pbVar6 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,local_44);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,p_Var14);
}
ExceptionList = local_10;
__security_check_cookie(local_14 ^ (uint)&stack0xfffffffc);
return;
}
FUN_100eabf0 at 100eabf0
Signature: undefined FUN_100eabf0(void)
void FUN_100eabf0(int param_1,int *param_2,long *param_3)
{
int *piVar1;
char cVar2;
undefined1 uVar3;
void *pvVar4;
BSTR pOVar5;
undefined4 uVar6;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar7;
int iVar8;
int iVar9;
UINT UVar10;
OLECHAR *psz;
undefined4 *puVar11;
BSTR pOVar12;
long lVar13;
long lVar14;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var15;
undefined4 uVar16;
char *pcVar17;
undefined1 local_74 [4];
BSTR local_70;
long *local_6c;
int local_68;
long local_64;
BSTR local_60;
BSTR local_5c;
BSTR local_58;
char local_51;
undefined1 local_50 [20];
int *local_3c;
undefined4 local_38;
undefined4 local_34;
undefined4 local_30;
undefined4 local_2c;
undefined1 local_28;
byte bStack_27;
undefined2 uStack_26;
undefined2 uStack_24;
undefined2 uStack_22;
undefined2 uStack_20;
undefined2 uStack_1e;
undefined2 local_1c;
undefined2 uStack_1a;
char local_18;
undefined1 uStack_17;
undefined2 uStack_16;
uint local_14;
void *local_10;
undefined1 *puStack_c;
int local_8;
local_8 = 0xffffffff;
puStack_c = &LAB_1016e64b;
local_10 = ExceptionList;
local_14 = DAT_101d60b8 ^ (uint)&stack0xfffffffc;
ExceptionList = &local_10;
local_68 = param_1;
local_6c = param_3;
local_64 = -0x7fffbffb;
if (param_2 == (int *)0x0) {
local_64 = -0x7ff8ffa9;
goto LAB_100eb12e;
}
if (DAT_101d6458 != '\0') {
local_5c = (BSTR)0x0;
local_70 = (BSTR)0x0;
local_60 = (BSTR)0x0;
local_8._1_3_ = 0;
local_58 = (BSTR)0x0;
local_8._0_1_ = 3;
(**(code **)(*param_2 + 0x20))(param_2,&local_5c,local_14);
(**(code **)(*param_2 + 0x40))(param_2,&local_70);
cVar2 = FUN_10096ff0(&local_5c,&local_70,&local_60,&local_58);
if (cVar2 != '\0') {
FUN_1005f4f0();
local_8 = CONCAT31(local_8._1_3_,4);
FUN_1003ec10(param_2);
FUN_1005f730(local_50);
(**(code **)(*local_3c + 0x24))(local_3c,local_60);
(**(code **)(*local_3c + 0x44))(local_3c,local_58);
FUN_1005f7e0(local_50);
param_2 = local_3c;
if (local_3c != (int *)0x0) {
(**(code **)(*local_3c + 4))(local_3c);
}
local_8._0_1_ = 3;
FUN_10021cc0();
}
local_8._0_1_ = 2;
SysFreeString(local_58);
local_8._0_1_ = 1;
SysFreeString(local_60);
local_8 = (uint)local_8._1_3_ << 8;
SysFreeString(local_70);
local_8 = 0xffffffff;
SysFreeString(local_5c);
}
pvVar4 = operator_new(0xb4);
local_18 = (char)pvVar4;
uStack_17 = (undefined1)((uint)pvVar4 >> 8);
uStack_16 = (undefined2)((uint)pvVar4 >> 0x10);
local_8 = 5;
if (pvVar4 == (void *)0x0) {
pOVar5 = (BSTR)0x0;
}
else {
pOVar5 = (BSTR)FUN_10113b10(param_2,*(undefined4 *)(param_1 + 0x1c));
}
local_8 = 0xffffffff;
local_5c = pOVar5;
cVar2 = FUN_10048d60(pOVar5 != (BSTR)0x0,0x837,"MxConnection.cpp");
if (cVar2 != '\0') {
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
p_Var15 = endl_exref;
uVar6 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::PrebindReferenceEx - ENTER referenceString ",pOVar5 + 0xc
," contextString ",pOVar5 + 0x1a);
uVar6 = FUN_1001dec0(uVar6);
uVar6 = FUN_1001dc00(uVar6);
pbVar7 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001dec0(uVar6);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar7,p_Var15);
}
uVar16 = 0;
uVar6 = FUN_100db730(&local_5c);
FUN_100c3730(&local_1c,uVar6,uVar16);
if (local_18 == '\0') {
if (pOVar5 != (BSTR)0x0) {
(*(code *)**(undefined4 **)pOVar5)(1);
}
pOVar5 = *(BSTR *)(CONCAT22(uStack_1a,local_1c) + 0xc);
}
else {
uVar6 = FUN_1005f590();
iVar8 = (**(code **)(**(int **)(param_1 + 0x9c) + 0x24))(*(int **)(param_1 + 0x9c),uVar6);
if (iVar8 < 0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(iVar8,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x45);
}
uVar6 = FUN_1005f6b0();
piVar1 = *(int **)(param_1 + 0x9c);
iVar9 = (**(code **)(*piVar1 + 0x44))(piVar1,uVar6);
iVar8 = local_68;
if (iVar9 < 0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(iVar9,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x75);
}
local_70 = (BSTR)(param_1 + 0x9c);
FUN_1006b120(&local_60,&local_70);
pOVar12 = local_60;
if (local_60 != *(BSTR *)(*(int *)(iVar8 + 0x1c) + 400)) {
if (*(BSTR *)(pOVar5 + 0x56) != (BSTR)0x0) {
UVar10 = SysStringLen(*(BSTR *)(pOVar5 + 0x56));
if (UVar10 != 0) goto LAB_100eaf01;
}
FUN_1003ec10(**(undefined4 **)(pOVar12 + 6));
FUN_101129c0(3,"MxConnection.cpp",0x857);
puVar11 = (undefined4 *)FUN_10001920(local_74);
iVar8 = *(int *)(pOVar12 + 6);
*(undefined4 *)(iVar8 + 0x14) = *puVar11;
*(undefined4 *)(iVar8 + 0x18) = puVar11[1];
}
LAB_100eaf01:
piVar1 = (int *)(*(int *)(CONCAT22(uStack_1a,local_1c) + 0xc) + 0x14);
*piVar1 = *piVar1 + 1;
pOVar5 = local_5c;
}
}
cVar2 = FUN_10048d60(pOVar5 != (BSTR)0x0,0x860,"MxConnection.cpp");
if (cVar2 != '\0') {
pcVar17 = "MxConnection.cpp";
uVar6 = 0x867;
uVar3 = FUN_100e18b0(pOVar5,local_6c);
cVar2 = FUN_10048d60(uVar3,uVar6,pcVar17);
if (cVar2 != '\0') {
psz = pOVar5 + 0xc;
local_51 = '\0';
if (7 < *(uint *)(pOVar5 + 0x16)) {
psz = *(OLECHAR **)psz;
}
if (psz == (OLECHAR *)0x0) {
local_58 = (BSTR)0x0;
}
else {
local_58 = SysAllocString(psz);
if (local_58 == (BSTR)0x0) {
/* WARNING: Subroutine does not return */
FUN_100013e0(0x8007000e);
}
}
local_8 = 6;
uStack_1e = 0;
local_1c = 0;
uStack_26 = 0;
uStack_24 = 0;
uStack_22 = 0;
uStack_20 = 0;
local_34 = 0;
uStack_1a = 0;
local_18 = '\0';
uStack_17 = 0;
uStack_16 = 0;
local_38 = 0;
local_28 = 0;
local_3c = (int *)((uint)bStack_27 << 8);
local_30 = 0;
local_2c = 0;
if (local_58 == (BSTR)0x0) {
LAB_100eafe4:
pOVar12 = local_58;
puVar11 = (undefined4 *)FUN_1005f730(local_50);
uVar6 = *puVar11;
local_28 = (undefined1)uVar6;
bStack_27 = (byte)((uint)uVar6 >> 8);
uStack_26 = (undefined2)((uint)uVar6 >> 0x10);
uStack_24 = (undefined2)puVar11[1];
uStack_22 = (undefined2)((uint)puVar11[1] >> 0x10);
uVar6 = puVar11[4];
uStack_20 = (undefined2)puVar11[2];
uStack_1e = (undefined2)((uint)puVar11[2] >> 0x10);
local_1c = (undefined2)puVar11[3];
uStack_1a = (undefined2)((uint)puVar11[3] >> 0x10);
local_18 = (char)uVar6;
uStack_17 = (undefined1)((uint)uVar6 >> 8);
uStack_16 = (undefined2)((uint)uVar6 >> 0x10);
cVar2 = FUN_10005710();
if (cVar2 == '\0') {
FUN_1005f7e0(&local_3c);
FUN_10113d40();
puVar11 = (undefined4 *)FUN_1005f730(local_50);
uVar6 = *puVar11;
local_28 = (undefined1)uVar6;
bStack_27 = (byte)((uint)uVar6 >> 8);
uStack_26 = (undefined2)((uint)uVar6 >> 0x10);
uStack_24 = (undefined2)puVar11[1];
uStack_22 = (undefined2)((uint)puVar11[1] >> 0x10);
uVar6 = puVar11[4];
uStack_20 = (undefined2)puVar11[2];
uStack_1e = (undefined2)((uint)puVar11[2] >> 0x10);
local_1c = (undefined2)puVar11[3];
uStack_1a = (undefined2)((uint)puVar11[3] >> 0x10);
local_18 = (char)uVar6;
uStack_17 = (undefined1)((uint)uVar6 >> 8);
uStack_16 = (undefined2)((uint)uVar6 >> 0x10);
cVar2 = FUN_10005710();
if (cVar2 != '\0') {
uStack_24 = 0xffff;
uStack_20 = 0;
uStack_1e = 0;
local_1c = 0;
uStack_1a = 0;
local_18 = '\0';
uStack_17 = 0;
FUN_10050df0(&uStack_24,pOVar5);
}
}
}
else {
FUN_100e25c0(&local_58,&local_3c,0xffffffff,*local_6c,&local_51);
if (local_51 == '\0') goto LAB_100eafe4;
*(undefined1 *)(pOVar5 + 0x58) = 1;
pOVar12 = local_58;
}
local_64 = 0;
local_8 = 0xffffffff;
SysFreeString(pOVar12);
}
}
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
lVar13 = *local_6c;
lVar14 = local_64;
p_Var15 = endl_exref;
pbVar7 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::PrebindReferenceEx - EXIT * preboundRefHandle ",lVar13,
L" hResult ");
pbVar7 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar7,lVar13);
pbVar7 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(pbVar7);
pbVar7 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar7,lVar14);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar7,p_Var15);
}
LAB_100eb12e:
ExceptionList = local_10;
__security_check_cookie(local_14 ^ (uint)&stack0xfffffffc);
return;
}
FUN_100e1920 at 100e1920
Signature: undefined FUN_100e1920(void)
long FUN_100e1920(int param_1,long param_2,undefined4 param_3,int *param_4,uint *param_5)
{
int iVar1;
char cVar2;
undefined1 uVar3;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar4;
int *piVar5;
uint uVar6;
int *piVar7;
int iVar8;
long lVar9;
int *piVar10;
undefined4 uVar11;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var12;
char *pcVar13;
byte bStack_2b;
long local_18;
int local_14;
void *local_10;
undefined1 *puStack_c;
undefined4 local_8;
local_8 = 0xffffffff;
puStack_c = &LAB_1016d37b;
local_10 = ExceptionList;
ExceptionList = &local_10;
piVar7 = (int *)0x0;
local_18 = -0x7fffbffb;
local_14 = 0;
cVar2 = FUN_100408d0(DAT_101d60b8 ^ (uint)&stack0xfffffffc);
piVar5 = param_4;
if (cVar2 != '\0') {
lVar9 = param_2;
piVar10 = param_4;
p_Var12 = endl_exref;
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::UserRegisterPreboundReference - ENTER preboundHandle ",
param_2,L" userData ");
pbVar4 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,lVar9);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(pbVar4);
pbVar4 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,(long)piVar10);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var12);
}
pcVar13 = "MxConnection.cpp";
uVar11 = 0x8cb;
uVar3 = FUN_100dd0d0(param_2,&local_14);
cVar2 = FUN_10048d60(uVar3,uVar11,pcVar13);
if (cVar2 == '\0') goto LAB_100e1c98;
param_4 = operator_new(0x1e8);
iVar8 = local_14;
local_8 = 0;
if (param_4 != (void *)0x0) {
piVar7 = (int *)FUN_1013bef0(*(undefined4 *)(param_1 + 0x2c),*(undefined4 *)(local_14 + 0x50),1,
param_3,piVar5,0,(uint)bStack_2b << 8,0,0,0,0,0,
*(undefined4 *)(local_14 + 0xac));
}
local_8 = 0xffffffff;
param_4 = piVar7;
cVar2 = FUN_10048d60(piVar7 != (int *)0x0,0x8d2,"MxConnection.cpp");
if (cVar2 != '\0') {
iVar8 = *(int *)(param_1 + 0x2c);
piVar5 = (int *)FUN_100dca80(¶m_3,¶m_4);
iVar1 = *piVar5;
if (iVar1 == *(int *)(iVar8 + 0x168)) {
uVar11 = FUN_1002d030(¶m_4);
FUN_100dbbf0(¶m_4,iVar1,uVar11);
cVar2 = FUN_10048d60(param_4 != *(int **)(iVar8 + 0x168),0x8e1,"MxConnection.cpp");
iVar8 = local_14;
if (cVar2 == '\0') {
if (piVar7 != (int *)0x0) {
(**(code **)*piVar7)(1);
}
piVar7 = (int *)0x0;
local_18 = -0x7ff8fff2;
iVar8 = local_14;
}
}
else {
if (piVar7 != (int *)0x0) {
(**(code **)*piVar7)(1);
}
piVar7 = *(int **)(iVar1 + 0xc);
iVar8 = local_14;
}
}
cVar2 = FUN_10048d60(piVar7 != (int *)0x0,0x8fb,"MxConnection.cpp");
if (cVar2 == '\0') goto LAB_100e1c98;
uVar6 = FUN_10056e00();
cVar2 = FUN_10048d60(0 < (int)uVar6,0x904,"MxConnection.cpp");
if (cVar2 == '\0') goto LAB_100e1c98;
param_4 = (int *)(param_1 + 0x4c);
if ((uint)(*(int *)(param_1 + 0x50) - *(int *)(param_1 + 0x4c) >> 2) <= uVar6) {
FUN_100dcba0(uVar6 + 100);
}
cVar2 = FUN_10048d60(uVar6 < (uint)(param_4[1] - *param_4 >> 2),0x910,"MxConnection.cpp");
if (cVar2 == '\0') goto LAB_100e1c98;
iVar1 = *(int *)(iVar8 + 0xa8);
if (((iVar1 == 1) || (iVar1 == 2)) || (*(char *)(iVar8 + 0xb0) != '\0')) {
*(undefined1 *)(iVar8 + 0xb0) = 0;
cVar2 = FUN_1009f9a0();
if (cVar2 == '\0') {
uVar11 = *(undefined4 *)(iVar8 + 0x50);
uVar3 = *(undefined1 *)(iVar8 + 0x10);
LAB_100e1c66:
FUN_10141bb0(uVar3,uVar11);
goto LAB_100e1c6d;
}
FUN_101392c0(9,"MxConnection.cpp",0x91e);
pcVar13 = "MxConnection.cpp";
uVar11 = 0x91f;
uVar3 = FUN_1005afb0(iVar8,piVar7);
FUN_10048d60(uVar3,uVar11,pcVar13);
}
else if (iVar1 == 4) {
LAB_100e1c6d:
FUN_10144630();
}
else if (iVar1 == 3) {
pcVar13 = "MxConnection.cpp";
uVar11 = 0x936;
uVar3 = FUN_10141bb0(*(undefined1 *)(iVar8 + 0x10),*(undefined4 *)(iVar8 + 0x50));
FUN_10048d60(uVar3,uVar11,pcVar13);
}
else {
cVar2 = FUN_1009f9c0();
if (cVar2 != '\0') {
uVar11 = *(undefined4 *)(iVar8 + 0x50);
uVar3 = *(undefined1 *)(iVar8 + 0x10);
goto LAB_100e1c66;
}
}
*(int **)(*param_4 + uVar6 * 4) = piVar7;
*param_5 = uVar6;
piVar7[0x42] = piVar7[0x42] + 1;
(**(code **)piVar7[1])();
local_18 = 0;
LAB_100e1c98:
cVar2 = FUN_100408d0();
if (cVar2 == '\0') {
ExceptionList = local_10;
return local_18;
}
uVar6 = *param_5;
lVar9 = local_18;
p_Var12 = endl_exref;
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::UserRegisterPreboundReference - EXIT pMxReferenceHandle ",
uVar6,L" hResult ");
pbVar4 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,uVar6);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(pbVar4);
pbVar4 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,lVar9);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var12);
ExceptionList = local_10;
return local_18;
}
FUN_100df1a0 at 100df1a0
Signature: undefined FUN_100df1a0(void)
long FUN_100df1a0(int param_1,int param_2)
{
int iVar1;
char cVar2;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar3;
int *piVar4;
undefined4 uVar5;
undefined4 *puVar6;
long lVar7;
int iVar8;
long lVar9;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var10;
undefined4 *local_c;
long local_8;
puVar6 = (undefined4 *)0x0;
local_8 = -0x7ff8ffa9;
local_c = (undefined4 *)0x0;
cVar2 = FUN_100408d0();
iVar1 = param_2;
if (cVar2 != '\0') {
iVar8 = param_2;
p_Var10 = endl_exref;
pbVar3 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::UnregisterPreboundReference - ENTER preboundRefHandle ");
pbVar3 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar3,iVar8);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar3,p_Var10);
}
iVar8 = *(int *)(param_1 + 0x4c);
uVar5 = 0;
if ((iVar1 < *(int *)(param_1 + 0x50) - iVar8 >> 2) && (*(int *)(iVar8 + iVar1 * 4) != 0)) {
puVar6 = *(undefined4 **)(iVar8 + iVar1 * 4);
piVar4 = puVar6 + 5;
*piVar4 = *piVar4 + -1;
if (*piVar4 == 0) {
(**(code **)*puVar6)(1);
}
puVar6 = *(undefined4 **)(*(int *)(param_1 + 0x4c) + iVar1 * 4);
*(undefined4 *)(*(int *)(param_1 + 0x4c) + iVar1 * 4) = 0;
param_2 = iVar1;
local_c = puVar6;
FUN_100421a0(¶m_2);
uVar5 = 1;
}
cVar2 = FUN_10048d60(uVar5,0x8a2,"MxConnection.cpp");
lVar7 = local_8;
if (cVar2 != '\0') {
if (puVar6[5] == 1) {
piVar4 = (int *)FUN_100484c0(¶m_2,&local_c);
iVar1 = *piVar4;
cVar2 = FUN_10048d60(iVar1 != *(int *)(*(int *)(param_1 + 0x1c) + 0x180),0x8ad,
"MxConnection.cpp");
lVar7 = local_8;
if (cVar2 != '\0') {
FUN_100382e0(¶m_2,iVar1);
piVar4 = puVar6 + 5;
*piVar4 = *piVar4 + -1;
if (*piVar4 == 0) {
(**(code **)*puVar6)(1);
}
lVar7 = 0;
}
}
else {
local_8 = 0;
lVar7 = local_8;
}
}
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
lVar9 = lVar7;
p_Var10 = endl_exref;
pbVar3 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x14),
L"MxConnection::UnregisterPreboundReference - EXIT hResult ");
pbVar3 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar3,lVar9);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar3,p_Var10);
}
return lVar7;
}
FUN_10113d40 at 10113d40
Signature: undefined FUN_10113d40(void)
/* WARNING: Function: __alloca_probe replaced with injection: alloca_probe */
void __fastcall FUN_10113d40(int param_1)
{
char cVar1;
uint uVar2;
undefined4 uVar3;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar4;
UINT UVar5;
char *pcVar6;
OLECHAR *psz;
int iVar7;
undefined4 *puVar8;
wchar_t *pwVar9;
int *piVar10;
DWORD DVar11;
wchar_t *pwVar12;
int iVar13;
undefined4 ****ppppuVar14;
int *piVar15;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var16;
wchar_t **ppwVar17;
undefined4 uVar18;
undefined4 local_1410;
undefined4 local_140c;
BSTR local_1408;
wchar_t *local_1404;
byte local_13fe;
byte local_13fd [5001];
void *local_74 [4];
undefined4 local_64;
uint local_60;
undefined4 ***local_58 [4];
undefined4 local_48;
uint local_44;
undefined1 local_3c [4];
undefined4 local_38;
BSTR local_2c;
undefined4 local_28;
undefined2 local_24;
short sStack_22;
undefined2 local_20;
undefined2 uStack_1e;
undefined4 local_1c;
undefined4 local_18;
uint local_14;
void *local_10;
undefined1 *puStack_c;
int local_8;
local_8 = 0xffffffff;
puStack_c = &LAB_101727e7;
local_10 = ExceptionList;
uVar2 = DAT_101d60b8 ^ (uint)&stack0xfffffffc;
ExceptionList = &local_10;
local_14 = uVar2;
cVar1 = FUN_100408d0(uVar2);
if (cVar1 != '\0') {
p_Var16 = endl_exref;
uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x20),
L"PreboundReference::Resolve - referenceString ",param_1 + 0x18,
L" contextString ",param_1 + 0x34);
uVar3 = FUN_1001dec0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001dec0(uVar3);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var16);
}
cVar1 = FUN_100408d0(uVar2);
if (cVar1 != '\0') {
uVar3 = FUN_1002f5f0(*(undefined4 *)(param_1 + 0x50));
p_Var16 = endl_exref;
uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x20),
L"PreboundReference::Resolve - ENTER mxReference ",uVar3);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar3);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var16);
}
if ((*(BSTR *)(param_1 + 0xac) == (BSTR)0x0) ||
(UVar5 = SysStringLen(*(BSTR *)(param_1 + 0xac)), UVar5 == 0)) {
pcVar6 = (char *)FUN_1005f730(&local_28);
if (*pcVar6 == '\0') {
local_13fe = local_13fe & 0xfe;
local_44 = 7;
local_48 = 0;
local_58[0] = (undefined4 ***)((uint)local_58[0] & 0xffff0000);
local_60 = 7;
local_64 = 0;
local_74[0] = (void *)((uint)local_74[0] & 0xffff0000);
local_8._1_3_ = 0;
local_8._0_1_ = 1;
psz = (OLECHAR *)(param_1 + 0x18);
local_1410 = 0;
local_140c = 0;
if (7 < *(uint *)(param_1 + 0x2c)) {
psz = *(OLECHAR **)psz;
}
if (psz == (OLECHAR *)0x0) {
local_1404 = (wchar_t *)0x0;
}
else {
local_1404 = SysAllocString(psz);
if (local_1404 == (BSTR)0x0) {
/* WARNING: Subroutine does not return */
FUN_100013e0(0x8007000e);
}
}
pwVar12 = local_1404;
local_8._0_1_ = 2;
local_13fd[0] = 0;
iVar7 = _wcsnicmp(local_1404,L"MyPlatform.",0xb);
if ((iVar7 == 0) && (*(int *)(param_1 + 0x44) == 0)) {
FUN_1005fef0();
local_8._0_1_ = 3;
uVar3 = FUN_1005ff70();
FUN_1005f700(uVar3);
uVar3 = FUN_1005f6b0();
FUN_10014740(uVar3);
local_8._0_1_ = 4;
SysFreeString(local_2c);
local_8._0_1_ = 2;
FUN_10028fc0();
pwVar12 = local_1404;
}
else {
cVar1 = FUN_10134a10(pwVar12);
if ((cVar1 != '\0') &&
(((*(int *)(param_1 + 0x44) != 0 && (iVar7 = _wcsnicmp(pwVar12,L"MyArea.",7), iVar7 != 0)
) && (iVar7 = _wcsnicmp(pwVar12,L"MyContainer.",0xc), iVar7 != 0)))) {
piVar10 = (int *)(param_1 + 0x34);
local_13fd[0] = 1;
if (7 < *(uint *)(param_1 + 0x48)) {
piVar10 = (int *)*piVar10;
}
FUN_10014740(piVar10);
pwVar12 = local_1404;
}
}
puVar8 = (undefined4 *)FUN_1005f730(local_3c);
local_28 = *puVar8;
local_24 = (undefined2)puVar8[1];
sStack_22 = (short)((uint)puVar8[1] >> 0x10);
local_20 = (undefined2)puVar8[2];
uStack_1e = (undefined2)((uint)puVar8[2] >> 0x10);
local_1c = puVar8[3];
local_18 = puVar8[4];
*(undefined1 *)(param_1 + 0x10) = 0;
cVar1 = FUN_10089cb0(pwVar12,&local_28,&local_1408,&local_13fe,local_58,local_74,&local_1410,1
);
if (cVar1 != '\0') {
pwVar9 = (wchar_t *)(param_1 + 0x18);
if (7 < *(uint *)(param_1 + 0x2c)) {
pwVar9 = *(wchar_t **)pwVar9;
}
iVar7 = _wcsnicmp(pwVar9,L"MyHost.",7);
if ((iVar7 != 0) || (sStack_22 != 1)) {
*(undefined1 *)(param_1 + 0x10) = 1;
ppppuVar14 = (undefined4 ****)local_58[0];
if (local_44 < 8) {
ppppuVar14 = local_58;
}
iVar7 = (**(code **)(**(int **)(param_1 + 0x50) + 0x2c))
(*(int **)(param_1 + 0x50),ppppuVar14);
if (iVar7 < 0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(iVar7,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x55);
}
if (local_13fd[0] != 0) {
pwVar9 = (wchar_t *)(param_1 + 0x18);
if (7 < *(uint *)(param_1 + 0x2c)) {
pwVar9 = *(wchar_t **)pwVar9;
}
iVar7 = _wcsnicmp(pwVar9,L"MyEngine.",9);
if (iVar7 == 0) {
cVar1 = FUN_100408d0();
if (cVar1 != '\0') {
piVar10 = (int *)(param_1 + 0x34);
if (7 < *(uint *)(param_1 + 0x48)) {
piVar10 = (int *)*piVar10;
}
piVar15 = (int *)(param_1 + 0x18);
if (7 < *(uint *)(param_1 + 0x2c)) {
piVar15 = (int *)*piVar15;
}
p_Var16 = endl_exref;
uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x20),
L"PreboundReference::Resolve() - Correcting context info for ref string "
,piVar15,L" Context ",piVar10);
uVar3 = FUN_1001a0e0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar3);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::
operator<<(pbVar4,p_Var16);
}
sStack_22 = 1;
local_20 = 0;
FUN_1008fc40(0);
FUN_1008fc70(0);
}
}
uVar3 = FUN_1008f8b0(local_3c,local_28,CONCAT22(sStack_22,local_24),
CONCAT22(uStack_1e,local_20),local_1c,local_18,local_1408);
FUN_1005f7e0(uVar3);
FUN_1005f930(&local_1408);
local_13fd[0] = local_13fe & 1;
FUN_1008fca0(local_13fd);
cVar1 = FUN_10113130();
if (cVar1 != '\0') {
local_8._0_1_ = 1;
SysFreeString(pwVar12);
local_8 = (uint)local_8._1_3_ << 8;
FUN_10024360();
local_8 = 0xffffffff;
FUN_10024360();
goto LAB_101144f6;
}
cVar1 = FUN_100408d0();
if (cVar1 != '\0') {
uVar3 = FUN_1002f5f0(*(undefined4 *)(param_1 + 0x50));
p_Var16 = endl_exref;
uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x20),
L"PreboundReference::Resolve - Found mxReference ",uVar3,
L" in object handle cache");
uVar3 = FUN_1001a0e0(uVar3);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar3);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var16);
}
}
}
local_8._0_1_ = 1;
SysFreeString(pwVar12);
local_8 = (uint)local_8._1_3_ << 8;
if (7 < local_60) {
operator_delete(local_74[0]);
}
local_60 = 7;
local_64 = 0;
local_74[0] = (void *)((uint)local_74[0] & 0xffff0000);
local_8 = 0xffffffff;
if (7 < local_44) {
operator_delete(local_58[0]);
}
local_48 = 0;
local_44 = 7;
local_58[0] = (undefined4 ***)((uint)local_58[0] & 0xffff0000);
}
pcVar6 = (char *)FUN_1005f730(&local_28);
if (*pcVar6 == '\0') {
local_1404 = operator_new(8);
if (local_1404 == (BSTR)0x0) {
local_1408 = (BSTR)0x0;
}
else {
*(undefined ***)local_1404 = CRefAdapter::vftable;
*(undefined ***)local_1404 = CPreboundReferenceAdapter::vftable;
*(int *)(local_1404 + 2) = param_1;
local_1408 = local_1404;
}
local_8 = 0xffffffff;
cVar1 = FUN_10048d60(local_1408 != (BSTR)0x0,0xbe,"preboundreference.cpp");
if (cVar1 != '\0') {
*(int *)(param_1 + 0x14) = *(int *)(param_1 + 0x14) + 1;
*(undefined4 *)(param_1 + 0xa8) = 1;
DVar11 = GetTickCount();
local_38 = CONCAT22(local_38._2_2_,0xffff);
local_2c = (BSTR)((uint)local_2c & 0xffff0000);
FUN_1008f150(local_1408,0,0,0,0,local_38,1,0,local_2c,0,DVar11);
}
}
else {
iVar7 = FUN_1005f730(&local_28);
if (*(short *)(iVar7 + 10) == 0) {
pwVar12 = (wchar_t *)(param_1 + 0x18);
if (7 < *(uint *)(param_1 + 0x2c)) {
pwVar12 = *(wchar_t **)pwVar12;
}
iVar7 = _wcsnicmp(pwVar12,L"MyPlatform.",0xb);
if ((iVar7 == 0) && (iVar7 = FUN_1005f730(&local_28), *(short *)(iVar7 + 4) != 1)) {
local_1404 = (BSTR)0x0;
local_8 = 8;
ppwVar17 = &local_1404;
iVar7 = FUN_1005f730(local_3c);
FUN_10015b40(*(undefined2 *)(iVar7 + 2),ppwVar17);
UVar5 = SysStringLen(local_1404);
if (UVar5 == 0) {
iVar7 = FUN_10022ff0();
if ((*(int *)(iVar7 + 0xac) == 0) && (iVar13 = FUN_1002f080(), iVar13 == 0)) {
uVar3 = 0;
}
else {
uVar3 = *(undefined4 *)(iVar7 + 0xac);
}
uVar18 = 0;
FUN_10022ff0(uVar3,0);
cVar1 = FUN_10022ba0(uVar3,uVar18);
if (cVar1 != '\0') {
iVar7 = FUN_1005f730(local_3c);
uVar3 = FUN_10022ff0(L"PreboundReference::Resolve() - GetPlatformNameFromId returned a NULL platform name for id %d"
,*(undefined2 *)(iVar7 + 2));
FUN_10022cb0(uVar3);
}
}
puVar8 = (undefined4 *)FUN_1005f730(local_3c);
local_28 = *puVar8;
local_20 = (undefined2)puVar8[2];
uStack_1e = (undefined2)((uint)puVar8[2] >> 0x10);
local_1c = puVar8[3];
local_18 = puVar8[4];
local_24 = 1;
sStack_22 = 1;
FUN_1005f7e0(&local_28);
uVar3 = FUN_1005f6b0();
FUN_10049370(uVar3);
FUN_1005f700(local_1404);
SysFreeString(local_1404);
local_1404 = (BSTR)0x0;
*(undefined1 *)(param_1 + 0x6c) = 1;
local_8 = 0xffffffff;
SysFreeString((BSTR)0x0);
}
FUN_101131d0();
}
}
cVar1 = FUN_100408d0();
if (cVar1 != '\0') {
p_Var16 = endl_exref;
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x20),
L"PreboundReference::Resolve - EXIT");
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var16);
}
}
LAB_101144f6:
ExceptionList = local_10;
__security_check_cookie(local_14 ^ (uint)&stack0xfffffffc);
return;
}
FUN_101155a0 at 101155a0
Signature: undefined FUN_101155a0(void)
/* WARNING: Function: __alloca_probe replaced with injection: alloca_probe */
void __thiscall FUN_101155a0(undefined4 *param_1,undefined4 param_2)
{
int *piVar1;
char cVar2;
uint uVar3;
undefined4 uVar4;
int iVar5;
char *pcVar6;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar7;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var8;
undefined1 *local_145c;
undefined1 local_1458;
byte bStack_1457;
undefined2 uStack_1456;
undefined2 local_1454;
undefined2 uStack_1452;
undefined2 uStack_1450;
undefined2 local_144e;
undefined2 uStack_144c;
undefined2 uStack_144a;
undefined2 local_1448;
ushort uStack_1446;
char local_1441;
undefined1 local_b8 [144];
int local_28;
undefined4 local_24;
undefined4 local_20;
undefined4 local_1c;
undefined4 local_18;
uint local_14;
void *local_10;
undefined1 *puStack_c;
undefined4 local_8;
local_8 = 0xffffffff;
puStack_c = &LAB_101729db;
local_10 = ExceptionList;
uVar3 = DAT_101d60b8 ^ (uint)&stack0xfffffffc;
ExceptionList = &local_10;
local_14 = uVar3;
FUN_1003ec10(param_2);
local_1441 = param_1[0x29] == 1;
cVar2 = FUN_100408d0(uVar3);
if (cVar2 != '\0') {
uVar4 = FUN_1002f5f0(param_2);
uVar4 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38),
L"PreboundReference::OnPlatformResolveReferenceResults",uVar4);
FUN_1001a0e0(uVar4);
}
iVar5 = FUN_1005f730(&local_28);
if (*(short *)(iVar5 + 10) == 0) {
local_1454 = 0xffff;
local_1448 = 2;
param_1[0x2a] = 0;
param_1[0x23] = CONCAT22(uStack_1452,0xffff);
param_1[0x24] = 3;
param_1[0x25] = 0;
param_1[0x26] = CONCAT22(uStack_1446,2);
pcVar6 = strrchr("preboundreference.cpp",0x5c);
if (pcVar6 == (char *)0x0) {
pcVar6 = "preboundreference.cpp";
}
else {
pcVar6 = pcVar6 + 1;
}
FUN_10112a00(pcVar6);
param_1[0x28] = 0x327;
if (local_1441 == '\0') {
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38),
L"Local platform failed to resolve reference - starting over.");
}
}
else {
param_1[0x29] = 2;
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
p_Var8 = endl_exref;
pbVar7 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x1c),
L"PreboundReference - local platform resolution - failed.");
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar7,p_Var8);
}
}
local_144e = 0;
uStack_144c = 0;
uStack_1452 = 0;
uStack_1450 = 0;
local_20 = 0;
uStack_1456 = 0;
local_1454 = 0;
uStack_144a = 0;
local_1448 = 0;
uStack_1446 = 0;
local_24 = 0;
local_1458 = 0;
local_28 = (uint)bStack_1457 << 8;
local_1c = 0;
local_18 = 0;
FUN_1005f7e0(&local_28);
}
else {
FUN_1004c220();
local_8 = 0;
FUN_1004c320(param_1[0x14]);
local_145c = local_b8;
FUN_10073b80(&local_145c,0);
param_1[0x2a] = 3;
param_1[0x29] = 0;
FUN_10114620();
local_1454 = 0xffff;
local_1448 = 0;
param_1[0x23] = CONCAT22(uStack_1452,0xffff);
param_1[0x24] = 0;
param_1[0x25] = 0;
param_1[0x26] = (uint)uStack_1446 << 0x10;
pcVar6 = strrchr("preboundreference.cpp",0x5c);
if (pcVar6 == (char *)0x0) {
pcVar6 = "preboundreference.cpp";
}
else {
pcVar6 = pcVar6 + 1;
}
FUN_10112a00(pcVar6);
param_1[0x28] = 0x314;
if (param_1[0x29] == 1) {
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
p_Var8 = endl_exref;
pbVar7 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x1c),
L"PreboundReference - local platform resolution - success.");
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar7,p_Var8);
}
}
else {
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x38),L"Local platform resolved reference.");
}
}
iVar5 = FUN_1005f730(&local_28);
FUN_10040470(*(undefined2 *)(iVar5 + 2));
local_8 = 0xffffffff;
FUN_1002e080();
}
(**(code **)(param_1[1] + 4))();
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(*(basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> **)
(DAT_101d6474 + 0x38),endl_exref);
}
if ((param_1[0x2a] != 1) && (param_1[0x2a] != 2)) {
FUN_10050df0(param_1 + 0x23,param_1);
}
if (local_1441 != '\0') {
piVar1 = param_1 + 5;
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
(**(code **)*param_1)(1);
}
}
ExceptionList = local_10;
__security_check_cookie(local_14 ^ (uint)&stack0xfffffffc);
return;
}
FUN_10114a90 at 10114a90
Signature: undefined FUN_10114a90(void)
void __thiscall
FUN_10114a90(undefined4 *param_1,int param_2,int *param_3,ushort param_4,undefined4 param_5,
void *param_6,short *param_7)
{
char cVar1;
uint uVar2;
undefined4 uVar3;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar4;
int iVar5;
undefined4 *puVar6;
wchar_t *pwVar7;
wchar_t *pwVar8;
size_t _MaxCount;
DWORD DVar9;
int iVar10;
int *piVar11;
undefined2 uVar12;
wchar_t _Ch;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var13;
undefined4 uVar14;
undefined1 local_ba4 [20];
undefined1 local_b90 [20];
undefined4 local_b7c;
undefined4 local_b74;
void *local_b70;
short *local_b6c;
undefined4 *local_b68;
int *local_b64;
char local_b5e;
char local_b5d;
undefined4 *local_b5c [391];
wchar_t local_540 [520];
undefined1 local_130 [20];
undefined1 local_11c [20];
undefined1 local_108 [60];
undefined1 local_cc [20];
undefined4 local_b8 [36];
undefined4 local_28;
undefined4 local_24;
undefined4 local_20;
uint local_14;
void *local_10;
undefined1 *puStack_c;
undefined4 local_8;
local_8 = 0xffffffff;
puStack_c = &LAB_101729a5;
local_10 = ExceptionList;
uVar2 = DAT_101d60b8 ^ (uint)&stack0xfffffffc;
ExceptionList = &local_10;
local_b5c[0] = (undefined4 *)(uint)param_4;
local_b74 = param_5;
local_b70 = param_6;
local_b6c = param_7;
local_14 = uVar2;
cVar1 = FUN_100408d0(uVar2);
if (cVar1 != '\0') {
local_20 = *(undefined4 *)(local_b6c + 2);
swprintf_s(local_540,0x104,L"<success %d category %d detectedBy %d detail %d>",
(int)(short)*(undefined4 *)local_b6c,local_20,*(undefined4 *)(local_b6c + 4),
(int)local_b6c[6]);
local_b64 = (int *)FUN_10004010(local_b74,local_b70);
local_b5c[0] = (undefined4 *)FUN_100040a0(local_b5c[0]);
uVar3 = FUN_100300d0(param_3);
iVar5 = param_2;
p_Var13 = endl_exref;
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x20),
L"PreboundReference::OnSetAttributeResult - ENTER correlationId ",param_2,
L" pValue ",uVar3,L" quality ",local_b5c[0],L" timestamp ",local_b64,
L" mxStatus ",local_540);
pbVar4 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,iVar5);
uVar3 = FUN_1001a0e0(pbVar4);
uVar3 = FUN_1001a0e0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar3);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var13);
}
if (param_2 == 0) {
if (*local_b6c == -1) {
iVar5 = (**(code **)(*param_3 + 0x60))(param_3,&local_b68);
iVar5 = FUN_10048e60(iVar5 == 0,iVar5,300,"preboundreference.cpp");
if (iVar5 == 0) goto LAB_1011543c;
if (local_b68 != (undefined4 *)0x0) {
local_b64 = (int *)0x0;
local_8 = 1;
uVar12 = 0x1011;
iVar5 = (**(code **)(*param_3 + 0x80))(param_3,&local_b64);
if (iVar5 == 0) {
FUN_1008e710(local_b64);
local_8._0_1_ = 2;
FUN_10112f20(local_b90);
local_8._0_1_ = 1;
FUN_10021cc0();
FUN_1005f730(&local_28);
uVar3 = CONCAT22(uVar12,(undefined2)local_20);
cVar1 = FUN_100057b0(local_28,local_24,uVar3,0x138,"preboundreference.cpp");
uVar12 = (undefined2)((uint)uVar3 >> 0x10);
if (cVar1 != '\0') {
FUN_1004c220();
local_8._0_1_ = 3;
FUN_1004c320(param_1[0x14]);
local_b5c[0] = local_b8;
uVar12 = 0x1011;
FUN_10073b80(local_b5c,0);
iVar5 = FUN_1005f730(local_130);
FUN_10040470(*(undefined2 *)(iVar5 + 2));
local_8._0_1_ = 1;
FUN_1002e080();
}
cVar1 = FUN_100057b0(local_28,local_24,CONCAT22(uVar12,(undefined2)local_20),0x144,
"preboundreference.cpp");
if (cVar1 == '\0') {
param_1[0x2a] = 4;
}
else {
iVar5 = FUN_1005f730(local_11c);
if (*(short *)(iVar5 + 10) == 0) {
FUN_101131d0();
}
else {
param_1[0x2a] = 3;
param_1[0x29] = 0;
FUN_10114620();
}
}
}
local_8 = 0xffffffff;
if (local_b64 != (int *)0x0) {
(**(code **)(*local_b64 + 8))(local_b64);
}
goto LAB_1011543c;
}
}
else if (((DAT_101d8c40 == 2) && (param_1[0x29] == 0)) &&
(*(ushort *)(param_1[0x19] + 0x2ac) - 0x7c17 < 0x3e9)) {
cVar1 = FUN_100408d0(uVar2);
if (cVar1 != '\0') {
uVar3 = FUN_10003fc0(*(undefined4 *)local_b6c,*(undefined4 *)(local_b6c + 2),
*(undefined4 *)(local_b6c + 4),*(undefined4 *)(local_b6c + 6));
p_Var13 = endl_exref;
uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x1c),
L"PreboundReference - attempting local platform <",param_1 + 6,
L"> - status ",uVar3);
uVar3 = FUN_1001dec0(uVar3);
uVar3 = FUN_1001a0e0(uVar3);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar3);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var13);
}
param_1[5] = param_1[5] + 1;
param_1[0x2a] = 1;
param_1[0x29] = 1;
FUN_10112cd0();
goto LAB_1011543c;
}
LAB_10115432:
param_1[0x2a] = 4;
goto LAB_1011543c;
}
if (param_2 != 1) goto LAB_1011543c;
param_1[0x2a] = 6;
if (*local_b6c != -1) {
if (*(char *)(param_1 + 0x1b) != '\0') {
if ((uint)param_1[0x21] < 8) {
puVar6 = param_1 + 0x1c;
}
else {
puVar6 = (undefined4 *)param_1[0x1c];
}
iVar5 = (**(code **)(*(int *)param_1[0x14] + 0x44))((int *)param_1[0x14],puVar6);
if (iVar5 < 0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(iVar5,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x75);
}
*(undefined1 *)(param_1 + 0x1b) = 0;
}
if (*(int *)(local_b6c + 2) == 3) {
LAB_1011502e:
param_1[0x2a] = 6;
goto LAB_1011543c;
}
if ((*(int *)(local_b6c + 2) == 4) && (local_b6c[6] == 0x1f42)) {
local_b70 = operator_new(8);
local_8 = 0xb;
if (local_b70 == (void *)0x0) {
local_b5c[0] = (undefined4 *)0x0;
}
else {
local_b5c[0] = (undefined4 *)FUN_10112b50(param_1);
}
local_8 = 0xffffffff;
cVar1 = FUN_10048d60(local_b5c[0] != (undefined4 *)0x0,0x23b,"preboundreference.cpp");
if (cVar1 != '\0') {
uVar3 = FUN_10016fd0();
FUN_1005f7e0(uVar3);
FUN_1004c220();
local_8 = 0xc;
FUN_1004c320(param_1[0x14]);
local_b68 = local_b8;
FUN_10073b80(&local_b68,0);
param_1[5] = param_1[5] + 1;
param_1[0x2a] = 1;
DVar9 = GetTickCount();
FUN_1008f150(local_b5c[0],0,0,0,0,*(undefined4 *)local_b6c,*(undefined4 *)(local_b6c + 2),
*(undefined4 *)(local_b6c + 4),*(undefined4 *)(local_b6c + 6),0,DVar9);
local_8 = 0xffffffff;
FUN_1002e080();
}
goto LAB_1011543c;
}
goto LAB_10115432;
}
iVar5 = (**(code **)(*param_3 + 0x60))(param_3,&local_b68);
iVar5 = FUN_10048e60(iVar5 == 0,iVar5,0x19d,"preboundreference.cpp");
if (iVar5 == 0) goto LAB_1011543c;
if (local_b68 == (undefined4 *)0x0) goto LAB_1011502e;
local_b64 = (int *)0x0;
local_8 = 6;
uVar12 = 0x1011;
iVar5 = (**(code **)(*param_3 + 0x80))(param_3,&local_b64);
if (iVar5 == 0) {
FUN_1008e710(local_b64);
local_8._0_1_ = 7;
FUN_10112f20(local_ba4);
local_8 = CONCAT31(local_8._1_3_,6);
FUN_10021cc0();
if (*(char *)(param_1 + 0x1b) != '\0') {
piVar11 = param_1 + 0x1c;
if (7 < (uint)param_1[0x21]) {
piVar11 = (int *)*piVar11;
}
FUN_1005f700(piVar11);
*(undefined1 *)(param_1 + 0x1b) = 0;
}
iVar5 = FUN_1005f730(local_108);
if (*(short *)(iVar5 + 10) == 0) {
local_b5d = '\0';
local_b5e = '\0';
puVar6 = (undefined4 *)FUN_1005f730(local_cc);
cVar1 = FUN_100057b0(*puVar6,puVar6[1],CONCAT22(uVar12,*(undefined2 *)(puVar6 + 2)),0x1c1,
"preboundreference.cpp");
if (cVar1 == '\0') {
if (*(char *)(param_1 + 4) != '\0') {
FUN_1004c220();
local_8._0_1_ = 8;
FUN_1004c320(param_1[0x14]);
local_b5c[0] = local_b8;
FUN_10073b80(local_b5c,0);
local_8 = CONCAT31(local_8._1_3_,6);
FUN_1002e080();
}
local_b5e = '\x01';
}
else {
pwVar7 = (wchar_t *)FUN_1005f590();
cVar1 = FUN_10134a10(pwVar7);
if (cVar1 == '\0') {
pwVar8 = wcschr(pwVar7,L'.');
if ((pwVar8 != (wchar_t *)0x0) &&
(_MaxCount = (int)pwVar8 - (int)pwVar7 >> 1, _MaxCount != 0)) {
pwVar8 = (wchar_t *)FUN_1005f610();
iVar5 = _wcsnicmp(pwVar7,pwVar8,_MaxCount);
if (iVar5 == 0) {
_Ch = L'.';
pwVar7 = (wchar_t *)FUN_1005f660();
pwVar7 = wcschr(pwVar7,_Ch);
if (pwVar7 == (wchar_t *)0x0) goto LAB_10114e2f;
}
local_b5d = '\x01';
}
}
}
LAB_10114e2f:
if ((*(char *)(param_1 + 4) == '\0') || ((local_b5d == '\0' && (local_b5e == '\0')))) {
param_1[0x2a] = 4;
}
else {
local_b70 = operator_new(8);
local_8._0_1_ = 9;
if (local_b70 == (void *)0x0) {
local_b5c[0] = (undefined4 *)0x0;
}
else {
local_b5c[0] = (undefined4 *)FUN_10112b50(param_1);
}
local_8 = CONCAT31(local_8._1_3_,6);
cVar1 = FUN_10048d60(local_b5c[0] != (undefined4 *)0x0,0x1ee,"preboundreference.cpp");
if (cVar1 == '\0') {
param_1[0x2a] = 4;
iVar5 = FUN_10022ff0();
if (*(int *)(iVar5 + 0xac) == 0) {
iVar10 = FUN_1002f080();
if (iVar10 != 0) goto LAB_10114f66;
uVar3 = 0;
}
else {
LAB_10114f66:
uVar3 = *(undefined4 *)(iVar5 + 0xac);
}
uVar14 = 0;
FUN_10022ff0(uVar3,0);
cVar1 = FUN_10022ba0(uVar3,uVar14);
if (cVar1 != '\0') {
uVar3 = FUN_1005f590();
uVar3 = FUN_10022ff0(L"PreboundReference::OnSetAttributeResult unable to crreate CPreboundReferenceAdapter for ref %s"
,uVar3);
FUN_10022cb0(uVar3);
}
}
else {
*(undefined1 *)(param_1 + 4) = 0;
uVar3 = FUN_10016fd0();
FUN_1005f7e0(uVar3);
FUN_1008fc40(&DAT_1017a514);
FUN_1008fc70(&DAT_1017a514);
param_1[5] = param_1[5] + 1;
param_1[0x2a] = 1;
DVar9 = GetTickCount();
local_b70 = (void *)CONCAT22(local_b70._2_2_,0x1f42);
local_b7c = (uint)local_b7c._2_2_ << 0x10;
FUN_1008f150(local_b5c[0],0,0,0,0,local_b7c,4,0,local_b70,0,DVar9);
}
}
}
else {
param_1[0x2a] = 3;
param_1[0x29] = 0;
FUN_10114620();
}
}
local_8 = 0xffffffff;
if (local_b64 != (int *)0x0) {
(**(code **)(*local_b64 + 8))(local_b64);
}
LAB_1011543c:
if (*(char *)(param_1 + 0x1b) != '\0') {
if ((uint)param_1[0x21] < 8) {
puVar6 = param_1 + 0x1c;
}
else {
puVar6 = (undefined4 *)param_1[0x1c];
}
iVar5 = (**(code **)(*(int *)param_1[0x14] + 0x44))((int *)param_1[0x14],puVar6);
if (iVar5 < 0) {
/* WARNING: Subroutine does not return */
FUN_1005bf30(iVar5,0,"E:\\BldSrc\\6\\s\\ExtInterfaces\\Lmx\\IMxReferencePtr.h",0x75);
}
*(undefined1 *)(param_1 + 0x1b) = 0;
}
if ((param_1[0x2a] != 1) && (param_1[0x2a] != 2)) {
FUN_10050df0(local_b6c,param_1);
}
piVar11 = param_1 + 5;
*piVar11 = *piVar11 + -1;
if (*piVar11 == 0) {
(**(code **)*param_1)(1);
}
local_b5c[0] = (undefined4 *)param_1[0x2a];
if (param_1[5] == 1) {
local_b68 = param_1;
piVar11 = (int *)FUN_100484c0(&local_b70,&local_b68);
iVar5 = *piVar11;
cVar1 = FUN_10048d60(iVar5 != *(int *)(param_1[0x19] + 0x180),0x273,"preboundreference.cpp");
if (cVar1 != '\0') {
FUN_100382e0(&local_b70,iVar5);
piVar11 = param_1 + 5;
*piVar11 = *piVar11 + -1;
if (*piVar11 == 0) {
(**(code **)*param_1)(1);
}
}
}
cVar1 = FUN_100408d0();
if (cVar1 != '\0') {
uVar3 = FUN_10001e20(local_b5c);
p_Var13 = endl_exref;
uVar3 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x20),
L"PreboundReference::OnSetAttributeResult - EXIT status ",uVar3);
pbVar4 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar3);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar4,p_Var13);
}
ExceptionList = local_10;
__security_check_cookie(local_14 ^ (uint)&stack0xfffffffc);
return;
}
FUN_10141bb0 at 10141bb0
Signature: undefined FUN_10141bb0(void)
/* WARNING: Function: __alloca_probe replaced with injection: alloca_probe */
void __thiscall FUN_10141bb0(int param_1,undefined1 param_2,undefined4 param_3)
{
int iVar1;
char cVar2;
uint uVar3;
undefined4 uVar4;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar5;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var6;
bool local_1394;
uVar3 = DAT_101d60b8 ^ (uint)&stack0xfffffffc;
local_1394 = false;
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
uVar4 = FUN_1002f5f0(param_3);
p_Var6 = endl_exref;
uVar4 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x34),
L"Reference::InitializeWithPreboundReference - ENTER pReference ",uVar4);
pbVar5 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar4);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar5,p_Var6);
}
iVar1 = *(int *)(param_1 + 0xa4);
if (((((iVar1 == 1) || (iVar1 == 2)) || (iVar1 == 6)) || ((iVar1 == 8 || (iVar1 == 10)))) ||
(iVar1 == 0xb)) {
local_1394 = true;
}
else {
FUN_1004c320(param_3);
*(undefined1 *)(param_1 + 0x154) = param_2;
if ((((char)*(uint *)(param_1 + 0x1c) != '\0') && (*(uint *)(param_1 + 0x1c) >> 0x10 != 0)) &&
(((short)*(uint *)(param_1 + 0x20) != 0 &&
((*(uint *)(param_1 + 0x20) >> 0x10 != 0 && (*(short *)(param_1 + 0x26) != 0)))))) {
cVar2 = FUN_10001360();
if (cVar2 == '\0') {
FUN_101392c0(3,"Reference.cpp",0xca3);
FUN_10141580();
}
else {
FUN_101392c0(8,"Reference.cpp",0xc99);
FUN_10133cb0(param_1 + 4,param_1 + 0xc,0);
}
local_1394 = true;
}
}
cVar2 = FUN_100408d0();
if (cVar2 != '\0') {
p_Var6 = endl_exref;
pbVar5 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x34),
L"Reference::InitializeWithPreboundReference - EXIT rc ");
pbVar5 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar5,local_1394);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar5,p_Var6);
}
__security_check_cookie(uVar3 ^ (uint)&stack0xfffffffc);
return;
}
FUN_10141d60 at 10141d60
Signature: undefined FUN_10141d60(void)
/* WARNING: Function: __alloca_probe replaced with injection: alloca_probe */
void __thiscall FUN_10141d60(int param_1,int *param_2,int param_3)
{
uint uVar1;
uint uVar2;
int *piVar3;
char cVar4;
undefined4 uVar5;
basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *pbVar6;
UINT UVar7;
int iVar8;
int iVar9;
int iVar10;
int iVar11;
bool bVar12;
_func_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr_basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>_ptr
*p_Var13;
int local_15b0;
undefined1 local_15ac;
byte bStack_15ab;
undefined2 uStack_15aa;
undefined2 local_15a8;
ushort uStack_15a6;
undefined2 local_15a4;
undefined2 uStack_15a2;
short local_15a0;
undefined2 uStack_159e;
undefined2 local_159c;
undefined2 uStack_159a;
wchar_t local_210 [260];
uint local_8;
local_8 = DAT_101d60b8 ^ (uint)&stack0xfffffffc;
local_15b0 = param_3;
cVar4 = FUN_100408d0();
if (cVar4 != '\0') {
uVar5 = FUN_1002f5f0(param_3);
swprintf_s(local_210,0x104,L"<success %d category %d detectedBy %d detail %d>",
(int)(short)*param_2,param_2[1],param_2[2],(int)(short)param_2[3]);
p_Var13 = endl_exref;
uVar5 = FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x34),
L"Reference::PreboundReferenceResolved - ENTER status ",local_210,
L" pReference ",uVar5);
uVar5 = FUN_1001a0e0(uVar5);
uVar5 = FUN_1001a0e0(uVar5);
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(uVar5);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,p_Var13);
param_3 = local_15b0;
}
if ((short)*param_2 == -1) {
if (*(BSTR *)(param_1 + 0x16c) != (BSTR)0x0) {
UVar7 = SysStringLen(*(BSTR *)(param_1 + 0x16c));
if (UVar7 != 0) goto LAB_10142175;
}
FUN_1004c320(param_3);
uVar1 = *(uint *)(param_1 + 0x1c);
uVar2 = *(uint *)(param_1 + 0x20);
local_159c = *(undefined2 *)(param_1 + 0x24);
local_15a4 = (undefined2)uVar1;
uStack_15a2 = (undefined2)(uVar1 >> 0x10);
local_15a0 = (short)uVar2;
uStack_159e = (undefined2)(uVar2 >> 0x10);
if (((((char)uVar1 == '\0') || (uVar1 >> 0x10 == 0)) || (local_15a0 == 0)) ||
((uVar2 >> 0x10 == 0 || (*(short *)(param_1 + 0x26) == 0)))) {
FUN_101392c0(4,"Reference.cpp",0xccc);
local_15a8 = 0;
local_159c = 6;
FUN_10100da0((uint)uStack_15a6 << 0x10,4,0,CONCAT22(uStack_159a,6),"Reference.cpp",0xcce);
uStack_15aa = 0;
local_15a8 = 0;
uStack_15a2 = 0;
local_15a0 = 0;
uStack_15a6 = 0;
local_15a4 = 0;
uStack_159e = 0;
local_159c = 0;
uStack_159a = 0;
local_15ac = 0;
*(uint *)(param_1 + 0x1c) = (uint)bStack_15ab << 8;
*(undefined4 *)(param_1 + 0x20) = 0;
*(undefined4 *)(param_1 + 0x24) = 0;
*(undefined4 *)(param_1 + 0x28) = 0;
*(undefined4 *)(param_1 + 0x2c) = 0;
local_15b0 = param_1 + 0x10;
FUN_10073b80(&local_15b0,0);
FUN_10138180("Reference.cpp",0xcd6);
piVar3 = *(int **)(param_1 + 0x1a8);
if ((piVar3 != (int *)0x0) && (*(char *)(param_1 + 0x1bc) != '\0')) {
if (*(int *)(param_1 + 0x108) == 0) {
DAT_101d8c50 = DAT_101d8c50 + 1;
cVar4 = FUN_100408d0();
if (cVar4 != '\0') {
iVar11 = 0xce2;
p_Var13 = endl_exref;
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x40),
L"no outstanding references refering to this reference callback will not be called line "
,0xce2,L" file ","Reference.cpp");
pbVar6 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::
operator<<(pbVar6,iVar11);
uVar5 = FUN_1001a0e0(pbVar6);
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001dc00(uVar5);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,p_Var13);
}
}
else if (*(char *)(param_1 + 0x156) == '\0') {
(**(code **)(*piVar3 + 0xc))(piVar3,*(undefined4 *)(param_1 + 0x1ac));
}
}
}
else {
FUN_101392c0(3,"Reference.cpp",0xcc3);
FUN_10040470(*(undefined2 *)(param_1 + 0x1e));
FUN_10141580();
}
}
else {
if (param_2[1] == 3) {
FUN_101392c0(5,"Reference.cpp",0xcf3);
uVar5 = 0xcf4;
local_15a8 = 0;
iVar11 = (uint)uStack_15a6 << 0x10;
iVar9 = 0;
local_159c = 7;
iVar10 = 3;
iVar8 = CONCAT22(uStack_159a,7);
}
else {
FUN_101392c0(0,"Reference.cpp",0xcfb);
iVar11 = *param_2;
iVar10 = param_2[1];
uVar5 = 0xcfc;
iVar9 = param_2[2];
iVar8 = param_2[3];
}
FUN_10100da0(iVar11,iVar10,iVar9,iVar8,"Reference.cpp",uVar5);
uStack_15aa = 0;
local_15a8 = 0;
uStack_15a2 = 0;
local_15a0 = 0;
uStack_15a6 = 0;
local_15a4 = 0;
uStack_159e = 0;
local_159c = 0;
uStack_159a = 0;
local_15ac = 0;
*(uint *)(param_1 + 0x1c) = (uint)bStack_15ab << 8;
*(undefined4 *)(param_1 + 0x20) = 0;
*(undefined4 *)(param_1 + 0x24) = 0;
local_15b0 = param_1 + 0x10;
*(undefined4 *)(param_1 + 0x28) = 0;
*(undefined4 *)(param_1 + 0x2c) = 0;
FUN_10073b80(&local_15b0,0);
FUN_10138180("Reference.cpp",0xd07);
}
LAB_10142175:
cVar4 = FUN_100408d0();
if (cVar4 != '\0') {
bVar12 = true;
p_Var13 = endl_exref;
pbVar6 = (basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_> *)
FUN_1001a0e0(*(undefined4 *)(DAT_101d6474 + 0x34),
L"Reference::PreboundReferenceResolved - EXIT rc ");
pbVar6 = std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,bVar12);
std::basic_ostream<unsigned_short,struct_std::char_traits<unsigned_short>_>::operator<<
(pbVar6,p_Var13);
}
__security_check_cookie(local_8 ^ (uint)&stack0xfffffffc);
return;
}