Как работать с этим json?
странный у вас говнокод получаеся, вначале кода вы используете устаревший способ для получения XMLHttpRequest() объекта ( new XMLHttpRequest() поддерживается ie8 и выше )
а потом вы используете jQuery в котором уже есть своя функция обертка для Ajax. И форматирование кода у вас никудышное, нельзя так делать<p class="center">Имя в игре</p>

<span id="check_login"></span>

<form method="POST" id="formx">    
  <input type="text" name="login"  id="login" class="input"/>
  <p class="center">Пароль в игре</p>
  <input type="text" name="pass" id="pass" class="input"/> 
  <span id="submit"></span> 
</form>

<script>
  $(function() {
    $("#formx").on("submit", function(e) {
      e.preventDefault();
      /* реализация ф-ции call() */
    });
    $("input[name=login]").on("keyup", function() {
      checkLogin($(this).val());
    });
    $("#submit").on("click", pass_hash);
  })

  function checkLogin(login) {
    $.post('/api/?alg=reg&action=save_validation', { login: login }, function(response) {
      if (response) {
        $("#check_login").html("<div class='message padd_top_10 padd_bot_10 red'><div><p>ВНИМАНИЕ! имя занято</p></div></div>");
        $("#submit").html("");
      } else {
        $("#check_login").html("<div class='message padd_top_10 padd_bot_10 yellow'><div><p>Имя свободно</p></div></div>");
        $("#submit").html('<div class="button orange"><input type="submit" name="" id= "btt" value="Выбрать имя"></div>');
      }
    });
  }

  function pass_hash() {
    var data = {
      login: $("#login").val(),
      pass: hex_sha512($("#pass").val())
    };
    $.post('/api/?alg=reg&action=save', { data: data }, function(response) {
      alert(response);
    });
  }
</script>
<form method="POST" id="formx" action="javascript:void(null);" onsubmit="call()">onsubmit="call()">ReferenceError: call is not defined1 reg.html:1:0
Функция call не определена