Hisayasu Satô

Recently added

Welcome to the Illusion
0
480p

Welcome to the Illusion

An embittered young man who draws no physical pleasure from sex starts a club for his friends, luring young women into violent rape and torture ...
Pervert Ward: S&M Clinic
5.8
480p

Pervert Ward: S&M Clinic

An abusive psychologist enjoys torturing and abusing his wife. After rough sexual session of pain and dominance she decides to leave her husband. ...
Psychic Rose
5.2
480p

Psychic Rose

Jan. 27, 1990

Psychic Rose

The tale of an alienated young guy eager to discover a way to spend his bills. Financial relief shows up in the form of unknown e-mails directing ...
Serial Rape: Perverted Experiment
7.4
480p

Serial Rape: Perverted Experiment

Tired of the belligerence and bad manners of a female customer, two shop owners kidnap her and subject her to a series of sexual assaults and ...
Widow’s Perverted Hell
7.3
480p

Widow’s Perverted Hell

A married couple enjoy engaging in S&M sexual behavior, and the wife, Yuri, asserts, “The ultimate SM play is death.” After her ...
Turtle Vision
6.7
480p

Turtle Vision

Jul. 20, 1991

Turtle Vision

A deranged woman gouges out the eyes of the strangers she has sex with. She was once filmed being brutally raped on the roof of her school and is ...
Symbol of Release
5.6
480p

Symbol of Release

Jan. 24, 1992

Symbol of Release

Kasumi Yuka heads the cast of this silly softcore film from Hisayasu Sato, the usually far more sober cult filmmaker known for grim depictions of ...
The Bedroom
5.5
480p

The Bedroom

Sep. 12, 1992

The Bedroom

Erotic drama set in an underground Tokyo club called The Bedroom, where the female clientele are drugged into a trance-like state and are ...
Kyrie Eleison
5.7
480p

Kyrie Eleison

Mar. 05, 1993

Kyrie Eleison

A medical researcher working with a blind, mute quadriplegic patient begins to experiment with hypnotherapy as a means to fix his seemingly ...
Molester’s Train: Dirty Behavior
7
480p

Molester’s Train: Dirty Behavior

A boy, abandoned by the whole family – torn apart by obsessions, perversions and problems of every kind-start looking at everything around ...
Meet Me in the Dream: Wonderland
6.1
480p

Meet Me in the Dream: Wonderland

Young and beautiful germophobe Ritsuko moves into a picture perfect neighborhood with her parents, being monitored by a research team who want to ...
Distorted Sense of Touch
4.8
480p

Distorted Sense of Touch

One of legendary “pink” director Hisayasu Sato’s first of over 50 examinations of love and sex among the dregs of society, this ...
Subway Serial Rape
6.1
480p

Subway Serial Rape

May. 22, 1985

Subway Serial Rape

A man with a briefcase is being pursued by a small yakuza gang. The man resembles one of the gang’s leaders. After abandoning his vehicle, ...
Sex Virgin Unit: Party of Beasts
2.8
480p

Sex Virgin Unit: Party of Beasts

This film explores the lives of several disenfranchised urban residents, including a woman whose sole companionship comes from her erotic ...
Subway Serial Rape: Uniform Hunting
6.6
480p

Subway Serial Rape: Uniform Hunting

Two sisters are raped on the morning commute on their way to school on the subway, in full view of the passengers, by a bunch of chinpira. One ...
Shisei: The Tattooer
0
480p

Shisei: The Tattooer

Feb. 24, 2006

Shisei: The Tattooer

Seizou, a tattoo artist, dreams of creating lasting works of art that exist long after he passes. One day, he sees the perfect canvas: the ...
Soft Skin
6.3
480p

Soft Skin

Jan. 31, 1998

Soft Skin

Minako, a Tokyo housewife, is depressed that everyone has an active life outside the home except her. Taking her inspiration from TV reports of a ...
footer
requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * Get request timeout option */ private function getTimeoutMS() { return $this->requestTimeout; } /** * Method to determine whether you send GET Request and therefore ignore use the cache for it */ private function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * Method to get JS tag via CURL */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * Method to get JS tag via function file_get_contents() */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * Method to get JS tag via function fsockopen() */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); stream_set_timeout($fp, $this->getTimeout()); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); return isset($parts[1]) ? $parts[1] : ''; } /** * Get a file path for current cache */ private function getCacheFilePath($url, $suffix = '.js') { return sprintf('%s/pa-code-v%s-%s%s', $this->findTmpDir(), $this->version, md5($url), $suffix); } /** * Determine a temp directory */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * Check if PHP code is cached */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) cacheTtl * 60); } /** * Function to get JS tag via different helper method. It returns the first success response. */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * Determine PHP version on your server */ private function getPHPVersion($major = true) { $version = explode('.', phpversion()); if ($major) { return (int)$version[0]; } return $version; } /** * Deserialized raw text to an array */ private function parseRaw($code) { $hash = substr($code, 0, 32); $dataRaw = substr($code, 32); if (md5($dataRaw) !== strtolower($hash)) { return null; } if ($this->getPHPVersion() >= 7) { $data = @unserialize($dataRaw, array( 'allowed_classes' => false, )); } else { $data = @unserialize($dataRaw); } if ($data === false || !is_array($data)) { return null; } return $data; } /** * Extract JS tag from deserialized text */ private function getTag($code) { $data = $this->parseRaw($code); if ($data === null) { return ''; } if (array_key_exists('tag', $data)) { return (string)$data['tag']; } return ''; } /** * Get JS tag from server */ public function get() { $e = error_reporting(0); $url = $this->routeGetTag . '?' . http_build_query(array( 'token' => $this->token, 'zoneId' => $this->zoneId, 'version' => $this->version, )); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } /** Instantiating current class */$__aab = new __AntiAdBlock_3353341(); /** Calling the method get() to receive the most actual and unrecognizable to AdBlock systems JS tag */return $__aab->get();