# aaMxDataConsumer.dll selected decompile ## GetIDataAdapter at 100058e4 Signature: `pointer __fastcall GetIDataAdapter(int AccessName, undefined4 param_2)` ```c /* WARNING: Instruction at (ram,0x10005ac3) overlaps instruction at (ram,0x10005ac2) */ /* WARNING: Unable to track spacebase fully for stack */ undefined * __fastcall GetIDataAdapter(int AccessName,undefined4 param_2) { code *pcVar1; undefined2 uVar2; char cVar3; byte bVar4; char cVar5; byte bVar6; byte bVar7; undefined4 in_EAX; uint uVar8; undefined3 uVar15; char *pcVar9; int *piVar10; uint *puVar11; byte *pbVar12; int iVar13; undefined *puVar14; char cVar16; byte *pbVar17; byte bVar18; char cVar22; undefined3 uVar23; uint *puVar19; uint *puVar20; uint *puVar21; byte bVar24; byte *unaff_EBX; int *piVar25; byte *unaff_EBP; byte *unaff_ESI; byte *pbVar26; byte *pbVar27; uint *unaff_EDI; uint *puVar28; ushort in_ES; undefined2 in_SS; undefined2 in_DS; char in_CF; bool bVar29; byte in_AF; bool bVar30; byte in_TF; byte in_IF; bool bVar31; byte in_NT; byte in_AC; byte in_VIF; byte in_VIP; byte in_ID; undefined2 uStack_47; undefined1 uStack_45; undefined1 uStack_44; undefined4 uStack_28; uint *puStack_24; uint *puStack_18; uint *puStack_10; byte *pbStack_c; uint *puStack_8; /* .NET CLR Managed Code */ uVar8 = CONCAT31((int3)((uint)in_EAX >> 8),(char)in_EAX + in_CF + '\'') | 0x197e; uVar23 = (undefined3)((uint)param_2 >> 8); bVar18 = (byte)param_2 | *unaff_EBX; cVar5 = (char)uVar8; uVar15 = (undefined3)(uVar8 >> 8); cVar3 = cVar5 + '\x02'; pcVar9 = (char *)CONCAT31(uVar15,cVar3); *pcVar9 = *pcVar9 + cVar3; bVar18 = bVar18 | *(byte *)CONCAT31(uVar23,bVar18); pcVar9 = (char *)CONCAT31(uVar23,bVar18); cVar16 = (char)AccessName; *pcVar9 = *pcVar9 + cVar16; bVar4 = (cVar5 + 0x2aU | *unaff_ESI) + 0xad; puVar19 = (uint *)CONCAT31(uVar15,bVar4); bVar24 = (byte)unaff_EBX; *(byte *)puVar19 = (char)*puVar19 - bVar24; *(byte *)puVar19 = (char)*puVar19 + bVar4; bVar18 = bVar18 | bVar4; iVar13 = CONCAT31(uVar23,bVar18); puStack_8 = (uint *)CONCAT22(puStack_8._2_2_,in_DS); *(byte *)puVar19 = (char)*puVar19 + bVar4; uVar8 = *puVar19; *puVar19 = (uint)(unaff_EBP + *puVar19); pcVar9 = (char *)((int)puVar19 + CARRY4(uVar8,(uint)unaff_EBP) + 0x6f0a0000); pbStack_c = (byte *)CONCAT22(pbStack_c._2_2_,in_SS); cVar3 = (char)pcVar9; *pcVar9 = *pcVar9 + cVar3; bVar4 = (byte)((uint)AccessName >> 8) | *(byte *)(AccessName + iVar13); pbVar17 = (byte *)CONCAT22((short)((uint)AccessName >> 0x10),CONCAT11(bVar4,cVar16)); puStack_10 = (uint *)(uint)in_ES; pbVar27 = unaff_ESI; if (bVar4 == 0) { pbVar27 = unaff_ESI + 4; out(*(int *)unaff_ESI,(short)iVar13); } *pcVar9 = *pcVar9 + cVar3; *(byte **)(unaff_EBX + -0x17) = pbVar27 + *(int *)(unaff_EBX + -0x17); piVar10 = (int *)(CONCAT31((int3)((uint)pcVar9 >> 8),cVar3 + *pcVar9) | 0x17438); bVar6 = (byte)piVar10; *pbVar27 = *pbVar27 + bVar6; *(byte *)piVar10 = (char)*piVar10 - bVar24; *(byte *)piVar10 = (char)*piVar10 + bVar6; *pbVar17 = *pbVar17 + bVar6; cRam6f0a0000 = cRam6f0a0000 - (bVar18 | bVar6); puStack_18 = (uint *)CONCAT22(puStack_18._2_2_,in_SS); *(byte *)piVar10 = (char)*piVar10 + bVar6; bVar18 = (byte)((uint)unaff_EBX >> 8) | *pbVar17; piVar25 = (int *)CONCAT22((short)((uint)unaff_EBX >> 0x10),CONCAT11(bVar18,bVar24)); *piVar10 = (int)(*piVar10 + (int)piVar10); *pbVar27 = *pbVar27 + bVar6; if (*pbVar27 != 0) { *(byte *)piVar10 = (char)*piVar10 + bVar6; *(int *)((int)piVar25 + -0x2f) = (int)(pbVar27 + *(int *)((int)piVar25 + -0x2f)); piVar10 = (int *)CONCAT31((int3)((uint)piVar10 >> 8),bVar6 + (char)*piVar10); } code_r0x1000594e: *pbVar17 = *pbVar17 + (char)puStack_18; uVar2 = puStack_10._0_2_; cVar3 = (char)((uint)piVar10 | 0x14938) + '\x03'; pcVar9 = (char *)CONCAT31((int3)(((uint)piVar10 | 0x14938) >> 8),cVar3); *(byte *)puStack_18 = (char)*puStack_18 - bVar24; *pcVar9 = *pcVar9 + cVar3; pcVar9 = (char *)((uint)pbStack_c | *unaff_EDI | 0x7e); puVar19 = (uint *)((int)puStack_18 + -1); *pcVar9 = *pcVar9 + (char)pcVar9; puVar11 = puStack_8; code_r0x10005968: puStack_8 = puVar11; puVar21 = (uint *)(CONCAT31((int3)((uint)pcVar9 >> 8),(char)pcVar9 + '\x17') + -0x4a7e33); code_r0x10005970: puVar11 = puVar21; *(byte *)((int)puStack_8 + (int)puVar19) = *(byte *)((int)puStack_8 + (int)puVar19) + (char)puVar11; *(char *)puVar19 = (char)*puVar19; puVar21 = puRam28040000; puStack_24 = puStack_8; puStack_10 = puVar19; code_r0x10005981: cVar3 = (char)puVar21; *pbVar27 = *pbVar27 + cVar3; *pbVar27 = *pbVar27 + 1; *pbVar27 = *pbVar27 + cVar3; *(char *)puVar19 = (char)*puVar19 - (char)((uint)puVar19 >> 8); cVar5 = cVar3 + (byte)*puVar21; pcVar9 = (char *)CONCAT31((int3)((uint)puVar21 >> 8),cVar5); uStack_28 = (uint *)CONCAT22(uStack_28._2_2_,uVar2); if (cVar5 == '\0' || SCARRY1(cVar3,(byte)*puVar21) != cVar5 < '\0') { pcVar9 = (char *)((int)puVar19 + (int)piVar25); bVar29 = SCARRY1(*pcVar9,cVar5); *pcVar9 = *pcVar9 + cVar5; cVar3 = *pcVar9; pbVar26 = pbVar27; puVar28 = puStack_8; goto code_r0x100059e1; } code_r0x10005994: cVar3 = (char)pcVar9; *pcVar9 = *pcVar9 + cVar3; uVar15 = (undefined3)((uint)pcVar9 >> 8); bVar6 = cVar3 + 0x1f; pcVar9 = (char *)CONCAT31(uVar15,bVar6); *(byte *)(puStack_8 + -0x20) = (byte)puStack_8[-0x20] + 1; puStack_18 = (uint *)((int)puVar19 + -1); *pcVar9 = *pcVar9 + bVar6; bVar29 = 0x23 < bVar6; puVar21 = (uint *)CONCAT31(uVar15,cVar3 + -5); if ((char)(cVar3 + -5) != '\0' && '#' < (char)bVar6) { cVar3 = (char)(char *)((int)puVar21 + *puVar21); bVar6 = cVar3 + 0x13; piVar10 = (int *)CONCAT31((int3)((int)puVar21 + *puVar21 >> 8),bVar6); puStack_10 = (uint *)CONCAT22(puStack_10._2_2_,uVar2); if (bVar6 != 0 && -0x14 < cVar3) { *puStack_18 = *puStack_18 << 1 | (uint)((int)*puStack_18 < 0); *pbVar27 = *pbVar27 + bVar6; unaff_EDI = puStack_8; pbStack_c = pbVar17; puStack_8 = puVar11; goto code_r0x1000594e; } *(byte *)piVar10 = (char)*piVar10 + bVar6; bVar29 = 0xe5 < bVar6; puStack_18 = (uint *)((int)puVar19 + -2); puVar21 = puStack_10; } pcVar9 = (char *)((int)puVar21 + bVar29 + 0xa17f5c33); *pcVar9 = *pcVar9 + (char)pcVar9; pcVar9 = (char *)(CONCAT31((int3)((uint)pcVar9 >> 8),(char)pcVar9 + 'J') + -0xa17f13); cVar3 = (char)pcVar9; pcVar9[(int)unaff_EBP] = pcVar9[(int)unaff_EBP] + cVar3; bVar31 = SCARRY1(*pbVar27,cVar3); *pbVar27 = *pbVar27 + cVar3; bVar30 = (char)*pbVar27 < '\0'; bVar29 = *pbVar27 == 0; puVar19 = puStack_18; while (bVar29 || bVar31 != bVar30) { cVar3 = (char)pcVar9; *pcVar9 = *pcVar9 + cVar3; puVar21 = (uint *)CONCAT31((int3)((uint)pcVar9 >> 8),cVar3 + '#'); if ((char)(cVar3 + '#') != '\0' && '&' < (char)(cVar3 + 'J')) goto code_r0x10005970; while( true ) { bVar6 = (byte)puVar21; *(byte *)puVar21 = (byte)*puVar21 + bVar6; uVar15 = (undefined3)((uint)puVar21 >> 8); cVar3 = bVar6 + 0x20; pcVar9 = (char *)CONCAT31(uVar15,cVar3); puStack_24 = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar6,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar3 < '\0') * 0x80 | (uint)(cVar3 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar3) & 1U) == 0) * 4 | (uint)(0xdf < bVar6) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar9 = *pcVar9 + cVar3; pcVar9[0x4a] = pcVar9[0x4a] + bVar24; cVar5 = bVar6 + 7; puVar21 = (uint *)CONCAT31(uVar15,cVar5); if (cVar5 != '\0' && '\x18' < cVar3) { *unaff_EBP = *unaff_EBP - (char)((uint)puVar19 >> 8); goto code_r0x10005981; } *(byte *)puVar21 = (byte)*puVar21 + cVar5; bVar29 = SCARRY1(cVar5,'\x1a'); cVar3 = bVar6 + 0x21; pbVar26 = pbVar27; puVar28 = puStack_8; code_r0x100059e1: puVar21 = puStack_24; pbVar27 = pbVar26; puStack_8 = puVar28; if (cVar3 != '\0' && bVar29 == cVar3 < '\0') { puStack_24 = (uint *)CONCAT22(puStack_24._2_2_,uVar2); goto code_r0x10005981; } bVar6 = (byte)puStack_24; *(byte *)puStack_24 = (byte)*puStack_24 + bVar6; bVar7 = bVar6 + 0x20; pcVar9 = (char *)CONCAT31((int3)((uint)puStack_24 >> 8),bVar7); *pcVar9 = *pcVar9 + bVar7; pcVar9[0x4a] = pcVar9[0x4a] + bVar24; iVar13 = iRam26110000; iRam26110000 = iRam26110000 - (int)pbVar17; if (iRam26110000 != 0 && (int)pbVar17 <= iVar13) goto code_r0x10005994; *pcVar9 = *pcVar9 + bVar7; puVar20 = (uint *)((int)puVar19 + -1); pcVar9 = (char *)(((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar6,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((char)bVar7 < '\0') * 0x80 | (uint)(bVar7 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(bVar7) & 1U) == 0) * 4 | (uint)(0xdf < bVar6) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000) + 0x97dd0533 + (uint)(0xe5 < bVar7)); cVar3 = (char)pcVar9; *pcVar9 = *pcVar9 + cVar3; *(byte *)((int)puVar28 + -0x5f) = *(byte *)((int)puVar28 + -0x5f) + bVar18; *pcVar9 = *pcVar9 + cVar3; uVar15 = (undefined3)((uint)pcVar9 >> 8); piVar10 = (int *)CONCAT31(uVar15,cVar3 + '('); *piVar10 = *piVar10 + -0x5e80fa00; *(char *)piVar10 = (char)*piVar10 + cVar3 + '('; pcVar9 = (char *)CONCAT31(uVar15,cVar3 + 'H'); puStack_8 = (uint *)((int)puVar28 + 1); pbVar27 = pbVar26 + 1; *(byte *)puVar28 = *pbVar26; *pcVar9 = *pcVar9 + cVar3 + 'H'; pcVar9[0x4a] = pcVar9[0x4a] + bVar24; pcVar9 = pcVar9 + -0x7add05; bVar6 = (byte)pcVar9; bVar31 = SCARRY1(*pcVar9,bVar6); *pcVar9 = *pcVar9 + bVar6; bVar30 = *pcVar9 < '\0'; bVar29 = *pcVar9 == '\0'; puVar19 = puVar20; if (!bVar29 && bVar31 == bVar30) break; *pcVar9 = *pcVar9 + bVar6; bVar29 = 0xe5 < bVar6; while( true ) { puVar21 = uStack_28; puVar19 = (uint *)((int)puVar20 + -1); bVar30 = SCARRY4(*(int *)pbVar27,(int)uStack_28); pbVar26 = (byte *)(*(int *)pbVar27 + (int)uStack_28); *(byte **)pbVar27 = pbVar26 + bVar29; uStack_28 = (uint *)CONCAT22(uStack_28._2_2_,in_SS); puVar28 = uStack_28; if (*(int *)pbVar27 != 0 && (bVar30 != SCARRY4((int)pbVar26,(uint)bVar29)) == *(int *)pbVar27 < 0) break; *(byte *)puVar21 = (byte)*puVar21 + (char)puVar21; bVar7 = (char)puVar21 + 0x20; pbVar12 = (byte *)CONCAT31((int3)((uint)puVar21 >> 8),bVar7); pbVar26 = pbVar27 + 1; *(byte *)puStack_8 = *pbVar27; *pbVar12 = *pbVar12 + bVar7; pbVar12[0x4a] = pbVar12[0x4a] + bVar24; *piVar25 = *piVar25 - (int)pbVar17; bVar6 = *pbVar12; *pbVar12 = *pbVar12 + bVar7; *piVar25 = (int)((int)puVar19 + (uint)CARRY1(bVar6,bVar7) + *piVar25); pbVar12 = pbVar12 + 0x22d0511; puVar21 = (uint *)((int)puVar20 + -2); *pbVar12 = *pbVar12 + (char)pbVar12; iVar13 = CONCAT31((int3)((uint)pbVar12 >> 8),(char)pbVar12 + '\x17') + -0x4a7e33; *(byte *)((int)uStack_28 + (int)puVar21) = *(byte *)((int)uStack_28 + (int)puVar21) + (char)iVar13; *(char *)puVar21 = *(char *)puVar21; puVar19 = puRam28040000; cVar3 = (char)puRam28040000; *pbVar26 = *pbVar26 + cVar3; *pbVar26 = *pbVar26 + 1; *pbVar26 = *pbVar26 + cVar3; cVar22 = (char)((uint)puVar21 >> 8); *(char *)puVar21 = *(char *)puVar21 - cVar22; uVar15 = (undefined3)((uint)puVar19 >> 8); cVar5 = cVar3 + (byte)*puVar19; pbVar12 = (byte *)CONCAT31(uVar15,cVar5); uStack_28._2_2_ = (undefined2)((uint)iVar13 >> 0x10); uStack_28 = (uint *)CONCAT22(uStack_28._2_2_,uVar2); if (cVar5 == '\0' || SCARRY1(cVar3,(byte)*puVar19) != cVar5 < '\0') { pbVar27[2] = pbVar27[2] + cVar22; code_r0x10005ac2: bVar4 = *pbVar12; bVar18 = (byte)pbVar12; *pbVar12 = *pbVar12 + bVar18; *(uint *)pbVar12 = (*(int *)pbVar12 - (int)pbVar12) - (uint)CARRY1(bVar4,bVar18); *pbVar12 = *pbVar12 + bVar18; uStack_44 = (undefined1)in_SS; *(uint *)pbVar17 = CONCAT13(uStack_44,CONCAT12(uStack_45,uStack_47)); *pbVar12 = *pbVar12 + bVar18; unaff_EBP = pbVar12; code_r0x10005acd: cVar3 = (char)unaff_EBP; *unaff_EBP = *unaff_EBP + cVar3; *(byte *)puVar28 = (byte)*puVar28 + cVar3; *pbVar17 = *pbVar17 + cVar3; *unaff_EBP = *unaff_EBP + cVar3; *unaff_EBP = *unaff_EBP; pbVar17[(int)unaff_EBP] = pbVar17[(int)unaff_EBP] + (char)((uint)puVar21 >> 8); *unaff_EBP = *unaff_EBP + cVar3; piVar10 = (int *)CONCAT22((short)((uint)unaff_EBP >> 0x10),CONCAT11(1,cVar3)); *(char *)piVar10 = (char)*piVar10 + cVar3; pcVar9 = (char *)((int)piVar10 + *piVar10); *pcVar9 = *pcVar9 + (char)pcVar9; *pcVar9 = *pcVar9 + (char)pcVar9; pcVar1 = (code *)swi(3); puVar14 = (undefined *)(*pcVar1)(); return puVar14; } *pbVar12 = *pbVar12 + cVar5; cVar3 = cVar5 + '\x1f'; *(byte *)(puVar28 + -0x20) = (byte)puVar28[-0x20] + 1; puVar20 = (uint *)((int)puVar20 + -3); *(char *)CONCAT31(uVar15,cVar3) = *(char *)CONCAT31(uVar15,cVar3) + cVar3; bVar6 = cVar5 - 5; if (bVar6 == 0 || cVar3 < '$') { *(char *)CONCAT31(uVar15,bVar6) = *(char *)CONCAT31(uVar15,bVar6) + bVar6; pcVar9 = (char *)(CONCAT31(uVar15,cVar5 + 'y') | 0x7f040003); *pcVar9 = *pcVar9 + (char)pcVar9; uVar15 = (undefined3)((uint)pcVar9 >> 8); bVar18 = (char)pcVar9 + 8; *pbVar26 = *pbVar26 - cVar16; *(char *)CONCAT31(uVar15,bVar18) = *(char *)CONCAT31(uVar15,bVar18) + bVar18; bVar24 = bVar24 | (byte)((uint)puVar20 >> 8); puVar21 = (uint *)((int)puVar20 + *(int *)pbVar26); cVar3 = (bVar18 | 0xdc) + 0xc; *puVar21 = *puVar21 | (uint)unaff_EBP; pbVar17[0x4c] = pbVar17[0x4c] + cVar3; *(char *)CONCAT31(uVar15,cVar3) = *(char *)CONCAT31(uVar15,cVar3) + cVar3; *(char *)CONCAT31(uVar15,cVar3) = *(char *)CONCAT31(uVar15,cVar3) + cVar3; bVar18 = (byte)unaff_EBP; *unaff_EBP = *unaff_EBP + bVar18; *pbVar17 = *pbVar17 + bVar24; *unaff_EBP = *unaff_EBP + bVar18; pbVar27[0xe000001] = pbVar27[0xe000001] + bVar4; *unaff_EBP = *unaff_EBP + bVar18; *(byte *)puVar28 = (byte)*puVar28 + bVar18; *pbVar17 = *pbVar17 + bVar18; bVar4 = *unaff_EBP; *unaff_EBP = *unaff_EBP + bVar18; pbVar12 = unaff_EBP; if (CARRY1(bVar4,bVar18) || *unaff_EBP == 0) { *pbVar17 = *pbVar17 + bVar24; *unaff_EBP = *unaff_EBP + bVar18; *(byte *)((int)puVar28 + 0xe000001) = *(byte *)((int)puVar28 + 0xe000001) + cVar16; goto code_r0x10005acd; } goto code_r0x10005ac2; } pbVar27 = (byte *)((int)puVar20 + (int)piVar25); bVar29 = CARRY1(*pbVar27,bVar6); *pbVar27 = *pbVar27 + bVar6; pbVar27 = pbVar26; puStack_8 = puVar28; } } } goto code_r0x10005968; } ``` ## Connect at 10007954 Signature: `char * __fastcall Connect(int param_1, uint * param_2)` ```c char * __fastcall Connect(int param_1,uint *param_2) { code *pcVar1; byte bVar2; char cVar3; uint in_EAX; int *piVar4; char *pcVar6; uint *unaff_EBX; byte *pbVar5; /* .NET CLR Managed Code */ piVar4 = (int *)(in_EAX | *param_2); if ((POPCOUNT((uint)piVar4 & 0xff) & 1U) == 0) { bVar2 = (char)((int)piVar4 + *piVar4) + 2; pbVar5 = (byte *)CONCAT31((int3)((uint)((int)piVar4 + *piVar4) >> 8),bVar2); *pbVar5 = *pbVar5 ^ bVar2; *(char *)param_2 = (char)*param_2 + (char)param_1; pcVar1 = (code *)swi(3); pcVar6 = (char *)(*pcVar1)(); return pcVar6; } *unaff_EBX = *unaff_EBX & (uint)piVar4; *(char *)((int)param_2 + param_1) = *(char *)((int)param_2 + param_1) + (char)piVar4; cVar3 = (char)piVar4 + -6; pcVar6 = (char *)CONCAT31((int3)((uint)piVar4 >> 8),cVar3); *(char *)param_2 = (char)*param_2 - (char)((uint)param_2 >> 8); *pcVar6 = *pcVar6 + cVar3; pcVar1 = (code *)swi(3); pcVar6 = (char *)(*pcVar1)(); return pcVar6; } ``` ## SetNamespace at 1000bcc0 Signature: `void __fastcall SetNamespace(int bstrNamespace, int param_2)` ```c /* WARNING: Instruction at (ram,0x1000bcea) overlaps instruction at (ram,0x1000bce8) */ void __fastcall SetNamespace(int bstrNamespace,int param_2) { byte *pbVar1; int iVar2; code *pcVar3; byte bVar4; undefined4 in_EAX; undefined3 uVar7; int *piVar5; char *pcVar6; byte bVar8; int unaff_EBP; uint *unaff_ESI; int unaff_EDI; /* .NET CLR Managed Code */ uVar7 = (undefined3)((uint)in_EAX >> 8); bVar4 = (char)in_EAX + 0x58; if ((POPCOUNT(bVar4 | 2) & 1U) == 0) { iVar2 = (CONCAT31(uVar7,(bVar4 | 2) + 0x44) | 0xd16022b) + *(int *)(bstrNamespace + param_2); piVar5 = (int *)CONCAT31((int3)((uint)iVar2 >> 8),(char)iVar2 + '-'); unaff_EBP = unaff_EBP + *piVar5; piRam0c060002 = piVar5; } else { *(byte *)unaff_ESI = (byte)*unaff_ESI + (bVar4 | 2); piVar5 = (int *)(CONCAT31(uVar7,bVar4) | 2); if ((POPCOUNT(bVar4 | 2) & 1U) != 0) { out(*unaff_ESI,(short)param_2); pcVar6 = (char *)CONCAT31((int3)((uint)((int)piVar5 + *piVar5) >> 8),(byte)unaff_ESI[1]); *pcVar6 = *pcVar6 + (byte)unaff_ESI[1]; pcVar3 = (code *)swi(3); (*pcVar3)(); return; } } bVar4 = (char)piVar5 + 0xbU | (byte)*unaff_ESI; bVar8 = (byte)((uint)bstrNamespace >> 8); *(byte *)unaff_ESI = (byte)*unaff_ESI | bVar8; *unaff_ESI = *unaff_ESI | CONCAT31((int3)((uint)piVar5 >> 8),bVar4); *(char *)(unaff_EDI + 2) = *(char *)(unaff_EDI + 2) - bVar8; *(byte *)unaff_ESI = (byte)*unaff_ESI + bVar4; pbVar1 = (byte *)(param_2 + -0x35 + unaff_EBP); *pbVar1 = *pbVar1 | (char)param_2 - 1U; pcVar3 = (code *)swi(3); (*pcVar3)(); return; } ``` ## AddProxy at 1000bd30 Signature: `int __fastcall AddProxy(byte * dataClientProxy, uint * param_2, ushort param_3)` ```c /* WARNING: Instruction at (ram,0x1000bd62) overlaps instruction at (ram,0x1000bd61) */ int __fastcall AddProxy(byte *dataClientProxy,uint *param_2,ushort param_3) { uint uVar1; code *pcVar3; byte bVar4; byte bVar5; char cVar6; char cVar7; byte bVar15; undefined4 in_EAX; int iVar8; int iVar9; undefined3 uVar16; uint *puVar10; uint uVar11; int iVar12; char *pcVar13; byte *pbVar14; byte bVar17; char cVar19; char *pcVar18; byte bVar20; undefined2 uVar21; byte bVar22; char *unaff_EBX; undefined3 uVar24; int unaff_EBP; char *unaff_ESI; char *pcVar25; byte *pbVar26; byte *unaff_EDI; ushort in_ES; byte in_CF; byte in_AF; char *unaff_retaddr; uint uVar2; char *pcVar23; /* .NET CLR Managed Code */ bVar5 = (byte)in_EAX + 10; iVar8 = CONCAT31((int3)((uint)in_EAX >> 8),bVar5 + in_CF); uVar11 = (uint)(0xf5 < (byte)in_EAX || CARRY1(bVar5,in_CF)); iVar12 = iVar8 + 0x3e2c020b; iVar9 = iVar12 + uVar11; bVar5 = (byte)iVar9; if (iVar9 == 0 || (SCARRY4(iVar8,0x3e2c020b) != SCARRY4(iVar12,uVar11)) != iVar9 < 0) { *(char *)(iVar9 * 2) = *(char *)(iVar9 * 2) - bVar5; code_r0x1000bd5c: *unaff_retaddr = *unaff_retaddr + -4; bVar5 = (byte)unaff_retaddr; unaff_ESI[(int)unaff_EBX * 8] = unaff_ESI[(int)unaff_EBX * 8] + bVar5; out(*(undefined4 *)unaff_ESI,(short)param_2); *unaff_retaddr = *unaff_retaddr + bVar5; unaff_EBX = (char *)CONCAT31((int3)((uint)unaff_EBX >> 8), (byte)unaff_EBX | (byte)((uint)unaff_retaddr >> 8)); pcVar13 = (char *)(uint)param_3; pcVar25 = unaff_ESI + 8; out(*(undefined4 *)(unaff_ESI + 4),(short)param_2); unaff_EDI = unaff_EDI + 2; *unaff_retaddr = *unaff_retaddr + bVar5; uVar16 = (undefined3)((uint)unaff_retaddr >> 8); bVar5 = bVar5 | *unaff_EDI; pbVar26 = (byte *)CONCAT31(uVar16,bVar5); dataClientProxy = dataClientProxy + 1; cVar6 = (bVar5 - *pbVar26) - (bVar5 < *pbVar26); pbVar26 = (byte *)CONCAT31(uVar16,cVar6); *(char *)((int)pbVar26 * 2) = *(char *)((int)pbVar26 * 2) + cVar6; in_ES = param_3; } else { uVar16 = (undefined3)((uint)iVar9 >> 8); bVar4 = bVar5 + 0x73; *unaff_EBX = (*unaff_EBX - bVar4) - (0x8c < bVar5); *unaff_ESI = *unaff_ESI + bVar4; bVar4 = bVar4 | 8; unaff_EBX = (char *)CONCAT22((short)((uint)unaff_EBX >> 0x10), CONCAT11((byte)((uint)unaff_EBX >> 8) | unaff_ESI[0x27], (char)unaff_EBX)); pcVar25 = (char *)(CONCAT31(uVar16,bVar4 + 0x7e) * 2); *pcVar25 = *pcVar25 - (bVar4 + 0x7e); pbVar26 = (byte *)CONCAT31(uVar16,bVar4 + 0x80); pcVar25 = unaff_ESI + 4; out(*(undefined4 *)unaff_ESI,(short)param_2); param_2 = (uint *)((uint)param_2 & 0xffffff00); uVar11 = *param_2; *(char *)param_2 = (char)*param_2 + (char)dataClientProxy; pcVar13 = unaff_retaddr; if ((char)*param_2 != '\0' && SCARRY1((char)uVar11,(char)dataClientProxy) == (char)*param_2 < '\0') { puVar10 = (uint *)CONCAT31(uVar16,bVar4 + 0x8b); unaff_ESI = pcVar25; if ((byte)(bVar4 + 0x8b) == '\0' || (char)(bVar4 + 0x80) < -0xb) goto code_r0x1000bd84; goto code_r0x1000bd5c; } } bVar5 = *pbVar26; bVar4 = (byte)pbVar26; *pbVar26 = *pbVar26 + bVar4; cVar6 = bVar4 + *pbVar26 + CARRY1(bVar5,bVar4); puVar10 = (uint *)CONCAT31((int3)((uint)pbVar26 >> 8),cVar6); *(char *)puVar10 = (char)*puVar10 + cVar6; code_r0x1000bd84: cVar6 = (char)puVar10; *(char *)puVar10 = (char)*puVar10 + cVar6; *(char *)puVar10 = (char)*puVar10 + (char)((uint)unaff_EBX >> 8); *(char *)puVar10 = (char)*puVar10 + cVar6; *unaff_EDI = *unaff_EDI + cVar6; *(char *)puVar10 = (char)*puVar10 + cVar6; *unaff_EBX = *unaff_EBX + (char)((uint)puVar10 >> 8); *dataClientProxy = *dataClientProxy + cVar6; pcVar25 = (char *)((uint)pcVar25 | *puVar10); uVar16 = (undefined3)((uint)puVar10 >> 8); cVar6 = cVar6 + (char)*puVar10; *(char *)CONCAT31(uVar16,cVar6) = *(char *)CONCAT31(uVar16,cVar6) + cVar6; bVar20 = (byte)param_2; *(char *)(unaff_EBP + 1) = *(char *)(unaff_EBP + 1) + bVar20; bVar5 = *dataClientProxy; *dataClientProxy = *dataClientProxy + bVar20; bVar4 = cVar6 + '\n' + CARRY1(bVar5,bVar20); pbVar26 = (byte *)CONCAT31(uVar16,bVar4); uVar21 = SUB42(param_2,0); bVar17 = (byte)dataClientProxy; if (bVar4 != 0 && (SCARRY1(cVar6,'\n') != SCARRY1(cVar6 + '\n',CARRY1(bVar5,bVar20))) == (char)bVar4 < '\0') { cVar6 = bVar4 + 0x73; *unaff_EBX = (*unaff_EBX - cVar6) - (0x8c < bVar4); *pcVar25 = *pcVar25 + cVar6; uVar11 = CONCAT31(uVar16,cVar6) | 0x277e0a09; pcVar18 = pcVar25 + 4; out(*(undefined4 *)pcVar25,uVar21); uVar11 = CONCAT22((short)(uVar11 >> 0x10),(ushort)(byte)((char)uVar11 + 2)); *(byte *)param_2 = (char)*param_2 + bVar17; iVar12 = uVar11 + 0x81e221fe; bVar4 = (byte)iVar12; bVar5 = 9 < (bVar4 & 0xf) | in_AF; bVar4 = bVar4 + bVar5 * '\x06'; pcVar25 = pcVar25 + 8; out(*(undefined4 *)pcVar18,uVar21); *(byte *)param_2 = (char)*param_2 + bVar17; pbVar26 = (byte *)(CONCAT31((int3)((uint)iVar12 >> 8), bVar4 + (0x90 < (bVar4 & 0xf0) | uVar11 < 0x7e1dde02 | bVar5 * (0xf9 < bVar4)) * '`' + '\x02' ) & 0xffff00ff | 0xde); in_ES = (ushort)pcVar13; } out(*(undefined4 *)pcVar25,uVar21); bVar4 = (byte)pbVar26; *pbVar26 = *pbVar26 + bVar4; bVar15 = (byte)((uint)pbVar26 >> 8); uVar24 = (undefined3)((uint)unaff_EBX >> 8); out(*(undefined4 *)(pcVar25 + 4),uVar21); *pbVar26 = *pbVar26 + bVar4; bVar5 = *pbVar26; uVar16 = (undefined3)((uint)pbVar26 >> 8); bVar4 = (bVar4 - *pbVar26) + '\v' + (bVar4 < *pbVar26); pcVar13 = (char *)CONCAT31(uVar16,bVar4); out(*(undefined4 *)(pcVar25 + 8),uVar21); *pcVar13 = *pcVar13 + bVar4; bVar22 = (byte)unaff_EBX | bVar15 | bVar15; pcVar23 = (char *)CONCAT31(uVar24,bVar22); out(*(undefined4 *)(pcVar25 + 0xc),uVar21); pbVar26 = unaff_EDI + 3; *pcVar13 = *pcVar13 + bVar4; cVar6 = (bVar4 | *pbVar26) - *(char *)CONCAT31(uVar16,bVar4 | *pbVar26); pcVar18 = (char *)(CONCAT31((int3)((uint)dataClientProxy >> 8),bVar17 | bVar5) + 1); pcVar13 = (char *)CONCAT31(uVar16,cVar6); *(char *)((int)pcVar13 * 2) = *(char *)((int)pcVar13 * 2) + cVar6; *pcVar13 = *pcVar13 + cVar6; pcVar13 = (char *)((uint)pcVar13 | 0x1f000000); *pcVar13 = *pcVar13 + cVar6; cVar19 = (char)((uint)pcVar18 >> 8); *(char *)((int)pcVar13 * 2) = *(char *)((int)pcVar13 * 2) + cVar19; *pcVar13 = *pcVar13 + cVar6; *pcVar13 = *pcVar13 + cVar6; *pcVar23 = *pcVar23 + bVar15; *pcVar18 = *pcVar18 + cVar6; uVar16 = (undefined3)((uint)pcVar13 >> 8); pcVar13 = (char *)CONCAT31(uVar16,cVar6); *pcVar13 = *pcVar13 + cVar6; *pcVar13 = *pcVar13 + cVar6; pcVar13 = (char *)CONCAT31(uVar16,cVar6); *pcVar13 = *pcVar13 + cVar6; pbVar14 = (byte *)(pcVar13 + 1); bVar5 = (byte)pbVar14; *pbVar14 = *pbVar14 + bVar5; *pbVar26 = *pbVar26 + bVar5; *pbVar14 = *pbVar14 + bVar5; *pcVar23 = *pcVar23 + (char)((uint)pbVar14 >> 8); *pcVar18 = *pcVar18 + bVar5; pbVar26 = (byte *)(pcVar25 + *(int *)pbVar14 + 0x10); uVar16 = (undefined3)((uint)pbVar14 >> 8); bVar5 = (bVar5 + *pbVar14) - CARRY1(bVar5,*pbVar14); puVar10 = (uint *)CONCAT31(uVar16,bVar5); *(byte *)puVar10 = (char)*puVar10 + bVar5; uVar11 = *puVar10; *puVar10 = (uint)(*puVar10 + (int)puVar10); uVar1 = *param_2; uVar2 = *param_2; *param_2 = (uint)((char *)(uVar2 + (int)puVar10) + CARRY4(uVar11,(uint)puVar10)); cVar6 = *(char *)((int)puVar10 + 0x4a); *(char *)((int)puVar10 + 3) = *(char *)((int)puVar10 + 3) - bVar20; *pbVar26 = *pbVar26 + bVar5; cVar7 = (bVar5 | *pbVar26) - 0xe; pcVar25 = (char *)(CONCAT31(uVar24,(bVar22 - cVar6) - (CARRY4(uVar1,(uint)puVar10) || CARRY4(uVar2 + (int)puVar10,(uint)CARRY4(uVar11,(uint)puVar10)) )) + CONCAT31(uVar16,cVar7)); *pcVar25 = *pcVar25 - (char)((uint)param_2 >> 8); *pbVar26 = *pbVar26 + cVar7; cRam2a060003 = cRam2a060003 - cVar19; pcVar3 = (code *)swi(3); iVar12 = (*pcVar3)(in_ES,pbVar26,in_ES,in_ES); return iVar12; } ``` ## IsConnected at 1000c158 Signature: `bool __fastcall IsConnected(uint * param_1, uint * param_2)` ```c /* WARNING: Instruction at (ram,0x1000c3ac) overlaps instruction at (ram,0x1000c3a7) */ bool __fastcall IsConnected(uint *param_1,uint *param_2) { char cVar1; char cVar2; byte bVar3; char cVar4; byte bVar5; char cVar6; uint *in_EAX; undefined3 uVar16; uint *puVar7; char *pcVar8; int *piVar10; char *pcVar11; uint *puVar12; byte *pbVar13; int iVar14; uint uVar15; uint *puVar17; int unaff_EBX; int *piVar18; int unaff_EBP; uint *unaff_ESI; uint *puVar19; uint *puVar20; uint *puVar21; undefined2 in_ES; undefined2 in_SS; byte in_AF; byte in_TF; byte in_IF; byte in_NT; byte in_AC; byte in_VIF; byte in_VIP; byte in_ID; uint *unaff_retaddr; uint *puStack_3c; undefined4 uStack_38; uint *puStack_34; uint *puStack_20; uint *puStack_1c; uint *puStack_18; uint *puVar9; /* .NET CLR Managed Code */ piVar18 = (int *)CONCAT22((short)((uint)unaff_EBX >> 0x10), CONCAT11((char)((uint)unaff_EBX >> 8) + *(char *)(unaff_EBX + 0x20), (char)unaff_EBX)); code_r0x1000c15b: uVar16 = (undefined3)((uint)in_EAX >> 8); cVar1 = (char)in_EAX + '9'; piVar10 = (int *)CONCAT31(uVar16,cVar1); *piVar10 = (int)(*piVar10 + (int)piVar10); *(char *)((int)unaff_ESI + 0x4a) = *(char *)((int)unaff_ESI + 0x4a) + (char)((uint)piVar18 >> 8); *(char *)piVar10 = (char)*piVar10 + cVar1; puVar7 = (uint *)CONCAT31(uVar16,(char)in_EAX + 'P'); puVar20 = unaff_retaddr; code_r0x1000c169: unaff_retaddr = (uint *)((int)puVar7 + -0x4a7e33); *(char *)((int)puVar20 + (int)param_2) = *(char *)((int)puVar20 + (int)param_2) + (char)unaff_retaddr; *(char *)param_2 = (char)*param_2; in_EAX = puRam28040000; puStack_1c = puVar20; puStack_18 = unaff_ESI; code_r0x1000c180: cVar1 = (char)in_EAX; *(char *)unaff_ESI = (char)*unaff_ESI + cVar1; *(char *)unaff_ESI = (char)*unaff_ESI + '\x01'; *(char *)unaff_ESI = (char)*unaff_ESI + cVar1; *(char *)param_2 = (char)*param_2 - (char)((uint)param_2 >> 8); cVar2 = cVar1 + (char)*in_EAX; pcVar11 = (char *)CONCAT31((int3)((uint)in_EAX >> 8),cVar2); puStack_20 = (uint *)CONCAT22(puStack_20._2_2_,in_ES); puVar9 = puVar20; if (cVar2 == '\0' || SCARRY1(cVar1,(char)*in_EAX) != cVar2 < '\0') goto code_r0x1000c1dd; *pcVar11 = *pcVar11 + cVar2; puVar17 = param_2; code_r0x1000c195: uVar16 = (undefined3)((uint)pcVar11 >> 8); cVar1 = (char)pcVar11 + '\x1f'; pcVar8 = (char *)CONCAT31(uVar16,cVar1); *(char *)(puVar20 + -0x20) = (char)puVar20[-0x20] + '\x01'; param_2 = (uint *)((int)puVar17 + -1); *pcVar8 = *pcVar8 + cVar1; cVar2 = (char)pcVar11 + -5; piVar10 = (int *)CONCAT31(uVar16,cVar2); if (cVar2 != '\0' && '#' < cVar1) { bVar5 = (byte)(char *)((int)piVar10 + *piVar10); bVar3 = bVar5 + 0xd; puVar9 = (uint *)CONCAT31((int3)((uint)((int)piVar10 + *piVar10) >> 8),bVar3); if (bVar3 != 0 && -0xe < (char)bVar5) { *(ushort *)puVar9 = (ushort)*puVar9 + (ushort)(0xf2 < bVar5) * (((ushort)puVar9 & 3) - ((ushort)*puVar9 & 3)) ; *(byte *)param_1 = (char)*param_1 + bVar3; unaff_ESI = (uint *)((uint)unaff_ESI | *puVar9); in_EAX = puVar9 + 0x9940; pbVar13 = (byte *)((int)param_1 + (int)in_EAX); bVar3 = *pbVar13; *pbVar13 = *pbVar13 + (byte)piVar18; *param_2 = (uint)((int)in_EAX + (uint)CARRY1(bVar3,(byte)piVar18) + *param_2); if ((POPCOUNT(*param_2 & 0xff) & 1U) == 0) goto code_r0x1000c15b; *(char *)((int)in_EAX + unaff_EBP) = *(char *)((int)in_EAX + unaff_EBP) + (char)in_EAX; goto code_r0x1000c180; } *(byte *)puVar9 = (char)*puVar9 + bVar3; param_2 = (uint *)((int)puVar17 + -2); piVar10 = (int *)((int)puVar7 + (0xe5 < bVar3) + 0xa134dc00); *(char *)piVar10 = (char)*piVar10 + (char)piVar10; } puVar9 = (uint *)(CONCAT31((int3)((uint)piVar10 >> 8),(char)piVar10 + 'J') + -0xa17f13); code_r0x1000c1bb: puStack_1c = puVar9; cVar1 = (char)puStack_1c; *(char *)((int)puStack_1c + unaff_EBP) = *(char *)((int)puStack_1c + unaff_EBP) + cVar1; uVar15 = *unaff_ESI; *(char *)unaff_ESI = (char)*unaff_ESI + cVar1; if ((char)*unaff_ESI != '\0' && SCARRY1((char)uVar15,cVar1) == (char)*unaff_ESI < '\0') { *(char *)((int)puVar20 + (int)param_2) = *(char *)((int)puVar20 + (int)param_2) + cVar1; puVar7 = puStack_1c; puVar20 = unaff_retaddr; goto code_r0x1000c169; } while( true ) { cVar1 = (char)puStack_1c; *(char *)puStack_1c = (char)*puStack_1c + cVar1; uVar16 = (undefined3)((uint)puStack_1c >> 8); bVar3 = cVar1 + 0x23; pcVar11 = (char *)CONCAT31(uVar16,bVar3); if (bVar3 != 0 && '&' < (char)(cVar1 + 'J')) { *pcVar11 = *pcVar11 + bVar3; puVar7 = (uint *)CONCAT31(uVar16,cVar1 + ':'); puVar20 = unaff_retaddr; goto code_r0x1000c169; } *pcVar11 = *pcVar11 + bVar3; cVar2 = cVar1 + 'C'; pcVar11 = (char *)CONCAT31(uVar16,cVar2); puStack_1c = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar3,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar2 < '\0') * 0x80 | (uint)(cVar2 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar2) & 1U) == 0) * 4 | (uint)(0xdf < bVar3) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar11 = *pcVar11 + cVar2; pcVar11[0x4a] = pcVar11[0x4a] + (char)piVar18; cVar4 = cVar1 + '*'; pcVar11 = (char *)CONCAT31(uVar16,cVar4); if (cVar4 != '\0' && '\x18' < cVar2) break; *pcVar11 = *pcVar11 + cVar4; puVar9 = puVar20; code_r0x1000c1dd: puVar20 = puVar9; if (-0x1a < (char)pcVar11) { *(char *)unaff_ESI = (char)*unaff_ESI + '\x01'; in_EAX = puStack_20; goto code_r0x1000c180; } bVar3 = (byte)puStack_20; *(byte *)puStack_20 = (char)*puStack_20 + bVar3; bVar5 = bVar3 + 0x20; pcVar11 = (char *)CONCAT31((int3)((uint)puStack_20 >> 8),bVar5); puStack_20 = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar3,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((char)bVar5 < '\0') * 0x80 | (uint)(bVar5 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(bVar5) & 1U) == 0) * 4 | (uint)(0xdf < bVar3) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar11 = *pcVar11 + bVar5; pcVar11[0x4a] = pcVar11[0x4a] + (char)piVar18; iVar14 = iRam26110000; iRam26110000 = iRam26110000 - (int)param_1; puVar17 = param_2; if (iRam26110000 != 0 && (int)param_1 <= iVar14) goto code_r0x1000c195; *pcVar11 = *pcVar11 + bVar5; param_2 = (uint *)((int)param_2 + -1); pcVar11 = (char *)((int)puStack_20 + (0xe5 < bVar5) + 0x873b); *(char *)((int)puVar9 + -0x5f) = *(char *)((int)puVar9 + -0x5f) + (char)((uint)piVar18 >> 8); cVar1 = (char)pcVar11; *pcVar11 = *pcVar11 + cVar1; uVar16 = (undefined3)((uint)pcVar11 >> 8); piVar10 = (int *)CONCAT31(uVar16,cVar1 + '('); *piVar10 = *piVar10 + -0x5e80fa00; *(char *)piVar10 = (char)*piVar10 + cVar1 + '('; pcVar11 = (char *)CONCAT31(uVar16,cVar1 + 'H'); puVar20 = (uint *)((int)puVar9 + 1); *(char *)puVar9 = (char)*unaff_ESI; *pcVar11 = *pcVar11 + cVar1 + 'H'; pcVar11[0x4a] = pcVar11[0x4a] + (char)piVar18; unaff_ESI = (uint *)((int)unaff_ESI + 1); while( true ) { cVar1 = (char)pcVar11 + -0x6f; puVar9 = (uint *)CONCAT31((int3)((uint)pcVar11 >> 8),cVar1); if (cVar1 != '\0' && 'n' < (char)pcVar11) goto code_r0x1000c1bb; *(char *)puVar9 = (char)*puVar9 + cVar1; param_2 = (uint *)((int)param_2 + -1); *unaff_ESI = *unaff_ESI | (uint)param_2; if (0 < (int)*unaff_ESI) break; cVar1 = (char)puStack_1c; *(char *)puStack_1c = (char)*puStack_1c + cVar1; uVar16 = (undefined3)((uint)puStack_1c >> 8); bVar5 = cVar1 + 0x20; pbVar13 = (byte *)CONCAT31(uVar16,bVar5); puVar9 = (uint *)((int)unaff_ESI + 1); *(char *)puVar20 = (char)*unaff_ESI; *pbVar13 = *pbVar13 + bVar5; pbVar13[0x4a] = pbVar13[0x4a] + (char)piVar18; *piVar18 = *piVar18 - (int)param_1; bVar3 = *pbVar13; *pbVar13 = *pbVar13 + bVar5; *(uint *)(pbVar13 + (int)param_1) = (int)param_1 + (uint)CARRY1(bVar3,bVar5) + *(int *)(pbVar13 + (int)param_1); cVar2 = cVar1 + -0x30; pbVar13 = (byte *)CONCAT31(uVar16,cVar2); if (cVar2 == '\0' || (char)bVar5 < 'P') goto code_r0x1000c283; *pbVar13 = *pbVar13 + cVar2; puVar12 = (uint *)(CONCAT31(uVar16,cVar1 + -0x19) + -0x4a7e33); *(char *)((int)puStack_18 + (int)param_2) = *(char *)((int)puStack_18 + (int)param_2) + (char)puVar12; puStack_34 = puStack_18; *(char *)param_2 = *(char *)param_2; puVar20 = puRam28040000; cVar1 = (char)puRam28040000; *(char *)puVar9 = *(char *)puVar9 + cVar1; *(char *)puVar9 = *(char *)puVar9 + '\x01'; *(char *)puVar9 = *(char *)puVar9 + cVar1; *(char *)param_2 = *(char *)param_2 - (char)((uint)param_2 >> 8); uVar16 = (undefined3)((uint)puVar20 >> 8); cVar2 = cVar1 + (char)*puVar20; puVar17 = (uint *)CONCAT31(uVar16,cVar2); uStack_38 = (uint *)CONCAT22(uStack_38._2_2_,in_ES); puVar19 = puStack_18; puStack_20 = param_2; puStack_1c = param_1; if (cVar2 == '\0' || SCARRY1(cVar1,(char)*puVar20) != cVar2 < '\0') goto code_r0x1000c2b1; *(char *)puVar17 = (char)*puVar17 + cVar2; pcVar11 = (char *)CONCAT31(uVar16,cVar2 + '\x1f'); *(char *)(puStack_18 + -0x20) = (char)puStack_18[-0x20] + '\x01'; puVar20 = puStack_18; puStack_18 = puVar12; code_r0x1000c26e: param_2 = (uint *)((int)param_2 + -1); cVar1 = (char)pcVar11; *pcVar11 = *pcVar11 + cVar1; uVar16 = (undefined3)((uint)pcVar11 >> 8); bVar3 = cVar1 - 0x24; pcVar11 = (char *)CONCAT31(uVar16,bVar3); unaff_ESI = puVar9; if (bVar3 == 0 || cVar1 < '$') { *pcVar11 = *pcVar11 + bVar3; pbVar13 = (byte *)(CONCAT31(uVar16,cVar1 + 'Z') + *piVar18 + (uint)(0x81 < bVar3)); *(char *)((int)puVar20 * 3) = *(char *)((int)puVar20 * 3) + (char)pbVar13; code_r0x1000c283: uVar16 = (undefined3)((uint)pbVar13 >> 8); bVar3 = (byte)pbVar13 | *pbVar13; pcVar11 = (char *)CONCAT31(uVar16,bVar3); *(char *)param_2 = (char)*param_2 + (char)param_1; puStack_34 = (uint *)CONCAT22(puStack_34._2_2_,in_SS); piVar18 = (int *)CONCAT22((short)((uint)piVar18 >> 0x10), CONCAT11((char)((uint)piVar18 >> 8) - *(char *)((int)puVar9 + 0x4a),(char)piVar18)); *pcVar11 = *pcVar11 + bVar3; puVar12 = (uint *)CONCAT31(uVar16,bVar3 + 0x17); code_r0x1000c28f: do { *(char *)((int)puStack_34 + (int)param_2) = *(char *)((int)puStack_34 + (int)param_2) + (char)(uint *)((int)puVar12 + -0x4a7e33); *(char *)param_2 = (char)*param_2; puVar17 = puRam28040000; puVar19 = puStack_34; puStack_3c = param_2; uStack_38 = param_1; puStack_34 = (uint *)((int)puVar12 + -0x4a7e33); code_r0x1000c2a6: *(char *)puVar9 = (char)*puVar9 + (char)puVar17; *(char *)puVar9 = (char)*puVar9 + '\x01'; *(char *)puVar9 = (char)*puVar9 + (char)puVar17; *(char *)param_2 = (char)*param_2 - (char)((uint)param_2 >> 8); puVar12 = puStack_18; code_r0x1000c2b1: puStack_18 = puVar12; cVar1 = (char)puVar17 + (char)*puVar17; pcVar11 = (char *)CONCAT31((int3)((uint)puVar17 >> 8),cVar1); puStack_3c = (uint *)CONCAT22(puStack_3c._2_2_,in_ES); cVar2 = (char)piVar18; if (cVar1 == '\0' || SCARRY1((char)puVar17,(char)*puVar17) != cVar1 < '\0') goto code_r0x1000c303; *pcVar11 = *pcVar11 + cVar1; puVar17 = param_2; puVar20 = puVar19; code_r0x1000c2bb: uVar16 = (undefined3)((uint)pcVar11 >> 8); cVar1 = (char)pcVar11 + '\x1f'; pcVar8 = (char *)CONCAT31(uVar16,cVar1); *(char *)(puVar20 + -0x20) = (char)puVar20[-0x20] + '\x01'; param_2 = (uint *)((int)puVar17 + -1); *pcVar8 = *pcVar8 + cVar1; cVar4 = (char)pcVar11 + -5; piVar10 = (int *)CONCAT31(uVar16,cVar4); if (cVar4 != '\0' && '#' < cVar1) { cVar1 = (char)(char *)((int)piVar10 + *piVar10); bVar3 = cVar1 + 0xb; pcVar11 = (char *)CONCAT31((int3)((uint)((int)piVar10 + *piVar10) >> 8),bVar3); if (bVar3 != 0 && -0xc < cVar1) goto code_r0x1000c26e; *pcVar11 = *pcVar11 + bVar3; param_2 = (uint *)((int)puVar17 + -2); piVar10 = (int *)((int)puStack_3c + (0xe5 < bVar3) + 0xa17f5a33); *(char *)piVar10 = (char)*piVar10 + (char)piVar10; } puVar12 = (uint *)(CONCAT31((int3)((uint)piVar10 >> 8),(char)piVar10 + 'J') + -0xa17f13); *(char *)((int)puVar12 + unaff_EBP) = *(char *)((int)puVar12 + unaff_EBP) + (char)puVar12; code_r0x1000c2e4: uVar15 = *puVar9; cVar1 = (char)puVar12; *(char *)puVar9 = (char)*puVar9 + cVar1; if ((char)*puVar9 == '\0' || SCARRY1((char)uVar15,cVar1) != (char)*puVar9 < '\0') { while( true ) { cVar1 = (char)puVar12; *(char *)puVar12 = (char)*puVar12 + cVar1; uVar16 = (undefined3)((uint)puVar12 >> 8); bVar3 = cVar1 + 0x23; pcVar11 = (char *)CONCAT31(uVar16,bVar3); if (bVar3 != 0 && '&' < (char)(cVar1 + 'J')) { *pcVar11 = *pcVar11 + bVar3; puVar12 = (uint *)CONCAT31(uVar16,cVar1 + ':'); goto code_r0x1000c28f; } *pcVar11 = *pcVar11 + bVar3; cVar4 = cVar1 + 'C'; pcVar11 = (char *)CONCAT31(uVar16,cVar4); puStack_3c = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar3,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar4 < '\0') * 0x80 | (uint)(cVar4 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar4) & 1U) == 0) * 4 | (uint)(0xdf < bVar3) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar11 = *pcVar11 + cVar4; pcVar11[0x4a] = pcVar11[0x4a] + cVar2; cVar6 = cVar1 + '*'; pcVar11 = (char *)CONCAT31(uVar16,cVar6); if (cVar6 != '\0' && '\x18' < cVar4) break; *pcVar11 = *pcVar11 + cVar6; puVar19 = puVar20; code_r0x1000c303: if (-0x1a < (char)pcVar11) { *(char *)puVar9 = (char)*puVar9 + '\x01'; puVar17 = puStack_3c; goto code_r0x1000c2a6; } bVar3 = (byte)puStack_3c; *(byte *)puStack_3c = (char)*puStack_3c + bVar3; bVar5 = bVar3 + 0x20; pcVar11 = (char *)CONCAT31((int3)((uint)puStack_3c >> 8),bVar5); puStack_3c = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar3,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((char)bVar5 < '\0') * 0x80 | (uint)(bVar5 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(bVar5) & 1U) == 0) * 4 | (uint)(0xdf < bVar3) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar11 = *pcVar11 + bVar5; pcVar11[0x4a] = pcVar11[0x4a] + cVar2; iVar14 = iRam26110000; iRam26110000 = iRam26110000 - (int)param_1; puVar17 = param_2; puVar20 = puVar19; if (iRam26110000 != 0 && (int)param_1 <= iVar14) goto code_r0x1000c2bb; *pcVar11 = *pcVar11 + bVar5; param_2 = (uint *)((int)param_2 + -1); pcVar11 = (char *)((int)puStack_3c + (0xe5 < bVar5) + 0x903b); cVar4 = (char)((uint)piVar18 >> 8); *(char *)((int)puVar19 + -0x5f) = *(char *)((int)puVar19 + -0x5f) + cVar4; cVar1 = (char)pcVar11; *pcVar11 = *pcVar11 + cVar1; uVar16 = (undefined3)((uint)pcVar11 >> 8); piVar10 = (int *)CONCAT31(uVar16,cVar1 + '('); *piVar10 = *piVar10 + -0x5e80fa00; *(char *)piVar10 = (char)*piVar10 + cVar1 + '('; puVar12 = (uint *)CONCAT31(uVar16,cVar1 + 'H'); puVar20 = (uint *)((int)puVar19 + 1); *(char *)puVar19 = (char)*puVar9; *(char *)puVar12 = (char)*puVar12 + cVar1 + 'H'; *(char *)((int)puVar12 + 0x4a) = *(char *)((int)puVar12 + 0x4a) + cVar2; puVar9 = (uint *)((int)puVar9 + 1); while( true ) { uVar15 = *puVar12; cVar1 = (char)puVar12; *(char *)puVar12 = (char)*puVar12 + cVar1; if ((char)*puVar12 != '\0' && SCARRY1((char)uVar15,cVar1) == (char)*puVar12 < '\0') goto code_r0x1000c2e4; *(char *)puVar12 = (char)*puVar12 + cVar1; puVar17 = (uint *)((int)param_2 + -1); in_ES = puStack_34._0_2_; puStack_34 = (uint *)CONCAT22(puStack_34._2_2_,in_SS); if (puVar17 != (uint *)0x0 && 0 < (int)param_2) break; cVar1 = (char)uStack_38; *(char *)uStack_38 = (char)*uStack_38 + cVar1; uVar16 = (undefined3)((uint)uStack_38 >> 8); bVar5 = cVar1 + 0x20; pbVar13 = (byte *)CONCAT31(uVar16,bVar5); puVar21 = (uint *)((int)puVar20 + 1); puVar19 = (uint *)((int)puVar9 + 1); *(char *)puVar20 = (char)*puVar9; *pbVar13 = *pbVar13 + bVar5; pbVar13[0x4a] = pbVar13[0x4a] + cVar2; *piVar18 = *piVar18 - (int)param_1; bVar3 = *pbVar13; *pbVar13 = *pbVar13 + bVar5; *puVar17 = (int)param_1 + (uint)CARRY1(bVar3,bVar5) + *puVar17; uStack_38 = (uint *)CONCAT22(uStack_38._2_2_,in_ES); puVar20 = uStack_38; cVar6 = cVar1 + -0x36; pbVar13 = (byte *)CONCAT31(uVar16,cVar6); if (cVar6 == '\0' || (char)bVar5 < 'V') { if ((POPCOUNT(cVar6) & 1U) == 0) { puVar12 = (uint *)CONCAT31(uVar16,cVar6); goto code_r0x1000c39e; } *(char *)param_1 = (char)*param_1 + cVar4; *pbVar13 = *pbVar13 + cVar6; *(char *)puVar19 = *(char *)puVar19 + (char)param_1; goto code_r0x1000c3d5; } *pbVar13 = *pbVar13 + cVar6; iVar14 = CONCAT31(uVar16,cVar1 + -0x1f) + -0x4a7e33; *(char *)((int)uStack_38 + (int)puVar17) = *(char *)((int)uStack_38 + (int)puVar17) + (char)iVar14; *(char *)puVar17 = *(char *)puVar17; puVar9 = puRam28040000; cVar1 = (char)puRam28040000; *(char *)puVar19 = *(char *)puVar19 + cVar1; *(char *)puVar19 = *(char *)puVar19 + '\x01'; *(char *)puVar19 = *(char *)puVar19 + cVar1; *(char *)puVar17 = *(char *)puVar17 - (char)((uint)puVar17 >> 8); uVar16 = (undefined3)((uint)puVar9 >> 8); cVar6 = cVar1 + (char)*puVar9; pbVar13 = (byte *)CONCAT31(uVar16,cVar6); uStack_38._2_2_ = (undefined2)((uint)iVar14 >> 0x10); uStack_38 = (uint *)CONCAT22(uStack_38._2_2_,in_ES); if (cVar6 == '\0' || SCARRY1(cVar1,(char)*puVar9) != cVar6 < '\0') goto code_r0x1000c3da; *pbVar13 = *pbVar13 + cVar6; cVar1 = cVar6 + '\x1f'; *(char *)(puVar20 + -0x20) = (char)puVar20[-0x20] + '\x01'; param_2 = (uint *)((int)param_2 + -2); *(char *)CONCAT31(uVar16,cVar1) = *(char *)CONCAT31(uVar16,cVar1) + cVar1; puVar12 = (uint *)CONCAT31(uVar16,cVar6 + -5); puVar17 = param_2; puVar9 = puVar19; puVar21 = puVar20; if ((char)(cVar6 + -5) == '\0' || cVar1 < '$') { code_r0x1000c39e: bVar3 = (byte)puVar12; *(byte *)puVar12 = (char)*puVar12 + bVar3; *(char *)((int)puVar21 * 3) = *(char *)((int)puVar21 * 3) + bVar3 + 0x7e + (char)*piVar18 + (0x81 < bVar3); uVar15 = *puVar17 * 0x7b020400; puVar20 = (uint *)(*puVar17 * -0x9fbf800); *puVar20 = *puVar20 & uVar15; uVar16 = (undefined3)(uVar15 >> 8); out(*(char *)puVar19,(short)puVar17); *(char *)CONCAT31(uVar16,0x28) = *(char *)CONCAT31(uVar16,0x28) + '('; bVar3 = (byte)*puVar17 | 0x28; pbVar13 = (byte *)(CONCAT31(uVar16,(byte)*puVar17) | 0x28); if ((POPCOUNT(bVar3) & 1U) == 0) { bVar3 = bVar3 + 0x2a; pcVar11 = (char *)CONCAT31(uVar16,bVar3); *pcVar11 = *pcVar11 + bVar3; *(byte *)(param_1 + 0x19) = (char)param_1[0x19] + bVar3; *pcVar11 = *pcVar11 + bVar3; pbVar13 = (byte *)CONCAT31(uVar16,bVar3); *pbVar13 = *pbVar13 + bVar3; *pbVar13 = *pbVar13 & bVar3; bVar5 = *pbVar13; *pbVar13 = *pbVar13 + bVar3; *(uint *)pbVar13 = (*(int *)pbVar13 - (int)pbVar13) - (uint)CARRY1(bVar5,bVar3); *pbVar13 = *pbVar13 + bVar3; *pbVar13 = *pbVar13 + bVar3; code_r0x1000c3d5: *pbVar13 = *pbVar13 + (char)pbVar13; *(char *)piVar18 = (char)*piVar18 + (char)((uint)pbVar13 >> 8); } code_r0x1000c3da: *(char *)param_1 = (char)*param_1 + (char)pbVar13; *pbVar13 = *pbVar13 + (char)pbVar13; do { /* WARNING: Do nothing block with infinite loop */ } while( true ); } } param_2 = (uint *)((int)param_2 + -2); puVar12 = uStack_38; } puVar12 = (uint *)CONCAT31(uVar16,cVar1 + 'R'); } else { *(char *)((int)puVar20 + (int)param_2) = *(char *)((int)puVar20 + (int)param_2) + cVar1; } } while( true ); } } } in_EAX = (uint *)CONCAT31(uVar16,cVar1 + 'R'); goto code_r0x1000c180; } ``` ## CDataClientCLI.{ctor} at 1000cb74 Signature: `pointer __fastcall CDataClientCLI.{ctor}(undefined4 param_1, char * param_2)` ```c /* WARNING: Control flow encountered bad instruction data */ /* WARNING: Unable to track spacebase fully for stack */ undefined * __fastcall CDataClientCLI__ctor_(undefined4 param_1,char *param_2) { char cVar1; int iVar2; int *piVar3; uint uVar4; byte *pbVar5; char *pcVar6; byte bVar7; char cVar8; undefined4 unaff_EBX; char *unaff_ESI; uint *unaff_EDI; undefined2 in_ES; undefined2 in_SS; int unaff_retaddr; undefined2 *puVar9; /* .NET CLR Managed Code */ cVar1 = *unaff_ESI; bVar7 = (byte)((uint)param_1 >> 8); *(char *)(unaff_retaddr + 0x26060002) = *(char *)(unaff_retaddr + 0x26060002) - bVar7; cVar8 = (char)unaff_EBX + cVar1 + (byte)*unaff_EDI; puVar9 = (undefined2 *)CONCAT31((int3)((uint)unaff_EBX >> 8),cVar8); uVar4 = *unaff_EDI; *puVar9 = in_SS; *(undefined2 **)(puVar9 + -2) = puVar9; cVar1 = *param_2; piVar3 = (int *)((*(uint *)(puVar9 + -2) | *unaff_EDI) + 0x2e731b54); iVar2 = *piVar3; puVar9[-2] = in_ES; pbVar5 = (byte *)((int)piVar3 + iVar2 | 7); *pbVar5 = *pbVar5 | bVar7; pbVar5 = pbVar5 + *(int *)pbVar5; puVar9[-4] = in_ES; *(undefined2 **)(puVar9 + -6) = puVar9 + -4; pcVar6 = (char *)CONCAT22((short)((uint)pbVar5 >> 0x10), CONCAT11((char)((uint)pbVar5 >> 8) + *pbVar5,(char)pbVar5)); *(byte *)unaff_EDI = (byte)*unaff_EDI << 1 | (char)(byte)*unaff_EDI < '\0'; *pcVar6 = *pcVar6 + (char)pbVar5; *(undefined2 **)(puVar9 + -8) = puVar9 + -6; unaff_ESI[-1] = unaff_ESI[-1] + '\x01'; *param_2 = *param_2 - (cVar8 + (byte)uVar4 + cVar1); puVar9[-6] = in_ES; /* WARNING: Bad instruction - Truncating control flow here */ halt_baddata(); } ``` ## CDataClientCLI.CreateConnection at 1000cd50 Signature: `int __fastcall CDataClientCLI.CreateConnection(uint CDataClientCLI0, uint * bstrNameSpace)` ```c /* WARNING: Control flow encountered bad instruction data */ /* WARNING: Unable to track spacebase fully for stack */ int __fastcall CDataClientCLI_CreateConnection(uint CDataClientCLI0,uint *bstrNameSpace) { uint *puVar1; undefined2 *puVar2; int iVar3; byte bVar4; char cVar5; char cVar6; undefined4 in_EAX; undefined3 uVar10; int *piVar8; undefined4 *puVar9; char cVar12; int iVar11; char *pcVar13; undefined4 unaff_EBX; undefined3 uVar15; char *pcVar14; byte *unaff_ESI; int *unaff_EDI; undefined2 in_ES; undefined2 in_SS; undefined2 uVar16; char in_CF; bool bVar17; undefined4 *puStack_4; uint uVar7; /* .NET CLR Managed Code */ uVar10 = (undefined3)((uint)in_EAX >> 8); bVar4 = (char)in_EAX + '\n' + in_CF; uVar7 = CONCAT31(uVar10,bVar4); bRam13800040 = bRam13800040 & bVar4; *bstrNameSpace = *bstrNameSpace | uVar7; cVar6 = (char)unaff_EBX - *(char *)(uVar7 + 0x4a); uVar15 = (undefined3)((uint)unaff_EBX >> 8); *(char *)(uVar7 + 3) = *(char *)(uVar7 + 3) - (char)bstrNameSpace; *unaff_ESI = *unaff_ESI + bVar4; cVar5 = (bVar4 | *unaff_ESI) - 0x40; puStack_4 = (undefined4 *)CONCAT22(puStack_4._2_2_,in_ES); pcVar13 = (char *)(CONCAT31(uVar15,cVar6) + CONCAT31(uVar10,cVar5)); *pcVar13 = *pcVar13 - (char)((uint)bstrNameSpace >> 8); *unaff_ESI = *unaff_ESI + cVar5; bVar4 = (byte)(CDataClientCLI0 >> 8); bVar17 = bRam02060003 < bVar4; bRam02060003 = bRam02060003 - bVar4; puVar1 = (uint *)*puStack_4; pcVar13 = (char *)((int)bstrNameSpace + -1); uVar7 = (uint)bVar17; iVar11 = CDataClientCLI0 + *puVar1 + uVar7; *puVar1 = *puVar1 + iVar11 + (uint)(CARRY4(CDataClientCLI0,*puVar1) || CARRY4(CDataClientCLI0 + *puVar1,uVar7)); cVar5 = (byte)puVar1 - 0xd; piVar8 = (int *)CONCAT31((int3)((uint)puVar1 >> 8),cVar5); *piVar8 = *piVar8 + iVar11 + (uint)((byte)puVar1 < 0xd); cVar12 = (char)((uint)iVar11 >> 8); *(char *)((int)unaff_EDI + 2) = *(char *)((int)unaff_EDI + 2) - cVar12; *unaff_ESI = *unaff_ESI + cVar5; iVar3 = *unaff_EDI; puVar2 = (undefined2 *)puStack_4[1]; *puVar2 = in_SS; *(undefined2 **)(puVar2 + -2) = puVar2; pcVar14 = (char *)CONCAT31(uVar15,cVar6 + (char)iVar3 + (char)*unaff_EDI); puVar1 = *(uint **)(puVar2 + -2); uVar7 = *puVar1; uRam54060002 = uVar7; *(undefined2 *)puVar1 = in_ES; puVar9 = (undefined4 *)(uVar7 ^ 0x6060003); pcVar14[(int)puVar9] = pcVar14[(int)puVar9] - cVar12; cVar6 = (char)puVar9; *unaff_ESI = *unaff_ESI + cVar6; iVar3 = -*unaff_EDI; pcVar14[0x28060000] = pcVar14[0x28060000] - cVar6; *puVar9 = *puVar9; *(undefined2 *)((int)puVar1 + iVar3 + -4) = in_ES; uVar16 = *(undefined2 *)((int)puVar1 + iVar3 + -4); cVar5 = (char)((uint)unaff_EBX >> 8); *pcVar13 = *pcVar13 - cVar5; *unaff_ESI = *unaff_ESI + cVar6; *(undefined2 *)((int)puVar1 + iVar3 + -4) = uVar16; *pcVar14 = *pcVar14 - cVar5; *unaff_ESI = *unaff_ESI + cVar6; pcVar14[0x7f060000] = pcVar14[0x7f060000] - (cVar6 + -0xf); uRam00000028 = uRam00000028 | 0x28; *pcVar13 = *pcVar13 + (char)iVar11; /* WARNING: Bad instruction - Truncating control flow here */ halt_baddata(); } ``` ## Initialize at 10010444 Signature: `ulonglong __fastcall Initialize(uint * param_1, char * param_2)` ```c /* WARNING: Instruction at (ram,0x10010d01) overlaps instruction at (ram,0x10010d00) */ /* WARNING: Unable to track spacebase fully for stack */ ulonglong __fastcall Initialize(uint *param_1,char *param_2) { code *pcVar1; undefined2 uVar2; char cVar3; byte bVar4; byte bVar5; char cVar6; char cVar7; char cVar8; byte bVar9; char *in_EAX; undefined3 uVar24; char *pcVar10; byte *pbVar11; uint *puVar12; uint *puVar13; uint *puVar14; uint *puVar15; uint uVar16; uint uVar17; uint *puVar18; byte *pbVar19; int iVar20; int iVar21; uint uVar22; int *piVar23; uint *extraout_ECX; char *pcVar25; byte bVar26; byte *pbVar27; byte *pbVar28; int *piVar29; char *pcVar30; byte *pbVar31; undefined1 *puVar32; uint *unaff_EBX; int *piVar33; int iVar34; int *piVar35; undefined2 *puVar36; undefined2 *puVar37; ushort *puVar38; uint *unaff_EBP; int *piVar39; int *piVar40; byte *unaff_ESI; ushort in_ES; undefined2 uVar41; undefined2 uVar42; undefined2 in_CS; undefined2 in_SS; ushort in_DS; bool bVar43; bool bVar44; byte in_AF; bool bVar45; byte in_TF; byte in_IF; bool bVar46; byte in_NT; byte in_AC; byte in_VIF; byte in_VIP; byte in_ID; uint uVar47; unkbyte10 in_ST1; unkbyte10 extraout_ST1; undefined8 uVar49; ulonglong uVar50; int *piStack_98; byte *pbStack_94; undefined4 uStack_90; undefined1 *puStack_8c; int *piStack_88; int *piStack_84; uint *puStack_80; undefined4 uStack_7c; uint uStack_78; byte *pbStack_74; uint *puStack_5c; uint *puStack_58; uint *puStack_3c; uint *in_stack_ffffffc8; uint *puStack_24; uint *puStack_20; uint *puStack_4; uint *puVar48; /* .NET CLR Managed Code */ bVar44 = false; puStack_4 = (uint *)CONCAT22(puStack_4._2_2_,in_SS); *in_EAX = *in_EAX + (char)in_EAX; puVar15 = puStack_4; do { puStack_4 = puVar15; puVar18 = (uint *)(CONCAT31((int3)((uint)in_EAX >> 8),(char)in_EAX + '\x17') + -0x4a7e33); code_r0x10010452: puVar15 = puVar18; *(byte *)((int)puStack_4 + (int)param_2) = *(byte *)((int)puStack_4 + (int)param_2) + (char)puVar15; *param_2 = *param_2; puVar18 = puRam28040000; puStack_20 = puStack_4; code_r0x10010463: cVar7 = (char)puVar18; *unaff_ESI = *unaff_ESI + cVar7; *unaff_ESI = *unaff_ESI + 1; *unaff_ESI = *unaff_ESI + cVar7; *param_2 = *param_2 - (char)((uint)param_2 >> 8); cVar3 = cVar7 + (byte)*puVar18; pcVar30 = (char *)CONCAT31((int3)((uint)puVar18 >> 8),cVar3); puStack_24 = (uint *)CONCAT22(puStack_24._2_2_,in_ES); cVar8 = (char)unaff_EBX; pcVar10 = param_2; if (cVar3 == '\0' || SCARRY1(cVar7,(byte)*puVar18) != cVar3 < '\0') { pcVar10 = param_2 + (int)unaff_EBX; bVar43 = SCARRY1(*pcVar10,cVar3); *pcVar10 = *pcVar10 + cVar3; cVar7 = *pcVar10; pbVar27 = unaff_ESI; puVar12 = puStack_4; goto code_r0x100104c3; } while( true ) { cVar7 = (char)pcVar30; *pcVar30 = *pcVar30 + cVar7; uVar24 = (undefined3)((uint)pcVar30 >> 8); bVar4 = cVar7 + 0x1f; pcVar30 = (char *)CONCAT31(uVar24,bVar4); *(byte *)(puStack_4 + -0x20) = (byte)puStack_4[-0x20] + 1; param_2 = pcVar10 + -1; *pcVar30 = *pcVar30 + bVar4; bVar43 = 0x23 < bVar4; puVar18 = (uint *)CONCAT31(uVar24,cVar7 + -5); if ((char)(cVar7 + -5) != '\0' && '#' < (char)bVar4) { bVar4 = (byte)(char *)((int)puVar18 + *puVar18); bVar5 = bVar4 + 0x13; pcVar30 = (char *)CONCAT31((int3)((int)puVar18 + *puVar18 >> 8),bVar5); puStack_4 = (uint *)((int)puStack_4 + (uint)(0xec < bVar4) + *(int *)((int)puStack_4 + -0x5f)); *pcVar30 = *pcVar30 + bVar5; bVar43 = 0xe5 < bVar5; param_2 = pcVar10 + -2; puVar18 = puStack_24; } pcVar10 = (char *)((int)puVar18 + bVar43 + 0xa17f5a33); *pcVar10 = *pcVar10 + (char)pcVar10; in_EAX = (char *)(CONCAT31((int3)((uint)pcVar10 >> 8),(char)pcVar10 + 'J') + -0xa17f13); cVar7 = (char)in_EAX; in_EAX[(int)unaff_EBP] = in_EAX[(int)unaff_EBP] + cVar7; bVar4 = *unaff_ESI; *unaff_ESI = *unaff_ESI + cVar7; if (*unaff_ESI != 0 && SCARRY1(bVar4,cVar7) == (char)*unaff_ESI < '\0') break; *in_EAX = *in_EAX + cVar7; puVar18 = (uint *)CONCAT31((int3)((uint)in_EAX >> 8),cVar7 + 'J'); while( true ) { cVar7 = (char)puVar18; uVar24 = (undefined3)((uint)puVar18 >> 8); bVar4 = cVar7 - 0x27; puVar18 = (uint *)CONCAT31(uVar24,bVar4); if (bVar4 != 0 && '&' < cVar7) goto code_r0x10010452; *(byte *)puVar18 = (byte)*puVar18 + bVar4; cVar3 = cVar7 + -7; pcVar10 = (char *)CONCAT31(uVar24,cVar3); puStack_20 = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar4,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar3 < '\0') * 0x80 | (uint)(cVar3 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar3) & 1U) == 0) * 4 | (uint)(0xdf < bVar4) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar10 = *pcVar10 + cVar3; pcVar10[0x4a] = pcVar10[0x4a] + cVar8; cVar6 = cVar7 + -0x20; puVar18 = (uint *)CONCAT31(uVar24,cVar6); if (cVar6 != '\0' && '\x18' < cVar3) { *(byte *)unaff_EBP = (byte)*unaff_EBP - (char)((uint)param_2 >> 8); goto code_r0x10010463; } *(byte *)puVar18 = (byte)*puVar18 + cVar6; bVar43 = SCARRY1(cVar6,'\x1a'); cVar7 = cVar7 + -6; pbVar27 = unaff_ESI; puVar12 = puStack_4; code_r0x100104c3: puVar18 = puStack_20; unaff_ESI = pbVar27; puStack_4 = puVar12; if (cVar7 != '\0' && bVar43 == cVar7 < '\0') { puStack_20 = (uint *)CONCAT22(puStack_20._2_2_,in_ES); goto code_r0x10010463; } bVar4 = (byte)puStack_20; *(byte *)puStack_20 = (byte)*puStack_20 + bVar4; bVar5 = bVar4 + 0x20; pcVar30 = (char *)CONCAT31((int3)((uint)puStack_20 >> 8),bVar5); uVar47 = (uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar4,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((char)bVar5 < '\0') * 0x80 | (uint)(bVar5 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(bVar5) & 1U) == 0) * 4 | (uint)(0xdf < bVar4); puVar48 = (uint *)(uVar47 | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar30 = *pcVar30 + bVar5; pcVar30[0x4a] = pcVar30[0x4a] + cVar8; iVar20 = iRam26110000; iRam26110000 = iRam26110000 - (int)param_1; if (iRam26110000 != 0 && (int)param_1 <= iVar20) break; *pcVar30 = *pcVar30 + bVar5; pbVar11 = (byte *)((int)puVar48 + (0xe5 < bVar5) + 0xa03b); *(byte *)((int)puVar12 + -0x5f) = *(byte *)((int)puVar12 + -0x5f) + (char)((uint)unaff_EBX >> 8); cVar7 = (char)pbVar11; *pbVar11 = *pbVar11 + cVar7; uVar24 = (undefined3)((uint)pbVar11 >> 8); piVar39 = (int *)CONCAT31(uVar24,cVar7 + '('); *piVar39 = *piVar39 + -0x5e80fa00; *(char *)piVar39 = (char)*piVar39 + cVar7 + '('; pcVar30 = (char *)CONCAT31(uVar24,cVar7 + 'H'); puStack_4 = (uint *)((int)puVar12 + 1); unaff_ESI = pbVar27 + 1; *(byte *)puVar12 = *pbVar27; *pcVar30 = *pcVar30 + cVar7 + 'H'; pcVar30[0x4a] = pcVar30[0x4a] + cVar8; pcVar10 = (char *)unaff_EBP[0x1fc00000]; param_2 = param_2 + -2; uVar47 = *unaff_EBX; uVar22 = *unaff_EBX; *unaff_EBX = (uint)(param_2 + uVar22 + (pcVar10 < pcVar30)); puVar18 = puStack_24; if (*unaff_EBX == 0 || (SCARRY4(uVar47,(int)param_2) != SCARRY4((int)(param_2 + uVar22),(uint)(pcVar10 < pcVar30))) != (int)*unaff_EBX < 0) { *(char *)puStack_24 = (char)*puStack_24 + (char)in_ES; pbVar11 = (byte *)CONCAT31((int3)((uint)puStack_24 >> 8),(char)in_ES + ' '); puVar15 = (uint *)(pbVar27 + 2); *(byte *)puStack_4 = *unaff_ESI; puVar18 = (uint *)((int)puVar12 + 2); goto code_r0x10010511; } } puStack_20._0_2_ = (ushort)uVar47; pcVar10 = param_2; in_DS = (ushort)puStack_20; } } while( true ); while( true ) { *(char *)puVar12 = (char)*puVar12 + (char)puVar12; puStack_3c = puStack_20; puVar48 = (uint *)(CONCAT31((int3)((uint)puVar12 >> 8),(char)puVar12 + '\x17') + -0x4a7e33); *(byte *)((int)puStack_20 + (int)pbVar27) = *(byte *)((int)puStack_20 + (int)pbVar27) + (char)puVar48; *pbVar27 = *pbVar27; puVar12 = puRam28040000; cVar7 = (char)puRam28040000; *(byte *)puVar15 = (byte)*puVar15 + cVar7; *(byte *)puVar15 = (byte)*puVar15 + 1; *(byte *)puVar15 = (byte)*puVar15 + cVar7; *pbVar27 = *pbVar27 - (char)((uint)pbVar27 >> 8); uVar24 = (undefined3)((uint)puVar12 >> 8); cVar3 = cVar7 + (byte)*puVar12; puVar13 = (uint *)CONCAT31(uVar24,cVar3); puVar18 = puStack_20; in_stack_ffffffc8 = puVar15; puStack_24 = param_1; if (cVar3 == '\0' || SCARRY1(cVar7,(byte)*puVar12) != cVar3 < '\0') goto code_r0x100105ae; *(byte *)puVar13 = (byte)*puVar13 + cVar3; cVar7 = cVar3 + '\x1f'; *(byte *)(puStack_20 + -0x20) = (byte)puStack_20[-0x20] + 1; param_2 = (char *)(iVar20 + -2); *(char *)CONCAT31(uVar24,cVar7) = *(char *)CONCAT31(uVar24,cVar7) + cVar7; cVar8 = cVar3 + -5; pbVar11 = (byte *)CONCAT31(uVar24,cVar8); if (cVar8 == '\0' || cVar7 < '$') break; code_r0x10010511: puStack_20 = puVar48; bVar5 = (byte)pbVar11; *pbVar11 = *pbVar11 + bVar5; pbVar11[0x4a] = pbVar11[0x4a] + (char)unaff_EBX; *unaff_EBX = *unaff_EBX - (int)param_1; bVar4 = *pbVar11; *pbVar11 = *pbVar11 + bVar5; bVar43 = CARRY4(*unaff_EBX,(uint)param_2) || CARRY4((uint)(param_2 + *unaff_EBX),(uint)CARRY1(bVar4,bVar5)); *unaff_EBX = (uint)(param_2 + *unaff_EBX + CARRY1(bVar4,bVar5)); bVar4 = (byte)param_2 + (byte)*param_1; iVar20 = CONCAT31((int3)((uint)param_2 >> 8),bVar4 + bVar43); piVar39 = (int *)CONCAT22((short)((uint)param_1 >> 0x10), CONCAT11((char)((uint)param_1 >> 8) + (byte)*unaff_EBX + (CARRY1((byte)param_2,(byte)*param_1) || CARRY1(bVar4,bVar43) ),(char)param_1)); puStack_20 = (uint *)CONCAT22(puStack_20._2_2_,in_DS); bVar43 = CARRY4((uint)unaff_EBX,*puVar18); unaff_EBX = (uint *)((int)unaff_EBX + *puVar18); pbVar27 = (byte *)(iVar20 + -1); uVar47 = CONCAT31((int3)((uint)pbVar11 >> 8),bVar5 + 0x58 + bVar43) ^ 0x134a0306; *unaff_EBX = *unaff_EBX | (uint)unaff_EBP; puVar12 = (uint *)(uVar47 + *unaff_EBX); uVar47 = (uint)CARRY4(uVar47,*unaff_EBX); param_1 = (uint *)((int)piVar39 + *piVar39 + uVar47); if (param_1 == (uint *)0x0 || (SCARRY4((int)piVar39,*piVar39) != SCARRY4((int)piVar39 + *piVar39,uVar47)) != (int)param_1 < 0) goto code_r0x1001057e; } *pbVar11 = *pbVar11 + cVar8; pcVar10 = (char *)(CONCAT31(uVar24,cVar3 + 'y') | 0x7f040003); pbVar27 = (byte *)((int)pcVar10 >> 0x1f); puVar12 = (uint *)CONCAT31((int3)((uint)pcVar10 >> 8),(char)pcVar10 + *pcVar10 + '\x11'); puStack_20 = puVar48; code_r0x1001057e: *puVar12 = *puVar12 | (uint)unaff_EBP; in_DS = (ushort)puStack_20; puRam030a0000 = puVar12; *(char *)((int)puVar12 + 0x4a) = *(char *)((int)puVar12 + 0x4a) + (char)unaff_EBX; puStack_20 = (uint *)CONCAT22(puStack_20._2_2_,in_SS); pcVar10 = (char *)((uint)puVar12 ^ 0x4aedd05); cVar7 = *pcVar10; cVar3 = (char)pcVar10; *pcVar10 = *pcVar10 + cVar3; if (*pcVar10 == '\0' || SCARRY1(cVar7,cVar3) != *pcVar10 < '\0') { unaff_EBX = (uint *)((uint)unaff_EBX ^ *(uint *)(pbVar27 + 0x7f)); iVar20 = iRam4a040000; goto code_r0x100105e5; } *pcVar10 = *pcVar10 + cVar3; do { pcVar10 = (char *)((byte)((char)pcVar10 + 0x17) - 0x4a7e33); puVar18 = puStack_20; code_r0x1001059d: *(byte *)((int)puVar18 + (int)pbVar27) = *(byte *)((int)puVar18 + (int)pbVar27) + (char)pcVar10; *pbVar27 = *pbVar27; puVar13 = puRam28040000; puStack_3c = puVar15; in_stack_ffffffc8 = unaff_EBP; puStack_24 = puVar18; puVar48 = puStack_20; code_r0x100105ae: puStack_20 = puVar48; cVar7 = (char)puVar13; *(byte *)puVar15 = (byte)*puVar15 + cVar7; *(byte *)puVar15 = (byte)*puVar15 + 1; *(byte *)puVar15 = (byte)*puVar15 + cVar7; *pbVar27 = *pbVar27 - (char)((uint)pbVar27 >> 8); cVar3 = cVar7 + (byte)*puVar13; pcVar10 = (char *)CONCAT31((int3)((uint)puVar13 >> 8),cVar3); puStack_24 = (uint *)CONCAT22(puStack_24._2_2_,in_ES); pbVar11 = pbVar27; puVar12 = puVar15; puVar48 = puVar18; if (cVar3 == '\0' || SCARRY1(cVar7,(byte)*puVar13) != cVar3 < '\0') { pbVar11 = pbVar27 + (int)unaff_EBX; bVar43 = SCARRY1(*pbVar11,cVar3); *pbVar11 = *pbVar11 + cVar3; bVar4 = *pbVar11; goto code_r0x1001060e; } while( true ) { cVar7 = (char)pcVar10; *pcVar10 = *pcVar10 + cVar7; uVar24 = (undefined3)((uint)pcVar10 >> 8); bVar4 = cVar7 + 0x1f; pcVar10 = (char *)CONCAT31(uVar24,bVar4); *(byte *)(puVar48 + -0x20) = (byte)puVar48[-0x20] + 1; pbVar27 = pbVar11 + -1; *pcVar10 = *pcVar10 + bVar4; bVar43 = 0x23 < bVar4; puVar15 = (uint *)CONCAT31(uVar24,cVar7 + -5); if ((char)(cVar7 + -5) != '\0' && '#' < (char)bVar4) { bVar4 = (byte)(byte *)((int)puVar15 + *puVar15); bVar5 = bVar4 + 0x13; pcVar10 = (char *)CONCAT31((int3)((int)puVar15 + *puVar15 >> 8),bVar5); *(byte **)((int)puVar48 + -0x5f) = (byte *)((int)puVar48 + (uint)(0xec < bVar4) + *(int *)((int)puVar48 + -0x5f)); *pcVar10 = *pcVar10 + bVar5; bVar43 = 0xe5 < bVar5; pbVar27 = pbVar11 + -2; puVar15 = puStack_20; } pbVar11 = (byte *)((int)puVar15 + bVar43 + 0xa17f5a33); *pbVar11 = *pbVar11 + (char)pbVar11; iVar20 = CONCAT31((int3)((uint)pbVar11 >> 8),(char)pbVar11 + 'J'); puVar15 = puVar12; puVar18 = puVar48; code_r0x100105e5: pcVar10 = (char *)(iVar20 + -0xa17f13); cVar7 = (char)pcVar10; pcVar10[(int)unaff_EBP] = pcVar10[(int)unaff_EBP] + cVar7; uVar47 = *puVar15; *(byte *)puVar15 = (byte)*puVar15 + cVar7; if ((byte)*puVar15 != 0 && SCARRY1((byte)uVar47,cVar7) == (char)(byte)*puVar15 < '\0') break; *pcVar10 = *pcVar10 + cVar7; puVar14 = (uint *)CONCAT31((int3)((uint)pcVar10 >> 8),cVar7 + 'J'); while( true ) { cVar7 = (char)puVar14; uVar24 = (undefined3)((uint)puVar14 >> 8); bVar4 = cVar7 - 0x27; pcVar10 = (char *)CONCAT31(uVar24,bVar4); if (bVar4 != 0 && '&' < cVar7) goto code_r0x1001059d; *pcVar10 = *pcVar10 + bVar4; cVar3 = cVar7 + -7; pcVar10 = (char *)CONCAT31(uVar24,cVar3); puStack_24 = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar4,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar3 < '\0') * 0x80 | (uint)(cVar3 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar3) & 1U) == 0) * 4 | (uint)(0xdf < bVar4) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar10 = *pcVar10 + cVar3; pcVar10[0x4a] = pcVar10[0x4a] + (char)unaff_EBX; cVar8 = cVar7 + -0x20; puVar13 = (uint *)CONCAT31(uVar24,cVar8); if (cVar8 != '\0' && '\x18' < cVar3) { *(byte *)unaff_EBP = (byte)*unaff_EBP - (char)((uint)pbVar27 >> 8); puVar48 = puStack_20; goto code_r0x100105ae; } *(byte *)puVar13 = (byte)*puVar13 + cVar8; bVar43 = SCARRY1(cVar8,'\x1a'); bVar4 = cVar7 - 6; puVar12 = puVar15; puVar48 = puVar18; code_r0x1001060e: puVar14 = puStack_20; puVar13 = puStack_24; if (bVar4 != 0 && bVar43 == (char)bVar4 < '\0') { puStack_24 = (uint *)((uint)puStack_24 & 0xffff0000); puVar15 = puVar12; puVar18 = puVar48; puVar48 = puStack_20; goto code_r0x100105ae; } bVar4 = (byte)puStack_24; *(byte *)puStack_24 = (byte)*puStack_24 + bVar4; bVar5 = bVar4 + 0x20; pcVar10 = (char *)CONCAT31((int3)((uint)puStack_24 >> 8),bVar5); uVar47 = (uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar4,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((char)bVar5 < '\0') * 0x80 | (uint)(bVar5 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(bVar5) & 1U) == 0) * 4 | (uint)(0xdf < bVar4); puStack_24 = (uint *)(uVar47 | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar10 = *pcVar10 + bVar5; pcVar10[0x4a] = pcVar10[0x4a] + (char)unaff_EBX; iVar20 = iRam26110000; iRam26110000 = iRam26110000 - (int)param_1; if (iRam26110000 != 0 && (int)param_1 <= iVar20) break; *pcVar10 = *pcVar10 + bVar5; pbVar11 = (byte *)((int)puStack_24 + (0xe5 < bVar5) + 0xa03b); *(byte *)((int)puVar48 + -0x5f) = *(byte *)((int)puVar48 + -0x5f) + (char)((uint)unaff_EBX >> 8); cVar7 = (char)pbVar11; *pbVar11 = *pbVar11 + cVar7; uVar24 = (undefined3)((uint)pbVar11 >> 8); piVar39 = (int *)CONCAT31(uVar24,cVar7 + '('); *piVar39 = *piVar39 + -0x5e80fa00; *(char *)piVar39 = (char)*piVar39 + cVar7 + '('; pcVar30 = (char *)CONCAT31(uVar24,cVar7 + 'H'); puVar18 = (uint *)((int)puVar48 + 1); puVar15 = (uint *)((int)puVar12 + 1); *(byte *)puVar48 = (byte)*puVar12; *pcVar30 = *pcVar30 + cVar7 + 'H'; pcVar30[0x4a] = pcVar30[0x4a] + (char)unaff_EBX; pcVar10 = (char *)unaff_EBP[0x1fc00000]; pbVar27 = pbVar27 + -2; uVar47 = *param_1; uVar22 = *param_1; *param_1 = (uint)(pbVar27 + uVar22 + (pcVar10 < pcVar30)); puStack_20 = (uint *)CONCAT22(puStack_20._2_2_,in_SS); if (*param_1 == 0 || (SCARRY4(uVar47,(int)pbVar27) != SCARRY4((int)(pbVar27 + uVar22),(uint)(pcVar10 < pcVar30))) != (int)*param_1 < 0) { *(byte *)puVar14 = (byte)*puVar14 + (char)puVar14; pbVar11 = (byte *)CONCAT31((int3)((uint)puVar14 >> 8),(char)puVar14 + ' '); puVar48 = (uint *)((int)puVar48 + 2); puVar12 = (uint *)((int)puVar12 + 2); *(byte *)puVar18 = *(byte *)puVar15; do { bVar5 = (byte)pbVar11; *pbVar11 = *pbVar11 + bVar5; pbVar11[0x4a] = pbVar11[0x4a] + (char)unaff_EBX; *unaff_EBX = *unaff_EBX - (int)param_1; bVar4 = *pbVar11; *pbVar11 = *pbVar11 + bVar5; bVar43 = CARRY4(*unaff_EBX,(uint)pbVar27) || CARRY4((uint)(pbVar27 + *unaff_EBX),(uint)CARRY1(bVar4,bVar5)); *unaff_EBX = (uint)(pbVar27 + *unaff_EBX + CARRY1(bVar4,bVar5)); uVar47 = *param_1; bVar4 = (byte)*param_1 + (byte)pbVar27; *(byte *)param_1 = bVar4 + bVar43; bVar9 = (byte)((uint)param_1 >> 8); *(byte *)unaff_EBX = (byte)*unaff_EBX + bVar9 + (CARRY1((byte)uVar47,(byte)pbVar27) || CARRY1(bVar4,bVar43)); puStack_24 = (uint *)CONCAT22(puStack_24._2_2_,in_DS); bVar43 = CARRY4((uint)unaff_EBX,*puVar48); unaff_EBX = (uint *)((int)unaff_EBX + *puVar48); pbVar27 = pbVar27 + -1; uVar47 = CONCAT31((int3)((uint)pbVar11 >> 8),bVar5 + 0x58 + bVar43) ^ 0x134a0306; *(byte *)unaff_EBX = (byte)*unaff_EBX | bVar9; pbVar11 = (byte *)(uVar47 + *unaff_EBX); uVar47 = (uint)CARRY4(uVar47,*unaff_EBX); bVar43 = SCARRY4((int)param_1,*(int *)pbVar11); pbVar19 = (byte *)((int)param_1 + *(int *)pbVar11); param_1 = (uint *)(pbVar19 + uVar47); if (param_1 == (uint *)0x0 || (bVar43 != SCARRY4((int)pbVar19,uVar47)) != (int)param_1 < 0) { *pbVar11 = *pbVar11 | (byte)((uint)param_1 >> 8); puVar15 = in_stack_ffffffc8; goto code_r0x100106bb; } *pbVar11 = *pbVar11 + (char)pbVar11; puVar15 = (uint *)(CONCAT31((int3)((uint)pbVar11 >> 8),(char)pbVar11 + '\x17') + -0x4a7e33); *(byte *)((int)puStack_24 + (int)pbVar27) = *(byte *)((int)puStack_24 + (int)pbVar27) + (char)puVar15; *pbVar27 = *pbVar27; puVar18 = puRam28040000; puVar48 = puStack_24; puStack_3c = puVar12; in_stack_ffffffc8 = unaff_EBP; puStack_24 = puVar15; while( true ) { cVar7 = (char)puVar18; *(byte *)puVar12 = (byte)*puVar12 + cVar7; *(byte *)puVar12 = (byte)*puVar12 + 1; *(byte *)puVar12 = (byte)*puVar12 + cVar7; *pbVar27 = *pbVar27 - (char)((uint)pbVar27 >> 8); uVar24 = (undefined3)((uint)puVar18 >> 8); cVar3 = cVar7 + (byte)*puVar18; if (cVar3 == '\0' || SCARRY1(cVar7,(byte)*puVar18) != cVar3 < '\0') goto code_r0x100106f7; *(char *)CONCAT31(uVar24,cVar3) = *(char *)CONCAT31(uVar24,cVar3) + cVar3; cVar7 = cVar3 + '\x1f'; *(byte *)(puVar48 + -0x20) = (byte)puVar48[-0x20] + 1; pbVar27 = pbVar27 + -1; *(char *)CONCAT31(uVar24,cVar7) = *(char *)CONCAT31(uVar24,cVar7) + cVar7; pbVar11 = (byte *)CONCAT31(uVar24,cVar3 + -5); puVar15 = in_stack_ffffffc8; if ((char)(cVar3 + -5) != '\0' && '#' < cVar7) break; code_r0x100106bb: *pbVar11 = *pbVar11 + (char)pbVar11; bVar4 = 0; in_CS = 0x2808; uVar49 = func_0x11040002(); puRam030a0000 = (uint *)uVar49; param_1 = extraout_ECX; in_DS = (ushort)puStack_3c; in_ST1 = extraout_ST1; code_r0x100106d1: bVar5 = (byte)uVar49 + 0x58; uVar16 = CONCAT31((int3)((ulonglong)uVar49 >> 8),bVar5 + bVar4); uVar47 = (uint)(0xa7 < (byte)uVar49 || CARRY1(bVar5,bVar4)); uVar22 = uVar16 + *puVar48; uVar17 = uVar22 + uVar47; puStack_3c = (uint *)CONCAT22(puStack_3c._2_2_,in_DS); *puVar48 = *puVar48 + uVar17 + (uint)(CARRY4(uVar16,*puVar48) || CARRY4(uVar22,uVar47)); pbVar27 = (byte *)((int)((ulonglong)uVar49 >> 0x20) + -1); puVar18 = (uint *)(uVar17 ^ 0x2b4a0304); uVar47 = *unaff_EBX; *unaff_EBX = (uint)(*unaff_EBX + (int)puVar18); in_stack_ffffffc8 = puVar15; if (CARRY4(uVar47,(uint)puVar18)) { code_r0x100106e2: *(byte *)puVar18 = (byte)*puVar18 + (char)puVar18; pbVar27 = (byte *)CONCAT31((int3)((uint)pbVar27 >> 8), (byte)pbVar27 | (byte)*unaff_EBX); *(int *)pbVar27 = (int)in_ST1; *(byte *)((int)puVar48 + (int)pbVar27) = *(byte *)((int)puVar48 + (int)pbVar27) + (char)puVar18; puVar18 = (uint *)((int)puVar18 + -0x4a7e33); puVar48 = puStack_3c; code_r0x100106f3: *(byte *)((int)puVar48 + (int)pbVar27) = *(byte *)((int)puVar48 + (int)pbVar27) + (char)puVar18; puStack_58 = puVar48; puStack_3c = puVar18; code_r0x100106f7: *pbVar27 = *pbVar27; puVar15 = puRam28040000; code_r0x10010704: cVar7 = (char)puVar15; *(byte *)puVar12 = (byte)*puVar12 + cVar7; *(byte *)puVar12 = (byte)*puVar12 + 1; *(byte *)puVar12 = (byte)*puVar12 + cVar7; *pbVar27 = *pbVar27 - (char)((uint)pbVar27 >> 8); cVar3 = cVar7 + (byte)*puVar15; pcVar10 = (char *)CONCAT31((int3)((uint)puVar15 >> 8),cVar3); puStack_5c = (uint *)CONCAT22(puStack_5c._2_2_,in_ES); cVar8 = (char)param_1; bVar4 = (byte)unaff_EBX; pbVar11 = pbVar27; if (cVar3 == '\0' || SCARRY1(cVar7,(byte)*puVar15) != cVar3 < '\0') { pbVar27 = pbVar27 + (int)unaff_EBX; bVar43 = SCARRY1(*pbVar27,cVar3); *pbVar27 = *pbVar27 + cVar3; bVar5 = *pbVar27; puVar13 = puVar12; puVar14 = puVar48; goto code_r0x10010764; } code_r0x10010717: cVar7 = (char)pcVar10; *pcVar10 = *pcVar10 + cVar7; uVar24 = (undefined3)((uint)pcVar10 >> 8); bVar5 = cVar7 + 0x1f; pcVar10 = (char *)CONCAT31(uVar24,bVar5); *(byte *)(puVar48 + -0x20) = (byte)puVar48[-0x20] + 1; pbVar27 = pbVar11 + -1; *pcVar10 = *pcVar10 + bVar5; bVar43 = 0x23 < bVar5; puVar15 = (uint *)CONCAT31(uVar24,cVar7 + -5); if ((char)(cVar7 + -5) != '\0' && '#' < (char)bVar5) { cVar7 = (char)(byte *)((int)puVar15 + *puVar15); bVar5 = cVar7 + 0x13; pcVar10 = (char *)CONCAT31((int3)((int)puVar15 + *puVar15 >> 8),bVar5); uVar49 = CONCAT44(pbVar27,pcVar10); puVar15 = (uint *)CONCAT22((short)((uint)in_stack_ffffffc8 >> 0x10),in_CS); if (bVar5 != 0 && -0x14 < cVar7) { *pbVar27 = *pbVar27 + cVar8; bVar4 = CARRY4((uint)unaff_EBX,*puVar48); unaff_EBX = (uint *)((int)unaff_EBX + *puVar48); goto code_r0x100106d1; } *pcVar10 = *pcVar10 + bVar5; bVar43 = 0xe5 < bVar5; pbVar27 = pbVar11 + -2; in_stack_ffffffc8 = puVar15; } pbVar11 = (byte *)((int)puVar15 + bVar43 + 0xa17f5c33); *pbVar11 = *pbVar11 + (char)pbVar11; pcVar10 = (char *)(CONCAT31((int3)((uint)pbVar11 >> 8),(char)pbVar11 + 'J') + -0xa17f13); cVar7 = (char)pcVar10; pcVar10[(int)unaff_EBP] = pcVar10[(int)unaff_EBP] + cVar7; bVar46 = SCARRY1((byte)*puVar12,cVar7); *(byte *)puVar12 = (byte)*puVar12 + cVar7; bVar45 = (char)(byte)*puVar12 < '\0'; bVar43 = (byte)*puVar12 == 0; while( true ) { cVar7 = (char)pcVar10; uVar24 = (undefined3)((uint)pcVar10 >> 8); if (!bVar43 && bVar46 == bVar45) break; *pcVar10 = *pcVar10 + cVar7; puVar18 = (uint *)CONCAT31(uVar24,cVar7 + '#'); if ((char)(cVar7 + '#') != '\0' && '&' < (char)(cVar7 + 'J')) goto code_r0x100106f3; while( true ) { bVar5 = (byte)puVar18; *(byte *)puVar18 = (byte)*puVar18 + bVar5; uVar24 = (undefined3)((uint)puVar18 >> 8); cVar7 = bVar5 + 0x20; pcVar10 = (char *)CONCAT31(uVar24,cVar7); puStack_58 = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar5,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar7 < '\0') * 0x80 | (uint)(cVar7 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar7) & 1U) == 0) * 4 | (uint)(0xdf < bVar5) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000 ); *pcVar10 = *pcVar10 + cVar7; pcVar10[0x4a] = pcVar10[0x4a] + bVar4; cVar3 = bVar5 + 7; puVar15 = (uint *)CONCAT31(uVar24,cVar3); if (cVar3 != '\0' && '\x18' < cVar7) { *(byte *)unaff_EBP = (byte)*unaff_EBP - (char)((uint)pbVar27 >> 8); goto code_r0x10010704; } *(byte *)puVar15 = (byte)*puVar15 + cVar3; bVar43 = SCARRY1(cVar3,'\x1a'); bVar5 = bVar5 + 0x21; pbVar11 = pbVar27; puVar13 = puVar12; puVar14 = puVar48; code_r0x10010764: puVar15 = puStack_58; puVar12 = puVar13; puVar48 = puVar14; if (bVar5 != 0 && bVar43 == (char)bVar5 < '\0') { puStack_58 = (uint *)CONCAT22(puStack_58._2_2_,in_ES); pbVar27 = pbVar11; goto code_r0x10010704; } bVar5 = (byte)puStack_58; *(byte *)puStack_58 = (byte)*puStack_58 + bVar5; bVar9 = bVar5 + 0x20; pcVar10 = (char *)CONCAT31((int3)((uint)puStack_58 >> 8),bVar9); uVar47 = (uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar5,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((char)bVar9 < '\0') * 0x80 | (uint)(bVar9 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(bVar9) & 1U) == 0) * 4 | (uint)(0xdf < bVar5); puVar15 = (uint *)(uVar47 | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar10 = *pcVar10 + bVar9; pcVar10[0x4a] = pcVar10[0x4a] + bVar4; iVar20 = iRam26110000; iRam26110000 = iRam26110000 - (int)param_1; if (iRam26110000 != 0 && (int)param_1 <= iVar20) { puStack_58._0_2_ = (ushort)uVar47; in_DS = (ushort)puStack_58; puStack_58 = puVar15; goto code_r0x10010717; } *pcVar10 = *pcVar10 + bVar9; pbVar27 = pbVar11 + -1; pbVar19 = (byte *)((int)puVar15 + (0xe5 < bVar9) + 0xa2dd0533); cVar7 = (char)pbVar19; *pbVar19 = *pbVar19 + cVar7; cVar3 = (char)((uint)unaff_EBX >> 8); *(byte *)((int)puVar14 + -0x5f) = *(byte *)((int)puVar14 + -0x5f) + cVar3; *pbVar19 = *pbVar19 + cVar7; uVar24 = (undefined3)((uint)pbVar19 >> 8); piVar39 = (int *)CONCAT31(uVar24,cVar7 + '('); *piVar39 = *piVar39 + -0x5e80fa00; *(char *)piVar39 = (char)*piVar39 + cVar7 + '('; pcVar10 = (char *)CONCAT31(uVar24,cVar7 + 'H'); puVar48 = (uint *)((int)puVar14 + 1); puVar12 = (uint *)((int)puVar13 + 1); *(byte *)puVar14 = (byte)*puVar13; *pcVar10 = *pcVar10 + cVar7 + 'H'; pcVar10[0x4a] = pcVar10[0x4a] + bVar4; pcVar10 = pcVar10 + -0x85dd05; bVar5 = (byte)pcVar10; bVar46 = SCARRY1(*pcVar10,bVar5); *pcVar10 = *pcVar10 + bVar5; bVar45 = *pcVar10 < '\0'; bVar43 = *pcVar10 == '\0'; if (!bVar43 && bVar46 == bVar45) break; *pcVar10 = *pcVar10 + bVar5; pbVar27 = pbVar11 + -2; uVar47 = *puVar12; uVar22 = *puVar12; *puVar12 = (uint)((byte *)(uVar22 + (int)param_1) + (0xe5 < bVar5)); puVar18 = puStack_5c; if (*puVar12 == 0 || (SCARRY4(uVar47,(int)param_1) != SCARRY4((int)(uVar22 + (int)param_1),(uint)(0xe5 < bVar5))) != (int)*puVar12 < 0) { *(byte *)puStack_5c = (byte)*puStack_5c + (char)in_ES; pbVar19 = (byte *)CONCAT31((int3)((uint)puStack_5c >> 8),(char)in_ES + ' '); pbVar11 = (byte *)((int)puVar13 + 2); *(byte *)puVar48 = *(byte *)puVar12; puVar15 = (uint *)((int)puVar14 + 2); goto code_r0x100107b6; } } } puVar18 = (uint *)CONCAT31(uVar24,cVar7 + '\x17'); goto code_r0x100106e2; } } } while( true ); } } puStack_24._0_2_ = (ushort)uVar47; pbVar11 = pbVar27; in_DS = (ushort)puStack_24; } } while( true ); while( true ) { *pcVar10 = *pcVar10 + (char)pcVar10; puVar18 = (uint *)(CONCAT31((int3)((uint)pcVar10 >> 8),(char)pcVar10 + '\x17') + -0x4a7e33); *(byte *)((int)puStack_5c + (int)pbVar27) = *(byte *)((int)puStack_5c + (int)pbVar27) + (char)puVar18; pbStack_74 = pbVar11; *pbVar27 = *pbVar27; puVar15 = puRam28040000; cVar7 = (char)puRam28040000; *pbVar11 = *pbVar11 + cVar7; *pbVar11 = *pbVar11 + 1; *pbVar11 = *pbVar11 + cVar7; *pbVar27 = *pbVar27 - (char)((uint)pbVar27 >> 8); uVar24 = (undefined3)((uint)puVar15 >> 8); bVar5 = cVar7 + (byte)*puVar15; pcVar10 = (char *)CONCAT31(uVar24,bVar5); if (bVar5 == 0 || SCARRY1(cVar7,(byte)*puVar15) != (char)bVar5 < '\0') { pbVar19 = (byte *)((int)unaff_EBX * 8 + 0x97); bVar9 = *pbVar19; *pbVar19 = *pbVar19 + bVar5; pbVar19 = (byte *)((int)param_1 + *(uint *)((int)pbVar27 * 2)); bVar44 = CARRY4((uint)param_1,*(uint *)((int)pbVar27 * 2)) || CARRY4((uint)pbVar19,(uint)CARRY1(bVar9,bVar5)); pbVar19 = pbVar19 + CARRY1(bVar9,bVar5); goto code_r0x1001085b; } *pcVar10 = *pcVar10 + bVar5; cVar7 = bVar5 + 0x1f; *(byte *)(puStack_5c + -0x20) = (byte)puStack_5c[-0x20] + 1; pbVar27 = pbVar27 + -1; *(char *)CONCAT31(uVar24,cVar7) = *(char *)CONCAT31(uVar24,cVar7) + cVar7; cVar6 = bVar5 - 5; pbVar19 = (byte *)CONCAT31(uVar24,cVar6); puVar15 = puStack_5c; if (cVar6 == '\0' || cVar7 < '$') break; code_r0x100107b6: puStack_5c = puVar18; bVar9 = (byte)pbVar19; *pbVar19 = *pbVar19 + bVar9; pbVar19[0x4a] = pbVar19[0x4a] + bVar4; *unaff_EBX = *unaff_EBX - (int)param_1; bVar5 = *pbVar19; *pbVar19 = *pbVar19 + bVar9; *unaff_EBX = (uint)(pbVar27 + (uint)CARRY1(bVar5,bVar9) + *unaff_EBX); *puVar15 = *puVar15 + ((uint)pbVar19 | 0x22d0d11); pbVar28 = pbVar27 + -1; pcVar10 = (char *)((((uint)pbVar19 | 0x22d0d11) ^ 0x134a0306) - *unaff_EBX); pbVar27 = pbVar28 + *unaff_EBX; puStack_5c = (uint *)CONCAT22(puStack_5c._2_2_,in_ES); if (pbVar27 == (byte *)0x0 || SCARRY4((int)pbVar28,*unaff_EBX) != (int)pbVar27 < 0) goto code_r0x10010823; } *pbVar19 = *pbVar19 + cVar6; pcVar10 = (char *)(CONCAT31(uVar24,bVar5 + 0x79) | 0x7f040003); pcVar10 = (char *)CONCAT31((int3)((uint)pcVar10 >> 8),(char)pcVar10 + *pcVar10 + '\x11'); code_r0x10010823: puVar18 = unaff_EBX + 0x28000; uVar47 = *puVar18; bVar5 = (byte)((uint)pcVar10 >> 8); *(byte *)puVar18 = (byte)*puVar18 - bVar5; *puVar15 = (uint)((int)param_1 + (uint)((byte)uVar47 < bVar5) + *puVar15); pbVar19 = (byte *)CONCAT22((short)((uint)param_1 >> 0x10), CONCAT11((char)((uint)param_1 >> 8) - cVar8,cVar8)); pbVar28 = pbVar11; if ((char)((char)pcVar10 + *pcVar10 | *pbVar27) < '\0') { pbVar28 = (byte *)((int)puVar13 + 6); out(*(undefined4 *)pbVar11,(short)pbVar27); *(byte *)((int)puVar15 + (int)pbVar27) = *(byte *)((int)puVar15 + (int)pbVar27); piVar39 = (int *)((uint)unaff_EBP | *unaff_EBX); bVar5 = *pbVar28; bVar9 = (byte)pbVar27; uVar24 = (undefined3)((uint)pbVar27 >> 8); cVar7 = bVar9 + *pbVar28; pbVar27 = (byte *)CONCAT31(uVar24,cVar7); if (SCARRY1(bVar9,*pbVar28) == cVar7 < '\0') { iVar20 = piVar39[0x1f418000]; if (iRam28060000 < 1) { in_DS = in_ES; } iVar21 = iRam28060000 + 0x28060000; cVar6 = (char)iVar21; *(byte *)unaff_EBX = (byte)*unaff_EBX - cVar3; *pbVar28 = *pbVar28 + cVar6 + '\x16'; uVar47 = *puVar15; uVar22 = CONCAT31((int3)((uint)iVar21 >> 8),cVar6 + '1' + CARRY4((uint)unaff_EBX,*puVar15)) ^ 0x134a0306; iVar21 = uVar22 + 0x32171549; pcVar10 = (char *)(CONCAT31(uVar24,cVar7 + (char)iVar20 + CARRY1(bVar9,bVar5)) + -2); iVar20 = (CONCAT31((int3)((uint)iVar21 >> 8), (char)iVar21 + 'X' + (0xe0ebede1 < uVar22 + 0x1303032b)) ^ 0x4a141207) + *(int *)((byte *)((int)unaff_EBX + uVar47) + (int)piVar39); bVar4 = (byte)iVar20; puVar18 = (uint *)CONCAT31((int3)((uint)iVar20 >> 8),bVar4 + (0xed < bVar4) + 'M'); *puVar18 = *puVar18; if ((int)*puVar18 < 1) { *puVar18 = *puVar18 << 1 | (uint)((int)*puVar18 < 0); *pcVar10 = *pcVar10 + cVar8; pbStack_74 = (byte *)CONCAT22(pbStack_74._2_2_,in_SS); } bVar4 = (byte)((int)puVar18 + *puVar18); uVar24 = (undefined3)((int)puVar18 + *puVar18 >> 8); cVar7 = bVar4 + 0x7f; uStack_78 = (uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar4,'\x7f') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar7 < '\0') * 0x80 | (uint)(cVar7 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar7) & 1U) == 0) * 4 | (uint)(0x80 < bVar4) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000; iVar20 = CONCAT31(uVar24,cVar7 + *(char *)CONCAT31(uVar24,cVar7) + '\"') + 0xd128; uVar24 = (undefined3)((uint)pcVar10 >> 8); bVar9 = (byte)pcVar10 | *pbVar28; piVar33 = (int *)((int)unaff_EBX + uVar47 | (uint)pbVar28); uStack_7c = (uint *)CONCAT22(uStack_7c._2_2_,in_CS); *pbVar28 = *pbVar28 + 1; pbVar27 = (byte *)0x12060000; bVar4 = (byte)iVar20; bVar5 = ((bVar4 + 0x28) - *(char *)CONCAT31(uVar24,bVar9)) - (0xd7 < bVar4); bVar43 = CARRY1(bRam12060000,bVar5); bRam12060000 = bRam12060000 + bVar5; bVar4 = bVar9 + *(byte *)((int)puVar15 + (int)piVar33); iVar21 = CONCAT31(uVar24,bVar4 + bVar43); piVar29 = (int *)(iVar21 + -1); puVar18 = (uint *)(CONCAT31((int3)((uint)iVar20 >> 8), bVar5 + 0x58 + (CARRY1(bVar9,*(byte *)((int)puVar15 + (int)piVar33)) || CARRY1(bVar4,bVar43))) ^ 0x4a141208); pcVar10 = (char *)(iVar21 + 1); *pcVar10 = *pcVar10 - (char)((uint)piVar33 >> 8); cVar7 = (char)puVar18; bVar43 = SCARRY1(bRam12060000,cVar7); bRam12060000 = bRam12060000 + cVar7; if (bRam12060000 == '\0' || bVar43 != (char)bRam12060000 < '\0') { bVar43 = false; piVar33 = (int *)((uint)piVar33 ^ *(uint *)((int)puVar15 * 3 + -0x5f)); goto code_r0x1001093a; } *(byte *)puVar18 = (byte)*puVar18 + cVar7; do { puVar12 = (uint *)((byte)((char)puVar18 + 0x17) - 0x4a7e33); puVar15 = uStack_7c; code_r0x100108fb: *(byte *)((int)puVar15 + (int)piVar29) = *(byte *)((int)puVar15 + (int)piVar29) + (char)puVar12; *(char *)piVar29 = (char)*piVar29; puVar18 = puRam28040000; puStack_80 = puVar15; code_r0x1001090c: cVar7 = (char)puVar18; *pbVar27 = *pbVar27 + cVar7; *pbVar27 = *pbVar27 + 1; *pbVar27 = *pbVar27 + cVar7; *(char *)piVar29 = (char)*piVar29 - (char)((uint)piVar29 >> 8); cVar3 = cVar7 + (byte)*puVar18; pcVar10 = (char *)CONCAT31((int3)((uint)puVar18 >> 8),cVar3); puStack_80 = (uint *)CONCAT22(puStack_80._2_2_,in_ES); piVar23 = piVar29; pbVar11 = pbVar27; if (cVar3 == '\0' || SCARRY1(cVar7,(byte)*puVar18) != cVar3 < '\0') { pcVar10 = (char *)((int)piVar29 + (int)piVar33); bVar43 = SCARRY1(*pcVar10,cVar3); *pcVar10 = *pcVar10 + cVar3; cVar7 = *pcVar10; puVar48 = puVar15; goto code_r0x1001096c; } code_r0x1001091f: cVar7 = (char)pcVar10; *pcVar10 = *pcVar10 + cVar7; uVar24 = (undefined3)((uint)pcVar10 >> 8); bVar4 = cVar7 + 0x1f; pcVar10 = (char *)CONCAT31(uVar24,bVar4); *(byte *)(puVar15 + -0x20) = (byte)puVar15[-0x20] + 1; piVar29 = (int *)((int)piVar23 + -1); *pcVar10 = *pcVar10 + bVar4; bVar43 = 0x23 < bVar4; puVar18 = (uint *)CONCAT31(uVar24,cVar7 + -5); pbVar27 = pbVar11; if ((char)(cVar7 + -5) != '\0' && '#' < (char)bVar4) { bVar4 = (char)(byte *)((int)puVar18 + *puVar18) + 0x13; pcVar10 = (char *)CONCAT31((int3)((int)puVar18 + *puVar18 >> 8),bVar4); puVar15 = (uint *)((uint)puVar15 | *(uint *)((int)puVar15 + -0x5f)); *pcVar10 = *pcVar10 + bVar4; bVar43 = 0xe5 < bVar4; piVar29 = (int *)((int)piVar23 + -2); puVar18 = uStack_7c; } code_r0x1001093a: pbVar11 = (byte *)((int)puVar18 + bVar43 + 0xa17f5c33); *pbVar11 = *pbVar11 + (char)pbVar11; puVar18 = (uint *)(CONCAT31((int3)((uint)pbVar11 >> 8),(char)pbVar11 + 'J') + -0xa17f13); cVar7 = (char)puVar18; *(byte *)((int)puVar18 + (int)piVar39) = *(byte *)((int)puVar18 + (int)piVar39) + cVar7; bVar46 = SCARRY1(*pbVar27,cVar7); *pbVar27 = *pbVar27 + cVar7; bVar45 = (char)*pbVar27 < '\0'; bVar43 = *pbVar27 == 0; while (bVar43 || bVar46 != bVar45) { cVar7 = (char)puVar18; *(byte *)puVar18 = (byte)*puVar18 + cVar7; puVar12 = (uint *)CONCAT31((int3)((uint)puVar18 >> 8),cVar7 + '#'); if ((char)(cVar7 + '#') != '\0' && '&' < (char)(cVar7 + 'J')) goto code_r0x100108fb; while( true ) { bVar4 = (byte)puVar12; *(byte *)puVar12 = (byte)*puVar12 + bVar4; uVar24 = (undefined3)((uint)puVar12 >> 8); cVar7 = bVar4 + 0x20; pcVar10 = (char *)CONCAT31(uVar24,cVar7); puStack_80 = (uint *)((uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar4,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)(cVar7 < '\0') * 0x80 | (uint)(cVar7 == '\0') * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(cVar7) & 1U) == 0) * 4 | (uint)(0xdf < bVar4) | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000); *pcVar10 = *pcVar10 + cVar7; pcVar10[0x4a] = pcVar10[0x4a] + (char)piVar33; cVar3 = bVar4 + 7; puVar18 = (uint *)CONCAT31(uVar24,cVar3); if (cVar3 != '\0' && '\x18' < cVar7) { *(char *)piVar39 = (char)*piVar39 - (char)((uint)piVar29 >> 8); goto code_r0x1001090c; } *(byte *)puVar18 = (byte)*puVar18 + cVar3; bVar43 = SCARRY1(cVar3,'\x1a'); cVar7 = bVar4 + 0x21; piVar23 = piVar29; pbVar11 = pbVar27; puVar48 = puVar15; code_r0x1001096c: puVar12 = uStack_7c; puVar18 = puStack_80; puVar15 = puVar48; if (cVar7 != '\0' && bVar43 == cVar7 < '\0') { puStack_80 = (uint *)((uint)puStack_80 & 0xffff0000); piVar29 = piVar23; pbVar27 = pbVar11; goto code_r0x1001090c; } bVar4 = (byte)puStack_80; *(byte *)puStack_80 = (byte)*puStack_80 + bVar4; bVar5 = bVar4 + 0x20; pcVar10 = (char *)CONCAT31((int3)((uint)puStack_80 >> 8),bVar5); uVar47 = (uint)(in_NT & 1) * 0x4000 | (uint)SCARRY1(bVar4,' ') * 0x800 | (uint)(in_IF & 1) * 0x200 | (uint)(in_TF & 1) * 0x100 | (uint)((char)bVar5 < '\0') * 0x80 | (uint)(bVar5 == 0) * 0x40 | (uint)(in_AF & 1) * 0x10 | (uint)((POPCOUNT(bVar5) & 1U) == 0) * 4 | (uint)(0xdf < bVar4); *pcVar10 = *pcVar10 + bVar5; pcVar10[0x4a] = pcVar10[0x4a] + (char)piVar33; iVar20 = iRam26110000; iRam26110000 = iRam26110000 - (int)pbVar19; if (iRam26110000 != 0 && (int)pbVar19 <= iVar20) { puStack_80._0_2_ = (ushort)uVar47; in_DS = (ushort)puStack_80; goto code_r0x1001091f; } *pcVar10 = *pcVar10 + bVar5; piVar29 = (int *)((int)piVar23 + -1); pcVar10 = (char *)((uVar47 | (uint)(in_ID & 1) * 0x200000 | (uint)(in_VIP & 1) * 0x100000 | (uint)(in_VIF & 1) * 0x80000 | (uint)(in_AC & 1) * 0x40000) + 0xb0dd0533 + (uint)(0xe5 < bVar5)); cVar7 = (char)pcVar10; *pcVar10 = *pcVar10 + cVar7; *(byte *)((int)puVar48 + -0x5f) = *(byte *)((int)puVar48 + -0x5f) + (char)((uint)piVar33 >> 8); *pcVar10 = *pcVar10 + cVar7; uVar24 = (undefined3)((uint)pcVar10 >> 8); piVar40 = (int *)CONCAT31(uVar24,cVar7 + '('); *piVar40 = *piVar40 + -0x5e80fa00; *(char *)piVar40 = (char)*piVar40 + cVar7 + '('; pcVar10 = (char *)CONCAT31(uVar24,cVar7 + 'H'); puVar15 = (uint *)((int)puVar48 + 1); pbVar27 = pbVar11 + 1; *(byte *)puVar48 = *pbVar11; *pcVar10 = *pcVar10 + cVar7 + 'H'; pcVar10[0x4a] = pcVar10[0x4a] + (char)piVar33; puVar18 = (uint *)(pcVar10 + -0x93dd05); bVar4 = (byte)puVar18; bVar46 = SCARRY1((byte)*puVar18,bVar4); *(byte *)puVar18 = (byte)*puVar18 + bVar4; bVar45 = (char)(byte)*puVar18 < '\0'; bVar43 = (byte)*puVar18 == 0; if (!bVar43 && bVar46 == bVar45) break; *(byte *)puVar18 = (byte)*puVar18 + bVar4; piVar29 = (int *)((int)piVar23 + -2); iVar20 = *piVar33; iVar21 = *piVar33; *piVar33 = (int)(pbVar19 + iVar21 + (0xe5 < bVar4)); uStack_7c = (uint *)CONCAT22(uStack_7c._2_2_,in_SS); if (*piVar33 == 0 || (SCARRY4(iVar20,(int)pbVar19) != SCARRY4((int)(pbVar19 + iVar21),(uint)(0xe5 < bVar4))) != *piVar33 < 0) { *(byte *)puVar12 = (byte)*puVar12 + (char)puVar12; pbVar31 = (byte *)CONCAT31((int3)((uint)puVar12 >> 8),(char)puVar12 + ' '); pbVar28 = pbVar11 + 2; *(byte *)puVar15 = *pbVar27; puVar15 = (uint *)((int)puVar48 + 2); goto code_r0x100109be; } } } } while( true ); } } *(byte *)puVar15 = (byte)*puVar15 + (char)puVar15; *(byte *)unaff_EBX = (byte)*unaff_EBX + (char)pbVar27; bVar44 = false; pcVar10 = (char *)((uint)puVar15 | 0x12); pbVar11 = pbVar28; code_r0x1001085b: bVar5 = (byte)pcVar10 + 0x1f; bVar43 = 0xe0 < (byte)pcVar10 || CARRY1(bVar5,bVar44); bVar5 = bVar5 + bVar44; bVar9 = bVar5 + 0x58; uVar16 = CONCAT31((int3)((uint)pcVar10 >> 8),bVar9 + bVar43); uVar47 = (uint)(0xa7 < bVar5 || CARRY1(bVar9,bVar43)); uVar22 = uVar16 + 0xe0ebedac; bVar44 = uVar16 < 0x1f141254 || uVar22 < uVar47; iVar20 = uVar22 - uVar47; pbVar28 = (byte *)(iVar20 + 0x16); bVar9 = *pbVar28; bVar5 = *pbVar28; *pbVar28 = bVar5 + bVar4 + bVar44; return CONCAT44(CONCAT31((int3)((uint)pbVar27 >> 8), (char)pbVar27 + pbVar11[(int)pbVar27] + (CARRY1(bVar9,bVar4) || CARRY1(bVar5 + bVar4,bVar44)) + *pbVar19),iVar20) | 0x6f; while( true ) { *(char *)piVar23 = (char)*piVar23 + cVar3; cVar7 = cVar3 + '\x1f'; *(byte *)(puVar12 + -0x20) = (byte)puVar12[-0x20] + 1; piVar29 = (int *)(iVar21 + -2); *(char *)CONCAT31(uVar24,cVar7) = *(char *)CONCAT31(uVar24,cVar7) + cVar7; cVar8 = cVar3 + -5; pbVar31 = (byte *)CONCAT31(uVar24,cVar8); puVar15 = puVar12; if (cVar8 == '\0' || cVar7 < '$') break; code_r0x100109be: puVar12 = uStack_7c; bVar5 = (byte)pbVar31; *pbVar31 = *pbVar31 + bVar5; pbVar31[0x4a] = pbVar31[0x4a] + (char)piVar33; *piVar33 = *piVar33 - (int)pbVar19; bVar4 = *pbVar31; *pbVar31 = *pbVar31 + bVar5; *piVar33 = (int)((int)piVar29 + (uint)CARRY1(bVar4,bVar5) + *piVar33); iVar21 = CONCAT31((int3)((uint)piVar29 >> 8),(byte)piVar29 | *pbVar19); bVar43 = CARRY4((uint)piVar33,*puVar15); piVar33 = (int *)((int)piVar33 + *puVar15); piVar29 = (int *)(iVar21 + -1); iVar20 = (CONCAT31((int3)((uint)pbVar31 >> 8),bVar5 + 0x58 + bVar43) ^ 0xd4a0305) - *piVar29; pbVar19 = (byte *)(CONCAT22((short)((uint)pbVar19 >> 0x10), CONCAT11((byte)((uint)pbVar19 >> 8) | bRam1e6fde02,(char)pbVar19)) + iRam00004a7e); iVar20 = CONCAT31((int3)((uint)iVar20 >> 8),(char)iVar20 + '\x17') + -0x4a7e33; *(byte *)((int)uStack_7c + (int)piVar29) = *(byte *)((int)uStack_7c + (int)piVar29) + (char)iVar20; puStack_80 = (uint *)pbVar19; piStack_84 = piVar29; piStack_88 = piVar33; puStack_8c = (undefined1 *)&uStack_78; uStack_90 = piVar39; *(char *)piVar29 = *(char *)piVar29; puVar18 = puRam28040000; cVar7 = (char)puRam28040000; *pbVar28 = *pbVar28 + cVar7; *pbVar28 = *pbVar28 + 1; *pbVar28 = *pbVar28 + cVar7; *(char *)piVar29 = *(char *)piVar29 - (char)((uint)piVar29 >> 8); uVar24 = (undefined3)((uint)puVar18 >> 8); cVar3 = cVar7 + (byte)*puVar18; piVar23 = (int *)CONCAT31(uVar24,cVar3); uStack_7c._2_2_ = (undefined2)((uint)iVar20 >> 0x10); uStack_7c = (uint *)CONCAT22(uStack_7c._2_2_,in_ES); bVar4 = (byte)piVar33; piVar40 = piVar39; pbStack_94 = pbVar28; if (cVar3 == '\0' || SCARRY1(cVar7,(byte)*puVar18) != cVar3 < '\0') goto code_r0x10010a59; } *pbVar31 = *pbVar31 + cVar8; pcVar10 = (char *)(CONCAT31(uVar24,cVar3 + 'y') | 0x7f040003); bVar44 = (in_ES & 0x400) != 0; in_AF = (in_ES & 0x10) != 0; cVar7 = *pcVar10; *(char *)(piVar33 + -0x87d8000) = (char)piVar33[-0x87d8000] - (char)((uint)puVar18 >> 8); puVar15 = (uint *)(CONCAT31((int3)((uint)pcVar10 >> 8),(char)pcVar10 + cVar7 + '\t') | 0xbe06fe); *pbVar28 = *pbVar28 + (char)puVar15; piVar40 = (int *)((int)piVar39 + *puVar15); bVar9 = ((char)puVar15 - *(char *)piVar29) - CARRY4((uint)piVar39,*puVar15); bVar5 = *pbVar28; *pbVar28 = *pbVar28 + bVar9; piStack_98._0_2_ = (ushort)puVar12; *(byte *)(iVar21 + 0x33) = *(byte *)(iVar21 + 0x33) | (byte)pbVar19; pbVar19 = pbVar19 + *(int *)(iVar21 + 0x26); if ((POPCOUNT((uint)pbVar19 & 0xff) & 1U) != 0) { *pbVar28 = *pbVar28 + (bVar9 + 0x58 + CARRY1(bVar5,bVar9) | 0x1e); } bRam101f0354 = bRam101f0354 | bVar4; pbStack_94 = (byte *)&uStack_90; uStack_90 = (int *)CONCAT22((short)((uint)piVar39 >> 0x10),in_SS); piVar23 = piVar39; in_DS = (ushort)piStack_98; code_r0x10010a59: pcVar30 = (char *)((int)piVar29 + *(int *)pbVar28); piStack_98._0_2_ = (ushort)piVar33; uVar42 = (ushort)piStack_98; uVar24 = (undefined3)((uint)piVar23 >> 8); cVar7 = (char)piVar23 - (char)*piVar23; piVar39 = (int *)CONCAT31(uVar24,cVar7); pbVar19[0xc] = pbVar19[0xc] + cVar7; *piVar39 = *piVar39 + (int)piVar39; pcVar10 = (char *)CONCAT31(uVar24,cVar7); *pcVar10 = *pcVar10 + cVar7; uVar2 = pbStack_94._0_2_; *pcVar10 = *pcVar10 + cVar7; *pbVar19 = *pbVar19 + bVar4; *pcVar10 = *pcVar10 + cVar7; *pcVar10 = *pcVar10 + (char)((uint)pcVar30 >> 8); *pcVar10 = *pcVar10 + cVar7; cVar3 = (char)pbVar19; *pbVar28 = *pbVar28 + cVar3; *pcVar10 = *pcVar10 + cVar7; bVar26 = (byte)pcVar30; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pbVar19 = *pbVar19 + cVar7; pcVar10 = (char *)CONCAT31(uVar24,cVar7); *pcVar10 = *pcVar10 + cVar7; pbVar27 = (byte *)(pcVar10 + *(int *)pbVar19); bVar5 = *pbVar27; bVar9 = (byte)pbVar27; *pbVar27 = *pbVar27 + bVar9; *(uint *)pbVar27 = (*(int *)pbVar27 - (int)pbVar27) - (uint)CARRY1(bVar5,bVar9); bVar5 = *pbVar27; *pbVar27 = *pbVar27 + bVar9; uVar24 = (undefined3)((uint)pbVar27 >> 8); bVar9 = (bVar9 - 1) - CARRY1(bVar5,bVar9); pcVar10 = (char *)CONCAT31(uVar24,bVar9); *pcVar10 = *pcVar10 + bVar9; pbStack_94 = (byte *)CONCAT22(pbStack_94._2_2_,in_CS); *pcVar10 = *pcVar10 + bVar9; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pbVar19 = *pbVar19 + bVar9; pbVar31 = (byte *)CONCAT31(uVar24,bVar9); *pbVar31 = *pbVar31 + bVar9; bVar5 = *pbVar31; *pbVar31 = *pbVar31 + bVar9; *(uint *)pbVar31 = (*(int *)pbVar31 - (int)pbVar31) - (uint)CARRY1(bVar5,bVar9); *pbVar31 = *pbVar31 + bVar9; if ((POPCOUNT(*pbVar31) & 1U) == 0) { *pbVar31 = *pbVar31 + bVar9; piStack_98 = (int *)((uint)piVar33 & 0xffff0000); } else { *pbVar28 = *pbVar28 + cVar3; piStack_98 = piVar33; } *pbVar31 = *pbVar31 + bVar9; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pbVar19 = *pbVar19 + bVar9; pcVar10 = (char *)CONCAT31(uVar24,bVar9); *pcVar10 = *pcVar10 + bVar9; pbVar28 = pbVar11 + 1; cVar7 = bVar9 + *pcVar10; pcVar10 = (char *)CONCAT31(uVar24,cVar7); *pbVar19 = *pbVar19 + bVar4; *pcVar10 = *pcVar10 + cVar7; *(byte *)((int)puVar12 + 2) = *(byte *)((int)puVar12 + 2) + (char)((uint)pbVar27 >> 8); *pcVar10 = *pcVar10 + cVar7; piStack_98 = (int *)CONCAT22(piStack_98._2_2_,in_CS); *pcVar10 = *pcVar10 + cVar7; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pbVar19 = *pbVar19 + cVar7; *(char *)CONCAT31(uVar24,cVar7) = *(char *)CONCAT31(uVar24,cVar7) + cVar7; cVar3 = cVar3 + bVar26; pcVar25 = (char *)CONCAT31((int3)((uint)pbVar19 >> 8),cVar3); bVar5 = cRam19000002 + 4; cRam19000002 = cRam19000002 + '\x02'; *pbVar28 = *pbVar28 + cVar3; *(char *)CONCAT31(0x190000,bVar5) = *(char *)CONCAT31(0x190000,bVar5) + bVar5; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pcVar25 = *pcVar25 + bVar5; pbVar27 = (byte *)CONCAT31(0x190000,bVar5); *pbVar27 = *pbVar27 + bVar5; bVar4 = *pbVar27; *pbVar27 = *pbVar27 + bVar5; *(uint *)pbVar27 = (*(int *)pbVar27 - (int)pbVar27) - (uint)CARRY1(bVar4,bVar5); *pbVar27 = *pbVar27 + bVar5; *piVar33 = *piVar33; *pbVar28 = *pbVar28 + cVar3; *pbVar27 = *pbVar27 + bVar5; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pcVar25 = *pcVar25 + bVar5; pcVar10 = (char *)CONCAT31(0x190000,bVar5); *pcVar10 = *pcVar10 + bVar5; *(char *)((int)pcVar10 * 2) = *(char *)((int)pcVar10 * 2) - bVar5; *pcVar30 = *pcVar30; *pcVar10 = *pcVar10 + bVar5; cVar7 = *(char *)((int)pcVar10 * 2); puVar15 = (uint *)CONCAT31(0x190000,cVar7); *pbVar28 = *pbVar28 + cVar3; *(char *)puVar15 = (char)*puVar15 + cVar7; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pcVar25 = *pcVar25 + cVar7; *(char *)puVar15 = (char)*puVar15 + cVar7; *(char *)puVar15 = (char)*puVar15 + cVar7; out(3,cVar7); *(char *)puVar15 = (char)*puVar15 + cVar7; *(char *)puVar15 = (char)*puVar15 + cVar7; *(char *)((int)&piStack_98 + (int)puVar15) = *(char *)((int)&piStack_98 + (int)puVar15) + bVar26; *(char *)puVar15 = (char)*puVar15 + cVar7; bVar4 = (byte)puVar12; *(byte *)puVar12 = (byte)*puVar12 + bVar4; *pcVar30 = *pcVar30 + bVar4; *pcVar25 = *pcVar25 + bVar4; uVar47 = *puVar12; *(byte *)puVar12 = (byte)*puVar12 + bVar4; *(undefined1 *)((int)puVar12 * 2) = *(undefined1 *)((int)puVar12 * 2); *puVar12 = (*puVar12 - (int)puVar12) - (uint)CARRY1((byte)uVar47,bVar4); *(byte *)puVar12 = (byte)*puVar12 + bVar4; *pbVar28 = *pbVar28 + cVar3; *(byte *)puVar12 = (byte)*puVar12 + bVar4; *(byte *)piVar33 = (char)*piVar33 + bVar26; *pcVar25 = *pcVar25 + bVar4; *(byte *)puVar12 = (byte)*puVar12 + bVar4; pbVar19 = (byte *)CONCAT31((int3)((uint)puVar12 >> 8),5); bVar4 = *pbVar19; *pbVar19 = *pbVar19 + 5; *(uint *)pbVar19 = (*(int *)pbVar19 - (int)pbVar19) - (uint)(0xfa < bVar4); *pbVar19 = *pbVar19 + 5; iVar20 = *piVar40; pbVar27 = pbVar19 + 0xe0000; cVar7 = (char)pbVar27; *pbVar27 = *pbVar27 + cVar7; *piVar40 = (int)piVar33; *pbVar27 = *pbVar27 + cVar7; *(int *)((int)pbVar27 * 2) = (int)(pbVar27 + *(int *)((int)pbVar27 * 2)); *pbVar27 = *pbVar27 + cVar7; *pbVar27 = *pbVar27 + cVar7; *pbVar27 = *pbVar27 + cVar7; out((short)pcVar30,cVar7); pbVar19 = pbVar19 + 0x5fc0000; bVar4 = (byte)pbVar19; *pbVar19 = *pbVar19 + bVar4; pcVar10 = (char *)((uint)pbVar19 | 0x53000000); *pcVar10 = *pcVar10 + bVar4; *piVar33 = (int)(pcVar25 + *piVar33); bRam0001e600 = bRam0001e600 ^ bVar4; pbVar27 = (byte *)(iVar20 + 0x14110001); bVar4 = *pbVar27; *pbVar27 = *pbVar27 + bVar26; pcVar25 = pcVar25 + (uint)CARRY1(bVar4,bVar26) + iRam20051314; pbVar27 = (byte *)(pcVar10 + 0xa800040); uVar47 = (uint)(CARRY1(bVar26,*pbVar27) || CARRY1(bVar26 + *pbVar27,(char *)0xf57fffbf < pcVar10)) ; puVar18 = (uint *)(pcVar25 + *puVar15 + uVar47); pcVar10 = (char *)CONCAT31((int3)((uint)pcVar30 >> 8), bVar26 + *pbVar27 + ((char *)0xf57fffbf < pcVar10) + *pbVar27 + (CARRY4((uint)pcVar25,*puVar15) || CARRY4((uint)(pcVar25 + *puVar15),uVar47))); uVar47 = iVar20 + *(int *)pbVar27; pbVar19 = (byte *)0x13060000; piVar39 = (int *)((uint)pbVar27 | 2); *(int *)((int)piVar39 + uVar47) = (int)(*(int *)((int)piVar39 + uVar47) + (int)puVar18); iRam13060000 = iRam13060000 - (int)piVar39; cVar7 = (char)piVar39; *pbVar28 = *pbVar28 + cVar7; *piVar39 = *piVar39 + (int)piVar39; *pcVar10 = *pcVar10 + cVar7; if ((POPCOUNT(*pcVar10) & 1U) == 0) { bVar4 = cVar7 + 0x39; pcVar30 = (char *)CONCAT31((int3)((uint)pbVar27 >> 8),bVar4); *(byte *)puVar18 = (byte)*puVar18 ^ bVar4; *pcVar30 = *pcVar30 + bVar4; cRam910c0000 = cRam910c0000 - bVar4; cVar7 = (char)((uint)pcVar30 | 0x16040003); *pbVar28 = *pbVar28 + cVar7; pbVar19 = (byte *)CONCAT22(0x1306,(ushort)bRam13060025 << 8); piVar39 = (int *)CONCAT31((int3)(((uint)pcVar30 | 0x16040003) >> 8),cVar7 + -0x1e); } else { pcVar10[0x13060000] = pcVar10[0x13060000] + cVar7; } pcVar10 = (char *)((uint)pcVar10 | *puVar18); uVar22 = (uint)puVar18 | *(uint *)(pcVar10 + 0x2d); puVar15[0x1b] = puVar15[0x1b] | (uint)puVar15; uVar41 = (undefined2)(uVar22 >> 0x10); cVar7 = (char)uVar22; pbVar27 = (byte *)(CONCAT31((int3)((uint)piVar39 >> 8),(char)piVar39 + (char)*piVar39 + '\x13') + 0x134a0b11); bVar4 = (byte)(uVar22 >> 8) | *pbVar19 | *pbVar27; puVar18 = (uint *)CONCAT22(uVar41,CONCAT11(bVar4,cVar7)); *(int *)pbVar27 = *(int *)pbVar27; iVar20 = *(int *)pbVar27; *(undefined2 *)(piVar40 + -1) = uVar42; if (iVar20 < 1) { *pcVar10 = *pcVar10 + cVar7; pbVar19 = (byte *)((uint)CONCAT21((short)((uint)pbVar19 >> 0x10), (char)((uint)pbVar19 >> 8) + pbVar19[0x1e]) << 8); code_r0x10010bf0: pbRam11040002 = (byte *)(CONCAT31((int3)((uint)pbVar27 >> 8),(char)pbVar27 + '\x12') | 0x2b56f); *(undefined2 *)(piVar40 + -2) = uVar42; *(int *)pbRam11040002 = *(int *)pbRam11040002; iVar20 = *(int *)pbRam11040002; piVar35 = piVar40 + -3; piVar39 = piVar40 + -3; *(undefined2 *)(piVar40 + -3) = uVar42; if (0 < iVar20) goto code_r0x10010c06; pcVar30 = (char *)((uint)pbRam11040002 & 0x13040004); } else { bVar4 = bVar4 | *pbRam11040002; puVar18 = (uint *)CONCAT22(uVar41,CONCAT11(bVar4,cVar7)); pbRam020a0000 = pbRam11040002; pbVar27 = pbRam11040002; if ((POPCOUNT(bVar4) & 1U) == 0) goto code_r0x10010bf0; piVar35 = piVar40 + -2; *(undefined2 *)(piVar40 + -2) = uVar42; code_r0x10010c06: iVar20 = *(int *)pbRam11040002; cVar7 = (char)(pbRam11040002 + iVar20); cVar3 = (char)((uint)pbVar19 >> 8); *pbVar19 = *pbVar19 - cVar3; *pbVar28 = *pbVar28 + cVar7 + '\x16'; pbVar19 = (byte *)((uint)CONCAT21((short)((uint)pbVar19 >> 0x10),cVar3 + pbVar19[0x25]) << 8); pcVar30 = (char *)CONCAT31((int3)((uint)(pbRam11040002 + iVar20) >> 8),cVar7 + -8); piVar39 = piVar35; } *puVar18 = *puVar18 | (uint)pcVar10; *(uint *)(pcVar10 + 0x2d) = *(uint *)(pcVar10 + 0x2d) | (uint)puVar18; puVar15[0x1b] = puVar15[0x1b] | (uint)puVar15; cVar7 = *pcVar30; bVar5 = (byte)((uint)puVar18 >> 8); *pbVar19 = *pbVar19 | bVar5; pbVar27 = (byte *)(CONCAT31((int3)((uint)pcVar30 >> 8),(char)pcVar30 + cVar7 + '\x13') + 0x134a0911); *pbVar27 = *pbVar27 | bVar5; *(undefined4 *)pbVar27 = *(undefined4 *)pbVar27; iVar20 = *(int *)pbVar27; puVar36 = (undefined2 *)((int)piVar39 + -4); *(undefined2 *)((int)piVar39 + -4) = uVar42; bVar4 = (byte)puVar18; if (iVar20 < 1) { *pcVar10 = *pcVar10 + bVar4; pbVar19[0x7e060000] = pbVar19[0x7e060000] - (char)pbVar27; uVar22 = (uint)pbVar27 | 0x16040003; code_r0x10010c4d: cVar3 = (char)((uint)pbVar19 >> 8); *pbVar19 = *pbVar19 - cVar3; cVar7 = (char)uVar22; *pbVar28 = *pbVar28 + cVar7; pbVar19 = (byte *)((uint)CONCAT21((short)((uint)pbVar19 >> 0x10),cVar3 + pbVar19[0x25]) << 8); bVar43 = 0xec < (byte)(cVar7 - 0x37U); uVar22 = CONCAT31((int3)(uVar22 >> 8),cVar7 + -0x24); } else { pbVar27 = (byte *)CONCAT31((int3)((uint)(pbVar27 + *(int *)pbVar27) >> 8), (char)(pbVar27 + *(int *)pbVar27) + '\x7f'); *pbVar27 = *pbVar27 | bVar5; pbRam280a0000 = pbVar27; *(undefined4 *)pbVar27 = *(undefined4 *)pbVar27; iVar20 = *(int *)pbVar27; puVar36 = (undefined2 *)((int)piVar39 + -8); *(undefined2 *)((int)piVar39 + -8) = uVar42; if (0 < iVar20) { uVar22 = CONCAT31((int3)((uint)(pbVar27 + *(int *)pbVar27) >> 8), (char)(pbVar27 + *(int *)pbVar27) + '\x16'); puVar36 = (undefined2 *)((int)piVar39 + -8); goto code_r0x10010c4d; } bVar43 = false; uVar22 = (uint)pbVar27 & 0x13040004; } uVar41 = *puVar36; *puVar15 = *puVar15 + uVar22 + (uint)bVar43; pbVar31 = (byte *)(pcVar10 + -1); pbVar19[(int)pbVar31] = pbVar19[(int)pbVar31] + (char)(uVar22 + 0xfd9380f7); *puVar36 = uVar41; uVar22 = (uVar22 + 0xfd9380f7) - iRam134a0711; puVar36[-2] = uVar41; pbVar19[0x7e060000] = pbVar19[0x7e060000] - (char)uVar22; uVar22 = uVar22 | 0x7f040003; pbRam11040002 = (byte *)uVar22; puVar36[-4] = uVar41; bVar5 = pbVar19[0x23]; uVar42 = (undefined2)((uint)pbVar19 >> 0x10); bVar9 = (char)uVar22 + 0x28; puVar12 = (uint *)CONCAT31((int3)(uVar22 >> 8),bVar9); *puVar12 = *puVar12 << (bVar4 & 0x1f) | *puVar12 >> 0x20 - (bVar4 & 0x1f); *pbVar31 = *pbVar31 + bVar4; puVar36[-6] = uVar2; bVar4 = (char)((uint)pbVar19 >> 8) + bVar5 | (byte)*puVar12; uVar17 = (uint)CONCAT21(uVar42,bVar4); iVar20 = uVar17 * 0x100; uVar22 = *puVar12; *(byte *)puVar12 = (byte)*puVar12 + bVar9; uVar22 = (uint)CARRY1((byte)uVar22,bVar9); bVar43 = CARRY4((uint)pcRam00010a28,(uint)puVar18); pcVar10 = (char *)((int)pcRam00010a28 + (int)puVar18); pcRam00010a28 = pcVar10 + uVar22; puVar36[-8] = uVar41; uVar16 = (uint)(bVar43 || CARRY4((uint)pcVar10,uVar22)); uVar22 = *(uint *)(pbVar31 + (int)puVar12); pbVar27 = (byte *)((int)puVar12 + *(uint *)(pbVar31 + (int)puVar12)); pbVar19 = pbVar27 + uVar16; if ((POPCOUNT((uint)pbVar19 & 0xff) & 1U) == 0) { piVar39 = *(int **)(puVar36 + -8); *(int *)((int)piVar39 + uVar47) = (int)piVar39 + (uint)(0xe5 < (byte)pbVar19) + *(int *)((int)piVar39 + uVar47); *piVar39 = *piVar39 + (int)piVar39; puVar37 = puVar36 + -8; puVar36[-8] = uVar41; bVar5 = (byte)pbVar31; bVar43 = CARRY1(bVar5,*pbVar28); pbVar31 = (byte *)CONCAT31((int3)((uint)pbVar31 >> 8),bVar5 + *pbVar28); puVar38 = puVar36 + -8; if (SCARRY1(bVar5,*pbVar28) == (char)(bVar5 + *pbVar28) < '\0') goto code_r0x10010cd2; uVar24 = (undefined3)((uint)piVar39 >> 8); bVar5 = (char)piVar39 + 2; if ((POPCOUNT(bVar5) & 1U) != 0) { bVar43 = 0x23 < bVar5; piVar39 = (int *)CONCAT31(uVar24,(char)piVar39 + -0x22); puVar38 = puVar36 + -8; goto code_r0x10010cd2; } } else { uVar24 = (undefined3)((uint)pbVar19 >> 8); puVar36[-10] = in_DS; bVar5 = (byte)pbVar19 + (CARRY4((uint)puVar12,uVar22) || CARRY4((uint)pbVar27,uVar16)) + 0x9d; puVar37 = puVar36 + -0xc; puVar36[-0xc] = uVar41; } bVar9 = bVar5 + 5; pbVar11 = pbVar11 + (uint)bVar44 * -8 + 5; out(*(undefined4 *)pbVar28,(short)pbVar31); *pbVar11 = *pbVar11 + bVar9; pbVar31 = (byte *)CONCAT31((int3)(CONCAT22((short)((uint)pbVar31 >> 0x10), CONCAT11(2,(char)pbVar31)) >> 8), (char)pbVar31 + *(char *)((int)puVar15 * 2 + 0x400041e)); *pbVar11 = *pbVar11 & bVar9; *(byte *)puVar18 = (char)*puVar18 + bVar9; *pbVar31 = *pbVar31 | 0xde; bVar43 = 0xe9 < bVar9; piVar39 = (int *)CONCAT31(uVar24,bVar5 + 0x1b); puVar38 = (ushort *)((int)puVar37 + 8); pbVar28 = pbVar11; code_r0x10010cd2: uVar22 = *(uint *)(puVar38 + uVar17 * 0x400); uVar16 = (int)piVar39 + *(uint *)(puVar38 + uVar17 * 0x400); uVar17 = uVar16 + bVar43; puVar38[-2] = uVar2; puVar12 = (uint *)(iVar20 + uVar47); uVar22 = (uint)(CARRY4((uint)piVar39,uVar22) || CARRY4(uVar16,(uint)bVar43)); uVar16 = uVar17 + *puVar12; iVar21 = uVar16 + uVar22; bVar9 = (byte)iVar21; bVar5 = 9 < (bVar9 & 0xf) | in_AF; bVar9 = bVar9 + bVar5 * -6; bVar9 = bVar9 + (0x9f < bVar9 | (CARRY4(uVar17,*puVar12) || CARRY4(uVar16,uVar22)) | bVar5 * (bVar9 < 6)) * -0x60; bVar5 = (char)pbVar31 + *pbVar28; pbVar27 = (byte *)CONCAT31((int3)((uint)pbVar31 >> 8),bVar5); if (SCARRY1((char)pbVar31,*pbVar28) == (char)bVar5 < '\0') { bVar9 = bVar9 | *pbVar27; } pbVar11 = (byte *)((int)puVar18 + (uint)(0xe9 < bVar9) + *(int *)pbVar28); iVar34 = (uint)CONCAT21(uVar42,bVar4 + *(char *)(iVar20 + 0x1e)) * 0x100; bVar9 = bVar9 + 0x13; uVar42 = *puVar38; pbVar19 = pbVar28 + (uint)bVar44 * -8 + 4; out(*(undefined4 *)pbVar28,(short)pbVar27); pbVar27 = (byte *)CONCAT22((short)((uint)pbVar31 >> 0x10),CONCAT11(2,bVar5)); *pbVar19 = *pbVar19 + bVar9; bRam0a800040 = bRam0a800040 & bVar9; iVar20 = CONCAT31((int3)((uint)iVar21 >> 8),bVar9) - *(int *)pbVar19; bVar4 = (byte)iVar20; *pbVar19 = *pbVar19 & bVar4; *pbVar11 = *pbVar11 + bVar4; *pbVar27 = *pbVar27 | 2; *puVar38 = in_DS; *(byte **)(puVar38 + -2) = pbVar11; puVar18 = (uint *)(CONCAT31((int3)((uint)iVar20 >> 8),bVar4 + 0x5b) + iRamda6f0511 + (uint)(0x21 < (byte)(bVar4 + 0x7d))); bVar9 = (byte)puVar18; *(byte *)puVar18 = (char)*puVar18 + bVar9; uVar24 = (undefined3)((uint)pbVar27 >> 8); *(uint **)(puVar38 + -4) = puVar18; *(byte **)(puVar38 + -6) = pbVar11; *(uint *)(puVar38 + -8) = CONCAT31(uVar24,bVar5 | bVar9); *(int *)(puVar38 + -10) = iVar34; *(ushort **)(puVar38 + -0xc) = puVar38 + -2; *(uint *)(puVar38 + -0xe) = uVar47; *(byte **)(puVar38 + -0x10) = pbVar19; *(uint **)(puVar38 + -0x12) = puVar15; *(byte *)puVar18 = (char)*puVar18 + bVar9; uVar22 = *puVar18; *puVar18 = *puVar18 + uVar47; pcVar10 = (char *)((int)puVar18 + CARRY4(uVar22,uVar47) + 0x280a0000); cVar7 = *(char *)(iVar34 + ((uint)pcVar10 & 0xff)); pcVar10 = (char *)CONCAT31((int3)((uint)pcVar10 >> 8),cVar7); *pcVar10 = *pcVar10 + cVar7; bVar4 = *pbVar19; piVar39 = (int *)((uint)pcVar10 ^ *puVar15); bRam2b800040 = bRam2b800040 & (byte)piVar39; *piVar39 = *piVar39 + iVar34; puVar32 = (undefined1 *)CONCAT31(uVar24,bVar5 | bVar9 | bVar4 | *pbVar11); iVar20 = (int)piVar39 + 0xc16f; bVar4 = pbVar11[iVar20]; cVar7 = (char)iVar20 + -8; pbVar27 = (byte *)CONCAT31((int3)((uint)iVar20 >> 8),cVar7); *puVar32 = *puVar32; *pbVar27 = *pbVar27 + cVar7; puVar18 = (uint *)CONCAT31((int3)((uint)pbVar11 >> 8),(byte)pbVar11 | bVar4 | *pbVar27); puVar32[iVar34] = puVar32[iVar34] + ((byte)*(undefined4 *)(puVar38 + -0x12) | 10); puVar15 = *(uint **)(puVar38 + -0x10); *puVar15 = *puVar15 | uVar47; *puVar15 = *puVar15 + (int)puVar15; puVar38[-0x10] = uVar42; puVar38[-0x12] = uVar2; pcVar10 = (char *)((uint)puVar15 | 0xde0d14dc); *pbVar19 = *pbVar19 + (char)pcVar10; uVar24 = (undefined3)((uint)pcVar10 >> 8); cVar7 = (char)pcVar10 - *pcVar10; pcVar10 = (char *)CONCAT31(uVar24,cVar7); *(char *)(puVar18 + 0x13) = (char)puVar18[0x13] + cVar7; *pcVar10 = *pcVar10 + cVar7; pcVar10 = (char *)CONCAT31(uVar24,cVar7); *pcVar10 = *pcVar10 + cVar7; pcVar10 = (char *)((uint)pcVar10 & *puVar18); cVar7 = (char)pcVar10; *pcVar10 = *pcVar10 + cVar7; *pcVar10 = *pcVar10 + cVar7; *(undefined1 *)((int)puVar18 + 1) = *(undefined1 *)((int)puVar18 + 1); *pcVar10 = *pcVar10 + cVar7; *pcVar10 = *pcVar10 + cVar7; *(int *)(puVar38 + -0x14) = iVar34; *pcVar10 = *pcVar10 + cVar7; *(int *)((int)pcVar10 * 2) = (int)(pcVar10 + *(int *)((int)pcVar10 * 2)); *pcVar10 = *pcVar10 + cVar7; pcVar1 = (code *)swi(3); uVar50 = (*pcVar1)(); return uVar50; } ``` ## Connect2 at 10010b78 Signature: `int __fastcall Connect2(uint nameSpace, undefined4 param_2)` ```c /* WARNING: Instruction at (ram,0x10010d01) overlaps instruction at (ram,0x10010d00) */ int __fastcall Connect2(uint nameSpace,undefined4 param_2) { uint uVar1; code *pcVar2; byte bVar3; byte bVar4; byte bVar5; char cVar6; undefined4 in_EAX; uint uVar7; byte *pbVar8; char *pcVar9; undefined3 uVar15; uint uVar10; int iVar11; int iVar12; uint *puVar13; int *piVar14; uint *puVar16; undefined2 uVar18; uint *puVar17; char *pcVar19; byte *pbVar20; undefined3 uVar22; undefined1 *puVar21; char cVar25; byte *pbVar23; int iVar24; int unaff_EBP; uint uVar26; byte *unaff_ESI; uint *unaff_EDI; undefined2 in_ES; undefined2 in_SS; undefined2 in_DS; char in_CF; bool bVar27; byte in_AF; byte *pbStack_24; int *apiStack_20 [2]; undefined2 uStack_18; undefined2 uStack_14; undefined2 uStack_10; /* .NET CLR Managed Code */ uVar7 = CONCAT31((int3)((uint)in_EAX >> 8),(char)in_EAX + '\x13' + in_CF) | 0x20051314; pbVar8 = (byte *)(uVar7 + 0xa800040); bVar3 = (byte)param_2 + *pbVar8; uVar26 = (uint)(CARRY1((byte)param_2,*pbVar8) || CARRY1(bVar3,0xf57fffbf < uVar7)); puVar16 = (uint *)(nameSpace + *unaff_EDI + uVar26); pcVar19 = (char *)CONCAT31((int3)((uint)param_2 >> 8), bVar3 + (0xf57fffbf < uVar7) + *pbVar8 + (CARRY4(nameSpace,*unaff_EDI) || CARRY4(nameSpace + *unaff_EDI,uVar26)) ); uVar26 = unaff_EBP + *(int *)pbVar8; pbVar23 = (byte *)0x13060000; piVar14 = (int *)((uint)pbVar8 | 2); *(int *)((int)piVar14 + uVar26) = (int)(*(int *)((int)piVar14 + uVar26) + (int)puVar16); iRam13060000 = iRam13060000 - (int)piVar14; cVar6 = (char)piVar14; *unaff_ESI = *unaff_ESI + cVar6; *piVar14 = *piVar14 + (int)piVar14; *pcVar19 = *pcVar19 + cVar6; if ((POPCOUNT(*pcVar19) & 1U) == 0) { bVar3 = cVar6 + 0x39; pcVar9 = (char *)CONCAT31((int3)((uint)pbVar8 >> 8),bVar3); *(byte *)puVar16 = (byte)*puVar16 ^ bVar3; *pcVar9 = *pcVar9 + bVar3; cRam910c0000 = cRam910c0000 - bVar3; cVar6 = (char)((uint)pcVar9 | 0x16040003); *unaff_ESI = *unaff_ESI + cVar6; pbVar23 = (byte *)CONCAT22(0x1306,(ushort)bRam13060025 << 8); piVar14 = (int *)CONCAT31((int3)(((uint)pcVar9 | 0x16040003) >> 8),cVar6 + -0x1e); } else { pcVar19[0x13060000] = pcVar19[0x13060000] + cVar6; } pcVar19 = (char *)((uint)pcVar19 | *puVar16); uVar7 = (uint)puVar16 | *(uint *)(pcVar19 + 0x2d); unaff_EDI[0x1b] = unaff_EDI[0x1b] | (uint)unaff_EDI; uVar18 = (undefined2)(uVar7 >> 0x10); cVar6 = (char)uVar7; pbVar8 = (byte *)(CONCAT31((int3)((uint)piVar14 >> 8),(char)piVar14 + (char)*piVar14 + '\x13') + 0x134a0b11); bVar3 = (byte)(uVar7 >> 8) | *pbVar23 | *pbVar8; puVar16 = (uint *)CONCAT22(uVar18,CONCAT11(bVar3,cVar6)); *(int *)pbVar8 = *(int *)pbVar8; if (*(int *)pbVar8 < 1) { *pcVar19 = *pcVar19 + cVar6; pbVar23 = (byte *)((uint)CONCAT21((short)((uint)pbVar23 >> 0x10), (char)((uint)pbVar23 >> 8) + pbVar23[0x1e]) << 8); code_r0x10010bf0: pbRam11040002 = (byte *)(CONCAT31((int3)((uint)pbVar8 >> 8),(char)pbVar8 + '\x12') | 0x2b56f); *(int *)pbRam11040002 = *(int *)pbRam11040002; if (0 < *(int *)pbRam11040002) goto code_r0x10010c06; pcVar9 = (char *)((uint)pbRam11040002 & 0x13040004); } else { bVar3 = bVar3 | *pbRam11040002; puVar16 = (uint *)CONCAT22(uVar18,CONCAT11(bVar3,cVar6)); pbRam020a0000 = pbRam11040002; pbVar8 = pbRam11040002; if ((POPCOUNT(bVar3) & 1U) == 0) goto code_r0x10010bf0; code_r0x10010c06: iVar12 = *(int *)pbRam11040002; cVar6 = (char)(pbRam11040002 + iVar12); cVar25 = (char)((uint)pbVar23 >> 8); *pbVar23 = *pbVar23 - cVar25; *unaff_ESI = *unaff_ESI + cVar6 + '\x16'; pbVar23 = (byte *)((uint)CONCAT21((short)((uint)pbVar23 >> 0x10),cVar25 + pbVar23[0x25]) << 8); pcVar9 = (char *)CONCAT31((int3)((uint)(pbRam11040002 + iVar12) >> 8),cVar6 + -8); } *puVar16 = *puVar16 | (uint)pcVar19; *(uint *)(pcVar19 + 0x2d) = *(uint *)(pcVar19 + 0x2d) | (uint)puVar16; unaff_EDI[0x1b] = unaff_EDI[0x1b] | (uint)unaff_EDI; cVar6 = *pcVar9; bVar5 = (byte)((uint)puVar16 >> 8); *pbVar23 = *pbVar23 | bVar5; pbVar8 = (byte *)(CONCAT31((int3)((uint)pcVar9 >> 8),(char)pcVar9 + cVar6 + '\x13') + 0x134a0911); *pbVar8 = *pbVar8 | bVar5; *(undefined4 *)pbVar8 = *(undefined4 *)pbVar8; bVar3 = (byte)puVar16; if (*(int *)pbVar8 < 1) { *pcVar19 = *pcVar19 + bVar3; pbVar23[0x7e060000] = pbVar23[0x7e060000] - (char)pbVar8; uVar7 = (uint)pbVar8 | 0x16040003; code_r0x10010c4d: cVar25 = (char)((uint)pbVar23 >> 8); *pbVar23 = *pbVar23 - cVar25; cVar6 = (char)uVar7; *unaff_ESI = *unaff_ESI + cVar6; pbVar23 = (byte *)((uint)CONCAT21((short)((uint)pbVar23 >> 0x10),cVar25 + pbVar23[0x25]) << 8); bVar27 = 0xec < (byte)(cVar6 - 0x37U); uVar7 = CONCAT31((int3)(uVar7 >> 8),cVar6 + -0x24); } else { pbVar8 = (byte *)CONCAT31((int3)((uint)(pbVar8 + *(int *)pbVar8) >> 8), (char)(pbVar8 + *(int *)pbVar8) + '\x7f'); *pbVar8 = *pbVar8 | bVar5; pbRam280a0000 = pbVar8; *(undefined4 *)pbVar8 = *(undefined4 *)pbVar8; uStack_10 = in_ES; if (0 < *(int *)pbVar8) { uVar7 = CONCAT31((int3)((uint)(pbVar8 + *(int *)pbVar8) >> 8), (char)(pbVar8 + *(int *)pbVar8) + '\x16'); goto code_r0x10010c4d; } bVar27 = false; uVar7 = (uint)pbVar8 & 0x13040004; } *unaff_EDI = *unaff_EDI + uVar7 + (uint)bVar27; pbVar20 = (byte *)(pcVar19 + -1); pbVar23[(int)pbVar20] = pbVar23[(int)pbVar20] + (char)(uVar7 + 0xfd9380f7); uVar7 = (uVar7 + 0xfd9380f7) - iRam134a0711; uStack_14 = uStack_10; pbVar23[0x7e060000] = pbVar23[0x7e060000] - (char)uVar7; pbRam11040002 = (byte *)(uVar7 | 0x7f040003); uStack_18 = uStack_10; bVar5 = pbVar23[0x23]; uVar18 = (undefined2)((uint)pbVar23 >> 0x10); bVar4 = (char)pbRam11040002 + 0x28; puVar13 = (uint *)CONCAT31((int3)((uint)pbRam11040002 >> 8),bVar4); *puVar13 = *puVar13 << (bVar3 & 0x1f) | *puVar13 >> 0x20 - (bVar3 & 0x1f); *pbVar20 = *pbVar20 + bVar3; bVar3 = (char)((uint)pbVar23 >> 8) + bVar5 | (byte)*puVar13; uVar1 = (uint)CONCAT21(uVar18,bVar3); iVar12 = uVar1 * 0x100; uVar7 = *puVar13; *(byte *)puVar13 = (byte)*puVar13 + bVar4; uVar7 = (uint)CARRY1((byte)uVar7,bVar4); bVar27 = CARRY4((uint)pcRam00010a28,(uint)puVar16); pcVar19 = (char *)((int)pcRam00010a28 + (int)puVar16); pcRam00010a28 = pcVar19 + uVar7; apiStack_20[0] = (int *)CONCAT22(apiStack_20[0]._2_2_,uStack_10); piVar14 = apiStack_20[0]; uVar7 = (uint)(bVar27 || CARRY4((uint)pcVar19,uVar7)); pbVar8 = (byte *)((int)puVar13 + *(uint *)(pbVar20 + (int)puVar13)); pbVar23 = pbVar8 + uVar7; if ((POPCOUNT((uint)pbVar23 & 0xff) & 1U) == 0) { *(int *)((int)apiStack_20[0] + uVar26) = (int)apiStack_20[0] + (uint)(0xe5 < (byte)pbVar23) + *(int *)((int)apiStack_20[0] + uVar26) ; *apiStack_20[0] = *apiStack_20[0] + (int)apiStack_20[0]; apiStack_20[0] = (int *)CONCAT22(apiStack_20[0]._2_2_,uStack_10); bVar5 = (byte)pbVar20; bVar27 = CARRY1(bVar5,*unaff_ESI); pbVar20 = (byte *)CONCAT31((int3)((uint)pbVar20 >> 8),bVar5 + *unaff_ESI); if (SCARRY1(bVar5,*unaff_ESI) == (char)(bVar5 + *unaff_ESI) < '\0') goto code_r0x10010cd2; uVar15 = (undefined3)((uint)piVar14 >> 8); bVar5 = (char)uStack_10 + 2; if ((POPCOUNT(bVar5) & 1U) != 0) { bVar27 = 0x23 < bVar5; piVar14 = (int *)CONCAT31(uVar15,(char)uStack_10 + -0x22); goto code_r0x10010cd2; } } else { uVar15 = (undefined3)((uint)pbVar23 >> 8); bVar5 = (byte)pbVar23 + (CARRY4((uint)puVar13,*(uint *)(pbVar20 + (int)puVar13)) || CARRY4((uint)pbVar8,uVar7)) + 0x9d; } bVar4 = bVar5 + 5; pbVar8 = unaff_ESI + 4; out(*(undefined4 *)unaff_ESI,(short)pbVar20); *pbVar8 = *pbVar8 + bVar4; pbVar20 = (byte *)CONCAT31((int3)(CONCAT22((short)((uint)pbVar20 >> 0x10), CONCAT11(2,(char)pbVar20)) >> 8), (char)pbVar20 + *(char *)((int)unaff_EDI * 2 + 0x400041e)); *pbVar8 = *pbVar8 & bVar4; *(byte *)puVar16 = (char)*puVar16 + bVar4; *pbVar20 = *pbVar20 | 0xde; bVar27 = 0xe9 < bVar4; piVar14 = (int *)CONCAT31(uVar15,bVar5 + 0x1b); unaff_ESI = pbVar8; code_r0x10010cd2: uVar7 = (int)piVar14 + (int)apiStack_20[uVar1 * 0x200]; uVar10 = uVar7 + bVar27; puVar13 = (uint *)(iVar12 + uVar26); uVar7 = (uint)(CARRY4((uint)piVar14,(uint)apiStack_20[uVar1 * 0x200]) || CARRY4(uVar7,(uint)bVar27)); uVar1 = uVar10 + *puVar13; iVar11 = uVar1 + uVar7; bVar4 = (byte)iVar11; bVar5 = 9 < (bVar4 & 0xf) | in_AF; bVar4 = bVar4 + bVar5 * -6; bVar4 = bVar4 + (0x9f < bVar4 | (CARRY4(uVar10,*puVar13) || CARRY4(uVar1,uVar7)) | bVar5 * (bVar4 < 6)) * -0x60; bVar5 = (char)pbVar20 + *unaff_ESI; pbVar8 = (byte *)CONCAT31((int3)((uint)pbVar20 >> 8),bVar5); if (SCARRY1((char)pbVar20,*unaff_ESI) == (char)bVar5 < '\0') { bVar4 = bVar4 | *pbVar8; } pbStack_24 = (byte *)((int)puVar16 + (uint)(0xe9 < bVar4) + *(int *)unaff_ESI); iVar24 = (uint)CONCAT21(uVar18,bVar3 + *(char *)(iVar12 + 0x1e)) * 0x100; bVar4 = bVar4 + 0x13; puVar16 = (uint *)(unaff_ESI + 4); out(*(undefined4 *)unaff_ESI,(short)pbVar8); pbVar8 = (byte *)CONCAT22((short)((uint)pbVar20 >> 0x10),CONCAT11(2,bVar5)); *(byte *)puVar16 = (byte)*puVar16 + bVar4; bRam0a800040 = bRam0a800040 & bVar4; iVar12 = CONCAT31((int3)((uint)iVar11 >> 8),bVar4) - *puVar16; bVar3 = (byte)iVar12; *(byte *)puVar16 = (byte)*puVar16 & bVar3; *pbStack_24 = *pbStack_24 + bVar3; *pbVar8 = *pbVar8 | 2; apiStack_20[0] = (int *)CONCAT22(apiStack_20[0]._2_2_,in_DS); puVar13 = (uint *)(CONCAT31((int3)((uint)iVar12 >> 8),bVar3 + 0x5b) + iRamda6f0511 + (uint)(0x21 < (byte)(bVar3 + 0x7d))); bVar4 = (byte)puVar13; *(byte *)puVar13 = (char)*puVar13 + bVar4; uVar22 = (undefined3)((uint)pbVar8 >> 8); *(byte *)puVar13 = (char)*puVar13 + bVar4; uVar7 = *puVar13; *puVar13 = *puVar13 + uVar26; pcVar19 = (char *)((int)puVar13 + CARRY4(uVar7,uVar26) + 0x280a0000); cVar6 = *(char *)(iVar24 + ((uint)pcVar19 & 0xff)); pcVar19 = (char *)CONCAT31((int3)((uint)pcVar19 >> 8),cVar6); *pcVar19 = *pcVar19 + cVar6; uVar7 = *puVar16; piVar14 = (int *)((uint)pcVar19 ^ *unaff_EDI); bRam2b800040 = bRam2b800040 & (byte)piVar14; *piVar14 = *piVar14 + iVar24; puVar21 = (undefined1 *)CONCAT31(uVar22,bVar5 | bVar4 | (byte)uVar7 | *pbStack_24); iVar12 = (int)piVar14 + 0xc16f; bVar3 = pbStack_24[iVar12]; cVar6 = (char)iVar12 + -8; pbVar8 = (byte *)CONCAT31((int3)((uint)iVar12 >> 8),cVar6); *puVar21 = *puVar21; *pbVar8 = *pbVar8 + cVar6; puVar17 = (uint *)CONCAT31((int3)((uint)pbStack_24 >> 8),(byte)pbStack_24 | bVar3 | *pbVar8); puVar21[iVar24] = puVar21[iVar24] + ((byte)unaff_EDI | 10); *puVar16 = *puVar16 | uVar26; *puVar16 = (uint)(*puVar16 + (int)puVar16); pcVar19 = (char *)((uint)puVar16 | 0xde0d14dc); *(byte *)puVar16 = (byte)*puVar16 + (char)pcVar19; uVar15 = (undefined3)((uint)pcVar19 >> 8); cVar6 = (char)pcVar19 - *pcVar19; pcVar19 = (char *)CONCAT31(uVar15,cVar6); *(char *)(puVar17 + 0x13) = (char)puVar17[0x13] + cVar6; *pcVar19 = *pcVar19 + cVar6; pcVar19 = (char *)CONCAT31(uVar15,cVar6); *pcVar19 = *pcVar19 + cVar6; pcVar19 = (char *)((uint)pcVar19 & *puVar17); cVar6 = (char)pcVar19; *pcVar19 = *pcVar19 + cVar6; *pcVar19 = *pcVar19 + cVar6; *(undefined1 *)((int)puVar17 + 1) = *(undefined1 *)((int)puVar17 + 1); *pcVar19 = *pcVar19 + cVar6; *pcVar19 = *pcVar19 + cVar6; *pcVar19 = *pcVar19 + cVar6; *(int *)((int)pcVar19 * 2) = (int)(pcVar19 + *(int *)((int)pcVar19 * 2)); *pcVar19 = *pcVar19 + cVar6; pcVar2 = (code *)swi(3); iVar12 = (*pcVar2)(in_SS,CONCAT22((short)((uint)puVar16 >> 0x10),uStack_10),uVar26,&pbStack_24, iVar24,CONCAT31(uVar22,bVar5 | bVar4),pbStack_24,puVar13); return iVar12; } ``` ## AutoConnectLoop at 100167c8 Signature: `void __fastcall AutoConnectLoop(int * param_1, int param_2, uint param_3)` ```c /* WARNING: Instruction at (ram,0x10016916) overlaps instruction at (ram,0x10016914) */ /* WARNING: Removing unreachable block (ram,0x100167d7) */ /* WARNING: Removing unreachable block (ram,0x100167dd) */ /* WARNING: Removing unreachable block (ram,0x100167f0) */ /* WARNING: Removing unreachable block (ram,0x100167fa) */ /* WARNING: Removing unreachable block (ram,0x10016807) */ void __fastcall AutoConnectLoop(int *param_1,int param_2,uint param_3) { uint uVar1; char cVar2; char cVar3; byte bVar4; uint uVar5; int *piVar6; int iVar7; uint *puVar8; undefined3 uVar13; byte *pbVar9; char *pcVar10; undefined2 uVar14; byte *pbVar11; uint uVar12; byte bVar15; byte *pbVar16; int *piVar17; int iVar18; undefined1 uVar19; byte bVar20; char cVar23; int unaff_EBX; uint *puVar21; uint *puVar22; uint unaff_EBP; byte *pbVar24; byte *unaff_ESI; byte *unaff_EDI; char in_ES; bool bVar25; bool bVar26; undefined2 in_FPUStatusWord; undefined1 auStack_4 [4]; /* .NET CLR Managed Code */ uVar14 = (undefined2)((uint)unaff_EBX >> 0x10); uVar19 = (undefined1)unaff_EBX; cVar23 = (char)((uint)unaff_EBX >> 8) + *(char *)(unaff_EBX + 0x17); pcVar10 = (char *)CONCAT22(uVar14,CONCAT11(cVar23,uVar19)); *pcVar10 = *pcVar10 - cVar23; *unaff_ESI = *unaff_ESI + 3; cVar2 = pcVar10[0x25]; iVar18 = CONCAT22(uVar14,CONCAT11(cVar23 + cVar2,uVar19)); *(int *)unaff_ESI = *(int *)unaff_ESI + (int)param_1; pcVar10 = (char *)(iVar18 + param_2 + -1); *pcVar10 = *pcVar10 + -0x24; pbVar16 = (byte *)(param_2 + -2); pbVar11 = (byte *)((int)param_1 + iRam00008328); if (pbVar11 == (byte *)0x0 || SCARRY4((int)param_1,iRam00008328) != (int)pbVar11 < 0) { *pbVar16 = *pbVar16 + (char)pbVar11; pbVar11 = (byte *)CONCAT22((short)((uint)pbVar11 >> 0x10), CONCAT11((char)((uint)pbVar11 >> 8) + (char)iRam1f9785ff, (char)pbVar11)); iVar7 = iRam1f9785ff + 0x1f9785ff; } else { uVar5 = CONCAT31((int3)((uint)auStack_4 >> 8),(char)auStack_4 + in_ES + '\x11') | 0xa328; piVar6 = (int *)CONCAT31((int3)(uVar5 >> 8),(byte)uVar5 | *pbVar16); *unaff_ESI = *unaff_ESI - (char)(uVar5 >> 8); iVar7 = (int)piVar6 + *piVar6; } iVar18 = CONCAT22(uVar14,CONCAT11(cVar23 + cVar2 + *(char *)(iVar18 + 0x21),uVar19)); cVar2 = (char)iVar7 + ','; puVar21 = (uint *)(iVar18 + -1); *(char *)(iVar18 + 0x7e05ffff) = *(char *)(iVar18 + 0x7e05ffff) - cVar2; puVar8 = (uint *)(CONCAT31((int3)((uint)iVar7 >> 8),cVar2) | 0x16040003); cVar23 = (char)((uint)puVar21 >> 8); *(char *)puVar21 = *(char *)puVar21 - cVar23; cVar2 = (char)puVar8; *unaff_ESI = *unaff_ESI + cVar2; if ((POPCOUNT(*(int *)(unaff_EDI + 0x2000000) - unaff_EBP & 0xff) & 1U) == 0) { uVar5 = CONCAT31((int3)((uint)puVar8 >> 8),cVar2 + '\x13') | 0x5b; *(byte *)((int)puVar21 + (int)pbVar16) = *(byte *)((int)puVar21 + (int)pbVar16) + (char)uVar5 + -9; puVar8 = (uint *)(uVar5 + 0x10dd8d08); pbVar24 = (byte *)(unaff_EBP | *puVar21 | *puVar8); *puVar8 = *puVar8; if ((int)*puVar8 < 1) { *pbVar16 = *pbVar16 + (byte)pbVar11; goto code_r0x1001688d; } unaff_EBP = CONCAT31((int3)((int)puVar8 + *puVar8 >> 8), (char)(char *)((int)puVar8 + *puVar8) + '\x7f'); puVar8 = (uint *)CONCAT31((int3)((uint)pbVar24 >> 8),(char)pbVar24 + *pbVar24 + '\x11'); } else { pbVar11[(int)pbVar16] = pbVar11[(int)pbVar16] + cVar2; } pbVar24 = (byte *)(unaff_EBP | *puVar8); puRam380a0000 = puVar8; code_r0x1001688d: *(char *)puVar8 = (char)*puVar8 + (char)puVar8; *(char *)(iVar18 + 0x7e05ffff) = *(char *)(iVar18 + 0x7e05ffff) - (char)puVar8; *(char *)puVar21 = *(char *)puVar21 - cVar23; cVar3 = (char)((uint)puVar8 | 0x16040003); *unaff_ESI = *unaff_ESI + cVar3; uVar13 = (undefined3)(((uint)puVar8 | 0x16040003) >> 8); uVar14 = (undefined2)((uint)puVar21 >> 0x10); cVar23 = cVar23 + *(char *)(iVar18 + 0x24); puVar22 = (uint *)CONCAT22(uVar14,CONCAT11(cVar23,(char)puVar21)); cVar3 = cVar3 + -0x1e; piVar17 = (int *)CONCAT31((int3)((uint)pbVar16 >> 8),(byte)pbVar16 | *pbVar11); bVar15 = (byte)pbVar11 | *(byte *)((int)piVar17 + 0x2d); piVar6 = (int *)CONCAT31((int3)((uint)pbVar11 >> 8),bVar15); *(uint *)(unaff_EDI + 0x6c) = *(uint *)(unaff_EDI + 0x6c) | (uint)unaff_EDI; cVar2 = *(char *)CONCAT31(uVar13,cVar3); *puVar22 = *puVar22 | (uint)pbVar24; puVar8 = (uint *)(CONCAT31(uVar13,cVar3 + cVar2 + '\x13') + 0x134a0a11); *puVar8 = *puVar8 | (uint)pbVar24; *puVar8 = *puVar8; if ((int)*puVar8 < 1) { *(byte *)piVar17 = (char)*piVar17 + bVar15; puVar22 = (uint *)CONCAT22(uVar14,CONCAT11(cVar23 + (char)puVar22[7],(char)puVar21)); } else { pbVar9 = (byte *)CONCAT31((int3)((int)puVar8 + *puVar8 >> 8), (char)((int)puVar8 + *puVar8) + '\x7f'); puRam020a0000 = (uint *)CONCAT31((int3)((uint)unaff_ESI >> 8),(char)unaff_ESI + *unaff_ESI + '\x11'); *puRam020a0000 = *puRam020a0000 | (uint)pbVar24; puVar8 = puRam020a0000; unaff_ESI = pbVar9; if ((POPCOUNT(*puRam020a0000 & 0xff) & 1U) != 0) { puVar8 = (uint *)((int)puRam020a0000 + *puRam020a0000); } } pcVar10 = (char *)(CONCAT31((int3)((uint)puVar8 >> 8),(char)puVar8 + '\x1f') ^ 0xd); uVar14 = (undefined2)((uint)puVar8 >> 0x10); cVar2 = (char)pcVar10; cVar23 = (char)((uint)puVar8 >> 8) + *pcVar10; pcVar10 = (char *)CONCAT22(uVar14,CONCAT11(cVar23,cVar2)); *unaff_EDI = *unaff_EDI << 1 | (char)*unaff_EDI < '\0'; *pcVar10 = *pcVar10 + cVar2; *(char *)((int)puVar22 + (int)pcVar10) = *(char *)((int)puVar22 + (int)pcVar10) - cVar23; *unaff_ESI = *unaff_ESI + cVar2; iVar18 = *(int *)unaff_EDI; pcVar10 = (char *)CONCAT22(uVar14,CONCAT11(cVar23 + *pcVar10,cVar2)); *pbVar24 = *pbVar24 ^ (byte)((uint)pbVar16 >> 8); cVar23 = (char)((uint)pbVar11 >> 8); *pcVar10 = *pcVar10 + cVar23; pbVar11 = (byte *)(CONCAT31((int3)((uint)pcVar10 >> 8),cVar2) & 0xffffff03); *unaff_ESI = *unaff_ESI + (char)pbVar11; iVar7 = (int)piVar17 - *piVar17; bVar15 = (byte)iVar7; uVar13 = (undefined3)((uint)iVar7 >> 8); cVar2 = bVar15 + *unaff_ESI; puVar8 = (uint *)CONCAT31(uVar13,cVar2); if (SCARRY1(bVar15,*unaff_ESI) == cVar2 < '\0') { puVar8 = (uint *)CONCAT31(uVar13,cVar2 + (char)*puVar8 + CARRY1(bVar15,*unaff_ESI)); } else { pbVar11 = (byte *)CONCAT31((int3)((uint)pbVar11 >> 8),(char)pbVar11 + '\x02'); *pbVar11 = *pbVar11 & (byte)((uint)iVar7 >> 8); } *pbVar11 = *pbVar11 + cVar23; bVar15 = *unaff_ESI; bVar4 = (byte)((uint)pbVar11 & 0xffffff03); *unaff_ESI = *unaff_ESI + bVar4; *(undefined2 *)(((int)puVar22 - iVar18) + 0x13fffffe) = in_FPUStatusWord; bVar25 = CARRY4(*puVar8,(uint)puVar8) || CARRY4(*puVar8 + (int)puVar8,(uint)CARRY1(bVar15,bVar4)); *puVar8 = *puVar8 + (int)puVar8 + (uint)CARRY1(bVar15,bVar4); bVar20 = (byte)((int)puVar22 - iVar18); bVar15 = bVar20 + *unaff_EDI; bVar26 = CARRY1(bVar20,*unaff_EDI) || CARRY1(bVar15,bVar25); bVar15 = bVar15 + bVar25; uVar12 = CONCAT31((int3)(((uint)pbVar11 & 0xffffff03) >> 8),bVar4 + 0x58 + bVar26); uVar5 = (uint)(0xa7 < bVar4 || CARRY1(bVar4 + 0x58,bVar26)); uVar1 = uVar12 + 0xe0ededac; bVar25 = uVar12 < 0x1f121254 || uVar1 < uVar5; pbVar11 = (byte *)((uVar1 - uVar5) + 0x16); bVar4 = *pbVar11 + bVar15; bVar26 = CARRY1(*pbVar11,bVar15) || CARRY1(bVar4,bVar25); *pbVar11 = bVar4 + bVar25; bVar15 = (byte)puVar8 + (char)*puVar8; iVar18 = CONCAT31((int3)((uint)puVar8 >> 8),bVar15 + bVar26); *piVar6 = *piVar6 + iVar18 + (uint)(CARRY1((byte)puVar8,(byte)*puVar8) || CARRY1(bVar15,bVar26)); out(*(undefined4 *)unaff_ESI,(short)iVar18); return; } ``` ## FUN_10037760 at 10037760 Signature: `undefined __fastcall FUN_10037760(int param_1)` ```c void __fastcall FUN_10037760(int param_1) { LPCRITICAL_SECTION p_Var1; void *pvVar2; char *pcVar3; undefined4 *puVar4; undefined **ppuVar5; undefined **ppuVar6; int *piVar7; undefined **ppuVar8; _LIST_ENTRY *p_Var9; char cVar10; int **ppiVar11; int iVar12; undefined4 *puVar13; uint uVar14; undefined4 *puVar15; uint *puVar16; int *piVar17; int *piVar18; PRTL_CRITICAL_SECTION_DEBUG p_Var19; PRTL_CRITICAL_SECTION_DEBUG p_Var20; PRTL_CRITICAL_SECTION_DEBUG *pp_Var21; _RTL_CRITICAL_SECTION *_Dst; int iVar22; int iVar23; undefined4 uVar24; wchar_t *pwVar25; undefined4 uVar26; PRTL_CRITICAL_SECTION_DEBUG local_b4; int *local_b0; int local_ac; int *local_a4; int local_a0; LPCRITICAL_SECTION local_94; undefined4 *local_90; int local_8c; undefined **local_84 [3]; undefined **local_78; int local_74; int *local_6c; int local_68; undefined **local_60; uint local_5c; LPVOID local_58; void *local_54; int *local_50; uint local_4c; int *local_48; undefined **local_44; int *local_40; PRTL_CRITICAL_SECTION_DEBUG local_3c; int *local_38; int *local_34; _RTL_CRITICAL_SECTION *local_30; _LIST_ENTRY *local_2c; int *local_28; _LIST_ENTRY *local_24; int *local_20; PRTL_CRITICAL_SECTION_DEBUG local_1c; int *local_18; int local_14; void *local_10; undefined1 *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_100585c2; local_10 = ExceptionList; ppiVar11 = (int **)(DAT_100b1424 ^ (uint)&stack0xfffffffc); ExceptionList = &local_10; local_2c = (_LIST_ENTRY *)0x0; local_14 = param_1; iVar12 = FUN_10035eb0(param_1); if (iVar12 != 1) { if (*(int *)(param_1 + 100) == 0) { ExceptionList = local_10; return; } puVar13 = (undefined4 *)**(undefined4 **)(param_1 + 0x60); local_44 = (undefined **)0; while (puVar13 != *(undefined4 **)(param_1 + 0x60)) { local_44 = (undefined **)((int)local_44 + puVar13[5]); if (*(char *)((int)puVar13 + 0x1d) == '\0') { puVar15 = (undefined4 *)puVar13[2]; if (*(char *)((int)puVar15 + 0x1d) == '\0') { cVar10 = *(char *)((int)*puVar15 + 0x1d); puVar13 = puVar15; puVar15 = (undefined4 *)*puVar15; while (cVar10 == '\0') { cVar10 = *(char *)((int)*puVar15 + 0x1d); puVar13 = puVar15; puVar15 = (undefined4 *)*puVar15; } } else { cVar10 = *(char *)((int)puVar13[1] + 0x1d); puVar4 = (undefined4 *)puVar13[1]; puVar15 = puVar13; while ((puVar13 = puVar4, cVar10 == '\0' && (puVar15 == (undefined4 *)puVar13[2]))) { cVar10 = *(char *)((int)puVar13[1] + 0x1d); puVar4 = (undefined4 *)puVar13[1]; puVar15 = puVar13; } } } } local_54 = CoTaskMemAlloc((int)local_44 * 0x18); piVar18 = (int *)**(int **)(param_1 + 0x60); iVar12 = 0; if (piVar18 != *(int **)(param_1 + 0x60)) { do { iVar23 = 0; if (0 < piVar18[5]) { iVar22 = 0; do { *(undefined4 *)(iVar22 + 0x10 + piVar18[6]) = 5; iVar23 = iVar23 + 1; iVar22 = iVar22 + 0x18; } while (iVar23 < piVar18[5]); } memcpy((void *)((int)local_54 + iVar12 * 0x18),(void *)piVar18[6],piVar18[5] * 0x18); iVar12 = iVar12 + piVar18[5]; CoTaskMemFree((LPVOID)piVar18[6]); if (*(char *)((int)piVar18 + 0x1d) == '\0') { piVar17 = (int *)piVar18[2]; if (*(char *)((int)piVar17 + 0x1d) == '\0') { cVar10 = *(char *)(*piVar17 + 0x1d); piVar18 = piVar17; piVar17 = (int *)*piVar17; while (cVar10 == '\0') { cVar10 = *(char *)(*piVar17 + 0x1d); piVar18 = piVar17; piVar17 = (int *)*piVar17; } } else { cVar10 = *(char *)(piVar18[1] + 0x1d); piVar7 = (int *)piVar18[1]; piVar17 = piVar18; while ((piVar18 = piVar7, cVar10 == '\0' && (piVar17 == (int *)piVar18[2]))) { cVar10 = *(char *)(piVar18[1] + 0x1d); piVar7 = (int *)piVar18[1]; piVar17 = piVar18; } } } } while (piVar18 != *(int **)(param_1 + 0x60)); } local_38 = new(0x10); if (local_38 == (int *)0x0) goto LAB_100393d0; *local_38 = (int)local_44; local_38[1] = (int)local_54; local_38[2] = 0; local_38[3] = 0; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 0x3a; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10039309; } } else { LAB_10039309: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 0x3b; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - submitting response to queue"); } } iVar12 = local_14; p_Var1 = (LPCRITICAL_SECTION)(local_14 + 0x2c); local_94 = p_Var1; EnterCriticalSection(p_Var1); local_8 = 0x3c; pcVar3 = *(char **)(iVar12 + 0x44); puVar13 = FUN_1002b0c0((void *)(iVar12 + 0x44),pcVar3,*(undefined4 *)(pcVar3 + 4),&local_38); if (*(int *)(iVar12 + 0x48) == 0x3ffffffe) { /* WARNING: Subroutine does not return */ std::_Xlength_error("list too long"); } *(int *)(iVar12 + 0x48) = *(int *)(iVar12 + 0x48) + 1; *(undefined4 **)(pcVar3 + 4) = puVar13; *(undefined4 **)puVar13[1] = puVar13; local_8 = 0xffffffff; LeaveCriticalSection(p_Var1); LAB_100393d0: iVar12 = local_14; piVar18 = *(int **)(*(int *)(local_14 + 0x60) + 4); cVar10 = *(char *)((int)piVar18 + 0x1d); while (cVar10 == '\0') { FUN_1002a4d0((int *)piVar18[2]); piVar17 = (int *)*piVar18; delete(piVar18); piVar18 = piVar17; cVar10 = *(char *)((int)piVar17 + 0x1d); } *(int *)(*(int *)(iVar12 + 0x60) + 4) = *(int *)(iVar12 + 0x60); *(undefined4 *)*(undefined4 *)(iVar12 + 0x60) = *(undefined4 *)(iVar12 + 0x60); *(int *)(*(int *)(iVar12 + 0x60) + 8) = *(int *)(iVar12 + 0x60); *(undefined4 *)(iVar12 + 100) = 0; ExceptionList = local_10; return; } local_68 = 0; local_6c = new(0xc); local_28 = local_6c; if (local_6c == (int *)0x0) { local_38 = (int *)0x0; std::exception::exception((exception *)local_84,(char **)&local_38); local_84[0] = std::bad_alloc::vftable; local_8 = 0xffffffff; /* WARNING: Subroutine does not return */ _CxxThrowException(local_84,(ThrowInfo *)&DAT_100a469c); } *local_6c = (int)local_6c; local_6c[1] = (int)local_6c; local_8 = 2; local_ac = 0; local_b0 = new(0xc); local_48 = local_b0; if (local_b0 == (int *)0x0) { local_3c = (PRTL_CRITICAL_SECTION_DEBUG)0x0; std::exception::exception((exception *)&local_78,(char **)&local_3c); local_78 = std::bad_alloc::vftable; local_8 = CONCAT31((int3)((uint)local_8 >> 8),2); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_78,(ThrowInfo *)&DAT_100a469c); } *local_b0 = (int)local_b0; local_b0[1] = (int)local_b0; local_8._0_1_ = 5; local_a0 = 0; local_a4 = new(0xc); local_40 = local_a4; if (local_a4 == (int *)0x0) { local_38 = (int *)0x0; std::exception::exception((exception *)local_84,(char **)&local_38); local_84[0] = std::bad_alloc::vftable; local_8 = CONCAT31(local_8._1_3_,5); /* WARNING: Subroutine does not return */ _CxxThrowException(local_84,(ThrowInfo *)&DAT_100a469c); } *local_a4 = (int)local_a4; local_a4[1] = (int)local_a4; local_8._0_1_ = 8; local_74 = 0; local_78 = new(0xc); local_44 = local_78; if (local_78 == (undefined **)0x0) { local_3c = (PRTL_CRITICAL_SECTION_DEBUG)0x0; std::exception::exception((exception *)&local_60,(char **)&local_3c); local_60 = std::bad_alloc::vftable; local_8 = CONCAT31(local_8._1_3_,8); /* WARNING: Subroutine does not return */ _CxxThrowException(&local_60,(ThrowInfo *)&DAT_100a469c); } *local_78 = (undefined *)local_78; local_78[1] = (undefined *)local_78; local_8._0_1_ = 0xb; local_1c = (PRTL_CRITICAL_SECTION_DEBUG)0x0; local_24 = (_LIST_ENTRY *)0x0; local_30 = (_RTL_CRITICAL_SECTION *)0x0; local_50 = (int *)0x0; local_4c = 0; local_8c = 0; puVar13 = new(0xc); if (puVar13 == (undefined4 *)0x0) { local_38 = (int *)0x0; std::exception::exception((exception *)local_84,(char **)&local_38); local_84[0] = std::bad_alloc::vftable; local_8 = CONCAT31(local_8._1_3_,0xb); /* WARNING: Subroutine does not return */ _CxxThrowException(local_84,(ThrowInfo *)&DAT_100a469c); } *puVar13 = puVar13; puVar13[1] = puVar13; local_8._0_1_ = 0xe; p_Var19 = (PRTL_CRITICAL_SECTION_DEBUG)(param_1 + 8); local_90 = puVar13; local_3c = p_Var19; EnterCriticalSection((LPCRITICAL_SECTION)p_Var19); local_8 = CONCAT31(local_8._1_3_,0xf); FUN_10031b10(&local_90,(char *)*puVar13,(undefined4 *)**(undefined4 **)(param_1 + 0x20), *(undefined4 **)(param_1 + 0x20)); piVar18 = *(int **)(param_1 + 0x20); piVar17 = (int *)*piVar18; *piVar18 = (int)piVar18; *(int *)(*(int *)(param_1 + 0x20) + 4) = *(int *)(param_1 + 0x20); *(undefined4 *)(param_1 + 0x24) = 0; if (piVar17 != *(int **)(param_1 + 0x20)) { do { piVar18 = (int *)*piVar17; delete(piVar17); piVar17 = piVar18; } while (piVar18 != (int *)*(int *)(param_1 + 0x20)); } local_8._0_1_ = 0xe; LeaveCriticalSection((LPCRITICAL_SECTION)p_Var19); if (local_8c != 0) { uVar26 = 0; uVar24 = DAT_100cce9c; puVar13 = FUN_1001b5b0(); uVar14 = FUN_1001b4e0(puVar13,uVar24,uVar26); if ((char)uVar14 != '\0') { pwVar25 = L"NameSpace::ProcessWriteCompleteWorker - processing writes. Count[%d]"; uVar24 = DAT_100cce9c; puVar13 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar13,uVar24,pwVar25); } } puVar13 = (undefined4 *)*local_90; if (puVar13 != local_90) { local_30 = (_RTL_CRITICAL_SECTION *)0x0; do { local_24 = (_LIST_ENTRY *)0x0; local_50 = (int *)0x0; local_4c = 0; if (puVar13[2] != 0) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x10; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_100379c6; } } else { LAB_100379c6: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x11; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - Sending write to dataClientCLI. ") ; } } if (DAT_100cce80 == '\0') { ppiVar11 = *(int ***)puVar13[2]; local_2c = (_LIST_ENTRY *)FUN_1000ef80(); } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x12; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4,ppiVar11); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10037af7; } } else { LAB_10037af7: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x13; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - dataClientCLI write returned.. "); } } if ((int)local_2c < 0) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x1a; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } iVar12 = DAT_100b5e9c; if ((DAT_100b5e9c == 0) && (iVar23 = FUN_1001ca40(&DAT_100b5df0), iVar12 = DAT_100b5e9c, iVar23 == 0)) { iVar12 = 0; } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x1b; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar14 = FUN_1001b4e0(&DAT_100b5df0,iVar12,0); if ((char)uVar14 != '\0') { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x1c; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogWarning(0x100b5df0,L" [%s] - Write return 0x%x"); } } else { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x14; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar14 = FUN_1001b4e0(&DAT_100b5df0,DAT_100cce9c,0); if ((char)uVar14 != '\0') { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x15; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - dataClientCLI write SUCCEEDED.. ") ; } uVar14 = *(uint *)(puVar13[2] + 0x2c); local_5c = uVar14; local_58 = CoTaskMemAlloc(uVar14 * 0x18); if (local_58 == (LPVOID)0x0) { local_2c = (_LIST_ENTRY *)0x8007000e; } else { memset(local_58,0,uVar14 * 0x18); piVar18 = (int *)**(int **)(puVar13[2] + 0x28); if (piVar18 != *(int **)(puVar13[2] + 0x28)) { puVar15 = (undefined4 *)((int)local_58 + 0x10); do { iVar12 = *(int *)piVar18[2]; puVar15[-4] = *(undefined4 *)(iVar12 + 8); puVar15[-3] = *(undefined4 *)(iVar12 + 0xc); iVar12 = piVar18[2]; puVar15[-2] = *(undefined4 *)(iVar12 + 0x30); puVar15[-1] = *(undefined4 *)(iVar12 + 0x34); *puVar15 = 0; piVar18 = (int *)*piVar18; puVar15 = puVar15 + 6; } while (piVar18 != (int *)*(int *)(puVar13[2] + 0x28)); } if ((local_24 == (_LIST_ENTRY *)0x0) || (local_24[1].Flink == (_LIST_ENTRY *)0x0)) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x18; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10037ebf; } } else { LAB_10037ebf: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x19; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - submitting response to m_CompleteList" ); } } iVar12 = local_14; puVar16 = FUN_10034b50((void *)(local_14 + 0x5c),(uint *)(puVar13[2] + 0x24)); puVar16[1] = uVar14; puVar16 = FUN_10034b50((void *)(iVar12 + 0x5c),(uint *)(puVar13[2] + 0x24)); puVar16[2] = (uint)local_58; } else { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x16; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } iVar12 = DAT_100b5e9c; if ((DAT_100b5e9c == 0) && (iVar23 = FUN_1001ca40(&DAT_100b5df0), iVar12 = DAT_100b5e9c, iVar23 == 0)) { iVar12 = 0; } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x17; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar14 = FUN_1001b4e0(&DAT_100b5df0,iVar12,0); if ((char)uVar14 != '\0') { pwVar25 = L" [%s] - Write ArchestrA Result 0x%x"; puVar15 = FUN_1001b5b0(); CWrapLogger_LogWarning((int)puVar15,pwVar25); } piVar18 = local_28; local_20 = (int *)**(int **)(puVar13[2] + 0x28); if (local_20 != *(int **)(puVar13[2] + 0x28)) { local_18 = (int *)((int)local_58 + 0x10); do { *local_18 = (int)local_24[1].Flink; uVar14 = 0; if (local_4c != 0) { local_94 = (LPCRITICAL_SECTION)local_18[-3]; piVar17 = local_50; do { if ((local_18[-4] == *piVar17) && (local_94 == (LPCRITICAL_SECTION)0x0)) { *local_18 = local_50[uVar14 * 8 + 2]; break; } uVar14 = uVar14 + 1; piVar17 = piVar17 + 8; } while (uVar14 < local_4c); } local_20 = (int *)*local_20; local_18 = local_18 + 6; } while (local_20 != (int *)*(int *)(puVar13[2] + 0x28)); } puVar15 = FUN_1002b960(&local_6c,(char *)local_28,local_28[1],&local_58); piVar17 = local_48; if (local_68 == 0x3ffffffe) goto LAB_10038efb; local_68 = local_68 + 1; piVar18[1] = (int)puVar15; *(undefined4 **)puVar15[1] = puVar15; puVar15 = FUN_1002ba70(&local_b0,(char *)local_48,local_48[1],&local_5c); if (local_ac == 0x3ffffffe) goto LAB_10038efb; local_ac = local_ac + 1; piVar17[1] = (int)puVar15; *(undefined4 **)puVar15[1] = puVar15; local_1c = (PRTL_CRITICAL_SECTION_DEBUG)0x0; } } CoTaskMemFree(local_24); local_24 = (_LIST_ENTRY *)0x0; } CoTaskMemFree((LPVOID)**(undefined4 **)puVar13[2]); CoTaskMemFree(*(LPVOID *)puVar13[2]); *(undefined4 *)puVar13[2] = 0; } if (puVar13[2] != 0) { piVar18 = (int *)**(int **)(puVar13[2] + 0x28); if (piVar18 != *(int **)(puVar13[2] + 0x28)) { do { delete(*(void **)piVar18[2]); if (*(void **)(piVar18[2] + 0x20) != (void *)0x0) { delete__(*(void **)(piVar18[2] + 0x20)); } if (*(int *)(piVar18[2] + 0x14) != 0) { delete__(*(void **)(piVar18[2] + 0x18)); } delete((void *)piVar18[2]); piVar18 = (int *)*piVar18; } while (piVar18 != (int *)*(int *)(puVar13[2] + 0x28)); } iVar12 = puVar13[2]; piVar18 = *(int **)(iVar12 + 0x28); piVar17 = (int *)*piVar18; *piVar18 = (int)piVar18; *(int *)(*(int *)(iVar12 + 0x28) + 4) = *(int *)(iVar12 + 0x28); *(undefined4 *)(iVar12 + 0x2c) = 0; if (piVar17 != *(int **)(iVar12 + 0x28)) { do { piVar18 = (int *)*piVar17; delete(piVar17); piVar17 = piVar18; } while (piVar18 != (int *)*(int *)(iVar12 + 0x28)); } pvVar2 = (void *)puVar13[2]; if (pvVar2 != (void *)0x0) { FUN_1002f0e0((int)pvVar2); delete(pvVar2); } } puVar13 = (undefined4 *)*puVar13; } while (puVar13 != local_90); if (local_68 != 0) { if (local_68 == 1) { local_30 = *(_RTL_CRITICAL_SECTION **)(*local_28 + 8); local_1c = *(PRTL_CRITICAL_SECTION_DEBUG *)(*local_48 + 8); piVar17 = local_28; } else { local_1c = (PRTL_CRITICAL_SECTION_DEBUG)0x0; for (piVar18 = (int *)*local_48; piVar18 != local_48; piVar18 = (int *)*piVar18) { local_1c = (PRTL_CRITICAL_SECTION_DEBUG)((int)&local_1c->Type + piVar18[2]); } local_30 = CoTaskMemAlloc((int)local_1c * 0x18); piVar18 = (int *)*local_28; puVar13 = (undefined4 *)*local_48; iVar12 = 0; piVar17 = local_28; if (piVar18 != local_28) { do { if ((void *)piVar18[2] != (void *)0x0) { memcpy(local_30 + iVar12,(void *)piVar18[2],puVar13[2] * 0x18); iVar12 = iVar12 + puVar13[2]; CoTaskMemFree((LPVOID)piVar18[2]); piVar18[2] = 0; piVar17 = local_28; } piVar18 = (int *)*piVar18; puVar13 = (undefined4 *)*puVar13; } while (piVar18 != piVar17); } } piVar7 = local_28; piVar18 = (int *)*piVar17; *piVar17 = (int)piVar17; piVar17[1] = (int)piVar17; local_68 = 0; if (piVar18 != piVar17) { do { piVar17 = (int *)*piVar18; delete(piVar18); piVar18 = piVar17; } while (piVar17 != piVar7); } } } if (*(int *)(local_14 + 100) == 0) { LAB_10038d96: p_Var19 = local_1c; if (local_30 == (_RTL_CRITICAL_SECTION *)0x0) { LAB_10038d9f: p_Var19 = local_1c; if ((local_2c == (_LIST_ENTRY *)0x0) && (local_24 == (_LIST_ENTRY *)0x0)) goto LAB_10038f1d; } } else { p_Var19 = local_1c; if (local_30 == (_RTL_CRITICAL_SECTION *)0x0) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x1d; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10038298; } } else { LAB_10038298: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x1e; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - localComplete is [%d].. "); } } local_18 = (int *)0x0; local_20 = (int *)0x0; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x1f; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10038383; } } else { LAB_10038383: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x20; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - sending PublishWriteComplete"); } } iVar12 = local_14; if (DAT_100cce80 == '\0') { ppiVar11 = &local_18; local_2c = (_LIST_ENTRY *)FUN_1000f9e0(); } p_Var9 = local_2c; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x21; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4,ppiVar11); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10038493; } } else { LAB_10038493: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x22; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - PublishWriteComplete returned"); } } if ((int)p_Var9 < 0) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x2d; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } iVar12 = DAT_100b5e9c; if ((DAT_100b5e9c == 0) && (iVar23 = FUN_1001ca40(&DAT_100b5df0), iVar12 = DAT_100b5e9c, iVar23 == 0)) { iVar12 = 0; } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x2e; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10038bb7; } } else { LAB_10038bb7: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,iVar12,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x2f; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogWarning(0x100b5df0,L" [%s] - PublishWriteComplete return 0x%x "); } } } else { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x23; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10038580; } } else { LAB_10038580: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x24; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - PublishWriteComplete SUCCEEDED. lWriteSize[%d]" ); } } local_34 = (int *)0x0; if (local_20 != (int *)0x0) { local_54 = (void *)(iVar12 + 0x5c); do { local_b4 = *(PRTL_CRITICAL_SECTION_DEBUG *)((int)local_54 + 4); iVar12 = (int)local_34 * 0x20; if (*(undefined1 *) ((int)&((PRTL_CRITICAL_SECTION_DEBUG)local_b4->CriticalSection)-> CreatorBackTraceIndexHigh + 1) == '\0') { p_Var19 = (PRTL_CRITICAL_SECTION_DEBUG)local_b4->CriticalSection; do { if ((p_Var19->ProcessLocksList).Blink < (_LIST_ENTRY *)local_18[(int)local_34 * 8 + 4]) { p_Var20 = (PRTL_CRITICAL_SECTION_DEBUG)(p_Var19->ProcessLocksList).Flink; } else { p_Var20 = *(PRTL_CRITICAL_SECTION_DEBUG *)&p_Var19->Type; local_b4 = p_Var19; } p_Var19 = p_Var20; } while (*(undefined1 *)((int)&p_Var20->CreatorBackTraceIndexHigh + 1) == '\0'); } if ((local_b4 == *(PRTL_CRITICAL_SECTION_DEBUG *)((int)local_54 + 4)) || ((_LIST_ENTRY *)local_18[(int)local_34 * 8 + 4] < (local_b4->ProcessLocksList).Blink) ) { local_3c = *(PRTL_CRITICAL_SECTION_DEBUG *)((int)local_54 + 4); pp_Var21 = &local_3c; } else { pp_Var21 = &local_b4; } p_Var19 = *pp_Var21; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x25; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_100386dd; } } else { LAB_100386dd: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x26; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - PublishWriteComplete SUCCEEDED " ); } } if (p_Var19 == *(PRTL_CRITICAL_SECTION_DEBUG *)(local_14 + 0x60)) { local_34 = (int *)((int)local_34 + 1); if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x2a; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } iVar12 = DAT_100b5e9c; if ((DAT_100b5e9c == 0) && (iVar23 = FUN_1001ca40(&DAT_100b5df0), iVar12 = DAT_100b5e9c, iVar23 == 0)) { iVar12 = 0; } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x2b; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 == -1) goto LAB_10038ab8; FUN_10018190(&DAT_100b5df0); } if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,iVar12,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x2c; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogWarning (0x100b5df0,L" [%s] - WriteHandle(%d) is not find in WriteComplete"); } } else { iVar23 = 0; if (0 < (int)p_Var19->ContentionCount) { iVar22 = 0; do { if ((local_20 <= local_34) || ((p_Var19->ProcessLocksList).Blink != *(_LIST_ENTRY **)(iVar12 + 0x10 + (int)local_18))) break; *(undefined4 *)(iVar22 + 0x10 + p_Var19->Flags) = *(undefined4 *)(iVar12 + 8 + (int)local_18); *(undefined4 *)(iVar22 + 0x14 + p_Var19->Flags) = *(undefined4 *)(iVar12 + 0x14 + (int)local_18); local_34 = (int *)((int)local_34 + 1); p_Var19->EntryCount = p_Var19->EntryCount + 1; iVar23 = iVar23 + 1; iVar12 = iVar12 + 0x20; iVar22 = iVar22 + 0x18; } while (iVar23 < (int)p_Var19->ContentionCount); } if (p_Var19->EntryCount != p_Var19->ContentionCount) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x27; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } iVar12 = DAT_100b5e9c; if ((DAT_100b5e9c == 0) && (iVar23 = FUN_1001ca40(&DAT_100b5df0), iVar12 = DAT_100b5e9c, iVar23 == 0)) { iVar12 = 0; } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x28; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 == -1) goto LAB_100388f2; FUN_10018190(&DAT_100b5df0); } if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,iVar12,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x29; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogWarning (0x100b5df0, L" [%s] - WriteHandle(%d): WriteComplete is not equal to WriteSize"); } } LAB_100388f2: piVar18 = local_40; puVar13 = FUN_1002b960(&local_a4,(char *)local_40,local_40[1],&p_Var19->Flags); ppuVar5 = local_44; if (local_a0 == 0x3ffffffe) goto LAB_10038efb; local_a0 = local_a0 + 1; piVar18[1] = (int)puVar13; *(undefined4 **)puVar13[1] = puVar13; puVar13 = FUN_1002ba70(&local_78,(char *)local_44,local_44[1], &p_Var19->ContentionCount); if (local_74 == 0x3ffffffe) goto LAB_10038efb; local_74 = local_74 + 1; ppuVar5[1] = (undefined *)puVar13; *(undefined4 **)puVar13[1] = puVar13; local_1c = (PRTL_CRITICAL_SECTION_DEBUG) ((int)&local_1c->Type + p_Var19->ContentionCount); FUN_1002cd40(local_54,&local_94,(int *)p_Var19); } LAB_10038ab8: } while (local_34 < local_20); if (local_20 != (int *)0x0) { CoTaskMemFree(local_18); } } if (local_4c != 0) { CoTaskMemFree(local_50); } } p_Var19 = local_1c; if ((int)local_1c < 1) goto LAB_10038d9f; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x30; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10038cac; } } else { LAB_10038cac: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x31; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - formatting responses. Count[%d]"); } } _Dst = CoTaskMemAlloc((int)p_Var19 * 0x18); piVar17 = local_40; piVar18 = (int *)*local_40; local_30 = _Dst; if (_Dst != (_RTL_CRITICAL_SECTION *)0x0) { puVar13 = (undefined4 *)*local_44; if (piVar18 != local_40) { do { memcpy(_Dst,(void *)piVar18[2],puVar13[2] * 0x18); _Dst = _Dst + puVar13[2]; CoTaskMemFree((LPVOID)piVar18[2]); piVar18 = (int *)*piVar18; puVar13 = (undefined4 *)*puVar13; } while (piVar18 != local_40); } goto LAB_10038d96; } local_2c = (_LIST_ENTRY *)0x8007000e; for (; p_Var19 = (PRTL_CRITICAL_SECTION_DEBUG)0x0, piVar18 != piVar17; piVar18 = (int *)*piVar18) { CoTaskMemFree((LPVOID)piVar18[2]); } } } local_3c = new(0x10); if (local_3c == (PRTL_CRITICAL_SECTION_DEBUG)0x0) goto LAB_10038f1d; *(PRTL_CRITICAL_SECTION_DEBUG *)&local_3c->Type = p_Var19; local_3c->CriticalSection = local_30; (local_3c->ProcessLocksList).Flink = local_24; (local_3c->ProcessLocksList).Blink = local_2c; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x32; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } uVar24 = DAT_100cce9c; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_10038e5e; } } else { LAB_10038e5e: if ((DAT_100b5e94 != (code *)0x0) && (cVar10 = (*DAT_100b5e94)(DAT_100b5df4,uVar24,0), cVar10 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8._0_1_ = 0x33; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8._0_1_ = 0xe; } CWrapLogger_LogCustom (0x100b5df0,DAT_100cce9c, L"NameSpace::ProcessWriteCompleteWorker - submitting response to queue"); } } iVar12 = local_14; p_Var1 = (LPCRITICAL_SECTION)(local_14 + 0x2c); local_94 = p_Var1; EnterCriticalSection(p_Var1); local_8._0_1_ = 0x34; pcVar3 = *(char **)(iVar12 + 0x44); puVar13 = FUN_1002b0c0((void *)(iVar12 + 0x44),pcVar3,*(undefined4 *)(pcVar3 + 4),&local_3c); if (*(int *)(iVar12 + 0x48) == 0x3ffffffe) { LAB_10038efb: /* WARNING: Subroutine does not return */ std::_Xlength_error("list too long"); } *(int *)(iVar12 + 0x48) = *(int *)(iVar12 + 0x48) + 1; *(undefined4 **)(pcVar3 + 4) = puVar13; *(undefined4 **)puVar13[1] = puVar13; local_8._0_1_ = 0xe; LeaveCriticalSection(p_Var1); LAB_10038f1d: piVar18 = local_40; puVar15 = local_90; local_8._0_1_ = 0x35; puVar13 = (undefined4 *)*local_90; *local_90 = local_90; local_90[1] = local_90; local_8c = 0; while (puVar13 != puVar15) { puVar4 = (undefined4 *)*puVar13; delete(puVar13); puVar13 = puVar4; } local_8._0_1_ = 0xb; delete(puVar15); ppuVar8 = local_44; local_8._0_1_ = 0x36; ppuVar5 = (undefined **)*local_44; *local_44 = (undefined *)local_44; local_44[1] = (undefined *)local_44; local_74 = 0; while (ppuVar5 != ppuVar8) { ppuVar6 = (undefined **)*ppuVar5; delete(ppuVar5); ppuVar5 = ppuVar6; } local_8._0_1_ = 8; delete(ppuVar8); local_8._0_1_ = 0x37; piVar17 = (int *)*piVar18; *piVar18 = (int)piVar18; piVar18[1] = (int)piVar18; local_a0 = 0; while (piVar17 != piVar18) { piVar7 = (int *)*piVar17; delete(piVar17); piVar17 = piVar7; } local_8._0_1_ = 5; delete(piVar18); piVar17 = local_48; local_8._0_1_ = 0x38; piVar18 = (int *)*local_48; *local_48 = (int)local_48; local_48[1] = (int)local_48; local_ac = 0; while (piVar18 != piVar17) { piVar7 = (int *)*piVar18; delete(piVar18); piVar18 = piVar7; } local_8 = CONCAT31(local_8._1_3_,2); delete(piVar17); piVar17 = local_28; local_8 = 0x39; piVar18 = (int *)*local_28; *local_28 = (int)local_28; local_28[1] = (int)local_28; local_68 = 0; while (piVar18 != piVar17) { piVar7 = (int *)*piVar18; delete(piVar18); piVar18 = piVar7; } local_8 = 0xffffffff; delete(piVar17); ExceptionList = local_10; return; } ``` ## FUN_1003adf0 at 1003adf0 Signature: `undefined __fastcall FUN_1003adf0(void * param_1)` ```c void __fastcall FUN_1003adf0(void *param_1) { _LIST_ENTRY *p_Var1; PRTL_CRITICAL_SECTION_DEBUG p_Var2; char *pcVar3; PRTL_CRITICAL_SECTION_DEBUG p_Var4; uint uVar5; int iVar6; undefined4 *puVar7; int *piVar8; int iVar9; undefined4 *puVar10; PRTL_CRITICAL_SECTION_DEBUG p_Var11; wchar_t *pwVar12; undefined4 uVar13; undefined4 uVar14; undefined1 local_84 [4]; uint *local_80; PRTL_CRITICAL_SECTION_DEBUG local_58; undefined4 local_54; undefined **local_4c; _LIST_ENTRY *local_48; undefined4 local_44; uint *local_40; PRTL_CRITICAL_SECTION_DEBUG local_3c; uint local_38; LPVOID local_34; LPVOID local_30; void *local_2c; LPVOID local_28; uint local_24; uint local_20; LPVOID local_1c; uint local_18; char local_11; void *local_10; undefined1 *puStack_c; undefined4 local_8; puStack_c = &LAB_1005890d; local_10 = ExceptionList; uVar5 = DAT_100b1424 ^ (uint)&stack0xfffffffc; ExceptionList = &local_10; local_18 = 0; local_24 = 0; local_34 = (LPVOID)0x0; local_28 = (LPVOID)0x0; local_2c = param_1; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 0; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); } uVar14 = DAT_100cce94; local_8 = 0xffffffff; if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4,uVar5); } if (DAT_100b5df4 != -1) { FUN_10018190(&DAT_100b5df0); goto LAB_1003aeab; } LAB_1003aec7: local_11 = '\0'; } else { LAB_1003aeab: if (DAT_100b5e94 == (code *)0x0) goto LAB_1003aec7; local_11 = (*DAT_100b5e94)(DAT_100b5df4,uVar14,0); } iVar6 = FUN_10035eb0((int)param_1); if (iVar6 == 0) { *(undefined4 *)((int)param_1 + 0x2d0) = 0; *(undefined4 *)((int)param_1 + 0x2d4) = 0; FUN_10035c00((int)param_1); if ((*(char *)((int)param_1 + 0xb9) != '\0') && (*(char *)((int)param_1 + 0xba) != '\0')) { local_18 = 0x80010006; *(undefined1 *)((int)param_1 + 0xba) = 0; } } else { *(undefined1 *)((int)param_1 + 0xba) = 1; } iVar6 = FUN_10035eb0((int)param_1); if (iVar6 == 1) { if (-1 < (int)local_18) { local_54 = 0; local_58 = new(0xc); if (local_58 == (PRTL_CRITICAL_SECTION_DEBUG)0x0) { local_40 = (uint *)0x0; std::exception::exception((exception *)&local_4c,(char **)&local_40); local_4c = std::bad_alloc::vftable; local_8 = 0xffffffff; /* WARNING: Subroutine does not return */ _CxxThrowException(&local_4c,(ThrowInfo *)&DAT_100a469c); } *(PRTL_CRITICAL_SECTION_DEBUG *)&local_58->Type = local_58; local_58->CriticalSection = (_RTL_CRITICAL_SECTION *)local_58; local_8 = 3; FUN_10035620(local_84,&local_11); local_8 = CONCAT31(local_8._1_3_,5); FUN_1003a180(param_1,&local_58,local_84); local_30 = (LPVOID)0x0; local_18 = FUN_1002f190((int *)&local_30,(int *)&local_58); if (local_30 != (LPVOID)0x0) { local_1c = (LPVOID)0x0; local_20 = 0; if (DAT_100cce80 == '\0') { local_18 = FUN_1000e3d0(); } if ((int)local_18 < 0) { piVar8 = FUN_1001b5b0(); if ((piVar8[0x2b] == 0) && (iVar6 = FUN_1001ca40(piVar8), iVar6 == 0)) { iVar6 = 0; } else { iVar6 = piVar8[0x2b]; } uVar14 = 0; puVar10 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar10,iVar6,uVar14); if ((char)uVar5 != '\0') { pwVar12 = L" [%s] - RegisterItems return 0x%x"; puVar10 = FUN_1001b5b0(); CWrapLogger_LogWarning((int)puVar10,pwVar12); } } else { local_34 = CoTaskMemAlloc(local_20 * 0x18); if (local_34 == (LPVOID)0x0) { local_18 = 0x8007000e; CoTaskMemFree(local_1c); } else { p_Var11 = *(PRTL_CRITICAL_SECTION_DEBUG *)&local_58->Type; local_24 = local_20; local_38 = 0; local_3c = p_Var11; if (local_20 != 0) { iVar6 = 0; puVar10 = (undefined4 *)((int)local_34 + 8); do { local_3c = p_Var11; if (p_Var11 == local_58) break; puVar10[-2] = *(undefined4 *)(iVar6 + (int)local_1c); puVar10[-1] = 0; puVar10[2] = *(undefined4 *)(iVar6 + 8 + (int)local_1c); puVar10[3] = *(undefined4 *)(iVar6 + 0xc + (int)local_1c); if (local_11 != '\0') { uVar13 = 0; uVar14 = DAT_100cce94; puVar7 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar7,uVar14,uVar13); if ((char)uVar5 != '\0') { pwVar12 = L"NameSpace::ProcessRegistrationThread Registration Response>> ItemId[%I64d] Status[%d]" ; uVar14 = DAT_100cce94; puVar7 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar7,uVar14,pwVar12); } } p_Var1 = (p_Var11->ProcessLocksList).Flink; if ((p_Var1[1].Flink == *(_LIST_ENTRY **)(iVar6 + (int)local_1c)) && (p_Var1[1].Blink == (_LIST_ENTRY *)0x0)) { *puVar10 = p_Var1[3].Flink; puVar10[1] = p_Var1[3].Blink; } else { local_44 = 0; local_48 = *(_LIST_ENTRY **)(iVar6 + (int)local_1c); FUN_100327a0(local_84,(int *)&local_40,(uint *)&local_48); if (local_40 == local_80) { *puVar10 = 0; puVar10[1] = 0; piVar8 = FUN_1001b5b0(); if ((piVar8[0x2b] == 0) && (iVar9 = FUN_1001ca40(piVar8), iVar9 == 0)) { iVar9 = 0; } else { iVar9 = piVar8[0x2b]; } uVar14 = 0; puVar7 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar7,iVar9,uVar14); if ((char)uVar5 != '\0') { pwVar12 = L" The recieved Item Id [%I64x] no longer exists in the pending registration list" ; puVar7 = FUN_1001b5b0(); CWrapLogger_LogWarning((int)puVar7,pwVar12); } } else { uVar5 = local_40[4]; *puVar10 = *(undefined4 *)(uVar5 + 0x18); puVar10[1] = *(undefined4 *)(uVar5 + 0x1c); } } if (puVar10[2] == 0) { FUN_100367b0(local_2c,puVar10[-2],puVar10[-1]); } p_Var11 = *(PRTL_CRITICAL_SECTION_DEBUG *)&local_3c->Type; local_38 = local_38 + 1; iVar6 = iVar6 + 0x20; puVar10 = puVar10 + 6; local_3c = p_Var11; } while (local_38 < local_20); } param_1 = local_2c; CoTaskMemFree(local_1c); } } CoTaskMemFree(local_30); FUN_1002ec30((int *)&local_58); FUN_10035480((int)local_84); } local_8 = CONCAT31(local_8._1_3_,3); FUN_10034f30((int)local_84); p_Var4 = local_58; local_8 = 7; p_Var11 = *(PRTL_CRITICAL_SECTION_DEBUG *)&local_58->Type; *(PRTL_CRITICAL_SECTION_DEBUG *)&local_58->Type = local_58; local_58->CriticalSection = (_RTL_CRITICAL_SECTION *)local_58; local_54 = 0; while (p_Var11 != p_Var4) { p_Var2 = *(PRTL_CRITICAL_SECTION_DEBUG *)&p_Var11->Type; delete(p_Var11); p_Var11 = p_Var2; } local_8 = 0xffffffff; delete(p_Var4); if ((int)local_24 < 1) goto LAB_1003b248; } LAB_1003b251: if (local_11 != '\0') { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 8; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } uVar5 = FUN_1001b4e0(&DAT_100b5df0,DAT_100cce94,0); if ((char)uVar5 != '\0') { pwVar12 = L"NameSpace::ProcessRegistrationThread submitting to Queue count[%d] hr[0x%x]"; uVar14 = DAT_100cce94; puVar10 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar10,uVar14,pwVar12); } } local_40 = new(0x10); if (local_40 != (uint *)0x0) { *local_40 = local_24; local_40[1] = (uint)local_34; local_40[2] = (uint)local_28; p_Var11 = (PRTL_CRITICAL_SECTION_DEBUG)((int)param_1 + 0x16c); local_28 = (LPVOID)0x0; local_40[3] = local_18; local_3c = p_Var11; EnterCriticalSection((LPCRITICAL_SECTION)p_Var11); local_8 = 9; pcVar3 = *(char **)((int)param_1 + 0x184); puVar10 = FUN_1002b2c0((undefined4 *)((int)param_1 + 0x184),pcVar3,*(undefined4 *)(pcVar3 + 4) ,&local_40); if (*(int *)((int)param_1 + 0x188) == 0x3ffffffe) { /* WARNING: Subroutine does not return */ std::_Xlength_error("list too long"); } *(int *)((int)param_1 + 0x188) = *(int *)((int)param_1 + 0x188) + 1; *(undefined4 **)(pcVar3 + 4) = puVar10; *(undefined4 **)puVar10[1] = puVar10; local_8 = 0xffffffff; LeaveCriticalSection((LPCRITICAL_SECTION)p_Var11); goto LAB_1003b399; } } else { LAB_1003b248: if (local_18 != 0) goto LAB_1003b251; } if (local_34 != (LPVOID)0x0) { CoTaskMemFree(local_34); } LAB_1003b399: if (local_28 != (LPVOID)0x0) { CoTaskMemFree(local_28); } ExceptionList = local_10; return; } ``` ## FUN_1003bf50 at 1003bf50 Signature: `undefined __fastcall FUN_1003bf50(LPVOID param_1)` ```c void __fastcall FUN_1003bf50(LPVOID param_1) { char cVar1; HANDLE pvVar2; int iVar3; int iVar4; LSTATUS LVar5; HKEY hKey; HKEY local_28; undefined4 local_24; undefined4 local_20; DWORD local_1c [3]; void *local_10; undefined1 *puStack_c; undefined4 local_8; local_8 = 0xffffffff; puStack_c = &LAB_10058ab2; local_10 = ExceptionList; ExceptionList = &local_10; pvVar2 = CreateEventW((LPSECURITY_ATTRIBUTES)0x0,0,0,(LPCWSTR)0x0); *(HANDLE *)((int)param_1 + 0xe0) = pvVar2; pvVar2 = CreateEventW((LPSECURITY_ATTRIBUTES)0x0,0,0,(LPCWSTR)0x0); *(HANDLE *)((int)param_1 + 0xe4) = pvVar2; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 0; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } iVar4 = DAT_100b5eb0; if ((DAT_100b5eb0 == 0) && (iVar3 = FUN_1001ca40(&DAT_100b5df0), iVar4 = DAT_100b5eb0, iVar3 == 0) ) { iVar4 = 0; } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 1; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(&DAT_100b5df4); } if (DAT_100b5df4 == -1) goto LAB_1003c0cb; FUN_10018190(&DAT_100b5df0); } if ((DAT_100b5e94 != (code *)0x0) && (cVar1 = (*DAT_100b5e94)(DAT_100b5df4,iVar4,0), cVar1 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 2; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } FUN_10029270(&DAT_100b5df0,L"Begin to Create Namespace Worker Thread"); } LAB_1003c0cb: local_1c[2] = 0xfa; local_28 = (HKEY)0x0; local_24 = 0; local_20 = 0; local_8 = 3; iVar4 = FUN_10017b40(&local_28,(HKEY)0x80000002,L"SOFTWARE\\ArchestrA\\Framework\\Nmx",1); hKey = local_28; if (iVar4 == 0) { local_1c[1] = 4; LVar5 = RegQueryValueExW(local_28,L"NameSpacePublishTimer",(LPDWORD)0x0,local_1c, (LPBYTE)(local_1c + 2),local_1c + 1); if ((LVar5 == 0) && (local_1c[0] == 4)) { DAT_100b0f48 = local_1c[2]; } if (hKey != (HKEY)0x0) { RegCloseKey(hKey); hKey = (HKEY)0x0; local_28 = (HKEY)0x0; } local_24 = 0; } if (DAT_100b0f48 == 0) { DAT_100b0f48 = 0xfa; } pvVar2 = CreateThread((LPSECURITY_ATTRIBUTES)0x0,0,FUN_1003ba00,param_1,0, (LPDWORD)((int)param_1 + 0xdc)); *(HANDLE *)((int)param_1 + 0xd8) = pvVar2; local_8 = 0xffffffff; if (hKey != (HKEY)0x0) { RegCloseKey(hKey); } ExceptionList = local_10; return; } ``` ## FUN_10049070 at 10049070 Signature: `BSTR __stdcall FUN_10049070(int param_1)` ```c BSTR FUN_10049070(int param_1) { void *this; GUID *pGVar1; void *this_00; bool bVar2; char cVar3; undefined4 uVar4; uint uVar5; undefined4 *puVar6; undefined3 extraout_var; undefined3 extraout_var_00; undefined3 extraout_var_01; int iVar7; HRESULT HVar8; BSTR pOVar9; undefined3 extraout_var_03; undefined3 extraout_var_04; undefined3 extraout_var_05; undefined3 extraout_var_06; code *pcVar10; GUID *pGVar11; GUID *in_stack_0000001c; GUID *in_stack_00000020; short in_stack_00000024; BSTR in_stack_00000038; ulong uVar12; wchar_t *pwVar13; uint *puVar14; undefined4 uVar15; undefined4 uVar16; undefined4 uVar17; LPVOID *ppvVar18; undefined4 uVar19; undefined4 uVar20; undefined4 uVar21; undefined4 uVar22; undefined4 uVar23; undefined4 uVar24; undefined4 uVar25; undefined4 uVar26; undefined4 uVar27; uint local_20; LPVOID local_1c; void *local_18; BSTR local_14; void *local_10; undefined1 *puStack_c; undefined4 local_8; undefined3 extraout_var_02; local_8 = 0xffffffff; puStack_c = &LAB_1005ac22; local_10 = ExceptionList; ExceptionList = &local_10; local_14 = (BSTR)0x0; *(BSTR *)(param_1 + 0xd0) = in_stack_00000038; uVar4 = FUN_1003ce40((int)in_stack_00000038); if ((char)uVar4 == '\0') { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 0; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } uVar5 = FUN_1001b4e0(&DAT_100b5df0,DAT_100cce9c,0); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - hInstance = %ld"; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } *(short *)(param_1 + 0xcc) = in_stack_00000024; if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 1; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } uVar5 = FUN_1001b4e0(&DAT_100b5df0,DAT_100cce9c,0); if ((char)uVar5 != '\0') { uVar4._0_1_ = '\0'; uVar4._1_1_ = '\0'; uVar4._2_1_ = '\0'; uVar4._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar4); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - Verified flag [%d]"; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } pGVar1 = in_stack_0000001c; bVar2 = FUN_100086e0((byte *)in_stack_0000001c,&DAT_100699f8); pGVar11 = in_stack_00000020; pcVar10 = SysFreeString_exref; if (((CONCAT31(extraout_var,bVar2) == 0) && (bVar2 = FUN_100086e0((byte *)in_stack_00000020,&DAT_100699f8), CONCAT31(extraout_var_00,bVar2) != 0)) && (in_stack_00000024 == -1)) { uVar15._0_1_ = '\0'; uVar15._1_1_ = '\0'; uVar15._2_1_ = '\0'; uVar15._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar15); if ((char)uVar5 != '\0') { uVar16._0_1_ = '\0'; uVar16._1_1_ = '\0'; uVar16._2_1_ = '\0'; uVar16._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar16); if ((char)uVar5 != '\0') { FUN_10048620(&stack0x00000020,pGVar1); local_8 = 2; pwVar13 = L"NamespaceMgr::FillWriteUserToken - Secured Write - User GUID [%s] :: Verified Flag [%d]" ; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); local_8 = 0xffffffff; SysFreeString((BSTR)in_stack_00000020); } } FUN_10048af0(local_18,param_1,pGVar1); } else { bVar2 = FUN_100086e0((byte *)pGVar1,&DAT_100699f8); if (CONCAT31(extraout_var_01,bVar2) == 0) { bVar2 = FUN_100086e0((byte *)pGVar11,&DAT_100699f8); iVar7 = CONCAT31(extraout_var_02,bVar2); if ((iVar7 == 0) && (in_stack_00000024 == -1)) { uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,iVar7); if ((char)uVar5 != '\0') { uVar17._0_1_ = '\0'; uVar17._1_1_ = '\0'; uVar17._2_1_ = '\0'; uVar17._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar17); if ((char)uVar5 != '\0') { FUN_10048620(&local_14,pGVar11); local_8 = 3; FUN_10048620(&stack0x0000001c,pGVar1); local_8._0_1_ = 4; pwVar13 = L"NamespaceMgr::FillWriteUserToken - WriteVerified - User GUID [%s] :: Verified GUID [%s] :: Verified Flag [%d]" ; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); local_8 = CONCAT31(local_8._1_3_,3); SysFreeString((BSTR)in_stack_0000001c); local_8 = 0xffffffff; SysFreeString(local_14); } } this = (void *)(param_1 + 0xc4); FUN_1004fd30((int)this); this_00 = local_18; local_20 = 0; local_1c = (LPVOID)0x0; HVar8 = FUN_10048af0(local_18,param_1,pGVar1); if (HVar8 != 0) { FUN_1004fe00(this,&local_20); } in_stack_00000038 = (wchar_t *)0x0; local_8 = 5; pOVar9 = (BSTR)FUN_10042330((int *)&stack0x00000038); local_14 = (BSTR)FUN_10048690(this_00,in_stack_00000020,pOVar9); if (local_14 == (BSTR)0x0) { FUN_1003ead0(&stack0x00000038); Sleep(100); ppvVar18 = &local_1c; puVar14 = &local_20; in_stack_0000001c = (GUID *)&stack0xffffffc4; pOVar9 = (BSTR)FUN_10048530(&stack0x00000038); local_8 = CONCAT31((int3)((uint)local_8 >> 8),5); HVar8 = FUN_10042a00(local_18,pOVar9,puVar14,ppvVar18); uVar20._0_1_ = '\0'; uVar20._1_1_ = '\0'; uVar20._2_1_ = '\0'; uVar20._3_1_ = '\0'; if (HVar8 == 0) { uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar20); if ((char)uVar5 != '\0') { uVar19._0_1_ = '\0'; uVar19._1_1_ = '\0'; uVar19._2_1_ = '\0'; uVar19._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar19); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - Verifier [%s] found in UserToken Map"; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } FUN_1004fd60(this,in_stack_00000038); FUN_1004fe00(this,&local_20); if (local_1c != (LPVOID)0x0) { CoTaskMemFree(local_1c); } } else { uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar20); if ((char)uVar5 != '\0') { uVar21._0_1_ = '\0'; uVar21._1_1_ = '\0'; uVar21._2_1_ = '\0'; uVar21._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar21); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - Verifier [%s] not found in UserToken Map"; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } } } local_8 = 0xffffffff; SysFreeString(in_stack_00000038); pcVar10 = SysFreeString_exref; pGVar11 = in_stack_00000020; } } } bVar2 = FUN_100086e0((byte *)pGVar1,&DAT_100699f8); if (((CONCAT31(extraout_var_03,bVar2) == 0) && (bVar2 = FUN_100086e0((byte *)pGVar11,&DAT_100699f8), CONCAT31(extraout_var_04,bVar2) != 0)) && (in_stack_00000024 == 0)) { uVar22._0_1_ = '\0'; uVar22._1_1_ = '\0'; uVar22._2_1_ = '\0'; uVar22._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar22); if ((char)uVar5 != '\0') { uVar23._0_1_ = '\0'; uVar23._1_1_ = '\0'; uVar23._2_1_ = '\0'; uVar23._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar23); if ((char)uVar5 != '\0') { FUN_10048620(&stack0x00000020,pGVar1); local_8 = 7; pwVar13 = L"NamespaceMgr::FillWriteUserToken - Operate/Tune/Configure Write - User GUID [%s] :: Verified Flag [%d]" ; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); local_8 = 0xffffffff; (*pcVar10)(); } } FUN_10048af0(local_18,param_1,pGVar1); } bVar2 = FUN_100086e0((byte *)pGVar1,&DAT_100699f8); if (CONCAT31(extraout_var_05,bVar2) == 0) { bVar2 = FUN_100086e0((byte *)pGVar11,&DAT_100699f8); if (CONCAT31(extraout_var_06,bVar2) != 0) { uVar26._0_1_ = '\0'; uVar26._1_1_ = '\0'; uVar26._2_1_ = '\0'; uVar26._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar26); if ((char)uVar5 != '\0') { uVar27._0_1_ = '\0'; uVar27._1_1_ = '\0'; uVar27._2_1_ = '\0'; uVar27._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar27); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - VerifierId is NULL :: Verified Flag [%d]" ; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } FUN_1004fcc0(param_1 + 0xc4); } } else { uVar24._0_1_ = '\0'; uVar24._1_1_ = '\0'; uVar24._2_1_ = '\0'; uVar24._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar24); if ((char)uVar5 != '\0') { uVar25._0_1_ = '\0'; uVar25._1_1_ = '\0'; uVar25._2_1_ = '\0'; uVar25._3_1_ = '\0'; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); uVar5 = FUN_1001b4e0(puVar6,uVar12,uVar25); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - UserId is NULL :: Verified Flag [%d]"; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } FUN_1004fcc0(param_1 + 0xbc); } } else { FUN_1004fd30(param_1 + 0xbc); local_20 = 0; local_1c = (LPVOID)0x0; FUN_1004fe00((void *)(param_1 + 0xbc),&local_20); if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 8; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } uVar5 = FUN_1001b4e0(&DAT_100b5df0,DAT_100cce9c,0); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - Supervisory Write - MxOperationType [%ld]"; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 9; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(); } if (DAT_100b5df4 == -1) goto LAB_100497ce; FUN_10018190(&DAT_100b5df0); } if ((DAT_100b5e94 != (code *)0x0) && (cVar3 = (*DAT_100b5e94)(), cVar3 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 10; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } uVar5 = FUN_1001b4e0(&DAT_100b5df0,DAT_100cce9c,0); if ((char)uVar5 != '\0') { pwVar13 = L"Write to item %d in Namespace id %d"; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } LAB_100497ce: if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 0xb; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } if (DAT_100b5df4 == -1) { if (((DAT_100b5df0 != 0) || (FUN_10019b00(&DAT_100b5df0), DAT_100b5df0 != 0)) && (DAT_100b5e8c != (code *)0x0)) { (*DAT_100b5e8c)(); } if (DAT_100b5df4 == -1) { ExceptionList = local_10; return local_14; } FUN_10018190(&DAT_100b5df0); } if ((DAT_100b5e94 != (code *)0x0) && (cVar3 = (*DAT_100b5e94)(), cVar3 != '\0')) { if ((DAT_100b5ec4 & 1) == 0) { DAT_100b5ec4 = DAT_100b5ec4 | 1; local_8 = 0xc; FUN_10017f80(&DAT_100b5df0); _atexit(FUN_1005d930); local_8 = 0xffffffff; } uVar5 = FUN_1001b4e0(&DAT_100b5df0,DAT_100cce9c,0); if ((char)uVar5 != '\0') { pwVar13 = L"NamespaceMgr::FillWriteUserToken - submit to write queue.."; uVar12 = DAT_100cce9c; puVar6 = FUN_1001b5b0(); CWrapLogger_LogCustom((int)puVar6,uVar12,pwVar13); } } ExceptionList = local_10; return local_14; } ```