int __fastcall sub_401768(int a1) { unsigned int v1; // r6 int v2; // r5 int *v3; // r8 int *v4; // r4 int v5; // r0 _DWORD *v6; // r1 int v7; // r2 v1 = *(_DWORD *)(a1 + 16); if ( v1 > 0x3F ) return 259; v3 = (int *)off_4023E4; v4 = &(*off_4023E4)[22 * v1]; v5 = *v4; if ( *v4 == 3 ) { if ( v4[18] != 1 ) { LABEL_9: v2 = 0; goto LABEL_10; } v6 = off_4017D8; v7 = *(_DWORD *)off_4017D8; if ( *(_DWORD *)off_4017D8 == 0 ) { v2 = 265; goto LABEL_10; } v2 = 0; v4[18] = 0; *v6 = v7 - 1; if ( v7 != 1 ) { LABEL_10: sub_401188(a1: v4, a2: 88); v3[22 * v1 + 13] = -1; return v2; } sub_402E22(a1: 4); v5 = *v4; } if ( v5 != 0 ) goto LABEL_9; return 259; }