int __fastcall sub_402ED2(int a1, _BYTE *a2, unsigned int a3) { int result; // r0 if ( a3 == 0xFFFF ) { a3 = 0; } else if ( a3 > 0x1F ) { return 7; } result = ((int (__fastcall *)(_BYTE *, int, unsigned int))loc_40274C)(a1: a2, a2: a1, a3); if ( result == 0 ) { *a2 = 1; return 0; } return result; }