int __fastcall sub_402F90(int a1, int a2) { int v4; // r7 int v5; // r5 int *v6; // r6 int v7; // r4 int v8; // r2 int v9; // r3 __int64 v10; // kr00_8 int v11; // r0 int v12; // r0 v4 = 0; sub_405084(a1: 0, a2: aAmdTaGcpCreate_2); v5 = a1 + 2048; v6 = (int *)(a1 + 7680); while ( 1 ) { if ( v4 == 0x40000000 ) { v7 = 785; goto LABEL_10; } if ( *(_DWORD *)(v5 + 32) == 0 ) break; v4 += 0x1000000; v5 += 88; } sub_40124C(a1: v5, a2: 88); *(_DWORD *)(v5 + 32) = 1; *(_QWORD *)(v5 + 8) = *(_QWORD *)(a2 + 16); v8 = *v6; v9 = v6[2]; v10 = *(_QWORD *)(a2 + 24); ++*v6; v6[2] = v9 + 1; v11 = v9 & 0xFFFFFF | v4; *(_QWORD *)(v5 + 16) = v10; *(_DWORD *)v5 = v11; if ( v8 == 0 ) { v12 = sub_405428(a1: 1); if ( v12 != 0 ) { v7 = v12 | 0x20000000; goto LABEL_10; } v11 = *(_DWORD *)v5; } *(_DWORD *)(a2 + 6480) = v11; v7 = 0; sub_405084(a1: 0, a2: aAmdTaGcpCreate_3); LABEL_10: sub_405084(a1: 0, a2: aAmdTaGcpCreate_4); return v7; }