What does this code do:

function _0x5e67(_0x57b88e, _0x353198) {
  const _0xadc2a = _0xadc2();
  return _0x5e67 = function(_0x5e6777, _0x595fa7) {
    _0x5e6777 = _0x5e6777 - 0x150;
    let _0x13d171 = _0xadc2a[_0x5e6777];
    return _0x13d171;
  },
  _0x5e67(_0x57b88e, _0x353198);
}
function _0xadc2() {
  const _0x3081dc = ['3714060biHjum', 'update', '10400FgJKbU', '4279289TxWcLy', 'Error: ', '430AOcJOb', 'value', '5174375nPmXOV', 'eu-west-1', 'log', 'Success!', '1001286eHduAg', 'password', '1314iRuJGk', 'This script is not working, #TODO repair later', 'getElementById', '8577mVyJTT', '953970ZzEKjO', 'config', 'eu-west-1:a4b696bc-7cc2-4818-a045-2ff49b601cbc', 'eu-west-1_sEBJdM3TJ'];
  _0xadc2 = function() {
    return _0x3081dc;
  };
  return _0xadc2();
} (function(_0x38460e, _0x569ada) {
  const _0x5d42c2 = _0x5e67,
  _0x57800e = _0x38460e();
  while ( !! []) {
    try {
      const _0x575928 = -parseInt(_0x5d42c2(0x154)) / 0x1 * (parseInt(_0x5d42c2(0x15c)) / 0x2) + parseInt(_0x5d42c2(0x160)) / 0x3 + -parseInt(_0x5d42c2(0x164)) / 0x4 + parseInt(_0x5d42c2(0x156)) / 0x5 + -parseInt(_0x5d42c2(0x15a)) / 0x6 + -parseInt(_0x5d42c2(0x152)) / 0x7 + -parseInt(_0x5d42c2(0x151)) / 0x8 * ( - parseInt(_0x5d42c2(0x15f)) / 0x9);
      if (_0x575928 === _0x569ada) break;
      else _0x57800e['push'](_0x57800e['shift']());
    } catch(_0x5927a9) {
      _0x57800e['push'](_0x57800e['shift']());
    }
  }
} (_0xadc2, 0x931a4));
function login() {
  const _0x5416c2 = _0x5e67;
  AWS[_0x5416c2(0x161)][_0x5416c2(0x150)]({
    'region': _0x5416c2(0x157)
  });
  const _0xd1dd90 = {
    'IdentityPool': _0x5416c2(0x162),
    'UserPool': _0x5416c2(0x163)
  },
  _0x1be46b = {
    'AuthFlow': 'USER_SRP_AUTH',
    'ClientId': 'g1l1udtdgp1cu30fogbucvh4d',
    'AuthParameters': {
      'USERNAME': document['getElementById']('username')['value'],
      'PASSWORD': document[_0x5416c2(0x15e)](_0x5416c2(0x15b))[_0x5416c2(0x155)]
    }
  };
  try {
    var _0x594dec = new AWS['CognitoIdentityServiceProvder']();
  } catch(_0x44a14f) {
    console[_0x5416c2(0x158)](_0x5416c2(0x15d)),
    console['log'](_0x44a14f);
  }
  _0x594dec['initiateAuth'](_0x1be46b,
  function(_0x4c92b3, _0x43ebe2) {
    const _0x12133a = _0x5416c2;
    _0x4c92b3 ? alert(_0x12133a(0x153) + _0x4c92b3) : alert(_0x12133a(0x159));
  });
}