int __fastcall sub_4030A4(int a1, int a2) { unsigned int v4; // r0 int v5; // r4 int v6; // r1 int v7; // r0 int v8; // r0 int v9; // r0 sub_405084(a1: 0, a2: aAmdTaGcpDestro); v4 = *(_DWORD *)(a2 + 16); if ( v4 >> 28 == 0 ) { v6 = a1 + 80 * HIBYTE(v4); if ( *(_DWORD *)(v6 + 768) == v4 ) { *(_DWORD *)(v6 + 792) = 0; v7 = *(_DWORD *)(a1 + 7680); if ( v7 == 0 || (v8 = v7 - 1, *(_DWORD *)(a1 + 7680) = v8, v8 == 0) ) { v9 = sub_405428(a1: 2); if ( v9 != 0 ) return v9 | 0x20000000; } v5 = 0; } else { v5 = 256; } sub_405084(a1: 0, a2: aAmdTaGcpDestro_0); return v5; } return 256; }