void setup_bones( player_t* player, matrix3x4_t* bone, int max_bones, int mask, float time ) {
const int backup_ik *( int* )( uintptr_t( player ) + ( offset_force_bone - 0x1c ) );
const int backup_client_effects = *( int* )( uintptr_t( player ) + 0x68 );
const int backup_effects = player->effects( ); // ( "CBaseEntity", "m_fEffects" )
const int backup_last_non_skipped_frame_cnt = *( int* )( uintptr_t( player ) + 0xa68 );
const int backup_anim_lod_flags = *( int* )( uintptr_t( player ) + 0xa28 );
*( int* )( uintptr_t( player ) + ( offset_force_bone - 0x1c ) ) = 0;
player->invalidate_bone_cache( );
*( int* )( uintptr_t( player ) + 0xa68 ) = 0;
*( int* )( uintptr_t( player ) + 0xa28 ) &= ~2;
*( int* )( uintptr_t( player ) + 0xA24 ) = -1;
*( int* )( uintptr_t( player ) + 0x68 ) |= 2;
player->effects( ) |= 8;
const int backup_frame_cnt = g_global_vars->m_frame_cnt;
g_global_vars->m_frame_cnt = -999; // bypass should_skip_anim_frame.
setup_bones = true;
player->renderable( )->setup_bones( bone, max_bones, mask, time );
setup_bones = false;
// restore frame cnt.
g_global_vars->m_frame_cnt = backup_frame_cnt;
*( int* )( uintptr_t( player ) + ( offset_force_bone - 0x1c ) ) = backup_ik;
player->effects( ) = backup_effects;
*( int* )( uintptr_t( player ) + 0x68 ) = backup_client_effects;
*( int* )( uintptr_t( player ) + 0xa28 ) = backup_anim_lod_flags;
}