require_auth2 is defined via REGISTER_INTRINSICS,it call the function of class authorization_api.
Finally,it's implemented in apply_context.require_authorization( account, permission ).
The macro REGISTER_INTRINSICS is apply for compiler intrinsics,it expand to:
_REGISTER_INTRINSIC(r,authorization_api,(require_authorization, void(int64_t, int64_t), "require_auth2", void(authorization_api::*)(const account_name&, const permission_name& permission) ))
According to args number,continue to expand to:
_REGISTER_INTRINSIC4(authorization_api,MOD,require_authorization,void(int64_t, int64_t),"require_auth2",void(authorization_api::*)(const account_name&, const permission_name& permission))(authorization_api,"env",(require_authorization, void(int64_t, int64_t), "require_auth2", void(authorization_api::*)(const account_name&, const permission_name& permission) ))
Eventually,choose wavm or binaryen compiler to process it.