int __fastcall sub_402E94(int a1, int a2) { int v4; // r7 int v5; // r6 __int64 *v6; // r0 int v7; // r4 __int64 v8; // kr00_8 int v9; // r1 __int64 v10; // kr08_8 int v11; // r0 int v12; // r0 v4 = 0; sub_405084(a1: 0, a2: aAmdTaGcpCreate); v5 = a1 + 768; v6 = (__int64 *)(a1 + 7680); while ( 1 ) { if ( v4 == 0x10000000 ) { v7 = 529; goto LABEL_10; } if ( *(_DWORD *)(v5 + 24) == 0 ) break; v5 += 80; v4 += 0x1000000; } *(_DWORD *)(v5 + 24) = 1; *(_DWORD *)(v5 + 4) = *(_DWORD *)(a2 + 24); v8 = *v6; v9 = *(_DWORD *)(a1 + 7684) + 1; v10 = *(_QWORD *)(a2 + 16); ++*(_DWORD *)v6; *(_DWORD *)(a1 + 7684) = v9; v11 = HIDWORD(v8) & 0xFFFFFF | v4; *(_QWORD *)(v5 + 16) = v10; *(_DWORD *)v5 = v11; if ( (_DWORD)v8 == 0 ) { v12 = sub_405428(a1: 1); if ( v12 != 0 ) { v7 = v12 | 0x20000000; goto LABEL_10; } v11 = *(_DWORD *)v5; } v7 = 0; *(_DWORD *)(a2 + 6480) = v11; sub_405084(a1: 0, a2: aAmdTaGcpCreate_0); LABEL_10: sub_405084(a1: 0, a2: off_402F8C); return v7; }