int __fastcall sub_401768(int a1) { int v2; // r6 int v3; // r0 int v4; // r5 int v5; // r0 int v6; // r2 int *v8; // [sp+4h] [bp-14h] char v9; // [sp+17h] [bp-1h] BYREF v8 = (int *)off_40181C; v2 = sub_4011EC(); if ( v2 == 0 ) { v3 = sub_401580(a1: 14, a2: 0); if ( v3 != 0 ) { v4 = v3; v6 = off_401824[1]; v5 = *off_401824; *(_BYTE *)v4 = *(_QWORD *)off_401824; *(_DWORD *)(v4 + 4) = v6; *(_BYTE *)(v4 + 3) = HIBYTE(v5); *(_BYTE *)(v4 + 2) = BYTE2(v5); *(_BYTE *)(v4 + 1) = BYTE1(v5); sub_401000(a1: v4 + 8, a2: a1 + 2, a3: 6, a4: v4 + 4, a5: 11, a6: v8, a7: 48, a8: 1); ((void (__fastcall *)(int, int, int *, int, int, int))loc_40133C)( a1: v4, a2: 14, a3: (int *)off_40181C, a4: 48, a5: a1 + 8, a6: 48); v9 = 1; if ( *(_BYTE *)(a1 + 6) == 0 || (v2 = 5, sub_4011BE(a1: &v9) == 0) && v9 != 1 ) v2 = 0; sub_401482(a1: v4); } else { return 2; } } return v2; }