code: function() {
          var l_sFile = arguments[0],
              l_sOutputDir = arguments[1],
              l_oOptions,
              l_oCallback,
              l_aUnrarredFiles = [],
              l_sError;
  
          // 0 -> file
          // 1 -> outputdir
          // 2 -> options OR callback
          // 3 -> Callback
  
          if (typeof(arguments[2]) === "function") {
              l_oOptions = {};
              l_oCallback = arguments[2];
          } else {
              l_oOptions = arguments[2] || {};
              l_oCallback = arguments[3];
          }
  
          if (!l_sFile || typeof(l_sFile) !== "string") {
              throw ("Unrar::Error, missing file argument.");
          }
  
          if (!l_sOutputDir || typeof(l_sOutputDir) !== "string") {
              throw ("Unrar::Error, missing output directory argument.");
          }
  
          if (!l_oCallback) {
              throw ("Unrar::Error, missing callback argument.");
          }
  
          childProcess = child_process.fork(path.join(__dirname, "js/UnrarSubprocess.js"), [l_sFile, l_sOutputDir]);
  
          childProcess.on('message', (m) => {
              if (m.event === "progress") {
                  if (l_oOptions.onProgress) {
                      l_oOptions.onProgress(m.data);
                  }
              } else if (m.event === "finish") {
                  l_aUnrarredFiles = m.data;
                  childProcess.kill();
              } else if (m.event === "error") {
                  l_sError = m.data;
                  childProcess.kill("SIGKILL");
              } else if (m.event === "abort") {
                  l_sError = m.data;
                  childProcess.kill("SIGKILL");
              }
  
          });
  
          childProcess.on('close', function() {
              l_oCallback(l_sError, l_aUnrarredFiles);
          });
      }
docs: file, , outputdir[, options]], callback if no output dir -> returns list of files if outputdir -> returns list of filenames ==============================================================================