fe2a6db786
rust / build / test / clippy / fmt (push) Has been cancelled
Layout:
- src/ .NET 10 x64 reference: MxNativeCodec, MxNativeClient,
MxAsbClient, probes, tests, harnesses. Executable spec.
- design/ Architectural plan for the Rust port (M0–M6), error
model, protocol invariants, risks (R1–R16), adversarial
review log (review.md).
- rust/ Rust workspace. M0 skeleton + M1 codec parity.
mxaccess-codec: 215 unit tests + 2 cross-implementation
parity tests (byte-identical against .NET reference).
Other crates are M0 stubs awaiting M2+.
- captures/ Frida + netsh + pcap evidence per CLAUDE.md
("captures are evidence, not throwaway logs").
- analysis/ Decompiled C# (frida/proxy/decompiled-*),
Ghidra exports for native DLLs (`exports/` only —
working state at `projects/` and AVEVA's input
binaries at `input/` are gitignored).
- docs/ Reverse-engineering reference docs.
- tools/ Setup-LiveProbeEnv.ps1 (Infisical credential fetcher),
Compute-Crc.ps1 (.NET parity helper).
- .github/workflows/ Rust CI: fmt + build + test + clippy on Windows.
- LICENSE MIT (Joseph Doherty, 2026).
Verified:
- cargo test --workspace → 217 passed (215 unit + 2 .NET parity), 0 failed
- cargo clippy --workspace -- -D warnings → clean
- cargo fmt --all -- --check → clean
- cargo publish --dry-run -p mxaccess-codec → packages cleanly
Excluded from history (see .gitignore):
- **/bin, **/obj, **/target — build artifacts
- analysis/ghidra/projects/ — Ghidra working state (regenerable)
- analysis/ghidra/input/ — AVEVA proprietary DLLs (vendor IP)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5702 lines
217 KiB
Markdown
5702 lines
217 KiB
Markdown
# 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<T> 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<T> 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<T> 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;
|
|
}
|
|
|
|
|
|
```
|
|
|