# LmxProxy.dll selected decompile ## FUN_1001611f at 1001611f Signature: `undefined __thiscall FUN_1001611f(void * this, long param_1, long param_2, undefined4 param_3)` ```c /* WARNING: Function: __EH_prolog3 replaced with injection: EH_prolog3 */ /* WARNING: Function: __EH_epilog3 replaced with injection: EH_epilog3 */ void __thiscall FUN_1001611f(void *this,long param_1,long param_2,undefined4 param_3) { basic_ostream_> bVar1; undefined4 *puVar2; int *piVar3; basic_ostream_> *pbVar4; undefined4 *this_00; long lVar5; wchar_t *pwVar6; long lVar7; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var8; undefined4 *local_30; undefined4 local_2c; undefined4 local_28; undefined4 local_24; int *local_20; int local_1c; void *local_18; int local_14; undefined4 local_8; undefined4 uStack_4; uStack_4 = 0x20; local_8 = 0x1001612b; puVar2 = (undefined4 *)FUN_100170a4(0x34); if (puVar2 == (undefined4 *)0x0) { this_00 = (undefined4 *)0x0; } else { this_00 = puVar2 + 1; *puVar2 = 3; _eh_vector_constructor_iterator_(this_00,0x10,3,FUN_10001517,FUN_10001f45); } local_1c = *(int *)((int)this + 8); local_14 = 0; if (0 < local_1c) { local_18 = (void *)((int)this + 4); do { piVar3 = (int *)FUN_10007d02(local_18,local_14); local_20 = piVar3; if (piVar3 != (int *)0x0) { (**(code **)(*piVar3 + 4))(piVar3); } local_8 = 1; if (piVar3 != (int *)0x0) { FUN_10015d08(this_00 + 8,param_1); FUN_10015d08(this_00 + 4,param_2); *(undefined2 *)this_00 = 0x6024; this_00[2] = param_3; local_2c = 0; local_28 = 3; local_24 = 0; local_30 = this_00; bVar1 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 0xc)); if (bVar1 != (basic_ostream_>)0x0) { pwVar6 = L" Item Handle "; lVar5 = param_1; lVar7 = param_2; p_Var8 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 0xc), L"CProxy_ILMXProxyServerEvents::Fire_OnWriteComplete firing event - Server Handle " ); pbVar4 = std::basic_ostream_>::operator<< (pbVar4,lVar5); pbVar4 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar4,pwVar6); pbVar4 = std::basic_ostream_>::operator<< (pbVar4,lVar7); std::basic_ostream_>::operator<<(pbVar4,p_Var8); } (**(code **)(*piVar3 + 0x18))(piVar3,2,&DAT_100201f8,0x400,1,&local_30,0,0,0); } local_8 = 0xffffffff; if (piVar3 != (int *)0x0) { (**(code **)(*piVar3 + 8))(piVar3); } local_14 = local_14 + 1; } while (local_14 < local_1c); } if (this_00 != (undefined4 *)0x0) { FUN_10015d66(this_00,3); } return; } ``` ## FUN_10016271 at 10016271 Signature: `undefined __thiscall FUN_10016271(void * this, long param_1, long param_2, undefined4 param_3)` ```c /* WARNING: Function: __EH_prolog3 replaced with injection: EH_prolog3 */ /* WARNING: Function: __EH_epilog3 replaced with injection: EH_epilog3 */ void __thiscall FUN_10016271(void *this,long param_1,long param_2,undefined4 param_3) { basic_ostream_> bVar1; undefined4 *puVar2; int *piVar3; basic_ostream_> *pbVar4; undefined4 *this_00; long lVar5; wchar_t *pwVar6; long lVar7; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var8; undefined4 *local_30; undefined4 local_2c; undefined4 local_28; undefined4 local_24; int *local_20; int local_1c; void *local_18; int local_14; undefined4 local_8; undefined4 uStack_4; uStack_4 = 0x20; local_8 = 0x1001627d; puVar2 = (undefined4 *)FUN_100170a4(0x34); if (puVar2 == (undefined4 *)0x0) { this_00 = (undefined4 *)0x0; } else { this_00 = puVar2 + 1; *puVar2 = 3; _eh_vector_constructor_iterator_(this_00,0x10,3,FUN_10001517,FUN_10001f45); } local_1c = *(int *)((int)this + 8); local_14 = 0; if (0 < local_1c) { local_18 = (void *)((int)this + 4); do { piVar3 = (int *)FUN_10007d02(local_18,local_14); local_20 = piVar3; if (piVar3 != (int *)0x0) { (**(code **)(*piVar3 + 4))(piVar3); } local_8 = 1; if (piVar3 != (int *)0x0) { FUN_10015d08(this_00 + 8,param_1); FUN_10015d08(this_00 + 4,param_2); local_2c = 0; local_24 = 0; *(undefined2 *)this_00 = 0x6024; this_00[2] = param_3; local_28 = 3; local_30 = this_00; bVar1 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 0xc)); if (bVar1 != (basic_ostream_>)0x0) { pwVar6 = L" Item Handle "; lVar5 = param_1; lVar7 = param_2; p_Var8 = endl_exref; pbVar4 = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 0xc), L"CProxy_ILMXProxyServerEvents::Fire_OperationComplete firing event - Server Handle " ); pbVar4 = std::basic_ostream_>::operator<< (pbVar4,lVar5); pbVar4 = (basic_ostream_> *) FUN_10002dbf((int *)pbVar4,pwVar6); pbVar4 = std::basic_ostream_>::operator<< (pbVar4,lVar7); std::basic_ostream_>::operator<<(pbVar4,p_Var8); } (**(code **)(*piVar3 + 0x18))(piVar3,3,&DAT_100201f8,0x400,1,&local_30,0,0,0); } local_8 = 0xffffffff; if (piVar3 != (int *)0x0) { (**(code **)(*piVar3 + 8))(piVar3); } local_14 = local_14 + 1; } while (local_14 < local_1c); } if (this_00 != (undefined4 *)0x0) { FUN_10015d66(this_00,3); } return; } ``` ## Catch@10016cd3 at 10016cd3 Signature: `undefined * __cdecl Catch@10016cd3(void)` ```c undefined * __cdecl Catch_10016cd3(void) { basic_ostream_> bVar1; basic_ostream_> *this; int unaff_EBP; _func_basic_ostream_>_ptr_basic_ostream_>_ptr *p_Var2; bVar1 = FUN_10003f01(*(basic_ostream_> **) (DAT_100294e0 + 4)); if (bVar1 != (basic_ostream_>)0x0) { p_Var2 = endl_exref; this = (basic_ostream_> *) FUN_10002dbf(*(int **)(DAT_100294e0 + 4), L"Fire_OnWriteComplete - threw an unknown exception"); std::basic_ostream_>::operator<<(this,p_Var2); } *(undefined4 *)(unaff_EBP + 8) = 0x80004005; *(undefined4 *)(unaff_EBP + -4) = 0xffffffff; return &DAT_10016d17; } ```