function loadExtensionProvider(bAsync) {
		var sProviderName = ControllerExtensionProvider._sExtensionProvider.replace(/\./g, "/"),
			oProvider = mExtensionProvider[sProviderName];

		// provider already available
		if (oProvider) {
			return bAsync ? Promise.resolve(oProvider) : oProvider;
		}

		// provider must be loaded
		if (sProviderName) {
			if (bAsync) {
				return new Promise(function(resolve, reject) {
					sap.ui.require([sProviderName], function(ExtensionProvider) {
						oProvider = new ExtensionProvider();
						mExtensionProvider[sProviderName] = oProvider;
						resolve(oProvider);
					}, reject);
				});
			} else {
				var ExtensionProviderClass = sap.ui.requireSync(sProviderName); // legacy-relevant: Sync path
				oProvider = new ExtensionProviderClass();
				mExtensionProvider[sProviderName] = oProvider;
				return oProvider;
			}
		} else {
			// no provider registered
			return bAsync ? Promise.resolve() : undefined;
		}
	}
Load the registered ExtensionProvider.

@param {boolean} bAsync Load async or not
@return {ExtensionProvider|Promise|undefined} ExtensionProvider <code>Promise</code> in case of asynchronous loading
          or the <code>ExtensionProvider</code> in case of synchronous loading or undefined in case no provider exists
@ui5-transform-hint replace-param bAsync true