docs: def PrivateKeyFromNEP2(nep2_key, passphrase):
          """
          Gets the private key from a NEP-2 encrypted private key
  
          Args:
              nep2_key (str): The nep-2 encrypted private key
              passphrase (str): The password to encrypt the private key with, as unicode string
  
          Returns:
              bytes: The private key
          """
          if not nep2_key or len(nep2_key) != 58:
              raise ValueError('Please provide a nep2_key with a length of 58 bytes (LEN: {0:d})'.format(len(nep2_key)))
  
          ADDRESS_HASH_SIZE = 4
          ADDRESS_HASH_OFFSET = len(NEP_FLAG) + len(NEP_HEADER)
  
          try:
              decoded_key = base58.b58decode_check(nep2_key)
          except Exception as e:
              raise ValueError("Invalid nep2_key")
  
          address_hash = decoded_key[ADDRESS_HASH_OFFSET:ADDRESS_HASH_OFFSET + ADDRESS_HASH_SIZE]
          encrypted = decoded_key[-32:]
  
          pwd_normalized = bytes(unicodedata.normalize('NFC', passphrase), 'utf-8')
          derived = scrypt.hash(pwd_normalized, address_hash,
                                N=SCRYPT_ITERATIONS,
                                r=SCRYPT_BLOCKSIZE,
                                p=SCRYPT_PARALLEL_FACTOR,
                                buflen=SCRYPT_KEY_LEN_BYTES)
  
          derived1 = derived[:32]
          derived2 = derived[32:]
  
          cipher = AES.new(derived2, AES.MODE_ECB)
          decrypted = cipher.decrypt(encrypted)
          private_key = xor_bytes(decrypted, derived1)
  
          # Now check that the address hashes match. If they don't, the password was wrong.
          kp_new = KeyPair(priv_key=private_key)
          kp_new_address = kp_new.GetAddress()
          kp_new_address_hash_tmp = hashlib.sha256(kp_new_address.encode("utf-8")).digest()
          kp_new_address_hash_tmp2 = hashlib.sha256(kp_new_address_hash_tmp).digest()
          kp_new_address_hash = kp_new_address_hash_tmp2[:4]
          if (kp_new_address_hash != address_hash):
              raise ValueError("Wrong passphrase")
  
          return private_key