Index: /trunk/include/CuTest.h
===================================================================
--- /trunk/include/CuTest.h	(revision 17)
+++ /trunk/include/CuTest.h	(revision 17)
@@ -0,0 +1,138 @@
+/*******************
+
+LICENSE
+
+Copyright (c) 2003 Asim Jalis
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+claim that you wrote the original software. If you use this software in
+a product, an acknowledgment in the product documentation would be
+appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+distribution.
+
+**********************/
+
+#ifndef CU_TEST_H
+#define CU_TEST_H
+
+#include <setjmp.h>
+#include <stdarg.h>
+
+/* CuString */
+
+char* CuStrAlloc(int size);
+char* CuStrCopy(const char* old);
+
+#define CU_ALLOC(TYPE)		((TYPE*) malloc(sizeof(TYPE)))
+
+#define HUGE_STRING_LEN	8192
+#define STRING_MAX		256
+#define STRING_INC		256
+
+typedef struct
+{
+	int length;
+	int size;
+	char* buffer;
+} CuString;
+
+void CuStringInit(CuString* str);
+CuString* CuStringNew(void);
+void CuStringRead(CuString* str, const char* path);
+void CuStringAppend(CuString* str, const char* text);
+void CuStringAppendChar(CuString* str, char ch);
+void CuStringAppendFormat(CuString* str, const char* format, ...);
+void CuStringInsert(CuString* str, const char* text, int pos);
+void CuStringResize(CuString* str, int newSize);
+
+/* CuTest */
+
+typedef struct CuTest CuTest;
+
+typedef void (*TestFunction)(CuTest *);
+
+struct CuTest
+{
+	const char* name;
+	TestFunction function;
+	int failed;
+	int ran;
+	const char* message;
+	jmp_buf *jumpBuf;
+};
+
+void CuTestInit(CuTest* t, const char* name, TestFunction function);
+CuTest* CuTestNew(const char* name, TestFunction function);
+void CuTestRun(CuTest* tc);
+
+/* Internal versions of assert functions -- use the public versions */
+void CuFail_Line(CuTest* tc, const char* file, int line, const char* message2, const char* message);
+void CuAssert_Line(CuTest* tc, const char* file, int line, const char* message, int condition);
+void CuAssertStrEquals_LineMsg(CuTest* tc, 
+	const char* file, int line, const char* message, 
+	const char* expected, const char* actual);
+void CuAssertIntEquals_LineMsg(CuTest* tc, 
+	const char* file, int line, const char* message, 
+	int expected, int actual);
+void CuAssertDblEquals_LineMsg(CuTest* tc, 
+	const char* file, int line, const char* message, 
+	double expected, double actual, double delta);
+void CuAssertPtrEquals_LineMsg(CuTest* tc, 
+	const char* file, int line, const char* message, 
+	void* expected, void* actual);
+
+/* public assert functions */
+
+#define CuFail(tc, ms)                        CuFail_Line(  (tc), __FILE__, __LINE__, NULL, (ms))
+#define CuAssert(tc, ms, cond)                CuAssert_Line((tc), __FILE__, __LINE__, (ms), (cond))
+#define CuAssertTrue(tc, cond)                CuAssert_Line((tc), __FILE__, __LINE__, "assert failed", (cond))
+
+#define CuAssertStrEquals(tc,ex,ac)           CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
+#define CuAssertStrEquals_Msg(tc,ms,ex,ac)    CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
+#define CuAssertIntEquals(tc,ex,ac)           CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
+#define CuAssertIntEquals_Msg(tc,ms,ex,ac)    CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
+#define CuAssertDblEquals(tc,ex,ac,dl)        CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac),(dl))
+#define CuAssertDblEquals_Msg(tc,ms,ex,ac,dl) CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac),(dl))
+#define CuAssertPtrEquals(tc,ex,ac)           CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
+#define CuAssertPtrEquals_Msg(tc,ms,ex,ac)    CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
+
+#define CuAssertPtrNotNull(tc,p)        CuAssert_Line((tc),__FILE__,__LINE__,"null pointer unexpected",(p != NULL))
+#define CuAssertPtrNotNullMsg(tc,msg,p) CuAssert_Line((tc),__FILE__,__LINE__,(msg),(p != NULL))
+
+/* CuSuite */
+
+#define MAX_TEST_CASES	1024
+
+#define SUITE_ADD_TEST(SUITE,TEST)	CuSuiteAdd(SUITE, CuTestNew(#TEST, TEST))
+
+typedef struct
+{
+	int count;
+	CuTest* list[MAX_TEST_CASES];
+	int failCount;
+
+} CuSuite;
+
+
+void CuSuiteInit(CuSuite* testSuite);
+CuSuite* CuSuiteNew(void);
+void CuSuiteAdd(CuSuite* testSuite, CuTest *testCase);
+void CuSuiteAddSuite(CuSuite* testSuite, CuSuite* testSuite2);
+void CuSuiteRun(CuSuite* testSuite);
+void CuSuiteSummary(CuSuite* testSuite, CuString* summary);
+void CuSuiteDetails(CuSuite* testSuite, CuString* details);
+
+#endif /* CU_TEST_H */
Index: /trunk/src/CuTest.c
===================================================================
--- /trunk/src/CuTest.c	(revision 17)
+++ /trunk/src/CuTest.c	(revision 17)
@@ -0,0 +1,336 @@
+/*******************
+
+LICENSE
+
+Copyright (c) 2003 Asim Jalis
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+claim that you wrote the original software. If you use this software in
+a product, an acknowledgment in the product documentation would be
+appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not
+be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+distribution.
+
+**********************/
+
+#include <assert.h>
+#include <setjmp.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+#include "CuTest.h"
+
+/*-------------------------------------------------------------------------*
+ * CuStr
+ *-------------------------------------------------------------------------*/
+
+char* CuStrAlloc(int size)
+{
+	char* newStr = (char*) malloc( sizeof(char) * (size) );
+	return newStr;
+}
+
+char* CuStrCopy(const char* old)
+{
+	int len = strlen(old);
+	char* newStr = CuStrAlloc(len + 1);
+	strcpy(newStr, old);
+	return newStr;
+}
+
+/*-------------------------------------------------------------------------*
+ * CuString
+ *-------------------------------------------------------------------------*/
+
+void CuStringInit(CuString* str)
+{
+	str->length = 0;
+	str->size = STRING_MAX;
+	str->buffer = (char*) malloc(sizeof(char) * str->size);
+	str->buffer[0] = '\0';
+}
+
+CuString* CuStringNew(void)
+{
+	CuString* str = (CuString*) malloc(sizeof(CuString));
+	str->length = 0;
+	str->size = STRING_MAX;
+	str->buffer = (char*) malloc(sizeof(char) * str->size);
+	str->buffer[0] = '\0';
+	return str;
+}
+
+void CuStringResize(CuString* str, int newSize)
+{
+	str->buffer = (char*) realloc(str->buffer, sizeof(char) * newSize);
+	str->size = newSize;
+}
+
+void CuStringAppend(CuString* str, const char* text)
+{
+	int length;
+
+	if (text == NULL) {
+		text = "NULL";
+	}
+
+	length = strlen(text);
+	if (str->length + length + 1 >= str->size)
+		CuStringResize(str, str->length + length + 1 + STRING_INC);
+	str->length += length;
+	strcat(str->buffer, text);
+}
+
+void CuStringAppendChar(CuString* str, char ch)
+{
+	char text[2];
+	text[0] = ch;
+	text[1] = '\0';
+	CuStringAppend(str, text);
+}
+
+void CuStringAppendFormat(CuString* str, const char* format, ...)
+{
+	va_list argp;
+	char buf[HUGE_STRING_LEN];
+	va_start(argp, format);
+	vsprintf(buf, format, argp);
+	va_end(argp);
+	CuStringAppend(str, buf);
+}
+
+void CuStringInsert(CuString* str, const char* text, int pos)
+{
+	int length = strlen(text);
+	if (pos > str->length)
+		pos = str->length;
+	if (str->length + length + 1 >= str->size)
+		CuStringResize(str, str->length + length + 1 + STRING_INC);
+	memmove(str->buffer + pos + length, str->buffer + pos, (str->length - pos) + 1);
+	str->length += length;
+	memcpy(str->buffer + pos, text, length);
+}
+
+/*-------------------------------------------------------------------------*
+ * CuTest
+ *-------------------------------------------------------------------------*/
+
+void CuTestInit(CuTest* t, const char* name, TestFunction function)
+{
+	t->name = CuStrCopy(name);
+	t->failed = 0;
+	t->ran = 0;
+	t->message = NULL;
+	t->function = function;
+	t->jumpBuf = NULL;
+}
+
+CuTest* CuTestNew(const char* name, TestFunction function)
+{
+	CuTest* tc = CU_ALLOC(CuTest);
+	CuTestInit(tc, name, function);
+	return tc;
+}
+
+void CuTestRun(CuTest* tc)
+{
+	jmp_buf buf;
+	tc->jumpBuf = &buf;
+	if (setjmp(buf) == 0)
+	{
+		tc->ran = 1;
+		(tc->function)(tc);
+	}
+	tc->jumpBuf = 0;
+}
+
+static void CuFailInternal(CuTest* tc, const char* file, int line, CuString* string)
+{
+	char buf[HUGE_STRING_LEN];
+
+	sprintf(buf, "%s:%d: ", file, line);
+	CuStringInsert(string, buf, 0);
+
+	tc->failed = 1;
+	tc->message = string->buffer;
+	if (tc->jumpBuf != 0) longjmp(*(tc->jumpBuf), 0);
+}
+
+void CuFail_Line(CuTest* tc, const char* file, int line, const char* message2, const char* message)
+{
+	CuString string;
+
+	CuStringInit(&string);
+	if (message2 != NULL) 
+	{
+		CuStringAppend(&string, message2);
+		CuStringAppend(&string, ": ");
+	}
+	CuStringAppend(&string, message);
+	CuFailInternal(tc, file, line, &string);
+}
+
+void CuAssert_Line(CuTest* tc, const char* file, int line, const char* message, int condition)
+{
+	if (condition) return;
+	CuFail_Line(tc, file, line, NULL, message);
+}
+
+void CuAssertStrEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message, 
+	const char* expected, const char* actual)
+{
+	CuString string;
+	if ((expected == NULL && actual == NULL) ||
+	    (expected != NULL && actual != NULL &&
+	     strcmp(expected, actual) == 0))
+	{
+		return;
+	}
+
+	CuStringInit(&string);
+	if (message != NULL) 
+	{
+		CuStringAppend(&string, message);
+		CuStringAppend(&string, ": ");
+	}
+	CuStringAppend(&string, "expected <");
+	CuStringAppend(&string, expected);
+	CuStringAppend(&string, "> but was <");
+	CuStringAppend(&string, actual);
+	CuStringAppend(&string, ">");
+	CuFailInternal(tc, file, line, &string);
+}
+
+void CuAssertIntEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message, 
+	int expected, int actual)
+{
+	char buf[STRING_MAX];
+	if (expected == actual) return;
+	sprintf(buf, "expected <%d> but was <%d>", expected, actual);
+	CuFail_Line(tc, file, line, message, buf);
+}
+
+void CuAssertDblEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message, 
+	double expected, double actual, double delta)
+{
+	char buf[STRING_MAX];
+	if (fabs(expected - actual) <= delta) return;
+	sprintf(buf, "expected <%lf> but was <%lf>", expected, actual);
+	CuFail_Line(tc, file, line, message, buf);
+}
+
+void CuAssertPtrEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message, 
+	void* expected, void* actual)
+{
+	char buf[STRING_MAX];
+	if (expected == actual) return;
+	sprintf(buf, "expected pointer <0x%p> but was <0x%p>", expected, actual);
+	CuFail_Line(tc, file, line, message, buf);
+}
+
+
+/*-------------------------------------------------------------------------*
+ * CuSuite
+ *-------------------------------------------------------------------------*/
+
+void CuSuiteInit(CuSuite* testSuite)
+{
+	testSuite->count = 0;
+	testSuite->failCount = 0;
+}
+
+CuSuite* CuSuiteNew(void)
+{
+	CuSuite* testSuite = CU_ALLOC(CuSuite);
+	CuSuiteInit(testSuite);
+	return testSuite;
+}
+
+void CuSuiteAdd(CuSuite* testSuite, CuTest *testCase)
+{
+	assert(testSuite->count < MAX_TEST_CASES);
+	testSuite->list[testSuite->count] = testCase;
+	testSuite->count++;
+}
+
+void CuSuiteAddSuite(CuSuite* testSuite, CuSuite* testSuite2)
+{
+	int i;
+	for (i = 0 ; i < testSuite2->count ; ++i)
+	{
+		CuTest* testCase = testSuite2->list[i];
+		CuSuiteAdd(testSuite, testCase);
+	}
+}
+
+void CuSuiteRun(CuSuite* testSuite)
+{
+	int i;
+	for (i = 0 ; i < testSuite->count ; ++i)
+	{
+		CuTest* testCase = testSuite->list[i];
+		CuTestRun(testCase);
+		if (testCase->failed) { testSuite->failCount += 1; }
+	}
+}
+
+void CuSuiteSummary(CuSuite* testSuite, CuString* summary)
+{
+	int i;
+	for (i = 0 ; i < testSuite->count ; ++i)
+	{
+		CuTest* testCase = testSuite->list[i];
+		CuStringAppend(summary, testCase->failed ? "F" : ".");
+	}
+	CuStringAppend(summary, "\n\n");
+}
+
+void CuSuiteDetails(CuSuite* testSuite, CuString* details)
+{
+	int i;
+	int failCount = 0;
+
+	if (testSuite->failCount == 0)
+	{
+		int passCount = testSuite->count - testSuite->failCount;
+		const char* testWord = passCount == 1 ? "test" : "tests";
+		CuStringAppendFormat(details, "OK (%d %s)\n", passCount, testWord);
+	}
+	else
+	{
+		if (testSuite->failCount == 1)
+			CuStringAppend(details, "There was 1 failure:\n");
+		else
+			CuStringAppendFormat(details, "There were %d failures:\n", testSuite->failCount);
+
+		for (i = 0 ; i < testSuite->count ; ++i)
+		{
+			CuTest* testCase = testSuite->list[i];
+			if (testCase->failed)
+			{
+				failCount++;
+				CuStringAppendFormat(details, "%d) %s: %s\n",
+					failCount, testCase->name, testCase->message);
+			}
+		}
+		CuStringAppend(details, "\n!!!FAILURES!!!\n");
+
+		CuStringAppendFormat(details, "Runs: %d ",   testSuite->count);
+		CuStringAppendFormat(details, "Passes: %d ", testSuite->count - testSuite->failCount);
+		CuStringAppendFormat(details, "Fails: %d\n",  testSuite->failCount);
+	}
+}
Index: /trunk/src/cutest_sh_tiger0.c
===================================================================
--- /trunk/src/cutest_sh_tiger0.c	(revision 17)
+++ /trunk/src/cutest_sh_tiger0.c	(revision 17)
@@ -0,0 +1,236 @@
+
+#include "config_xor.h"
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "CuTest.h"
+
+#include "sh_tiger.h"
+
+static void init() {
+
+  extern unsigned char TcpFlag[8][PW_LEN+1];
+  extern UINT32  ErrFlag[2];
+  unsigned char * dez = NULL;
+  int i;
+
+  skey = (sh_key_t *) malloc (sizeof(sh_key_t));
+  if (skey == NULL) 
+    {
+      perror(_("sh_init"));
+      _exit (EXIT_FAILURE);
+    }
+
+  skey->mlock_failed = SL_FALSE;
+  skey->rngI         = BAD;
+  /* properly initialized later 
+   */
+  skey->rng0[0] = 0x03; skey->rng0[1] = 0x09; skey->rng0[2] = 0x17;
+  skey->rng1[0] = 0x03; skey->rng1[1] = 0x09; skey->rng1[2] = 0x17;
+  skey->rng2[0] = 0x03; skey->rng2[1] = 0x09; skey->rng2[2] = 0x17;
+
+  for (i = 0; i < KEY_BYT; ++i)
+    skey->poolv[i] = '\0';
+
+  skey->poolc        = 0;
+
+  skey->ErrFlag[0]   = ErrFlag[0];
+  ErrFlag[0]         = 0;
+  skey->ErrFlag[1]   = ErrFlag[1];
+  ErrFlag[1]         = 0;
+
+  dez = &(TcpFlag[POS_TF-1][0]);
+  for (i = 0; i < PW_LEN; ++i)
+    { 
+       skey->pw[i] = (char) (*dez); 
+      (*dez)      = '\0';
+      ++dez; 
+    }
+
+  skey->sh_sockpass[0]  = '\0';
+  skey->sigkey_old[0]   = '\0';
+  skey->sigkey_new[0]   = '\0';
+  skey->mailkey_old[0]  = '\0';
+  skey->mailkey_new[0]  = '\0';
+  skey->crypt[0]        = '\0';
+  skey->session[0]      = '\0';
+  skey->vernam[0]       = '\0';
+
+}
+  
+void Test_tiger(CuTest *tc) {
+
+  char * input;
+  char * actual;
+  char * expected;
+
+  input  = "";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "24F0130C63AC933216166E76B1BB925FF373DE2D49584E7A";
+  CuAssertStrEquals(tc, expected, actual);
+
+  input  = "abc";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "F258C1E88414AB2A527AB541FFC5B8BF935F7B951C132951";
+  CuAssertStrEquals(tc, expected, actual);
+  
+  input  = "Tiger";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "9F00F599072300DD276ABB38C8EB6DEC37790C116F9D2BDF";
+  CuAssertStrEquals(tc, expected, actual);
+  
+  input  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "87FB2A9083851CF7470D2CF810E6DF9EB586445034A5A386";
+  CuAssertStrEquals(tc, expected, actual);
+  
+  input  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "467DB80863EBCE488DF1CD1261655DE957896565975F9197";
+  CuAssertStrEquals(tc, expected, actual);
+  
+  input  = "Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "0C410A042968868A1671DA5A3FD29A725EC1E457D3CDB303";
+  CuAssertStrEquals(tc, expected, actual);
+  
+  input  = "Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge.";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "EBF591D5AFA655CE7F22894FF87F54AC89C811B6B0DA3193";
+  CuAssertStrEquals(tc, expected, actual);
+  
+  input  = "Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge, 1996.";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "3D9AEB03D1BD1A6357B2774DFD6D5B24DD68151D503974FC";
+  CuAssertStrEquals(tc, expected, actual);
+  
+  input  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-";
+  actual = sh_tiger_hash(input, TIGER_DATA, strlen(input));
+  expected = "00B83EB4E53440C576AC6AAEE0A7485825FD15E70A59FFE4";
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_tiger_file(CuTest *tc) {
+
+  SL_TICKET     rval_open;
+  FILE * fp;
+  int result;
+  char * actual;
+  char * expected;
+
+  init();
+
+  fp = fopen("cutest_foo", "w");
+  CuAssertPtrNotNull(tc, fp);
+
+  result = fprintf(fp, "%s\n", 
+		   "ABCDEFGHIJKLMNOPQRSTUVWXYZ=abcdefghijklmnopqrstuvwxyz+0123456789");
+  CuAssertTrue(tc, result >= 0);
+
+  result = fclose(fp);
+  CuAssertTrue(tc, result == 0);
+  
+  result = sh_tiger_hashtype("TIGER192");
+  CuAssertTrue(tc, result == 0);
+
+  /* same result as GnuPG 1.0.6 (gpg --load-extension tiger --print-md TIGER192) 
+   */
+  actual = sh_tiger_generic_hash("cutest_foo", TIGER_FILE, 0, 0);
+  expected = "0E9321614C966A33608C2A15F156E0435CACFD1213B9F095";
+  CuAssertStrEquals(tc, expected, actual);
+
+  rval_open = sl_open_fastread ("cutest_foo", SL_YESPRIV);
+  CuAssertTrue(tc, rval_open >= 0);
+  tiger_fd  = rval_open;
+
+  actual = sh_tiger_generic_hash("cutest_foo", TIGER_FD, 0, 0);
+  expected = "0E9321614C966A33608C2A15F156E0435CACFD1213B9F095";
+  CuAssertStrEquals(tc, expected, actual);
+
+  result = sl_close(rval_open);
+  CuAssertTrue(tc, result == 0);
+
+  result = sh_tiger_hashtype("MD5");
+  CuAssertTrue(tc, result == 0);
+
+  rval_open = sl_open_fastread ("cutest_foo", SL_YESPRIV);
+  CuAssertTrue(tc, rval_open >= 0);
+  tiger_fd  = rval_open;
+
+  /* same result as GNU md5sum 
+   */
+  actual = sh_tiger_generic_hash("cutest_foo", TIGER_FD, 0, 0);
+  expected = "AEEC4DDA496BCFBA691F4E8863BA84C00000000000000000";
+  CuAssertStrEquals(tc, expected, actual);
+
+  result = sl_close(rval_open);
+  CuAssertTrue(tc, result == 0);
+
+  result = sh_tiger_hashtype("SHA1");
+  CuAssertTrue(tc, result == 0);
+
+  rval_open = sl_open_fastread ("cutest_foo", SL_YESPRIV);
+  CuAssertTrue(tc, rval_open >= 0);
+  tiger_fd  = rval_open;
+
+  /* same result as gpg --print-md SHA1 
+   */
+  actual = sh_tiger_generic_hash("cutest_foo", TIGER_FD, 0, 0);
+  expected = "2FE65D1D995B8F8BC8B13F798C07E7E935A787ED00000000";
+  CuAssertStrEquals(tc, expected, actual);
+
+  result = sl_close(rval_open);
+  CuAssertTrue(tc, result == 0);
+
+  result = remove("cutest_foo");
+  CuAssertTrue(tc, result == 0);
+
+  /* --------------------------------------------------- */
+
+  fp = fopen("cutest_foo", "w");
+  CuAssertPtrNotNull(tc, fp);
+
+  result = fprintf(fp, "\n");
+  CuAssertTrue(tc, result >= 0);
+
+  result = fclose(fp);
+  CuAssertTrue(tc, result == 0);
+  
+  result = sh_tiger_hashtype("TIGER192");
+  CuAssertTrue(tc, result == 0);
+
+  /* same result as GnuPG 1.0.6 (gpg --load-extension tiger --print-md TIGER192) 
+   */
+  actual = sh_tiger_generic_hash("cutest_foo", TIGER_FILE, 0, 0);
+  expected = "F987845A0EA784367BF9E4DB09014995810F27C99C891734";
+  CuAssertStrEquals(tc, expected, actual);
+
+  result = remove("cutest_foo");
+  CuAssertTrue(tc, result == 0);
+
+  /* --------------------------------------------------- */
+
+  fp = fopen("cutest_foo", "w");
+  CuAssertPtrNotNull(tc, fp);
+
+  result = fprintf(fp, "Tiger - A Fast New Hash Function, by Ross Anderson and Eli Biham, proceedings of Fast Software Encryption 3, Cambridge, 1996.\n");
+  CuAssertTrue(tc, result >= 0);
+
+  result = fclose(fp);
+  CuAssertTrue(tc, result == 0);
+  
+  result = sh_tiger_hashtype("TIGER192");
+  CuAssertTrue(tc, result == 0);
+
+  /* same result as GnuPG 1.0.6 (gpg --load-extension tiger --print-md TIGER192) 
+   */
+  actual = sh_tiger_generic_hash("cutest_foo", TIGER_FILE, 0, 0);
+  expected = "75B98A7AE257A230189828A40792E30B4038D286479CC7B8";
+  CuAssertStrEquals(tc, expected, actual);
+
+  result = remove("cutest_foo");
+  CuAssertTrue(tc, result == 0);
+
+
+}  
Index: /trunk/src/cutest_sh_tools.c
===================================================================
--- /trunk/src/cutest_sh_tools.c	(revision 17)
+++ /trunk/src/cutest_sh_tools.c	(revision 17)
@@ -0,0 +1,116 @@
+
+#include "config_xor.h"
+
+#include <string.h>
+#include "CuTest.h"
+#include "sh_tools.h"
+
+void Test_sh_tools_safe_name_01(CuTest *tc) {
+  /* xml specific */
+  char* input = strdup("hello<wo>rld\"foo&");
+  char* actual = sh_tools_safe_name(input, 1);
+#ifdef SH_USE_XML
+  char* expected = "hello=3cwo=3erld=22foo=26";
+#else
+  char* expected = "hello<wo>rld\"foo&";
+#endif
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_sh_tools_safe_name_02(CuTest *tc) {
+  /* html entities */
+  char* input = strdup("hello&amp;&quot;&gt;&lt;");
+  char* actual = sh_tools_safe_name(input, 0);
+  char* expected = "hello=26=22=3e=3c";
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_sh_tools_safe_name_03(CuTest *tc) {
+  char* input = strdup("\\\'hello\\");
+  char* actual = sh_tools_safe_name(input, 0);
+  char* expected = "=27hello";
+  CuAssertStrEquals(tc, expected, actual);
+
+  input = strdup("hello \"world\\\"");
+  actual = sh_tools_safe_name(input, 0);
+  expected = "hello \"world=22";
+  CuAssertStrEquals(tc, expected, actual);
+
+  input = strdup("hello\\\\");
+  actual = sh_tools_safe_name(input, 0);
+  expected = "hello=5c";
+  CuAssertStrEquals(tc, expected, actual);
+
+  input = strdup("hello\\n");
+  actual = sh_tools_safe_name(input, 0);
+  expected = "hello=0a";
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_sh_tools_safe_name_04(CuTest *tc) {
+  /* invalid and valid octal code */
+  char* input = strdup("hello\\\n");
+  char* actual = sh_tools_safe_name(input, 0);
+  char* expected = "hello";
+  CuAssertStrEquals(tc, expected, actual);
+
+  input = strdup("hello\\100");
+  actual = sh_tools_safe_name(input, 0);
+  expected = "hello=40";
+  CuAssertStrEquals(tc, expected, actual);
+
+  input = strdup("h\\\"ello\\100a");
+  actual = sh_tools_safe_name(input, 0);
+  expected = "h=22ello=40a";
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_sh_tools_safe_name_05(CuTest *tc) {
+  /* encoding of '=' */
+  char* input = strdup("he=llo=\"foo\"");
+  char* actual = sh_tools_safe_name(input, 0);
+  char* expected = "he=3dllo=\"foo\"";
+  CuAssertStrEquals(tc, expected, actual);
+
+  input = strdup("he=llo=<foo>");
+  actual = sh_tools_safe_name(input, 0);
+  expected = "he=3dllo=<foo>";
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_sh_tools_safe_name_06(CuTest *tc) {
+  /* line break removal */
+  char* input = strdup("hello\nworld");
+  char* actual = sh_tools_safe_name(input, 0);
+  char* expected = "hello world";
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_sh_tools_safe_name_07(CuTest *tc) {
+  /* non-printable chars */
+  char* input = strdup("hello world");
+  char* actual;
+  char* expected;
+
+  input[0]  = 0x01;
+  input[5]  = 0xFF;
+  input[10] = 0xF0;
+
+  actual   = sh_tools_safe_name(input, 0);
+  expected = "=01ello=ffworl=f0";
+  CuAssertStrEquals(tc, expected, actual);
+}
+
+void Test_is_numeric_01(CuTest *tc) {
+  char* input  = strdup("hello world");
+
+  CuAssertTrue(tc, !is_numeric(input));
+
+  input  = strdup("127.0.0.1");
+  CuAssertTrue(tc, is_numeric(input));
+  input  = strdup("127.0.0.de");
+  CuAssertTrue(tc, !is_numeric(input));
+  input  = strdup("127");
+  CuAssertTrue(tc, is_numeric(input));
+}
+
Index: /trunk/src/cutest_zAVLTree.c
===================================================================
--- /trunk/src/cutest_zAVLTree.c	(revision 17)
+++ /trunk/src/cutest_zAVLTree.c	(revision 17)
@@ -0,0 +1,247 @@
+
+#include "config_xor.h"
+
+#include <string.h>
+#include "CuTest.h"
+#include "zAVLTree.h"
+
+struct ztest {
+  char name[32];
+};
+
+static zAVLTree * ztest_tree   = NULL;
+
+static zAVLKey ztest_key (void const * arg)
+{
+  const struct ztest * sa = (const struct ztest *) arg;
+  return (zAVLKey) sa->name;
+}
+
+static void free_node (void * inptr)
+{
+  struct ztest * ptr = (struct ztest *) inptr;
+  ptr->name[0] = '\0';
+}
+
+void Test_zAVLTree(CuTest *tc) {
+  zAVLCursor    cursor;
+
+  int result;
+  int counter = 0;
+
+  struct ztest z1 = { "abc" };
+  struct ztest z2 = { "aac" };
+  struct ztest z3 = { "aaa1" };
+  struct ztest z4 = { "aaa3" };
+  struct ztest z5 = { "aaa2" };
+  struct ztest z6 = { "aaa6" };
+  struct ztest z7 = { "aaa5" };
+  struct ztest z8 = { "aaa4" };
+
+  struct ztest * ptr;
+
+  ptr = zAVLFirst(&cursor, ztest_tree);
+  CuAssertTrue(tc, NULL == ptr);
+
+  ztest_tree = zAVLAllocTree (ztest_key);
+  CuAssertPtrNotNull(tc, ztest_tree);
+
+  do {
+
+  ++counter;
+
+  result = zAVLInsert(ztest_tree, &z1);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z2);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z3);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z4);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z5);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z6);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z7);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z8);
+  CuAssertTrue(tc, 0 == result);
+
+  ptr = zAVLFirst(&cursor, ztest_tree);
+  CuAssertStrEquals(tc, ptr->name, z3.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z5.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z4.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z8.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z7.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z6.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z2.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z1.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLInsert(ztest_tree, &z8);
+  CuAssertTrue(tc, 0 != result);
+  result = zAVLInsert(ztest_tree, &z7);
+  CuAssertTrue(tc, 0 != result);
+  result = zAVLInsert(ztest_tree, &z6);
+  CuAssertTrue(tc, 0 != result);
+  result = zAVLInsert(ztest_tree, &z5);
+  CuAssertTrue(tc, 0 != result);
+
+  ptr = zAVLSearch(ztest_tree, z1.name);
+  CuAssertStrEquals(tc, ptr->name, z1.name);
+  ptr = zAVLSearch(ztest_tree, z2.name);
+  CuAssertStrEquals(tc, ptr->name, z2.name);
+  ptr = zAVLSearch(ztest_tree, z3.name);
+  CuAssertStrEquals(tc, ptr->name, z3.name);
+  ptr = zAVLSearch(ztest_tree, z4.name);
+  CuAssertStrEquals(tc, ptr->name, z4.name);
+
+  ptr = zAVLFirst(&cursor, ztest_tree);
+  CuAssertStrEquals(tc, ptr->name, z3.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z5.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z4.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z8.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z7.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z6.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z2.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z1.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertTrue(tc, NULL == ptr);
+
+
+  ptr = zAVLSearch(ztest_tree, z5.name);
+  CuAssertStrEquals(tc, ptr->name, z5.name);
+  ptr = zAVLSearch(ztest_tree, z6.name);
+  CuAssertStrEquals(tc, ptr->name, z6.name);
+  ptr = zAVLSearch(ztest_tree, z7.name);
+  CuAssertStrEquals(tc, ptr->name, z7.name);
+  ptr = zAVLSearch(ztest_tree, z8.name);
+  CuAssertStrEquals(tc, ptr->name, z8.name);
+  ptr = zAVLSearch(ztest_tree, "foobar");
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z8.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z8.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z3.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z3.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z1.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z1.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLInsert(ztest_tree, &z1);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z8);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z3);
+  CuAssertTrue(tc, 0 == result);
+
+  ptr = zAVLFirst(&cursor, ztest_tree);
+  CuAssertStrEquals(tc, ptr->name, z3.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z5.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z4.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z8.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z7.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z6.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z2.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertStrEquals(tc, ptr->name, z1.name);
+  ptr = zAVLNext(&cursor);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z1.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z1.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z2.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z2.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z3.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z3.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z4.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z4.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z5.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z5.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z6.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z6.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z7.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z7.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+  result = zAVLDelete(ztest_tree, z8.name);
+  CuAssertTrue(tc, 0 == result);
+  ptr = zAVLSearch(ztest_tree, z8.name);
+  CuAssertTrue(tc, NULL == ptr);
+
+} while (counter < 100);
+
+  result = zAVLInsert(ztest_tree, &z1);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z2);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z3);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z4);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z5);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z6);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z7);
+  CuAssertTrue(tc, 0 == result);
+  result = zAVLInsert(ztest_tree, &z8);
+  CuAssertTrue(tc, 0 == result);
+
+  zAVLFreeTree (ztest_tree, free_node);
+  CuAssertTrue (tc, z1.name[0] == '\0');
+  CuAssertTrue (tc, z2.name[0] == '\0');
+  CuAssertTrue (tc, z3.name[0] == '\0');
+  CuAssertTrue (tc, z4.name[0] == '\0');
+  CuAssertTrue (tc, z5.name[0] == '\0');
+  CuAssertTrue (tc, z6.name[0] == '\0');
+  CuAssertTrue (tc, z7.name[0] == '\0');
+  CuAssertTrue (tc, z8.name[0] == '\0');
+}
Index: /trunk/src/make-tests.sh
===================================================================
--- /trunk/src/make-tests.sh	(revision 17)
+++ /trunk/src/make-tests.sh	(revision 17)
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Auto generate single AllTests file for CuTest.
+# Searches through all *.c files in the current directory.
+# Prints to stdout.
+# Author: Asim Jalis
+# Date: 01/08/2003
+
+if test $# -eq 0 ; then FILES=*.c ; else FILES=$* ; fi
+
+echo '
+
+/* This is auto-generated code. Edit at your own peril. */
+
+#include <stdio.h>
+#include "CuTest.h"
+
+'
+
+cat $FILES | grep '^void Test' | 
+    sed -e 's/(.*$//' \
+        -e 's/$/(CuTest*);/' \
+        -e 's/^/extern /'
+
+echo \
+'
+
+void RunAllTests(void) 
+{
+    CuString *output = CuStringNew();
+    CuSuite* suite = CuSuiteNew();
+
+'
+cat $FILES | grep '^void Test' | 
+    sed -e 's/^void //' \
+        -e 's/(.*$//' \
+        -e 's/^/    SUITE_ADD_TEST(suite, /' \
+        -e 's/$/);/'
+
+echo \
+'
+    CuSuiteRun(suite);
+    CuSuiteSummary(suite, output);
+    CuSuiteDetails(suite, output);
+    printf("%s\n", output->buffer);
+}
+
+int main(void)
+{
+    RunAllTests();
+    return 0;
+}
+'
Index: /trunk/src/sh_tiger1.s
===================================================================
--- /trunk/src/sh_tiger1.s	(revision 17)
+++ /trunk/src/sh_tiger1.s	(revision 17)
@@ -0,0 +1,4866 @@
+	.file	"sh_tiger1.c"
+	.text
+.globl tiger_compress
+	.type	tiger_compress, @function
+tiger_compress:
+	pushl	%ebp
+	pushl	%edi
+	pushl	%esi
+	pushl	%ebx
+	subl	$544, %esp
+	movl	568(%esp), %ebp
+	movl	568(%esp), %eax
+	movl	568(%esp), %ebx
+	movl	(%ebp), %ecx
+	movl	564(%esp), %edi
+	movl	%ecx, 12(%esp)
+	movl	4(%eax), %esi
+	movl	%esi, 8(%esp)
+	movl	12(%ebx), %edx
+	movl	8(%ebx), %ecx
+	movl	%edx, 4(%esp)
+	movl	16(%ebx), %eax
+	movl	20(%ebx), %ebp
+	movl	%ecx, 540(%esp)
+	movl	%eax, 536(%esp)
+	movl	%ebp, (%esp)
+	movl	(%edi), %esi
+	movl	%esi, 532(%esp)
+	movl	4(%edi), %edx
+	movl	%edx, 528(%esp)
+	movl	8(%edi), %ebx
+	movl	%ebx, 524(%esp)
+	movl	12(%edi), %ebp
+	movl	%ebp, 520(%esp)
+	movl	16(%edi), %eax
+	movl	%eax, 516(%esp)
+	movl	20(%edi), %ecx
+	movl	%ecx, 512(%esp)
+	movl	24(%edi), %esi
+	movl	%esi, 508(%esp)
+	movl	28(%edi), %edx
+	movl	%edx, 504(%esp)
+	movl	32(%edi), %ebx
+	movl	%ebx, 500(%esp)
+	movl	36(%edi), %ebp
+	movl	%ebp, 496(%esp)
+	movl	40(%edi), %eax
+	movl	%eax, 492(%esp)
+	movl	44(%edi), %ecx
+	movl	532(%esp), %eax
+	movl	%ecx, 488(%esp)
+	movl	48(%edi), %esi
+	movl	528(%esp), %ecx
+	movl	%esi, 484(%esp)
+	movl	52(%edi), %edx
+	movl	(%esp), %esi
+	movl	%edx, 480(%esp)
+	movl	56(%edi), %ebx
+	xorl	%ecx, %esi
+	movl	%ebx, 476(%esp)
+	movl	60(%edi), %ebp
+	movl	%esi, 468(%esp)
+	movl	$tiger_table, %esi
+	movl	%ebp, 472(%esp)
+	movl	536(%esp), %ebp
+	xorl	%eax, %ebp
+	movl	%ebp, %edi
+	movl	%ebp, %ebx
+	shrl	$16, %edi
+	andl	$255, %ebx
+	andl	$255, %edi
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%edi,8), %ecx
+	movl	4(%esi,%ebx,8), %eax
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%edi,8), %edx
+	xorl	%eax, %edx
+	movzbl	468(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %edi
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	468(%esp), %eax
+	xorl	%edi, %ecx
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %edi
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%edi, %ecx
+	xorl	%ebx, %edx
+	cmpl	%ecx, 12(%esp)
+	movl	12(%esp), %edi
+	setb	%al
+	subl	%ecx, %edi
+	addl	%eax, %edx
+	movl	%edi, 464(%esp)
+	movl	8(%esp), %eax
+	subl	%edx, %eax
+	movl	%eax, 460(%esp)
+	movl	%ebp, %edx
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	xorl	%ebx, %eax
+	movl	tiger_table+4100(,%edx,8), %ebx
+	movl	tiger_table+6148(,%ecx,8), %edx
+	movl	468(%esp), %ecx
+	xorl	%edx, %ebx
+	movzbl	%ch, %edx
+	movl	tiger_table+2048(,%edx,8), %edi
+	xorl	%edi, %eax
+	movl	tiger_table+2052(,%edx,8), %edi
+	movl	%ecx, %edx
+	shrl	$24, %edx
+	xorl	%edi, %ebx
+	movl	4(%esi,%edx,8), %edi
+	movl	(%esi,%edx,8), %ecx
+	xorl	%edi, %ebx
+	movl	540(%esp), %edi
+	xorl	%ecx, %eax
+	addl	%eax, %edi
+	cmpl	%eax, %edi
+	setb	%al
+	movzbl	%al, %ecx
+	leal	(%ebx,%ecx), %edx
+	movl	4(%esp), %ebx
+	leal	0(,%edi,4), %ecx
+	movl	%edi, %eax
+	addl	%edx, %ebx
+	addl	%ecx, %edi
+	shrl	$30, %eax
+	leal	0(,%ebx,4), %edx
+	orl	%eax, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	xorl	%ecx, %ecx
+	addl	%edx, %ebx
+	movl	%ebx, 444(%esp)
+	movl	476(%esp), %edx
+	movl	532(%esp), %ebx
+	movl	472(%esp), %eax
+	xorl	$-1515870811, %edx
+	cmpl	%edx, 532(%esp)
+	setb	%cl
+	subl	%edx, %ebx
+	movl	%ebx, 456(%esp)
+	movl	524(%esp), %ebx
+	xorl	$-1515870811, %eax
+	xorl	%ebx, 464(%esp)
+	addl	%ecx, %eax
+	movl	528(%esp), %edx
+	movl	520(%esp), %ecx
+	movzbl	464(%esp),%ebx
+	subl	%eax, %edx
+	movl	464(%esp), %eax
+	xorl	%ecx, 460(%esp)
+	movl	%edx, 452(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%esi,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	460(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	460(%esp), %eax
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%ebx, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %edi
+	setb	%bl
+	subl	%ecx, %edi
+	addl	%ebx, %edx
+	movl	%edi, 448(%esp)
+	movl	464(%esp), %eax
+	subl	%edx, 444(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ecx,8), %edi
+	xorl	%ebx, %edx
+	movl	460(%esp), %ebx
+	xorl	%edi, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %edi
+	xorl	%edi, %eax
+	movl	tiger_table+2052(,%ecx,8), %edi
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%edi, %edx
+	movl	(%esi,%ecx,8), %edi
+	movl	4(%esi,%ecx,8), %ebx
+	xorl	%edi, %eax
+	xorl	%ebx, %edx
+	leal	(%ebp,%eax), %ebx
+	cmpl	%eax, %ebx
+	setb	%al
+	movl	%ebx, %edi
+	movzbl	%al, %ebp
+	addl	%ebp, %edx
+	movl	468(%esp), %ebp
+	leal	0(,%ebx,4), %ecx
+	shrl	$30, %edi
+	xorl	%eax, %eax
+	addl	%edx, %ebp
+	leal	0(,%ebp,4), %edx
+	orl	%edi, %edx
+	leal	(%ebx,%ecx), %edi
+	cmpl	%ecx, %edi
+	setb	%al
+	movl	456(%esp), %ecx
+	addl	%eax, %edx
+	leal	(%ebp,%edx), %ebx
+	movl	516(%esp), %ebp
+	xorl	%ebp, 448(%esp)
+	movl	452(%esp), %eax
+	movl	%ebx, 424(%esp)
+	movl	520(%esp), %ebx
+	movl	524(%esp), %edx
+	xorl	%eax, %ebx
+	movl	448(%esp), %eax
+	movl	%ebx, 432(%esp)
+	xorl	%ecx, %edx
+	movl	512(%esp), %ecx
+	movzbl	448(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ecx, 444(%esp)
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	%edx, 440(%esp)
+	movl	(%esi,%ebx,8), %edx
+	movl	4(%esi,%ebx,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	444(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	444(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %edi
+	setb	%bl
+	subl	%ecx, %edi
+	addl	%ebx, %edx
+	movl	%edi, 428(%esp)
+	movl	448(%esp), %eax
+	subl	%edx, 424(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ecx,8), %edi
+	xorl	%ebx, %edx
+	movl	444(%esp), %ebx
+	xorl	%edi, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %edi
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	4(%esi,%ecx,8), %ebx
+	movl	(%esi,%ecx,8), %ebp
+	xorl	%edi, %edx
+	xorl	%ebx, %edx
+	movl	464(%esp), %ebx
+	xorl	%ebp, %eax
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%al
+	movzbl	%al, %edi
+	leal	0(,%ebx,4), %ecx
+	addl	%edi, %edx
+	movl	460(%esp), %edi
+	shrl	$30, %ebp
+	xorl	%eax, %eax
+	addl	%edx, %edi
+	leal	0(,%edi,4), %edx
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	movl	440(%esp), %ebx
+	setb	%al
+	addl	%eax, %edx
+	movl	516(%esp), %eax
+	leal	(%edi,%edx), %edx
+	movl	440(%esp), %edi
+	addl	%ebx, %eax
+	movl	%edx, 412(%esp)
+	movl	432(%esp), %edx
+	cmpl	%edi, %eax
+	movl	%eax, 436(%esp)
+	setb	%cl
+	movl	512(%esp), %ebx
+	movl	508(%esp), %edi
+	movzbl	%cl, %eax
+	addl	%edx, %eax
+	xorl	%edi, 428(%esp)
+	addl	%ebx, %eax
+	movl	504(%esp), %ecx
+	movl	%eax, 420(%esp)
+	movl	428(%esp), %eax
+	movzbl	428(%esp),%ebx
+	xorl	%ecx, 424(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	4(%esi,%ebx,8), %edi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	424(%esp),%eax
+	xorl	%edi, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %edi
+	movl	424(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%edi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %edi
+	xorl	%ebx, %ecx
+	xorl	%edi, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	movl	%ebp, 416(%esp)
+	movl	428(%esp), %eax
+	subl	%edx, 412(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %edi
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%edi,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%edi,8), %ecx
+	xorl	%ebx, %edx
+	movl	424(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %edi
+	xorl	%ebp, %eax
+	movl	%ebx, %ebp
+	xorl	%edi, %edx
+	shrl	$24, %ebp
+	movl	(%esi,%ebp,8), %ebx
+	movl	4(%esi,%ebp,8), %edi
+	xorl	%ebx, %eax
+	movl	448(%esp), %ebx
+	xorl	%edi, %edx
+	movl	444(%esp), %edi
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%cl
+	movzbl	%cl, %eax
+	shrl	$30, %ebp
+	addl	%eax, %edx
+	leal	0(,%ebx,4), %ecx
+	addl	%edx, %edi
+	leal	0(,%edi,4), %edx
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	addl	%ebx, %edx
+	movl	436(%esp), %ebx
+	leal	(%edi,%edx), %eax
+	movl	%eax, 396(%esp)
+	movl	440(%esp), %edx
+	movl	508(%esp), %edi
+	movl	432(%esp), %eax
+	notl	%edx
+	movl	440(%esp), %ecx
+	sall	$19, %edx
+	xorl	%ebx, %edx
+	xorl	%ebx, %ebx
+	cmpl	%edx, 508(%esp)
+	setb	%bl
+	subl	%edx, %edi
+	movl	%edi, 408(%esp)
+	movl	420(%esp), %edx
+	shrl	$13, %ecx
+	sall	$19, %eax
+	movl	500(%esp), %edi
+	orl	%ecx, %eax
+	xorl	%edi, 416(%esp)
+	notl	%edx
+	xorl	%eax, %edx
+	addl	%ebx, %edx
+	movl	504(%esp), %ebx
+	movl	416(%esp), %eax
+	movl	496(%esp), %ecx
+	subl	%edx, %ebx
+	shrl	$16, %eax
+	movl	%ebx, 404(%esp)
+	movzbl	416(%esp),%ebx
+	andl	$255, %eax
+	xorl	%ecx, 412(%esp)
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	(%esi,%ebx,8), %edx
+	movl	4(%esi,%ebx,8), %edi
+	movzbl	412(%esp),%ebx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4096(,%ebx,8), %eax
+	xorl	%edi, %edx
+	movl	tiger_table+4100(,%ebx,8), %edi
+	movl	412(%esp), %ebx
+	xorl	%eax, %ecx
+	xorl	%edi, %edx
+	shrl	$16, %ebx
+	andl	$255, %ebx
+	movl	tiger_table+6144(,%ebx,8), %eax
+	movl	tiger_table+6148(,%ebx,8), %edi
+	xorl	%eax, %ecx
+	xorl	%edi, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebp
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebp
+	movl	%ebp, 400(%esp)
+	subl	%edx, 396(%esp)
+	movl	416(%esp), %edx
+	movzbl	%dh, %ebp
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ebp,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ebp,8), %ecx
+	xorl	%ebx, %edx
+	movl	412(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %edi
+	movl	tiger_table+2052(,%ecx,8), %ebp
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%edi, %eax
+	movl	4(%esi,%ecx,8), %ebx
+	movl	(%esi,%ecx,8), %edi
+	xorl	%ebp, %edx
+	xorl	%ebx, %edx
+	movl	428(%esp), %ebx
+	xorl	%edi, %eax
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %edi
+	setb	%al
+	movzbl	%al, %ebp
+	leal	0(,%ebx,4), %ecx
+	addl	%ebp, %edx
+	movl	424(%esp), %ebp
+	shrl	$30, %edi
+	xorl	%eax, %eax
+	addl	%edx, %ebp
+	leal	0(,%ebp,4), %edx
+	orl	%edi, %edx
+	leal	(%ebx,%ecx), %edi
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	movl	404(%esp), %eax
+	leal	(%ebp,%edx), %ebx
+	movl	%ebx, 376(%esp)
+	movl	492(%esp), %ebp
+	movl	496(%esp), %ebx
+	xorl	%ebp, 400(%esp)
+	movl	408(%esp), %ecx
+	movl	500(%esp), %edx
+	xorl	%eax, %ebx
+	movl	400(%esp), %eax
+	xorl	%ecx, %edx
+	movl	%ebx, 384(%esp)
+	movl	488(%esp), %ecx
+	shrl	$16, %eax
+	movzbl	400(%esp),%ebx
+	movl	%edx, 392(%esp)
+	andl	$255, %eax
+	xorl	%ecx, 396(%esp)
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	(%esi,%ebx,8), %edx
+	movl	4(%esi,%ebx,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	396(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	396(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %edi
+	setb	%bl
+	subl	%ecx, %edi
+	addl	%ebx, %edx
+	movl	%edi, 380(%esp)
+	movl	400(%esp), %eax
+	subl	%edx, 376(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ecx,8), %edi
+	xorl	%ebx, %edx
+	movl	396(%esp), %ebx
+	xorl	%edi, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %edi
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	4(%esi,%ecx,8), %ebx
+	movl	(%esi,%ecx,8), %ebp
+	xorl	%edi, %edx
+	xorl	%ebx, %edx
+	movl	416(%esp), %ebx
+	xorl	%ebp, %eax
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%al
+	movzbl	%al, %edi
+	leal	0(,%ebx,4), %ecx
+	addl	%edi, %edx
+	movl	412(%esp), %edi
+	shrl	$30, %ebp
+	xorl	%eax, %eax
+	addl	%edx, %edi
+	leal	0(,%edi,4), %edx
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	movl	392(%esp), %ebx
+	setb	%al
+	addl	%eax, %edx
+	movl	492(%esp), %eax
+	leal	(%edi,%edx), %edx
+	movl	392(%esp), %edi
+	addl	%ebx, %eax
+	movl	%edx, 364(%esp)
+	movl	384(%esp), %edx
+	cmpl	%edi, %eax
+	movl	%eax, 388(%esp)
+	setb	%cl
+	movl	488(%esp), %ebx
+	movl	484(%esp), %edi
+	movzbl	%cl, %eax
+	addl	%edx, %eax
+	xorl	%edi, 380(%esp)
+	addl	%ebx, %eax
+	movl	480(%esp), %ecx
+	movl	%eax, 372(%esp)
+	movl	380(%esp), %eax
+	movzbl	380(%esp),%ebx
+	xorl	%ecx, 376(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	4(%esi,%ebx,8), %edi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	376(%esp),%eax
+	xorl	%edi, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %edi
+	movl	376(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%edi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %edi
+	xorl	%ebx, %ecx
+	xorl	%edi, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	movl	%ebp, 368(%esp)
+	movl	380(%esp), %eax
+	subl	%edx, 364(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %edi
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%edi,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%edi,8), %ecx
+	xorl	%ebx, %edx
+	movl	376(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %edi
+	xorl	%ebp, %eax
+	movl	%ebx, %ebp
+	xorl	%edi, %edx
+	shrl	$24, %ebp
+	movl	(%esi,%ebp,8), %ebx
+	movl	4(%esi,%ebp,8), %edi
+	xorl	%ebx, %eax
+	movl	400(%esp), %ebx
+	xorl	%edi, %edx
+	movl	396(%esp), %edi
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%cl
+	movzbl	%cl, %eax
+	shrl	$30, %ebp
+	addl	%eax, %edx
+	leal	0(,%ebx,4), %ecx
+	addl	%edx, %edi
+	leal	0(,%edi,4), %edx
+	movl	392(%esp), %eax
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	addl	%ebx, %edx
+	movl	388(%esp), %ebx
+	leal	(%edi,%edx), %ecx
+	movl	384(%esp), %edx
+	shrl	$23, %eax
+	movl	%ecx, 288(%esp)
+	notl	%ebx
+	movl	484(%esp), %edi
+	sall	$9, %edx
+	movl	372(%esp), %ecx
+	orl	%edx, %eax
+	xorl	%eax, %ebx
+	xorl	%edx, %edx
+	movl	384(%esp), %eax
+	cmpl	%ebx, 484(%esp)
+	notl	%eax
+	setb	%dl
+	subl	%ebx, %edi
+	shrl	$23, %eax
+	movl	480(%esp), %ebx
+	movl	%edi, 356(%esp)
+	movl	476(%esp), %edi
+	xorl	%ecx, %eax
+	xorl	%edi, 368(%esp)
+	addl	%edx, %eax
+	subl	%eax, %ebx
+	movl	%ebx, 352(%esp)
+	movl	472(%esp), %ecx
+	movl	368(%esp), %eax
+	movzbl	368(%esp),%ebx
+	xorl	%ecx, 364(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	4(%esi,%ebx,8), %edi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	364(%esp),%eax
+	xorl	%edi, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %edi
+	movl	364(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%edi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %edi
+	xorl	%ebx, %ecx
+	xorl	%edi, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	movl	%ebp, 292(%esp)
+	movl	368(%esp), %eax
+	subl	%edx, 288(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %edi
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%edi,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%edi,8), %ecx
+	xorl	%ebx, %edx
+	movl	364(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %edi
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	4(%esi,%ecx,8), %ebx
+	movl	(%esi,%ecx,8), %ebp
+	xorl	%edi, %edx
+	xorl	%ebx, %edx
+	movl	380(%esp), %ebx
+	xorl	%ebp, %eax
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	leal	0(,%ebx,4), %ecx
+	setb	%al
+	movzbl	%al, %edi
+	movl	%ebx, %ebp
+	addl	%edi, %edx
+	movl	376(%esp), %edi
+	addl	%ecx, %ebx
+	shrl	$30, %ebp
+	movl	%ebx, 360(%esp)
+	xorl	%eax, %eax
+	addl	%edx, %edi
+	leal	0(,%edi,4), %edx
+	orl	%ebp, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	movl	356(%esp), %ebp
+	addl	%eax, %edx
+	leal	(%edi,%edx), %eax
+	movl	476(%esp), %edi
+	movl	456(%esp), %edx
+	movl	%eax, 268(%esp)
+	movl	352(%esp), %ecx
+	xorl	%ebp, %edi
+	movl	472(%esp), %ebp
+	addl	%edi, %edx
+	movl	%edx, 348(%esp)
+	xorl	%ecx, %ebp
+	cmpl	%edi, %edx
+	setb	%bl
+	movl	452(%esp), %ecx
+	movzbl	%bl, %eax
+	leal	(%ebp,%eax), %edx
+	movl	348(%esp), %ebx
+	movl	%edi, %eax
+	notl	%eax
+	addl	%ecx, %edx
+	sall	$19, %eax
+	movl	%edx, 344(%esp)
+	xorl	%ebx, %eax
+	xorl	%ebx, %ebx
+	cmpl	%eax, 440(%esp)
+	movl	%edi, %ecx
+	movl	440(%esp), %edx
+	setb	%bl
+	subl	%eax, %edx
+	movl	%ebp, %eax
+	movl	%edx, 340(%esp)
+	movl	344(%esp), %edx
+	shrl	$13, %ecx
+	sall	$19, %eax
+	orl	%ecx, %eax
+	notl	%edx
+	xorl	%eax, %edx
+	movl	432(%esp), %ecx
+	addl	%ebx, %edx
+	movl	340(%esp), %eax
+	movl	436(%esp), %ebx
+	subl	%edx, %ecx
+	movl	%ecx, 336(%esp)
+	xorl	%eax, %ebx
+	xorl	%eax, %eax
+	movl	%ebx, 332(%esp)
+	movl	420(%esp), %edx
+	xorl	%ecx, %edx
+	movl	%edx, 324(%esp)
+	movl	408(%esp), %edx
+	movl	324(%esp), %ecx
+	addl	%ebx, %edx
+	cmpl	%ebx, %edx
+	setb	%al
+	movl	%edx, 328(%esp)
+	addl	%ecx, %eax
+	movl	404(%esp), %ecx
+	addl	%ecx, %eax
+	movl	%edx, %ecx
+	notl	%ecx
+	movl	%eax, 320(%esp)
+	movl	%ebx, %eax
+	movl	324(%esp), %ebx
+	shrl	$23, %eax
+	xorl	%edx, %edx
+	sall	$9, %ebx
+	orl	%ebx, %eax
+	xorl	%eax, %ecx
+	movl	392(%esp), %ebx
+	cmpl	%ecx, 392(%esp)
+	movl	324(%esp), %eax
+	setb	%dl
+	subl	%ecx, %ebx
+	movl	320(%esp), %ecx
+	notl	%eax
+	movl	%ebx, 316(%esp)
+	shrl	$23, %eax
+	xorl	%ecx, %eax
+	addl	%edx, %eax
+	movl	384(%esp), %edx
+	movl	388(%esp), %ecx
+	subl	%eax, %edx
+	movl	356(%esp), %eax
+	xorl	%ebx, %ecx
+	movl	%edx, 312(%esp)
+	movl	372(%esp), %ebx
+	movl	%ecx, 308(%esp)
+	addl	%ecx, %eax
+	xorl	%edx, %ebx
+	movl	%eax, 304(%esp)
+	cmpl	%ecx, %eax
+	setb	%dl
+	movl	%ebx, 300(%esp)
+	movl	352(%esp), %ecx
+	movzbl	%dl, %eax
+	movl	304(%esp), %edx
+	addl	%ebx, %eax
+	xorl	%ebx, %ebx
+	addl	%ecx, %eax
+	xorl	$-1985229329, %edx
+	movl	%eax, 296(%esp)
+	cmpl	%edx, %edi
+	movl	296(%esp), %eax
+	setb	%bl
+	subl	%edx, %edi
+	movl	344(%esp), %ecx
+	movl	%edi, 280(%esp)
+	movl	348(%esp), %edi
+	xorl	$19088743, %eax
+	xorl	%edi, 292(%esp)
+	addl	%ebx, %eax
+	subl	%eax, %ebp
+	movl	%ebp, 276(%esp)
+	movl	292(%esp), %ebx
+	movzbl	292(%esp),%ebp
+	xorl	%ecx, 288(%esp)
+	shrl	$16, %ebx
+	andl	$255, %ebx
+	movl	(%esi,%ebp,8), %edx
+	movl	tiger_table+2048(,%ebx,8), %ecx
+	movl	4(%esi,%ebp,8), %eax
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%ebx,8), %edx
+	movzbl	288(%esp),%ebx
+	xorl	%eax, %edx
+	movl	tiger_table+4096(,%ebx,8), %edi
+	movl	tiger_table+4100(,%ebx,8), %ebp
+	xorl	%edi, %ecx
+	movl	288(%esp), %edi
+	xorl	%ebp, %edx
+	movl	360(%esp), %ebp
+	shrl	$16, %edi
+	andl	$255, %edi
+	movl	tiger_table+6144(,%edi,8), %eax
+	movl	tiger_table+6148(,%edi,8), %ebx
+	xorl	%eax, %ecx
+	xorl	%ebx, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, 360(%esp)
+	setb	%al
+	subl	%ecx, %ebp
+	movl	%ebp, 272(%esp)
+	addl	%eax, %edx
+	movl	292(%esp), %eax
+	subl	%edx, 268(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ecx,8), %edi
+	xorl	%ebx, %edx
+	movl	288(%esp), %ebx
+	xorl	%edi, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %edi
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	(%esi,%ecx,8), %ebx
+	movl	4(%esi,%ecx,8), %ebp
+	xorl	%edi, %edx
+	movl	368(%esp), %ecx
+	xorl	%ebx, %eax
+	movl	%esi, %edi
+	xorl	%ebp, %edx
+	addl	%eax, %ecx
+	movl	364(%esp), %ebp
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	addl	%ebp, %edx
+	movl	%ecx, %eax
+	leal	0(,%ecx,8), %ebx
+	shrl	$29, %eax
+	leal	0(,%edx,8), %ebp
+	orl	%eax, %ebp
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebx
+	setb	%al
+	leal	(%edx,%eax), %eax
+	movl	280(%esp), %edx
+	subl	%ecx, %ebx
+	movl	%ebx, 284(%esp)
+	subl	%eax, %ebp
+	xorl	%ecx, %ecx
+	xorl	$-1515870811, %edx
+	movl	348(%esp), %ebx
+	movl	276(%esp), %eax
+	cmpl	%edx, 348(%esp)
+	setb	%cl
+	subl	%edx, %ebx
+	movl	%ebx, 260(%esp)
+	movl	340(%esp), %ebx
+	xorl	$-1515870811, %eax
+	xorl	%ebx, 272(%esp)
+	addl	%ecx, %eax
+	movl	344(%esp), %edx
+	movl	336(%esp), %ecx
+	movzbl	272(%esp),%ebx
+	subl	%eax, %edx
+	movl	272(%esp), %eax
+	xorl	%ecx, 268(%esp)
+	movl	%edx, 256(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%esi,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	268(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	268(%esp), %eax
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	movl	284(%esp), %ebx
+	cmpl	%ecx, 284(%esp)
+	setb	%al
+	subl	%ecx, %ebx
+	movl	%ebx, 252(%esp)
+	addl	%eax, %edx
+	movl	272(%esp), %eax
+	subl	%edx, %ebp
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	268(%esp), %ebx
+	movzbl	%bh, %ecx
+	xorl	tiger_table+2048(,%ecx,8), %eax
+	xorl	tiger_table+2052(,%ecx,8), %edx
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	movl	(%esi,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	4(%esi,%ecx,8), %ebx
+	movl	292(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%bl
+	movzbl	%bl, %eax
+	movl	288(%esp), %ebx
+	addl	%eax, %edx
+	addl	%ebx, %edx
+	leal	0(,%edx,8), %eax
+	leal	0(,%ecx,8), %ebx
+	movl	%eax, 228(%esp)
+	movl	%ecx, %eax
+	shrl	$29, %eax
+	orl	%eax, 228(%esp)
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebx
+	setb	%al
+	subl	%ecx, %ebx
+	movl	340(%esp), %ecx
+	movl	%ebx, 264(%esp)
+	movl	260(%esp), %ebx
+	leal	(%edx,%eax), %eax
+	subl	%eax, 228(%esp)
+	xorl	%ebx, %ecx
+	movl	256(%esp), %edx
+	movl	%ecx, 244(%esp)
+	movl	332(%esp), %ebx
+	movl	336(%esp), %eax
+	xorl	%ebx, 252(%esp)
+	movl	324(%esp), %ecx
+	xorl	%edx, %eax
+	movl	%eax, 236(%esp)
+	movl	252(%esp), %eax
+	xorl	%ecx, %ebp
+	movzbl	252(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%esi,%ebx,8), %eax
+	xorl	%eax, %edx
+	movl	%ebp, %eax
+	andl	$255, %eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	%ebp, %eax
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ebx, %edx
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	movl	264(%esp), %ebx
+	cmpl	%ecx, 264(%esp)
+	setb	%al
+	subl	%ecx, %ebx
+	movl	%ebx, 232(%esp)
+	addl	%eax, %edx
+	movl	252(%esp), %eax
+	subl	%edx, 228(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	%ebp, %ebx
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+2052(,%ecx,8), %ebx
+	movl	%ebp, %ecx
+	shrl	$24, %ecx
+	xorl	%ebx, %edx
+	movl	(%esi,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	4(%esi,%ecx,8), %ebx
+	movl	272(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%bl
+	movzbl	%bl, %eax
+	movl	268(%esp), %ebx
+	addl	%eax, %edx
+	addl	%ebx, %edx
+	leal	0(,%edx,8), %eax
+	leal	0(,%ecx,8), %ebx
+	movl	%eax, 212(%esp)
+	movl	%ecx, %eax
+	shrl	$29, %eax
+	orl	%eax, 212(%esp)
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebx
+	setb	%al
+	subl	%ecx, %ebx
+	leal	(%edx,%eax), %ecx
+	movl	%ebx, 248(%esp)
+	movl	244(%esp), %eax
+	movl	332(%esp), %edx
+	subl	%ecx, 212(%esp)
+	movl	244(%esp), %ebx
+	addl	%eax, %edx
+	movl	%edx, 240(%esp)
+	movl	236(%esp), %ecx
+	xorl	%eax, %eax
+	cmpl	%ebx, %edx
+	movl	324(%esp), %edx
+	setb	%al
+	movl	328(%esp), %ebx
+	addl	%ecx, %eax
+	movl	320(%esp), %ecx
+	xorl	%ebx, 232(%esp)
+	addl	%edx, %eax
+	movl	%eax, 220(%esp)
+	xorl	%ecx, 228(%esp)
+	movl	232(%esp), %eax
+	movzbl	232(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%esi,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	228(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	228(%esp), %eax
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	movl	248(%esp), %ebx
+	cmpl	%ecx, 248(%esp)
+	setb	%al
+	subl	%ecx, %ebx
+	movl	%ebx, 216(%esp)
+	addl	%eax, %edx
+	movl	232(%esp), %eax
+	subl	%edx, 212(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	228(%esp), %ebx
+	movzbl	%bh, %ecx
+	xorl	tiger_table+2048(,%ecx,8), %eax
+	xorl	tiger_table+2052(,%ecx,8), %edx
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	movl	(%esi,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	4(%esi,%ecx,8), %ebx
+	movl	252(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	movl	%ecx, %eax
+	leal	(%ebp,%edx), %ebx
+	shrl	$29, %eax
+	leal	0(,%ecx,8), %edx
+	leal	0(,%ebx,8), %ebp
+	orl	%eax, %ebp
+	xorl	%eax, %eax
+	cmpl	%ecx, %edx
+	setb	%al
+	subl	%ecx, %edx
+	leal	(%ebx,%eax), %ecx
+	movl	%edx, 224(%esp)
+	movl	244(%esp), %eax
+	subl	%ecx, %ebp
+	movl	240(%esp), %ebx
+	movl	328(%esp), %edx
+	notl	%eax
+	sall	$19, %eax
+	movl	244(%esp), %ecx
+	xorl	%ebx, %eax
+	xorl	%ebx, %ebx
+	cmpl	%eax, 328(%esp)
+	setb	%bl
+	subl	%eax, %edx
+	movl	%edx, 204(%esp)
+	movl	236(%esp), %eax
+	shrl	$13, %ecx
+	movl	220(%esp), %edx
+	sall	$19, %eax
+	orl	%ecx, %eax
+	notl	%edx
+	movl	312(%esp), %ecx
+	xorl	%eax, %edx
+	xorl	%ecx, 212(%esp)
+	addl	%ebx, %edx
+	movl	320(%esp), %eax
+	movl	316(%esp), %ebx
+	xorl	%ebx, 216(%esp)
+	subl	%edx, %eax
+	movl	%eax, 200(%esp)
+	movl	216(%esp), %eax
+	movzbl	216(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%esi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%esi,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	212(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	212(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	movl	224(%esp), %esi
+	cmpl	%ecx, 224(%esp)
+	setb	%al
+	addl	%eax, %edx
+	subl	%edx, %ebp
+	movl	216(%esp), %edx
+	subl	%ecx, %esi
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	212(%esp), %ebx
+	movzbl	%bh, %ecx
+	xorl	tiger_table+2048(,%ecx,8), %eax
+	xorl	tiger_table+2052(,%ecx,8), %edx
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	movl	(%edi,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	4(%edi,%ecx,8), %ebx
+	movl	232(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	movl	228(%esp), %ebx
+	addl	%edx, %ebx
+	leal	0(,%ebx,8), %eax
+	leal	0(,%ecx,8), %edx
+	movl	%eax, 176(%esp)
+	movl	%ecx, %eax
+	shrl	$29, %eax
+	orl	%eax, 176(%esp)
+	xorl	%eax, %eax
+	cmpl	%ecx, %edx
+	setb	%al
+	subl	%ecx, %edx
+	movl	316(%esp), %ecx
+	movl	%edx, 208(%esp)
+	leal	(%ebx,%eax), %edx
+	movl	204(%esp), %ebx
+	subl	%edx, 176(%esp)
+	movl	200(%esp), %eax
+	xorl	%ebx, %ecx
+	movl	%ecx, 192(%esp)
+	movl	308(%esp), %ebx
+	movl	312(%esp), %edx
+	movl	300(%esp), %ecx
+	xorl	%ebx, %esi
+	xorl	%eax, %edx
+	movl	%edx, 184(%esp)
+	movl	%esi, %eax
+	movl	%esi, %ebx
+	shrl	$16, %eax
+	andl	$255, %ebx
+	andl	$255, %eax
+	xorl	%ecx, %ebp
+	movl	(%edi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%edi,%ebx,8), %eax
+	xorl	%eax, %edx
+	movl	%ebp, %eax
+	andl	$255, %eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	%ebp, %eax
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ebx, %edx
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	cmpl	%ecx, 208(%esp)
+	movl	208(%esp), %ebx
+	setb	%al
+	addl	%eax, %edx
+	movl	%esi, %eax
+	subl	%ecx, %ebx
+	subl	%edx, 176(%esp)
+	movl	%esi, %edx
+	movzbl	%ah, %ecx
+	movl	%ebx, 180(%esp)
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	%ebp, %ebx
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+2052(,%ecx,8), %ebx
+	movl	%ebp, %ecx
+	shrl	$24, %ecx
+	xorl	%ebx, %edx
+	movl	(%edi,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	4(%edi,%ecx,8), %ebx
+	movl	216(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	movl	212(%esp), %ebx
+	addl	%edx, %ebx
+	leal	0(,%ebx,8), %eax
+	leal	0(,%ecx,8), %edx
+	movl	%eax, 164(%esp)
+	movl	%ecx, %eax
+	shrl	$29, %eax
+	orl	%eax, 164(%esp)
+	xorl	%eax, %eax
+	cmpl	%ecx, %edx
+	setb	%al
+	subl	%ecx, %edx
+	leal	(%ebx,%eax), %ecx
+	movl	%edx, 196(%esp)
+	movl	192(%esp), %eax
+	movl	308(%esp), %edx
+	subl	%ecx, 164(%esp)
+	movl	192(%esp), %ebx
+	addl	%eax, %edx
+	movl	%edx, 188(%esp)
+	movl	184(%esp), %ecx
+	xorl	%eax, %eax
+	cmpl	%ebx, %edx
+	movl	300(%esp), %edx
+	setb	%al
+	movl	304(%esp), %ebx
+	addl	%ecx, %eax
+	movl	296(%esp), %ecx
+	xorl	%ebx, 180(%esp)
+	addl	%edx, %eax
+	movl	%eax, 172(%esp)
+	xorl	%ecx, 176(%esp)
+	movl	180(%esp), %eax
+	movzbl	180(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%edi,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%edi,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	176(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	176(%esp), %eax
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	movl	196(%esp), %ebx
+	cmpl	%ecx, 196(%esp)
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebx
+	movl	%ebx, 168(%esp)
+	subl	%edx, 164(%esp)
+	movl	180(%esp), %eax
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	176(%esp), %ebx
+	movzbl	%bh, %ecx
+	xorl	tiger_table+2048(,%ecx,8), %eax
+	xorl	tiger_table+2052(,%ecx,8), %edx
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	movl	(%edi,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	4(%edi,%ecx,8), %ebx
+	leal	(%esi,%eax), %ecx
+	xorl	%ebx, %edx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	leal	(%ebp,%edx), %esi
+	movl	%ecx, %ebp
+	leal	0(,%esi,8), %eax
+	movl	%eax, 88(%esp)
+	leal	0(,%ecx,8), %ebx
+	xorl	%eax, %eax
+	shrl	$29, %ebp
+	movl	184(%esp), %edx
+	orl	%ebp, 88(%esp)
+	cmpl	%ecx, %ebx
+	movl	192(%esp), %ebp
+	setb	%al
+	subl	%ecx, %ebx
+	leal	(%esi,%eax), %ecx
+	subl	%ecx, 88(%esp)
+	sall	$9, %edx
+	movl	188(%esp), %esi
+	shrl	$23, %ebp
+	movl	304(%esp), %eax
+	orl	%edx, %ebp
+	notl	%esi
+	xorl	%edx, %edx
+	movl	172(%esp), %ecx
+	xorl	%ebp, %esi
+	movl	184(%esp), %ebp
+	cmpl	%esi, 304(%esp)
+	notl	%ebp
+	setb	%dl
+	subl	%esi, %eax
+	shrl	$23, %ebp
+	movl	296(%esp), %esi
+	movl	%eax, 156(%esp)
+	movl	280(%esp), %eax
+	xorl	%ecx, %ebp
+	xorl	%eax, 168(%esp)
+	addl	%edx, %ebp
+	subl	%ebp, %esi
+	movl	%esi, 152(%esp)
+	movl	276(%esp), %ecx
+	movl	168(%esp), %ebp
+	movzbl	168(%esp),%esi
+	xorl	%ecx, 164(%esp)
+	shrl	$16, %ebp
+	andl	$255, %ebp
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%ebp,8), %ecx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%ebp,8), %edx
+	xorl	%eax, %edx
+	movzbl	164(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebp
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	164(%esp), %eax
+	xorl	%ebp, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebp
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%ebp, %ecx
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebx
+	subl	%edx, 88(%esp)
+	movl	168(%esp), %eax
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	164(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	(%edi,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	4(%edi,%ecx,8), %ebp
+	xorl	%esi, %eax
+	movl	180(%esp), %ecx
+	xorl	%ebp, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	leal	0(,%ecx,8), %ebp
+	setb	%al
+	movzbl	%al, %esi
+	addl	%esi, %edx
+	movl	176(%esp), %esi
+	addl	%edx, %esi
+	leal	0(,%esi,8), %eax
+	movl	%ecx, %edx
+	movl	%eax, 76(%esp)
+	shrl	$29, %edx
+	xorl	%eax, %eax
+	orl	%edx, 76(%esp)
+	cmpl	%ecx, %ebp
+	setb	%al
+	leal	(%esi,%eax), %edx
+	subl	%ecx, %ebp
+	movl	156(%esp), %ecx
+	subl	%edx, 76(%esp)
+	xorl	%eax, %eax
+	movl	280(%esp), %edx
+	movl	%ebp, 160(%esp)
+	movl	152(%esp), %ebp
+	movl	256(%esp), %esi
+	xorl	%ecx, %edx
+	movl	276(%esp), %ecx
+	movl	%edx, 148(%esp)
+	xorl	%ebp, %ecx
+	movl	260(%esp), %ebp
+	movl	%ecx, 144(%esp)
+	addl	%edx, %ebp
+	cmpl	%edx, %ebp
+	setb	%al
+	addl	%ecx, %eax
+	addl	%esi, %eax
+	movl	%eax, 140(%esp)
+	movl	%edx, %eax
+	notl	%eax
+	sall	$19, %eax
+	xorl	%ebp, %eax
+	cmpl	%eax, 244(%esp)
+	setb	%dl
+	movzbl	%dl, %esi
+	movl	244(%esp), %edx
+	subl	%eax, %edx
+	movl	%ecx, %eax
+	movl	%edx, 136(%esp)
+	movl	148(%esp), %ecx
+	sall	$19, %eax
+	movl	140(%esp), %edx
+	shrl	$13, %ecx
+	orl	%ecx, %eax
+	notl	%edx
+	movl	236(%esp), %ecx
+	xorl	%eax, %edx
+	addl	%esi, %edx
+	subl	%edx, %ecx
+	movl	%ecx, 132(%esp)
+	movl	220(%esp), %edx
+	movl	136(%esp), %eax
+	movl	240(%esp), %esi
+	xorl	%ecx, %edx
+	movl	%edx, 120(%esp)
+	movl	204(%esp), %edx
+	xorl	%eax, %esi
+	movl	%esi, 128(%esp)
+	movl	120(%esp), %ecx
+	xorl	%eax, %eax
+	addl	%esi, %edx
+	cmpl	%esi, %edx
+	setb	%al
+	movl	%edx, 124(%esp)
+	addl	%ecx, %eax
+	movl	200(%esp), %ecx
+	addl	%ecx, %eax
+	movl	%edx, %ecx
+	notl	%ecx
+	movl	%eax, 116(%esp)
+	movl	%esi, %eax
+	movl	120(%esp), %esi
+	shrl	$23, %eax
+	xorl	%edx, %edx
+	sall	$9, %esi
+	orl	%esi, %eax
+	xorl	%eax, %ecx
+	movl	192(%esp), %esi
+	cmpl	%ecx, 192(%esp)
+	movl	120(%esp), %eax
+	setb	%dl
+	subl	%ecx, %esi
+	movl	116(%esp), %ecx
+	notl	%eax
+	movl	%esi, 112(%esp)
+	shrl	$23, %eax
+	xorl	%ecx, %eax
+	addl	%edx, %eax
+	movl	184(%esp), %edx
+	movl	188(%esp), %ecx
+	subl	%eax, %edx
+	movl	156(%esp), %eax
+	xorl	%esi, %ecx
+	movl	%edx, 108(%esp)
+	movl	172(%esp), %esi
+	movl	%ecx, 104(%esp)
+	addl	%ecx, %eax
+	xorl	%edx, %esi
+	movl	%eax, 100(%esp)
+	cmpl	%ecx, %eax
+	setb	%dl
+	movl	%esi, 96(%esp)
+	movl	152(%esp), %ecx
+	movzbl	%dl, %eax
+	movl	100(%esp), %edx
+	addl	%esi, %eax
+	addl	%ecx, %eax
+	movl	%eax, 92(%esp)
+	xorl	$-1985229329, %edx
+	xorl	%eax, %eax
+	cmpl	%edx, 148(%esp)
+	movl	92(%esp), %esi
+	movl	140(%esp), %ecx
+	setb	%al
+	xorl	%ebp, %ebx
+	xorl	$19088743, %esi
+	subl	%edx, 148(%esp)
+	addl	%eax, %esi
+	movl	%ebx, %eax
+	subl	%esi, 144(%esp)
+	shrl	$16, %eax
+	movzbl	%bl,%esi
+	xorl	%ecx, 88(%esp)
+	andl	$255, %eax
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	4(%edi,%esi,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	88(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	88(%esp), %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	cmpl	%ecx, 160(%esp)
+	movl	160(%esp), %esi
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %esi
+	movzbl	%bh, %ecx
+	subl	%edx, 76(%esp)
+	movl	%ebx, %edx
+	shrl	$24, %edx
+	movl	%esi, 80(%esp)
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	88(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	4(%edi,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	(%edi,%ecx,8), %ebp
+	xorl	%esi, %edx
+	movl	168(%esp), %esi
+	xorl	%ebp, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movl	%esi, %ebp
+	movzbl	%al, %ecx
+	movl	164(%esp), %eax
+	addl	%ecx, %edx
+	shrl	$29, %ebp
+	leal	0(,%esi,8), %ecx
+	addl	%eax, %edx
+	xorl	%eax, %eax
+	movl	%edx, 84(%esp)
+	sall	$3, %edx
+	orl	%ebp, %edx
+	leal	(%esi,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	movl	136(%esp), %esi
+	setb	%al
+	movl	132(%esp), %ecx
+	addl	%eax, %edx
+	xorl	%esi, 80(%esp)
+	movl	84(%esp), %eax
+	addl	%eax, %edx
+	movl	%edx, 68(%esp)
+	xorl	%ecx, 76(%esp)
+	movl	80(%esp), %eax
+	movzbl	80(%esp),%esi
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%eax, %edx
+	movzbl	76(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	76(%esp), %eax
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebp
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebp
+	subl	%edx, 68(%esp)
+	movl	80(%esp), %edx
+	movl	%ebp, 72(%esp)
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	76(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	(%edi,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	4(%edi,%ecx,8), %ebp
+	xorl	%esi, %eax
+	addl	%eax, %ebx
+	xorl	%ebp, %edx
+	cmpl	%eax, %ebx
+	leal	0(,%ebx,8), %ecx
+	setb	%al
+	movzbl	%al, %esi
+	movl	%ebx, %ebp
+	addl	%esi, %edx
+	movl	88(%esp), %esi
+	addl	%ecx, %ebx
+	shrl	$29, %ebp
+	xorl	%eax, %eax
+	addl	%edx, %esi
+	leal	0(,%esi,8), %edx
+	orl	%ebp, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	movl	128(%esp), %eax
+	leal	(%esi,%edx), %ebp
+	xorl	%eax, 72(%esp)
+	movl	120(%esp), %ecx
+	movl	%ebp, 60(%esp)
+	movl	72(%esp), %ebp
+	movzbl	72(%esp),%esi
+	xorl	%ecx, 68(%esp)
+	shrl	$16, %ebp
+	andl	$255, %ebp
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%ebp,8), %ecx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%ebp,8), %edx
+	xorl	%eax, %edx
+	movzbl	68(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebp
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	68(%esp), %eax
+	xorl	%ebp, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebp
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%ebp, %ecx
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebx
+	subl	%edx, 60(%esp)
+	movl	72(%esp), %edx
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	68(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	4(%edi,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	(%edi,%ecx,8), %ebp
+	xorl	%esi, %edx
+	movl	80(%esp), %esi
+	xorl	%ebp, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movl	%esi, %ebp
+	movzbl	%al, %ecx
+	movl	76(%esp), %eax
+	addl	%ecx, %edx
+	shrl	$29, %ebp
+	leal	0(,%esi,8), %ecx
+	addl	%eax, %edx
+	xorl	%eax, %eax
+	movl	%edx, 64(%esp)
+	sall	$3, %edx
+	orl	%ebp, %edx
+	leal	(%esi,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	movl	124(%esp), %esi
+	setb	%al
+	movl	116(%esp), %ecx
+	addl	%eax, %edx
+	xorl	%ecx, 60(%esp)
+	xorl	%esi, %ebx
+	movl	64(%esp), %eax
+	movzbl	%bl,%esi
+	addl	%eax, %edx
+	movl	%ebx, %eax
+	movl	%edx, 48(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%eax, %edx
+	movzbl	60(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	60(%esp), %eax
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebp
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebp
+	movzbl	%bh, %ecx
+	subl	%edx, 48(%esp)
+	movl	%ebx, %edx
+	shrl	$24, %edx
+	movl	%ebp, 52(%esp)
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	60(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	4(%edi,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	(%edi,%ecx,8), %ebp
+	xorl	%esi, %edx
+	movl	72(%esp), %esi
+	xorl	%ebp, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movl	%esi, %ebp
+	movzbl	%al, %ecx
+	movl	68(%esp), %eax
+	addl	%ecx, %edx
+	shrl	$29, %ebp
+	leal	0(,%esi,8), %ecx
+	addl	%eax, %edx
+	xorl	%eax, %eax
+	movl	%edx, 56(%esp)
+	sall	$3, %edx
+	orl	%ebp, %edx
+	leal	(%esi,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	movl	112(%esp), %esi
+	setb	%al
+	xorl	%esi, 52(%esp)
+	addl	%eax, %edx
+	movl	56(%esp), %eax
+	movl	108(%esp), %ecx
+	movzbl	52(%esp),%esi
+	addl	%eax, %edx
+	movl	52(%esp), %eax
+	xorl	%ecx, 48(%esp)
+	movl	%edx, 40(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%eax, %edx
+	movzbl	48(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	48(%esp), %eax
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebp
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebp
+	subl	%edx, 40(%esp)
+	movl	52(%esp), %edx
+	movl	%ebp, 44(%esp)
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	48(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	(%edi,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	4(%edi,%ecx,8), %ebp
+	xorl	%esi, %eax
+	addl	%eax, %ebx
+	xorl	%ebp, %edx
+	cmpl	%eax, %ebx
+	leal	0(,%ebx,8), %ecx
+	setb	%al
+	movzbl	%al, %esi
+	movl	%ebx, %ebp
+	addl	%esi, %edx
+	movl	60(%esp), %esi
+	addl	%ecx, %ebx
+	shrl	$29, %ebp
+	xorl	%eax, %eax
+	addl	%edx, %esi
+	leal	0(,%esi,8), %edx
+	orl	%ebp, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	leal	(%esi,%edx), %ebp
+	movl	%ebp, 32(%esp)
+	movl	104(%esp), %eax
+	movl	96(%esp), %ecx
+	xorl	%eax, 44(%esp)
+	xorl	%ecx, 40(%esp)
+	movl	44(%esp), %ebp
+	movzbl	44(%esp),%esi
+	shrl	$16, %ebp
+	andl	$255, %ebp
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%ebp,8), %ecx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%ebp,8), %edx
+	xorl	%eax, %edx
+	movzbl	40(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebp
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	40(%esp), %eax
+	xorl	%ebp, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebp
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%ebp, %ecx
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebx
+	subl	%edx, 32(%esp)
+	movl	44(%esp), %edx
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	40(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	4(%edi,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	(%edi,%ecx,8), %ebp
+	xorl	%esi, %edx
+	movl	52(%esp), %esi
+	xorl	%ebp, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movl	%esi, %ebp
+	movzbl	%al, %ecx
+	movl	48(%esp), %eax
+	addl	%ecx, %edx
+	shrl	$29, %ebp
+	leal	0(,%esi,8), %ecx
+	addl	%eax, %edx
+	xorl	%eax, %eax
+	movl	%edx, 36(%esp)
+	sall	$3, %edx
+	orl	%ebp, %edx
+	leal	(%esi,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	setb	%al
+	addl	%eax, %edx
+	movl	36(%esp), %eax
+	addl	%eax, %edx
+	movl	%edx, 20(%esp)
+	movl	100(%esp), %esi
+	movl	92(%esp), %ecx
+	xorl	%ecx, 32(%esp)
+	xorl	%esi, %ebx
+	movl	%ebx, %eax
+	shrl	$16, %eax
+	movzbl	%bl,%esi
+	andl	$255, %eax
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%eax, %edx
+	movzbl	32(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	32(%esp), %eax
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebp
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebp
+	movzbl	%bh, %ecx
+	subl	%edx, 20(%esp)
+	movl	%ebx, %edx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	32(%esp), %ecx
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	shrl	$24, %ecx
+	xorl	tiger_table+2048(,%esi,8), %eax
+	xorl	tiger_table+2052(,%esi,8), %edx
+	movl	(%edi,%ecx,8), %esi
+	xorl	%esi, %eax
+	movl	4(%edi,%ecx,8), %esi
+	xorl	%esi, %edx
+	movl	44(%esp), %esi
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%cl
+	movzbl	%cl, %eax
+	movl	40(%esp), %ecx
+	addl	%eax, %edx
+	movl	%esi, %eax
+	shrl	$29, %eax
+	addl	%ecx, %edx
+	movl	%edx, 28(%esp)
+	leal	0(,%esi,8), %ecx
+	addl	%ecx, %esi
+	movl	%esi, 24(%esp)
+	sall	$3, %edx
+	orl	%eax, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, %esi
+	setb	%al
+	movl	148(%esp), %esi
+	addl	%eax, %edx
+	movl	28(%esp), %eax
+	movl	144(%esp), %ecx
+	xorl	%esi, %ebp
+	addl	%eax, %edx
+	movl	%edx, 16(%esp)
+	movl	%ebp, %eax
+	movl	%ebp, %esi
+	xorl	%ecx, 20(%esp)
+	shrl	$16, %eax
+	andl	$255, %esi
+	andl	$255, %eax
+	movl	(%edi,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	4(%edi,%esi,8), %eax
+	xorl	%eax, %edx
+	movzbl	20(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	20(%esp), %eax
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, 24(%esp)
+	setb	%al
+	addl	%eax, %edx
+	subl	%edx, 16(%esp)
+	movl	%ebp, %eax
+	movl	%ebp, %edx
+	subl	%ecx, 24(%esp)
+	shrl	$24, %edx
+	movzbl	%ah, %ecx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	20(%esp), %ecx
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	shrl	$24, %ecx
+	xorl	tiger_table+2048(,%esi,8), %eax
+	xorl	tiger_table+2052(,%esi,8), %edx
+	movl	(%edi,%ecx,8), %esi
+	xorl	%esi, %eax
+	movl	4(%edi,%ecx,8), %esi
+	addl	%eax, %ebx
+	leal	0(,%ebx,8), %ecx
+	xorl	%esi, %edx
+	cmpl	%eax, %ebx
+	movl	%ebx, %esi
+	setb	%al
+	movzbl	%al, %edi
+	shrl	$29, %esi
+	addl	%edi, %edx
+	movl	32(%esp), %edi
+	addl	%ecx, %ebx
+	xorl	%eax, %eax
+	addl	%edx, %edi
+	leal	0(,%edi,8), %edx
+	orl	%esi, %edx
+	cmpl	%ecx, %ebx
+	movl	8(%esp), %esi
+	setb	%al
+	movl	4(%esp), %ecx
+	addl	%eax, %edx
+	movl	12(%esp), %eax
+	leal	(%edi,%edx), %edx
+	xorl	%esi, %edx
+	movl	540(%esp), %edi
+	xorl	%eax, %ebx
+	xorl	%eax, %eax
+	cmpl	540(%esp), %ebp
+	movl	(%esp), %esi
+	setb	%al
+	addl	%ecx, %eax
+	movl	24(%esp), %ecx
+	subl	%edi, %ebp
+	subl	%eax, 20(%esp)
+	movl	536(%esp), %eax
+	movl	16(%esp), %edi
+	addl	%eax, %ecx
+	xorl	%eax, %eax
+	cmpl	536(%esp), %ecx
+	setb	%al
+	addl	%esi, %eax
+	movl	568(%esp), %esi
+	addl	%edi, %eax
+	movl	%ebx, (%esi)
+	movl	%edx, 4(%esi)
+	movl	%ebp, 8(%esi)
+	movl	20(%esp), %edx
+	movl	%ecx, 16(%esi)
+	movl	%eax, 20(%esi)
+	movl	%edx, 12(%esi)
+	addl	$544, %esp
+	popl	%ebx
+	popl	%esi
+	popl	%edi
+	popl	%ebp
+	ret
+	.size	tiger_compress, .-tiger_compress
+.globl tiger_t
+	.type	tiger_t, @function
+tiger_t:
+	pushl	%ebp
+	pushl	%edi
+	pushl	%esi
+	pushl	%ebx
+	subl	$504, %esp
+	movl	528(%esp), %eax
+	movl	%eax, 500(%esp)
+	cmpl	$63, %eax
+	jbe	.L8
+.L6:
+	movl	532(%esp), %edx
+	movl	532(%esp), %ebx
+	movl	532(%esp), %edi
+	movl	(%edx), %esi
+	movl	%esi, 72(%esp)
+	movl	4(%ebx), %ebp
+	movl	524(%esp), %ebx
+	movl	%ebp, 68(%esp)
+	movl	12(%edi), %ecx
+	movl	8(%edi), %edx
+	movl	%ecx, 64(%esp)
+	movl	16(%edi), %esi
+	movl	20(%edi), %eax
+	movl	%edx, 496(%esp)
+	movl	524(%esp), %ecx
+	movl	%esi, 492(%esp)
+	movl	%eax, 60(%esp)
+	movl	(%ebx), %ebp
+	movl	%ebp, 56(%esp)
+	movl	4(%ecx), %edi
+	movl	524(%esp), %ebp
+	movl	%edi, 52(%esp)
+	movl	12(%ebp), %eax
+	movl	8(%ebp), %edi
+	movl	%eax, 48(%esp)
+	movl	16(%ebp), %edx
+	movl	524(%esp), %eax
+	movl	%edx, 44(%esp)
+	movl	20(%ebp), %esi
+	movl	%esi, 40(%esp)
+	movl	24(%ebp), %ebx
+	movl	%ebx, 36(%esp)
+	movl	28(%ebp), %ecx
+	movl	%ecx, 32(%esp)
+	movl	32(%eax), %edx
+	movl	%edx, 28(%esp)
+	movl	524(%esp), %esi
+	movl	524(%esp), %ebx
+	movl	524(%esp), %eax
+	movl	36(%esi), %ebp
+	movl	524(%esp), %esi
+	movl	%ebp, 24(%esp)
+	movl	40(%ebx), %ecx
+	movl	524(%esp), %ebx
+	movl	%ecx, 20(%esp)
+	movl	44(%eax), %edx
+	movl	524(%esp), %eax
+	movl	%edx, 16(%esp)
+	movl	48(%esi), %ebp
+	movl	524(%esp), %esi
+	movl	%ebp, 12(%esp)
+	movl	52(%ebx), %ecx
+	movl	56(%esp), %ebx
+	movl	%ecx, 8(%esp)
+	movl	56(%eax), %edx
+	movl	52(%esp), %ecx
+	movl	60(%esp), %eax
+	movl	%edx, 4(%esp)
+	movl	60(%esi), %ebp
+	xorl	%ecx, %eax
+	movl	%eax, 488(%esp)
+	movl	%ebp, (%esp)
+	movl	492(%esp), %ebp
+	xorl	%ebx, %ebp
+	movl	%ebp, %esi
+	movl	%ebp, %ebx
+	shrl	$16, %esi
+	andl	$255, %ebx
+	andl	$255, %esi
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%esi,8), %ecx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%esi,8), %edx
+	xorl	%eax, %edx
+	movzbl	488(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	488(%esp), %eax
+	xorl	%esi, %ecx
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	xorl	%ebx, %edx
+	cmpl	%ecx, 72(%esp)
+	movl	72(%esp), %esi
+	setb	%al
+	subl	%ecx, %esi
+	addl	%eax, %edx
+	movl	%ebp, %eax
+	movl	%esi, 484(%esp)
+	movl	68(%esp), %ecx
+	movl	%ebp, %esi
+	shrl	$24, %esi
+	subl	%edx, %ecx
+	movl	%ecx, 480(%esp)
+	movzbl	%ah, %ecx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%esi,8), %eax
+	movl	tiger_table+6148(,%ecx,8), %edx
+	movl	488(%esp), %ecx
+	xorl	%ebx, %eax
+	movl	tiger_table+4100(,%esi,8), %ebx
+	xorl	%edx, %ebx
+	movzbl	%ch, %edx
+	movl	tiger_table+2048(,%edx,8), %esi
+	xorl	%esi, %eax
+	movl	tiger_table+2052(,%edx,8), %esi
+	movl	%ecx, %edx
+	shrl	$24, %edx
+	xorl	%esi, %ebx
+	movl	tiger_table+4(,%edx,8), %esi
+	movl	tiger_table(,%edx,8), %ecx
+	xorl	%esi, %ebx
+	movl	496(%esp), %esi
+	xorl	%ecx, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movzbl	%al, %ecx
+	leal	(%ebx,%ecx), %edx
+	movl	64(%esp), %ebx
+	leal	0(,%esi,4), %ecx
+	movl	%esi, %eax
+	shrl	$30, %eax
+	addl	%edx, %ebx
+	addl	%ecx, %esi
+	leal	0(,%ebx,4), %edx
+	orl	%eax, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, %esi
+	setb	%al
+	addl	%eax, %edx
+	xorl	%ecx, %ecx
+	addl	%edx, %ebx
+	movl	4(%esp), %edx
+	movl	(%esp), %eax
+	movl	%ebx, 464(%esp)
+	xorl	$-1515870811, %edx
+	movl	56(%esp), %ebx
+	cmpl	%edx, 56(%esp)
+	setb	%cl
+	subl	%edx, %ebx
+	xorl	%edi, 484(%esp)
+	xorl	$-1515870811, %eax
+	addl	%ecx, %eax
+	movl	%ebx, 476(%esp)
+	movl	52(%esp), %ebx
+	movl	48(%esp), %ecx
+	xorl	%ecx, 480(%esp)
+	subl	%eax, %ebx
+	movl	484(%esp), %eax
+	movl	%ebx, 472(%esp)
+	movzbl	484(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table(,%ebx,8), %edx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	480(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	480(%esp), %eax
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%ebx, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %esi
+	setb	%bl
+	subl	%ecx, %esi
+	addl	%ebx, %edx
+	movl	%esi, 468(%esp)
+	movl	484(%esp), %eax
+	subl	%edx, 464(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	xorl	%ebx, %edx
+	movl	480(%esp), %ebx
+	xorl	%esi, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %esi
+	xorl	%esi, %eax
+	movl	tiger_table+2052(,%ecx,8), %esi
+	xorl	%esi, %edx
+	movl	%ebx, %esi
+	shrl	$24, %esi
+	movl	tiger_table(,%esi,8), %ecx
+	movl	tiger_table+4(,%esi,8), %ebx
+	xorl	%ecx, %eax
+	xorl	%ebx, %edx
+	leal	(%ebp,%eax), %ebx
+	cmpl	%eax, %ebx
+	setb	%cl
+	movl	488(%esp), %ebp
+	movl	%ebx, %esi
+	movzbl	%cl, %eax
+	shrl	$30, %esi
+	addl	%eax, %edx
+	addl	%edx, %ebp
+	leal	0(,%ebx,4), %ecx
+	movl	472(%esp), %eax
+	leal	0(,%ebp,4), %edx
+	orl	%esi, %edx
+	leal	(%ebx,%ecx), %esi
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %esi
+	setb	%bl
+	addl	%ebx, %edx
+	leal	(%ebp,%edx), %ecx
+	movl	44(%esp), %ebp
+	xorl	%ebp, 468(%esp)
+	movl	48(%esp), %ebx
+	movl	%ecx, 448(%esp)
+	movl	476(%esp), %edx
+	movl	40(%esp), %ecx
+	xorl	%ecx, 464(%esp)
+	xorl	%eax, %ebx
+	movl	468(%esp), %eax
+	movl	%ebx, 456(%esp)
+	movzbl	468(%esp),%ebx
+	xorl	%edx, %edi
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%ebx,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	464(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	464(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %esi
+	setb	%bl
+	subl	%ecx, %esi
+	addl	%ebx, %edx
+	movl	%esi, 452(%esp)
+	movl	468(%esp), %eax
+	subl	%edx, 448(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ebp
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ebp,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ebp,8), %esi
+	xorl	%ebx, %edx
+	movl	464(%esp), %ebx
+	xorl	%esi, %eax
+	movzbl	%bh, %esi
+	movl	tiger_table+2048(,%esi,8), %ecx
+	movl	tiger_table+2052(,%esi,8), %ebp
+	xorl	%ecx, %eax
+	movl	%ebx, %ecx
+	xorl	%ebp, %edx
+	shrl	$24, %ecx
+	movl	tiger_table(,%ecx,8), %ebx
+	movl	tiger_table+4(,%ecx,8), %esi
+	xorl	%ebx, %eax
+	movl	484(%esp), %ebx
+	xorl	%esi, %edx
+	movl	480(%esp), %esi
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%cl
+	movzbl	%cl, %eax
+	shrl	$30, %ebp
+	addl	%eax, %edx
+	leal	0(,%ebx,4), %ecx
+	addl	%edx, %esi
+	leal	0(,%esi,4), %edx
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	movl	44(%esp), %ecx
+	setb	%bl
+	addl	%ebx, %edx
+	leal	(%esi,%edx), %eax
+	movl	%eax, 436(%esp)
+	addl	%edi, %ecx
+	movl	456(%esp), %edx
+	movl	%ecx, 460(%esp)
+	movl	40(%esp), %ebx
+	xorl	%eax, %eax
+	movl	36(%esp), %esi
+	cmpl	%edi, %ecx
+	setb	%al
+	xorl	%esi, 452(%esp)
+	addl	%edx, %eax
+	addl	%ebx, %eax
+	movl	%eax, 444(%esp)
+	movl	32(%esp), %ecx
+	movl	452(%esp), %eax
+	movzbl	452(%esp),%ebx
+	xorl	%ecx, 448(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%ebx,8), %esi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	448(%esp),%eax
+	xorl	%esi, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	448(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	movl	%ebp, 440(%esp)
+	movl	452(%esp), %eax
+	subl	%edx, 436(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %esi
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%esi,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%esi,8), %ecx
+	xorl	%ebx, %edx
+	movl	448(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %esi
+	xorl	%ebp, %eax
+	movl	%ebx, %ebp
+	xorl	%esi, %edx
+	shrl	$24, %ebp
+	movl	tiger_table(,%ebp,8), %ebx
+	movl	tiger_table+4(,%ebp,8), %esi
+	xorl	%ebx, %eax
+	movl	468(%esp), %ebx
+	xorl	%esi, %edx
+	movl	464(%esp), %esi
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%cl
+	movzbl	%cl, %eax
+	shrl	$30, %ebp
+	addl	%eax, %edx
+	leal	0(,%ebx,4), %ecx
+	addl	%edx, %esi
+	leal	0(,%esi,4), %edx
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	addl	%ebx, %edx
+	movl	460(%esp), %ebx
+	leal	(%esi,%edx), %eax
+	movl	%eax, 420(%esp)
+	movl	%edi, %edx
+	movl	36(%esp), %esi
+	notl	%edx
+	movl	456(%esp), %eax
+	movl	%edi, %ecx
+	sall	$19, %edx
+	xorl	%ebx, %edx
+	xorl	%ebx, %ebx
+	cmpl	%edx, 36(%esp)
+	setb	%bl
+	subl	%edx, %esi
+	movl	%esi, 432(%esp)
+	movl	444(%esp), %edx
+	shrl	$13, %ecx
+	sall	$19, %eax
+	movl	28(%esp), %esi
+	orl	%ecx, %eax
+	xorl	%esi, 440(%esp)
+	notl	%edx
+	xorl	%eax, %edx
+	addl	%ebx, %edx
+	movl	32(%esp), %ebx
+	movl	440(%esp), %eax
+	movl	24(%esp), %ecx
+	subl	%edx, %ebx
+	shrl	$16, %eax
+	movl	%ebx, 428(%esp)
+	movzbl	440(%esp),%ebx
+	andl	$255, %eax
+	xorl	%ecx, 436(%esp)
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+4(,%ebx,8), %esi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	436(%esp),%eax
+	xorl	%esi, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	436(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	movl	%ebp, 424(%esp)
+	movl	440(%esp), %eax
+	subl	%edx, 420(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ebp
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ebp,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ebp,8), %ecx
+	xorl	%ebx, %edx
+	movl	436(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %esi
+	movl	tiger_table+2052(,%ecx,8), %ebp
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%esi, %eax
+	movl	tiger_table+4(,%ecx,8), %ebx
+	movl	tiger_table(,%ecx,8), %esi
+	xorl	%ebp, %edx
+	xorl	%ebx, %edx
+	movl	452(%esp), %ebx
+	xorl	%esi, %eax
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %esi
+	setb	%al
+	movzbl	%al, %ebp
+	leal	0(,%ebx,4), %ecx
+	addl	%ebp, %edx
+	movl	448(%esp), %ebp
+	shrl	$30, %esi
+	xorl	%eax, %eax
+	addl	%edx, %ebp
+	leal	0(,%ebp,4), %edx
+	orl	%esi, %edx
+	leal	(%ebx,%ecx), %esi
+	cmpl	%ecx, %esi
+	setb	%al
+	addl	%eax, %edx
+	movl	428(%esp), %eax
+	leal	(%ebp,%edx), %ebx
+	movl	%ebx, 400(%esp)
+	movl	20(%esp), %ebp
+	movl	24(%esp), %ebx
+	xorl	%ebp, 424(%esp)
+	movl	432(%esp), %ecx
+	xorl	%eax, %ebx
+	movl	%ebx, 408(%esp)
+	movl	424(%esp), %eax
+	movl	28(%esp), %edx
+	movzbl	424(%esp),%ebx
+	shrl	$16, %eax
+	xorl	%ecx, %edx
+	movl	%edx, 416(%esp)
+	andl	$255, %eax
+	movl	16(%esp), %ecx
+	xorl	%ecx, 420(%esp)
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%ebx,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	420(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	420(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%ebx, %ecx
+	xorl	%ebp, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %esi
+	setb	%bl
+	subl	%ecx, %esi
+	addl	%ebx, %edx
+	movl	%esi, 404(%esp)
+	movl	424(%esp), %eax
+	subl	%edx, 400(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %esi
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%esi,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%esi,8), %ecx
+	xorl	%ebx, %edx
+	movl	420(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %esi
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+4(,%ecx,8), %ebx
+	movl	tiger_table(,%ecx,8), %ebp
+	xorl	%esi, %edx
+	xorl	%ebx, %edx
+	movl	440(%esp), %ebx
+	xorl	%ebp, %eax
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%al
+	movzbl	%al, %esi
+	leal	0(,%ebx,4), %ecx
+	addl	%esi, %edx
+	movl	436(%esp), %esi
+	shrl	$30, %ebp
+	xorl	%eax, %eax
+	addl	%edx, %esi
+	leal	0(,%esi,4), %edx
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	movl	416(%esp), %ebx
+	setb	%al
+	addl	%eax, %edx
+	leal	(%esi,%edx), %edx
+	movl	%edx, 388(%esp)
+	movl	20(%esp), %esi
+	movl	416(%esp), %eax
+	movl	408(%esp), %edx
+	addl	%ebx, %esi
+	cmpl	%eax, %esi
+	movl	%esi, 412(%esp)
+	setb	%cl
+	movl	16(%esp), %ebx
+	movl	12(%esp), %esi
+	movzbl	%cl, %eax
+	addl	%edx, %eax
+	xorl	%esi, 404(%esp)
+	addl	%ebx, %eax
+	movl	8(%esp), %ecx
+	movl	%eax, 396(%esp)
+	movl	404(%esp), %eax
+	movzbl	404(%esp),%ebx
+	xorl	%ecx, 400(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%ebx,8), %esi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	400(%esp),%eax
+	xorl	%esi, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	400(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	movl	%ebp, 392(%esp)
+	movl	404(%esp), %eax
+	subl	%edx, 388(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %esi
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%esi,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%esi,8), %ecx
+	xorl	%ebx, %edx
+	movl	400(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	movl	tiger_table+2052(,%ecx,8), %esi
+	xorl	%ebp, %eax
+	movl	%ebx, %ebp
+	xorl	%esi, %edx
+	shrl	$24, %ebp
+	movl	tiger_table(,%ebp,8), %ebx
+	movl	tiger_table+4(,%ebp,8), %esi
+	xorl	%ebx, %eax
+	movl	424(%esp), %ebx
+	xorl	%esi, %edx
+	movl	420(%esp), %esi
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	movl	%ebx, %ebp
+	setb	%cl
+	movzbl	%cl, %eax
+	shrl	$30, %ebp
+	addl	%eax, %edx
+	leal	0(,%ebx,4), %ecx
+	addl	%edx, %esi
+	leal	0(,%esi,4), %edx
+	movl	416(%esp), %eax
+	orl	%ebp, %edx
+	leal	(%ebx,%ecx), %ebp
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	addl	%ebx, %edx
+	movl	412(%esp), %ebx
+	leal	(%esi,%edx), %ecx
+	movl	408(%esp), %edx
+	shrl	$23, %eax
+	movl	%ecx, 316(%esp)
+	notl	%ebx
+	movl	12(%esp), %esi
+	sall	$9, %edx
+	movl	396(%esp), %ecx
+	orl	%edx, %eax
+	xorl	%eax, %ebx
+	xorl	%edx, %edx
+	movl	408(%esp), %eax
+	cmpl	%ebx, 12(%esp)
+	notl	%eax
+	setb	%dl
+	subl	%ebx, %esi
+	shrl	$23, %eax
+	movl	8(%esp), %ebx
+	movl	%esi, 380(%esp)
+	movl	4(%esp), %esi
+	xorl	%ecx, %eax
+	xorl	%esi, 392(%esp)
+	addl	%edx, %eax
+	subl	%eax, %ebx
+	movl	%ebx, 376(%esp)
+	movl	(%esp), %ecx
+	movl	392(%esp), %eax
+	movzbl	392(%esp),%ebx
+	xorl	%ecx, 388(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%ebx,8), %esi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	388(%esp),%eax
+	xorl	%esi, %edx
+	movl	tiger_table+4096(,%eax,8), %ebx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	388(%esp), %eax
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%ebx, %ecx
+	xorl	%esi, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	movl	%ebp, 320(%esp)
+	movl	392(%esp), %eax
+	subl	%edx, 316(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ebp
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ebp,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ebp,8), %esi
+	xorl	%ebx, %edx
+	movl	388(%esp), %ebx
+	xorl	%esi, %eax
+	movzbl	%bh, %esi
+	movl	tiger_table+2048(,%esi,8), %ecx
+	movl	tiger_table+2052(,%esi,8), %ebp
+	xorl	%ecx, %eax
+	movl	%ebx, %ecx
+	xorl	%ebp, %edx
+	shrl	$24, %ecx
+	movl	tiger_table(,%ecx,8), %ebx
+	movl	tiger_table+4(,%ecx,8), %esi
+	xorl	%ebx, %eax
+	movl	404(%esp), %ebx
+	xorl	%esi, %edx
+	movl	400(%esp), %esi
+	addl	%eax, %ebx
+	cmpl	%eax, %ebx
+	leal	0(,%ebx,4), %ecx
+	setb	%al
+	movzbl	%al, %ebp
+	addl	%ebp, %edx
+	addl	%edx, %esi
+	movl	%ebx, %edx
+	shrl	$30, %edx
+	addl	%ecx, %ebx
+	leal	0(,%esi,4), %ebp
+	orl	%edx, %ebp
+	movl	%ebx, 384(%esp)
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebx
+	setb	%al
+	movl	376(%esp), %ecx
+	addl	%eax, %ebp
+	leal	(%esi,%ebp), %edx
+	movl	380(%esp), %ebp
+	movl	4(%esp), %esi
+	movl	%edx, 300(%esp)
+	movl	476(%esp), %eax
+	xorl	%ebp, %esi
+	movl	(%esp), %ebp
+	addl	%esi, %eax
+	movl	%eax, 372(%esp)
+	xorl	%ecx, %ebp
+	cmpl	%esi, %eax
+	setb	%bl
+	movl	472(%esp), %ecx
+	movzbl	%bl, %edx
+	leal	(%ebp,%edx), %eax
+	movl	372(%esp), %ebx
+	movl	%esi, %edx
+	notl	%edx
+	addl	%ecx, %eax
+	sall	$19, %edx
+	movl	%eax, 368(%esp)
+	xorl	%ebx, %edx
+	xorl	%ebx, %ebx
+	cmpl	%edx, %edi
+	movl	%ebp, %eax
+	setb	%bl
+	subl	%edx, %edi
+	movl	368(%esp), %edx
+	movl	%esi, %ecx
+	shrl	$13, %ecx
+	sall	$19, %eax
+	orl	%ecx, %eax
+	notl	%edx
+	xorl	%eax, %edx
+	movl	456(%esp), %eax
+	addl	%ebx, %edx
+	movl	460(%esp), %ebx
+	subl	%edx, %eax
+	movl	%eax, 364(%esp)
+	movl	444(%esp), %edx
+	xorl	%edi, %ebx
+	movl	%ebx, 360(%esp)
+	xorl	%eax, %edx
+	xorl	%eax, %eax
+	movl	%edx, 352(%esp)
+	movl	432(%esp), %edx
+	addl	%ebx, %edx
+	movl	%edx, 356(%esp)
+	movl	352(%esp), %ecx
+	cmpl	%ebx, %edx
+	setb	%al
+	addl	%ecx, %eax
+	movl	428(%esp), %ecx
+	addl	%ecx, %eax
+	movl	%edx, %ecx
+	notl	%ecx
+	movl	%eax, 348(%esp)
+	movl	%ebx, %eax
+	movl	352(%esp), %ebx
+	shrl	$23, %eax
+	xorl	%edx, %edx
+	sall	$9, %ebx
+	orl	%ebx, %eax
+	xorl	%eax, %ecx
+	movl	416(%esp), %ebx
+	cmpl	%ecx, 416(%esp)
+	movl	352(%esp), %eax
+	setb	%dl
+	subl	%ecx, %ebx
+	movl	348(%esp), %ecx
+	notl	%eax
+	movl	%ebx, 344(%esp)
+	shrl	$23, %eax
+	xorl	%ecx, %eax
+	addl	%edx, %eax
+	movl	408(%esp), %edx
+	movl	412(%esp), %ecx
+	subl	%eax, %edx
+	movl	380(%esp), %eax
+	xorl	%ebx, %ecx
+	movl	%edx, 340(%esp)
+	movl	396(%esp), %ebx
+	movl	%ecx, 336(%esp)
+	addl	%ecx, %eax
+	xorl	%edx, %ebx
+	movl	%eax, 332(%esp)
+	cmpl	%ecx, %eax
+	setb	%dl
+	movl	%ebx, 328(%esp)
+	movl	376(%esp), %ecx
+	movzbl	%dl, %eax
+	addl	%ebx, %eax
+	movl	332(%esp), %edx
+	xorl	%ebx, %ebx
+	addl	%ecx, %eax
+	xorl	$-1985229329, %edx
+	movl	%eax, 324(%esp)
+	movl	324(%esp), %eax
+	cmpl	%edx, %esi
+	setb	%bl
+	subl	%edx, %esi
+	movl	368(%esp), %ecx
+	movl	%esi, 312(%esp)
+	xorl	$19088743, %eax
+	addl	%ebx, %eax
+	xorl	%ecx, 316(%esp)
+	subl	%eax, %ebp
+	movl	%ebp, 308(%esp)
+	movl	372(%esp), %ebp
+	xorl	%ebp, 320(%esp)
+	movl	320(%esp), %ebx
+	movzbl	320(%esp),%esi
+	shrl	$16, %ebx
+	andl	$255, %ebx
+	movl	tiger_table(,%esi,8), %edx
+	movl	tiger_table+2048(,%ebx,8), %ecx
+	movl	tiger_table+4(,%esi,8), %eax
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%ebx,8), %edx
+	movzbl	316(%esp),%ebx
+	xorl	%eax, %edx
+	movl	tiger_table+4096(,%ebx,8), %ebp
+	movl	tiger_table+4100(,%ebx,8), %esi
+	xorl	%ebp, %ecx
+	movl	316(%esp), %ebp
+	xorl	%esi, %edx
+	movl	384(%esp), %esi
+	shrl	$16, %ebp
+	andl	$255, %ebp
+	movl	tiger_table+6144(,%ebp,8), %eax
+	movl	tiger_table+6148(,%ebp,8), %ebx
+	xorl	%eax, %ecx
+	xorl	%ebx, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, 384(%esp)
+	setb	%al
+	subl	%ecx, %esi
+	movl	%esi, 304(%esp)
+	addl	%eax, %edx
+	movl	320(%esp), %eax
+	subl	%edx, 300(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ebp
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ebp,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ebp,8), %ecx
+	xorl	%ebx, %edx
+	movl	316(%esp), %ebx
+	xorl	%ecx, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %esi
+	movl	tiger_table+2052(,%ecx,8), %ebp
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	xorl	%esi, %eax
+	movl	tiger_table(,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	tiger_table+4(,%ecx,8), %ebp
+	movl	392(%esp), %ecx
+	xorl	%esi, %eax
+	xorl	%ebp, %edx
+	movl	388(%esp), %esi
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	movl	%ecx, %ebp
+	setb	%bl
+	movzbl	%bl, %eax
+	shrl	$29, %ebp
+	addl	%eax, %edx
+	leal	0(,%ecx,8), %ebx
+	addl	%esi, %edx
+	leal	0(,%edx,8), %esi
+	xorl	%eax, %eax
+	orl	%ebp, %esi
+	cmpl	%ecx, %ebx
+	movl	%ebx, %ebp
+	setb	%al
+	leal	(%edx,%eax), %eax
+	movl	312(%esp), %edx
+	subl	%ecx, %ebp
+	subl	%eax, %esi
+	xorl	%ecx, %ecx
+	movl	372(%esp), %ebx
+	movl	308(%esp), %eax
+	xorl	$-1515870811, %edx
+	cmpl	%edx, 372(%esp)
+	setb	%cl
+	subl	%edx, %ebx
+	xorl	%edi, 304(%esp)
+	xorl	$-1515870811, %eax
+	addl	%ecx, %eax
+	movl	%ebx, 292(%esp)
+	movl	368(%esp), %ebx
+	movl	364(%esp), %ecx
+	xorl	%ecx, 300(%esp)
+	subl	%eax, %ebx
+	movl	304(%esp), %eax
+	movl	%ebx, 288(%esp)
+	movzbl	304(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table(,%ebx,8), %edx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	300(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	300(%esp), %eax
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%ebx, %edx
+	xorl	%ebx, %ebx
+	cmpl	%ecx, %ebp
+	setb	%bl
+	subl	%ecx, %ebp
+	addl	%ebx, %edx
+	subl	%edx, %esi
+	movl	%ebp, 284(%esp)
+	movl	304(%esp), %eax
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	xorl	%ebx, %edx
+	movl	300(%esp), %ebx
+	xorl	%ebp, %eax
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebp
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%ecx,8), %ebp
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	movl	tiger_table(,%ecx,8), %ebx
+	xorl	%ebp, %edx
+	movl	tiger_table+4(,%ecx,8), %ebp
+	movl	320(%esp), %ecx
+	xorl	%ebx, %eax
+	xorl	%ebp, %edx
+	addl	%eax, %ecx
+	movl	316(%esp), %ebp
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	addl	%ebp, %edx
+	movl	%ecx, %eax
+	leal	0(,%ecx,8), %ebx
+	shrl	$29, %eax
+	leal	0(,%edx,8), %ebp
+	orl	%eax, %ebp
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebx
+	setb	%al
+	subl	%ecx, %ebx
+	movl	292(%esp), %ecx
+	movl	%ebx, 296(%esp)
+	leal	(%edx,%eax), %ebx
+	subl	%ebx, %ebp
+	movl	288(%esp), %edx
+	xorl	%ecx, %edi
+	movl	360(%esp), %ebx
+	xorl	%ebx, 284(%esp)
+	movl	364(%esp), %eax
+	movl	352(%esp), %ecx
+	movzbl	284(%esp),%ebx
+	xorl	%edx, %eax
+	xorl	%ecx, %esi
+	movl	%eax, 272(%esp)
+	movl	284(%esp), %eax
+	movl	tiger_table(,%ebx,8), %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%eax, %edx
+	movl	%esi, %eax
+	andl	$255, %eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	%esi, %eax
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ebx, %edx
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	cmpl	%ecx, 296(%esp)
+	movl	296(%esp), %ebx
+	setb	%al
+	subl	%ecx, %ebx
+	addl	%eax, %edx
+	subl	%edx, %ebp
+	movl	%ebx, 268(%esp)
+	movl	284(%esp), %eax
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	%esi, %ebx
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+2052(,%ecx,8), %ebx
+	movl	%esi, %ecx
+	shrl	$24, %ecx
+	xorl	%ebx, %edx
+	movl	tiger_table(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+4(,%ecx,8), %ebx
+	movl	304(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%bl
+	movzbl	%bl, %eax
+	movl	300(%esp), %ebx
+	addl	%eax, %edx
+	addl	%ebx, %edx
+	leal	0(,%edx,8), %eax
+	leal	0(,%ecx,8), %ebx
+	movl	%eax, 252(%esp)
+	movl	%ecx, %eax
+	shrl	$29, %eax
+	orl	%eax, 252(%esp)
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebx
+	setb	%al
+	subl	%ecx, %ebx
+	leal	(%edx,%eax), %eax
+	movl	%ebx, 280(%esp)
+	movl	360(%esp), %ebx
+	movl	272(%esp), %ecx
+	subl	%eax, 252(%esp)
+	xorl	%eax, %eax
+	addl	%edi, %ebx
+	movl	%ebx, 276(%esp)
+	cmpl	%edi, %ebx
+	movl	352(%esp), %edx
+	movl	356(%esp), %ebx
+	setb	%al
+	addl	%ecx, %eax
+	xorl	%ebx, 268(%esp)
+	addl	%edx, %eax
+	movl	348(%esp), %ecx
+	movl	%eax, 260(%esp)
+	movl	268(%esp), %eax
+	xorl	%ecx, %ebp
+	movzbl	268(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table(,%ebx,8), %edx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%eax, %edx
+	movl	%ebp, %eax
+	andl	$255, %eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	%ebp, %eax
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ebx, %edx
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	movl	280(%esp), %ebx
+	cmpl	%ecx, 280(%esp)
+	setb	%al
+	subl	%ecx, %ebx
+	movl	%ebx, 256(%esp)
+	addl	%eax, %edx
+	movl	268(%esp), %eax
+	subl	%edx, 252(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	%ebp, %ebx
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+2052(,%ecx,8), %ebx
+	movl	%ebp, %ecx
+	shrl	$24, %ecx
+	xorl	%ebx, %edx
+	movl	tiger_table(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+4(,%ecx,8), %ebx
+	movl	284(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	movl	%ecx, %eax
+	leal	(%esi,%edx), %ebx
+	shrl	$29, %eax
+	leal	0(,%ecx,8), %edx
+	leal	0(,%ebx,8), %esi
+	orl	%eax, %esi
+	xorl	%eax, %eax
+	cmpl	%ecx, %edx
+	setb	%al
+	subl	%ecx, %edx
+	leal	(%ebx,%eax), %ecx
+	movl	%edx, 264(%esp)
+	movl	276(%esp), %ebx
+	movl	%edi, %eax
+	notl	%eax
+	subl	%ecx, %esi
+	movl	356(%esp), %edx
+	sall	$19, %eax
+	movl	%edi, %ecx
+	xorl	%ebx, %eax
+	xorl	%ebx, %ebx
+	cmpl	%eax, 356(%esp)
+	setb	%bl
+	subl	%eax, %edx
+	movl	%edx, 244(%esp)
+	movl	272(%esp), %eax
+	shrl	$13, %ecx
+	movl	260(%esp), %edx
+	sall	$19, %eax
+	orl	%ecx, %eax
+	notl	%edx
+	movl	340(%esp), %ecx
+	xorl	%eax, %edx
+	xorl	%ecx, 252(%esp)
+	addl	%ebx, %edx
+	movl	348(%esp), %eax
+	movl	344(%esp), %ebx
+	xorl	%ebx, 256(%esp)
+	subl	%edx, %eax
+	movl	%eax, 240(%esp)
+	movl	256(%esp), %eax
+	movzbl	256(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%eax, %edx
+	movzbl	252(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	252(%esp), %eax
+	xorl	%ebx, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	movl	264(%esp), %ebx
+	cmpl	%ecx, 264(%esp)
+	setb	%al
+	subl	%ecx, %ebx
+	movl	%ebx, 236(%esp)
+	addl	%eax, %edx
+	movl	256(%esp), %eax
+	subl	%edx, %esi
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	252(%esp), %ebx
+	movzbl	%bh, %ecx
+	xorl	tiger_table+2048(,%ecx,8), %eax
+	xorl	tiger_table+2052(,%ecx,8), %edx
+	movl	%ebx, %ecx
+	shrl	$24, %ecx
+	movl	tiger_table(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+4(,%ecx,8), %ebx
+	movl	268(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	movl	%ecx, %eax
+	leal	(%ebp,%edx), %ebx
+	shrl	$29, %eax
+	leal	0(,%ecx,8), %edx
+	leal	0(,%ebx,8), %ebp
+	orl	%eax, %ebp
+	xorl	%eax, %eax
+	cmpl	%ecx, %edx
+	setb	%al
+	leal	(%ebx,%eax), %eax
+	subl	%ecx, %edx
+	movl	%edx, 248(%esp)
+	movl	244(%esp), %ebx
+	subl	%eax, %ebp
+	movl	344(%esp), %ecx
+	movl	240(%esp), %edx
+	movl	340(%esp), %eax
+	xorl	%ebx, %ecx
+	movl	336(%esp), %ebx
+	xorl	%edx, %eax
+	xorl	%ebx, 236(%esp)
+	movl	%eax, 220(%esp)
+	movl	%ecx, 228(%esp)
+	movl	236(%esp), %eax
+	movl	328(%esp), %ecx
+	movzbl	236(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ecx, %esi
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%eax, %edx
+	movl	%esi, %eax
+	andl	$255, %eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	%esi, %eax
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ebx, %edx
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	cmpl	%ecx, 248(%esp)
+	movl	248(%esp), %ebx
+	setb	%al
+	subl	%ecx, %ebx
+	addl	%eax, %edx
+	subl	%edx, %ebp
+	movl	%ebx, 216(%esp)
+	movl	236(%esp), %eax
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	%esi, %ebx
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+2052(,%ecx,8), %ebx
+	movl	%esi, %ecx
+	shrl	$24, %ecx
+	xorl	%ebx, %edx
+	movl	tiger_table(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+4(,%ecx,8), %ebx
+	movl	256(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	movl	252(%esp), %ebx
+	addl	%edx, %ebx
+	leal	0(,%ebx,8), %eax
+	leal	0(,%ecx,8), %edx
+	movl	%eax, 204(%esp)
+	movl	%ecx, %eax
+	shrl	$29, %eax
+	orl	%eax, 204(%esp)
+	xorl	%eax, %eax
+	cmpl	%ecx, %edx
+	setb	%al
+	subl	%ecx, %edx
+	leal	(%ebx,%eax), %ecx
+	movl	%edx, 232(%esp)
+	movl	228(%esp), %eax
+	movl	336(%esp), %edx
+	subl	%ecx, 204(%esp)
+	movl	228(%esp), %ebx
+	addl	%eax, %edx
+	movl	%edx, 224(%esp)
+	movl	220(%esp), %ecx
+	xorl	%eax, %eax
+	cmpl	%ebx, %edx
+	movl	328(%esp), %edx
+	setb	%al
+	movl	332(%esp), %ebx
+	addl	%ecx, %eax
+	movl	324(%esp), %ecx
+	xorl	%ebx, 216(%esp)
+	addl	%edx, %eax
+	movl	%eax, 212(%esp)
+	xorl	%ecx, %ebp
+	movl	216(%esp), %eax
+	movzbl	216(%esp),%ebx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%ebx,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%ebx,8), %eax
+	xorl	%eax, %edx
+	movl	%ebp, %eax
+	andl	$255, %eax
+	movl	tiger_table+4096(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+4100(,%eax,8), %ebx
+	movl	%ebp, %eax
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%ebx, %edx
+	movl	tiger_table+6144(,%eax,8), %ebx
+	xorl	%ebx, %ecx
+	movl	tiger_table+6148(,%eax,8), %ebx
+	xorl	%eax, %eax
+	xorl	%ebx, %edx
+	movl	232(%esp), %ebx
+	cmpl	%ecx, 232(%esp)
+	setb	%al
+	subl	%ecx, %ebx
+	movl	%ebx, 208(%esp)
+	addl	%eax, %edx
+	movl	216(%esp), %eax
+	subl	%edx, 204(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %ebx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebx, %eax
+	movl	tiger_table+6148(,%ecx,8), %ebx
+	xorl	%ebx, %edx
+	movl	%ebp, %ebx
+	movzbl	%bh, %ecx
+	movl	tiger_table+2048(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+2052(,%ecx,8), %ebx
+	movl	%ebp, %ecx
+	shrl	$24, %ecx
+	xorl	%ebx, %edx
+	movl	tiger_table(,%ecx,8), %ebx
+	xorl	%ebx, %eax
+	movl	tiger_table+4(,%ecx,8), %ebx
+	movl	236(%esp), %ecx
+	xorl	%ebx, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %ebx
+	addl	%ebx, %edx
+	leal	(%esi,%edx), %edx
+	movl	%ecx, %esi
+	leal	0(,%edx,8), %eax
+	leal	0(,%ecx,8), %ebx
+	movl	%eax, 132(%esp)
+	shrl	$29, %esi
+	xorl	%eax, %eax
+	orl	%esi, 132(%esp)
+	cmpl	%ecx, %ebx
+	setb	%al
+	leal	(%edx,%eax), %esi
+	movl	228(%esp), %eax
+	movl	220(%esp), %edx
+	subl	%esi, 132(%esp)
+	subl	%ecx, %ebx
+	movl	224(%esp), %ecx
+	sall	$9, %edx
+	movl	332(%esp), %esi
+	shrl	$23, %eax
+	orl	%edx, %eax
+	notl	%ecx
+	xorl	%eax, %ecx
+	xorl	%edx, %edx
+	cmpl	%ecx, 332(%esp)
+	movl	220(%esp), %eax
+	setb	%dl
+	subl	%ecx, %esi
+	movl	212(%esp), %ecx
+	notl	%eax
+	movl	%esi, 196(%esp)
+	shrl	$23, %eax
+	xorl	%ecx, %eax
+	movl	312(%esp), %esi
+	addl	%edx, %eax
+	movl	324(%esp), %edx
+	xorl	%esi, 208(%esp)
+	movl	308(%esp), %ecx
+	subl	%eax, %edx
+	movzbl	208(%esp),%esi
+	movl	%edx, 192(%esp)
+	movl	208(%esp), %eax
+	xorl	%ecx, 204(%esp)
+	shrl	$16, %eax
+	movl	tiger_table(,%esi,8), %edx
+	andl	$255, %eax
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%esi,8), %eax
+	xorl	%eax, %edx
+	movzbl	204(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	204(%esp), %eax
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebx
+	subl	%edx, 132(%esp)
+	movl	208(%esp), %eax
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	204(%esp), %ecx
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	shrl	$24, %ecx
+	xorl	tiger_table+2048(,%esi,8), %eax
+	xorl	tiger_table+2052(,%esi,8), %edx
+	movl	tiger_table(,%ecx,8), %esi
+	xorl	%esi, %eax
+	movl	tiger_table+4(,%ecx,8), %esi
+	movl	216(%esp), %ecx
+	xorl	%esi, %edx
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movzbl	%al, %esi
+	addl	%esi, %edx
+	leal	(%ebp,%edx), %esi
+	leal	0(,%esi,8), %eax
+	movl	%ecx, %edx
+	leal	0(,%ecx,8), %ebp
+	movl	%eax, 120(%esp)
+	shrl	$29, %edx
+	xorl	%eax, %eax
+	orl	%edx, 120(%esp)
+	cmpl	%ecx, %ebp
+	setb	%al
+	leal	(%esi,%eax), %edx
+	subl	%ecx, %ebp
+	movl	196(%esp), %ecx
+	subl	%edx, 120(%esp)
+	xorl	%eax, %eax
+	movl	312(%esp), %edx
+	movl	%ebp, 200(%esp)
+	movl	192(%esp), %ebp
+	movl	288(%esp), %esi
+	xorl	%ecx, %edx
+	movl	308(%esp), %ecx
+	movl	%edx, 188(%esp)
+	xorl	%ebp, %ecx
+	movl	292(%esp), %ebp
+	movl	%ecx, 184(%esp)
+	addl	%edx, %ebp
+	cmpl	%edx, %ebp
+	setb	%al
+	addl	%ecx, %eax
+	addl	%esi, %eax
+	movl	%eax, 180(%esp)
+	movl	%edx, %eax
+	notl	%eax
+	sall	$19, %eax
+	xorl	%ebp, %eax
+	cmpl	%eax, %edi
+	setb	%dl
+	subl	%eax, %edi
+	movl	%ecx, %eax
+	movl	188(%esp), %ecx
+	movzbl	%dl, %esi
+	sall	$19, %eax
+	movl	180(%esp), %edx
+	shrl	$13, %ecx
+	orl	%ecx, %eax
+	notl	%edx
+	movl	272(%esp), %ecx
+	xorl	%eax, %edx
+	addl	%esi, %edx
+	movl	276(%esp), %eax
+	subl	%edx, %ecx
+	movl	%ecx, 176(%esp)
+	movl	260(%esp), %edx
+	xorl	%edi, %eax
+	movl	%eax, 172(%esp)
+	xorl	%ecx, %edx
+	movl	%edx, 164(%esp)
+	movl	244(%esp), %ecx
+	movl	240(%esp), %esi
+	addl	%eax, %ecx
+	cmpl	%eax, %ecx
+	setb	%al
+	movl	%ecx, 168(%esp)
+	movzbl	%al, %eax
+	addl	%edx, %eax
+	addl	%esi, %eax
+	movl	172(%esp), %esi
+	sall	$9, %edx
+	movl	%eax, 160(%esp)
+	notl	%ecx
+	movl	164(%esp), %eax
+	shrl	$23, %esi
+	orl	%edx, %esi
+	xorl	%esi, %ecx
+	xorl	%edx, %edx
+	cmpl	%ecx, 228(%esp)
+	movl	228(%esp), %esi
+	notl	%eax
+	setb	%dl
+	subl	%ecx, %esi
+	movl	160(%esp), %ecx
+	movl	%esi, 156(%esp)
+	shrl	$23, %eax
+	xorl	%ecx, %eax
+	addl	%edx, %eax
+	movl	220(%esp), %edx
+	movl	224(%esp), %ecx
+	subl	%eax, %edx
+	movl	196(%esp), %eax
+	xorl	%esi, %ecx
+	movl	%edx, 152(%esp)
+	movl	212(%esp), %esi
+	movl	%ecx, 148(%esp)
+	addl	%ecx, %eax
+	xorl	%edx, %esi
+	movl	%eax, 144(%esp)
+	cmpl	%ecx, %eax
+	setb	%dl
+	movl	%esi, 140(%esp)
+	movl	192(%esp), %ecx
+	movzbl	%dl, %eax
+	movl	144(%esp), %edx
+	addl	%esi, %eax
+	addl	%ecx, %eax
+	movl	%eax, 136(%esp)
+	xorl	$-1985229329, %edx
+	xorl	%eax, %eax
+	cmpl	%edx, 188(%esp)
+	movl	136(%esp), %esi
+	movl	180(%esp), %ecx
+	setb	%al
+	xorl	%ebp, %ebx
+	xorl	$19088743, %esi
+	xorl	%ecx, 132(%esp)
+	addl	%eax, %esi
+	movl	%ebx, %eax
+	subl	%esi, 184(%esp)
+	shrl	$16, %eax
+	movzbl	%bl,%esi
+	subl	%edx, 188(%esp)
+	andl	$255, %eax
+	movl	tiger_table(,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%esi,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	132(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	132(%esp), %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	cmpl	%ecx, 200(%esp)
+	movl	200(%esp), %esi
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %esi
+	movzbl	%bh, %ecx
+	movl	%esi, 124(%esp)
+	movl	tiger_table+6144(,%ecx,8), %ebp
+	movl	tiger_table+6148(,%ecx,8), %esi
+	subl	%edx, 120(%esp)
+	movl	%ebx, %edx
+	shrl	$24, %edx
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	132(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%ebp, %eax
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %ebp
+	shrl	$24, %ecx
+	xorl	%ebp, %eax
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	tiger_table+4(,%ecx,8), %esi
+	xorl	%ebp, %edx
+	movl	tiger_table(,%ecx,8), %ebp
+	xorl	%esi, %edx
+	movl	208(%esp), %esi
+	xorl	%ebp, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movl	%esi, %ebp
+	movzbl	%al, %ecx
+	movl	204(%esp), %eax
+	addl	%ecx, %edx
+	shrl	$29, %ebp
+	leal	0(,%esi,8), %ecx
+	addl	%eax, %edx
+	xorl	%eax, %eax
+	movl	%edx, 128(%esp)
+	sall	$3, %edx
+	orl	%ebp, %edx
+	leal	(%esi,%ecx), %ebp
+	cmpl	%ecx, %ebp
+	movl	128(%esp), %esi
+	setb	%al
+	xorl	%edi, 124(%esp)
+	addl	%eax, %edx
+	movl	176(%esp), %ecx
+	xorl	%ecx, 120(%esp)
+	addl	%esi, %edx
+	movl	124(%esp), %eax
+	movzbl	124(%esp),%esi
+	movl	%edx, 112(%esp)
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%esi,8), %edi
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	120(%esp),%eax
+	xorl	%edi, %edx
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %edi
+	movl	120(%esp), %eax
+	xorl	%esi, %ecx
+	xorl	%edi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	movl	tiger_table+6148(,%eax,8), %edi
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	xorl	%edi, %edx
+	cmpl	%ecx, %ebp
+	setb	%al
+	subl	%ecx, %ebp
+	addl	%eax, %edx
+	movl	%ebp, 116(%esp)
+	movl	124(%esp), %eax
+	subl	%edx, 112(%esp)
+	movl	%eax, %edx
+	movzbl	%ah, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+6148(,%ecx,8), %ebp
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	120(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %edi
+	shrl	$24, %ecx
+	xorl	%ebp, %edx
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	tiger_table(,%ecx,8), %esi
+	xorl	%edi, %eax
+	movl	tiger_table+4(,%ecx,8), %edi
+	xorl	%ebp, %edx
+	xorl	%esi, %eax
+	addl	%eax, %ebx
+	xorl	%edi, %edx
+	cmpl	%eax, %ebx
+	movl	132(%esp), %esi
+	setb	%al
+	movl	%ebx, %ecx
+	movzbl	%al, %ebp
+	addl	%ebp, %edx
+	shrl	$29, %ecx
+	addl	%edx, %esi
+	leal	0(,%ebx,8), %edx
+	xorl	%eax, %eax
+	addl	%edx, %ebx
+	leal	0(,%esi,8), %edi
+	orl	%ecx, %edi
+	cmpl	%edx, %ebx
+	setb	%al
+	movl	164(%esp), %ecx
+	addl	%eax, %edi
+	xorl	%ecx, 112(%esp)
+	leal	(%esi,%edi), %ebp
+	movl	172(%esp), %esi
+	xorl	%esi, 116(%esp)
+	movl	%ebp, 108(%esp)
+	movl	116(%esp), %eax
+	movzbl	116(%esp),%edi
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%edi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%edi,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	112(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %edi
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	movl	112(%esp), %esi
+	xorl	%edi, %edx
+	shrl	$16, %esi
+	andl	$255, %esi
+	movl	tiger_table+6144(,%esi,8), %ebp
+	movl	tiger_table+6148(,%esi,8), %edi
+	xorl	%ebp, %ecx
+	xorl	%edi, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebx
+	subl	%edx, 108(%esp)
+	movl	116(%esp), %edx
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+6148(,%ecx,8), %ebp
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	112(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %edi
+	shrl	$24, %ecx
+	xorl	%ebp, %edx
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	tiger_table+4(,%ecx,8), %esi
+	xorl	%edi, %eax
+	movl	tiger_table(,%ecx,8), %edi
+	xorl	%ebp, %edx
+	xorl	%esi, %edx
+	movl	124(%esp), %esi
+	xorl	%edi, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movl	%esi, %edi
+	movzbl	%al, %ebp
+	addl	%ebp, %edx
+	movl	120(%esp), %ebp
+	leal	0(,%esi,8), %ecx
+	shrl	$29, %edi
+	xorl	%eax, %eax
+	addl	%edx, %ebp
+	leal	0(,%ebp,8), %edx
+	orl	%edi, %edx
+	leal	(%esi,%ecx), %edi
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	leal	(%ebp,%edx), %esi
+	movl	%esi, 100(%esp)
+	movl	168(%esp), %ebp
+	movl	160(%esp), %ecx
+	xorl	%ecx, 108(%esp)
+	xorl	%ebp, %ebx
+	movl	%ebx, %eax
+	shrl	$16, %eax
+	movzbl	%bl,%esi
+	andl	$255, %eax
+	movl	tiger_table(,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%esi,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	108(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	108(%esp), %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %edi
+	subl	%edx, 100(%esp)
+	movl	%ebx, %edx
+	movzbl	%bh, %ecx
+	movl	%edi, 104(%esp)
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+6148(,%ecx,8), %ebp
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	108(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %edi
+	shrl	$24, %ecx
+	xorl	%ebp, %edx
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	tiger_table+4(,%ecx,8), %esi
+	xorl	%edi, %eax
+	xorl	%ebp, %edx
+	movl	tiger_table(,%ecx,8), %edi
+	xorl	%esi, %edx
+	movl	116(%esp), %esi
+	xorl	%edi, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	movl	%esi, %edi
+	setb	%al
+	movzbl	%al, %ebp
+	leal	0(,%esi,8), %ecx
+	addl	%ebp, %edx
+	movl	112(%esp), %ebp
+	shrl	$29, %edi
+	xorl	%eax, %eax
+	addl	%edx, %ebp
+	leal	0(,%ebp,8), %edx
+	orl	%edi, %edx
+	leal	(%esi,%ecx), %edi
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	movl	152(%esp), %ecx
+	leal	(%ebp,%edx), %esi
+	movl	%esi, 92(%esp)
+	movl	156(%esp), %ebp
+	xorl	%ebp, 104(%esp)
+	xorl	%ecx, 100(%esp)
+	movl	104(%esp), %eax
+	movzbl	104(%esp),%esi
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%esi,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	100(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %ebp
+	movl	100(%esp), %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	movl	tiger_table+6148(,%eax,8), %ebp
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	xorl	%ebp, %edx
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %edi
+	subl	%edx, 92(%esp)
+	movl	104(%esp), %edx
+	movl	%edi, 96(%esp)
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+6148(,%ecx,8), %ebp
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	100(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %edi
+	shrl	$24, %ecx
+	xorl	%ebp, %edx
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	tiger_table(,%ecx,8), %esi
+	xorl	%edi, %eax
+	movl	tiger_table+4(,%ecx,8), %edi
+	xorl	%ebp, %edx
+	xorl	%esi, %eax
+	addl	%eax, %ebx
+	movl	108(%esp), %esi
+	xorl	%edi, %edx
+	cmpl	%eax, %ebx
+	setb	%al
+	movzbl	%al, %ebp
+	movl	%ebx, %ecx
+	addl	%ebp, %edx
+	addl	%edx, %esi
+	leal	0(,%ebx,8), %edx
+	addl	%edx, %ebx
+	shrl	$29, %ecx
+	xorl	%eax, %eax
+	leal	0(,%esi,8), %edi
+	orl	%ecx, %edi
+	cmpl	%edx, %ebx
+	movl	140(%esp), %ecx
+	setb	%al
+	addl	%eax, %edi
+	leal	(%esi,%edi), %ebp
+	xorl	%ecx, 92(%esp)
+	movl	148(%esp), %esi
+	xorl	%esi, 96(%esp)
+	movl	%ebp, 88(%esp)
+	movl	96(%esp), %eax
+	movzbl	96(%esp),%edi
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table(,%edi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table+4(,%edi,8), %ebp
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movzbl	92(%esp),%eax
+	xorl	%ebp, %edx
+	movl	tiger_table+4096(,%eax,8), %esi
+	movl	tiger_table+4100(,%eax,8), %edi
+	xorl	%eax, %eax
+	xorl	%esi, %ecx
+	movl	92(%esp), %esi
+	xorl	%edi, %edx
+	shrl	$16, %esi
+	andl	$255, %esi
+	movl	tiger_table+6144(,%esi,8), %ebp
+	movl	tiger_table+6148(,%esi,8), %edi
+	xorl	%ebp, %ecx
+	xorl	%edi, %edx
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %ebx
+	subl	%edx, 88(%esp)
+	movl	96(%esp), %edx
+	movzbl	%dh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+6148(,%ecx,8), %ebp
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	92(%esp), %ecx
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movzbl	%ch, %esi
+	movl	tiger_table+2048(,%esi,8), %edi
+	shrl	$24, %ecx
+	xorl	%ebp, %edx
+	movl	tiger_table+2052(,%esi,8), %ebp
+	movl	tiger_table+4(,%ecx,8), %esi
+	xorl	%edi, %eax
+	movl	tiger_table(,%ecx,8), %edi
+	xorl	%ebp, %edx
+	xorl	%esi, %edx
+	movl	104(%esp), %esi
+	xorl	%edi, %eax
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%al
+	movl	%esi, %edi
+	movzbl	%al, %ebp
+	addl	%ebp, %edx
+	movl	100(%esp), %ebp
+	leal	0(,%esi,8), %ecx
+	shrl	$29, %edi
+	xorl	%eax, %eax
+	addl	%edx, %ebp
+	leal	0(,%ebp,8), %edx
+	orl	%edi, %edx
+	leal	(%esi,%ecx), %edi
+	movl	144(%esp), %esi
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	movl	136(%esp), %ecx
+	xorl	%esi, %ebx
+	xorl	%ecx, 88(%esp)
+	movl	%ebx, %eax
+	shrl	$16, %eax
+	movzbl	%bl,%esi
+	andl	$255, %eax
+	addl	%edx, %ebp
+	movl	tiger_table+2048(,%eax,8), %ecx
+	movl	tiger_table(,%esi,8), %edx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%esi,8), %eax
+	xorl	%eax, %edx
+	movzbl	88(%esp),%eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	88(%esp), %eax
+	xorl	%esi, %edx
+	shrl	$16, %eax
+	andl	$255, %eax
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, %edi
+	setb	%al
+	addl	%eax, %edx
+	subl	%ecx, %edi
+	subl	%edx, %ebp
+	movl	%ebx, %edx
+	movzbl	%bh, %ecx
+	shrl	$24, %edx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	88(%esp), %ecx
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	shrl	$24, %ecx
+	xorl	tiger_table+2048(,%esi,8), %eax
+	xorl	tiger_table+2052(,%esi,8), %edx
+	movl	tiger_table(,%ecx,8), %esi
+	xorl	%esi, %eax
+	movl	tiger_table+4(,%ecx,8), %esi
+	xorl	%esi, %edx
+	movl	96(%esp), %esi
+	addl	%eax, %esi
+	cmpl	%eax, %esi
+	setb	%cl
+	movzbl	%cl, %eax
+	movl	92(%esp), %ecx
+	addl	%eax, %edx
+	movl	%esi, %eax
+	shrl	$29, %eax
+	addl	%ecx, %edx
+	movl	%edx, 84(%esp)
+	leal	0(,%esi,8), %ecx
+	addl	%ecx, %esi
+	movl	%esi, 80(%esp)
+	sall	$3, %edx
+	orl	%eax, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, %esi
+	setb	%al
+	movl	188(%esp), %esi
+	addl	%eax, %edx
+	movl	84(%esp), %eax
+	movl	184(%esp), %ecx
+	xorl	%esi, %edi
+	addl	%eax, %edx
+	movl	%edx, 76(%esp)
+	movl	%edi, %eax
+	movl	%edi, %esi
+	shrl	$16, %eax
+	andl	$255, %esi
+	andl	$255, %eax
+	xorl	%ecx, %ebp
+	movl	tiger_table(,%esi,8), %edx
+	movl	tiger_table+2048(,%eax,8), %ecx
+	xorl	%edx, %ecx
+	movl	tiger_table+2052(,%eax,8), %edx
+	movl	tiger_table+4(,%esi,8), %eax
+	xorl	%eax, %edx
+	movl	%ebp, %eax
+	andl	$255, %eax
+	movl	tiger_table+4096(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+4100(,%eax,8), %esi
+	movl	%ebp, %eax
+	shrl	$16, %eax
+	andl	$255, %eax
+	xorl	%esi, %edx
+	movl	tiger_table+6144(,%eax,8), %esi
+	xorl	%esi, %ecx
+	movl	tiger_table+6148(,%eax,8), %esi
+	xorl	%eax, %eax
+	xorl	%esi, %edx
+	cmpl	%ecx, 80(%esp)
+	setb	%al
+	addl	%eax, %edx
+	subl	%edx, 76(%esp)
+	movl	%edi, %eax
+	movl	%edi, %edx
+	subl	%ecx, 80(%esp)
+	shrl	$24, %edx
+	movzbl	%ah, %ecx
+	movl	tiger_table+6144(,%ecx,8), %esi
+	movl	tiger_table+4096(,%edx,8), %eax
+	movl	tiger_table+4100(,%edx,8), %edx
+	xorl	%esi, %eax
+	movl	tiger_table+6148(,%ecx,8), %esi
+	movl	%ebp, %ecx
+	xorl	%esi, %edx
+	movzbl	%ch, %esi
+	shrl	$24, %ecx
+	xorl	tiger_table+2048(,%esi,8), %eax
+	xorl	tiger_table+2052(,%esi,8), %edx
+	movl	tiger_table(,%ecx,8), %esi
+	xorl	%esi, %eax
+	movl	tiger_table+4(,%ecx,8), %esi
+	addl	%eax, %ebx
+	xorl	%esi, %edx
+	cmpl	%eax, %ebx
+	setb	%cl
+	movl	%ebx, %eax
+	movzbl	%cl, %esi
+	leal	0(,%ebx,8), %ecx
+	addl	%esi, %edx
+	movl	88(%esp), %esi
+	shrl	$29, %eax
+	addl	%ecx, %ebx
+	addl	%edx, %esi
+	leal	0(,%esi,8), %edx
+	orl	%eax, %edx
+	xorl	%eax, %eax
+	cmpl	%ecx, %ebx
+	setb	%al
+	addl	%eax, %edx
+	movl	72(%esp), %ecx
+	movl	68(%esp), %eax
+	leal	(%esi,%edx), %edx
+	xorl	%ecx, %ebx
+	movl	64(%esp), %ecx
+	xorl	%eax, %edx
+	xorl	%eax, %eax
+	movl	496(%esp), %esi
+	cmpl	496(%esp), %edi
+	setb	%al
+	addl	%ecx, %eax
+	subl	%eax, %ebp
+	movl	80(%esp), %ecx
+	subl	%esi, %edi
+	movl	492(%esp), %eax
+	movl	60(%esp), %esi
+	addl	%eax, %ecx
+	xorl	%eax, %eax
+	cmpl	492(%esp), %ecx
+	setb	%al
+	addl	%esi, %eax
+	movl	76(%esp), %esi
+	addl	%esi, %eax
+	movl	532(%esp), %esi
+	movl	%ebx, (%esi)
+	movl	%edx, 4(%esi)
+	movl	%edi, 8(%esi)
+	movl	%ebp, 12(%esi)
+	movl	%ecx, 16(%esi)
+	movl	%eax, 20(%esi)
+	subl	$64, 500(%esp)
+	addl	$64, 524(%esp)
+	cmpl	$63, 500(%esp)
+	ja	.L6
+.L8:
+	addl	$504, %esp
+	popl	%ebx
+	popl	%esi
+	popl	%edi
+	popl	%ebp
+	ret
+	.size	tiger_t, .-tiger_t
+.globl tiger
+	.type	tiger, @function
+tiger:
+	pushl	%ebp
+	movl	%esp, %ebp
+	pushl	%edi
+	pushl	%esi
+	pushl	%ebx
+	subl	$84, %esp
+	movl	12(%ebp), %esi
+	movl	8(%ebp), %ebx
+	movl	16(%ebp), %edi
+	cmpl	$63, %esi
+	jbe	.L33
+.L42:
+	movl	%ebx, (%esp)
+	subl	$64, %esi
+	addl	$64, %ebx
+	movl	%edi, 4(%esp)
+	call	tiger_compress
+	cmpl	$63, %esi
+	ja	.L42
+.L33:
+	xorl	%ecx, %ecx
+	cmpl	%esi, %ecx
+	jb	.L126
+.L35:
+	movb	$1, -88(%ecx,%ebp)
+	leal	1(%ecx), %eax
+	testb	$7, %al
+	je	.L37
+.L44:
+	movb	$0, -88(%ebp,%eax)
+	incl	%eax
+	testb	$7, %al
+	jne	.L44
+.L37:
+	cmpl	$56, %eax
+	jbe	.L23
+	cmpl	$63, %eax
+	jbe	.L127
+.L39:
+	movl	%edi, 4(%esp)
+	leal	-88(%ebp), %eax
+	movl	%eax, (%esp)
+	call	tiger_compress
+	xorl	%eax, %eax
+.L23:
+	cmpl	$55, %eax
+	ja	.L41
+	movb	$0, -88(%ebp,%eax)
+	movl	%eax, %ecx
+	leal	1(%eax), %edx
+	notl	%ecx
+	andl	$7, %ecx
+	cmpl	$55, %edx
+	ja	.L41
+	testl	%ecx, %ecx
+	je	.L46
+	cmpl	$1, %ecx
+	je	.L129
+	cmpl	$2, %ecx
+	je	.L130
+	cmpl	$3, %ecx
+	je	.L131
+	cmpl	$4, %ecx
+	je	.L132
+	cmpl	$5, %ecx
+	je	.L133
+	cmpl	$6, %ecx
+	je	.L134
+	movb	$0, -88(%ebp,%edx)
+	leal	2(%eax), %edx
+.L134:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L133:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L132:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L131:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L130:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L129:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+	cmpl	$55, %edx
+	ja	.L41
+.L46:
+	movb	$0, -88(%ebp,%edx)
+	movb	$0, -87(%edx,%ebp)
+	movb	$0, -86(%edx,%ebp)
+	movb	$0, -85(%edx,%ebp)
+	movb	$0, -84(%edx,%ebp)
+	movb	$0, -83(%edx,%ebp)
+	movb	$0, -82(%edx,%ebp)
+	movb	$0, -81(%edx,%ebp)
+	addl	$8, %edx
+	cmpl	$55, %edx
+	ja	.L41
+	jmp	.L46
+.L127:
+	movb	$0, -88(%ebp,%eax)
+	movl	%eax, %ecx
+	leal	1(%eax), %edx
+	notl	%ecx
+	andl	$7, %ecx
+	cmpl	$63, %edx
+	ja	.L39
+	testl	%ecx, %ecx
+	je	.L45
+	cmpl	$1, %ecx
+	je	.L135
+	cmpl	$2, %ecx
+	je	.L136
+	cmpl	$3, %ecx
+	je	.L137
+	cmpl	$4, %ecx
+	je	.L138
+	cmpl	$5, %ecx
+	je	.L139
+	cmpl	$6, %ecx
+	je	.L140
+	movb	$0, -88(%ebp,%edx)
+	leal	2(%eax), %edx
+.L140:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L139:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L138:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L137:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L136:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+.L135:
+	movb	$0, -88(%ebp,%edx)
+	incl	%edx
+	cmpl	$63, %edx
+	ja	.L39
+.L45:
+	movb	$0, -88(%ebp,%edx)
+	movb	$0, -87(%edx,%ebp)
+	movb	$0, -86(%edx,%ebp)
+	movb	$0, -85(%edx,%ebp)
+	movb	$0, -84(%edx,%ebp)
+	movb	$0, -83(%edx,%ebp)
+	movb	$0, -82(%edx,%ebp)
+	movb	$0, -81(%edx,%ebp)
+	addl	$8, %edx
+	cmpl	$63, %edx
+	ja	.L39
+	jmp	.L45
+.L126:
+	movl	%ecx, %eax
+	notl	%eax
+	leal	(%eax,%esi), %edx
+	movzbl	(%ebx,%ecx), %eax
+	andl	$7, %edx
+	movb	%al, -88(%ebp,%ecx)
+	incl	%ecx
+	cmpl	%esi, %ecx
+	jae	.L35
+	testl	%edx, %edx
+	je	.L43
+	cmpl	$1, %edx
+	je	.L141
+	cmpl	$2, %edx
+	je	.L142
+	cmpl	$3, %edx
+	je	.L143
+	cmpl	$4, %edx
+	je	.L144
+	cmpl	$5, %edx
+	je	.L145
+	cmpl	$6, %edx
+	je	.L146
+	movzbl	(%ebx,%ecx), %edx
+	movb	%dl, -88(%ebp,%ecx)
+	incl	%ecx
+.L146:
+	movzbl	(%ebx,%ecx), %eax
+	movb	%al, -88(%ebp,%ecx)
+	incl	%ecx
+.L145:
+	movzbl	(%ebx,%ecx), %edx
+	movb	%dl, -88(%ebp,%ecx)
+	incl	%ecx
+.L144:
+	movzbl	(%ebx,%ecx), %eax
+	movb	%al, -88(%ebp,%ecx)
+	incl	%ecx
+.L143:
+	movzbl	(%ebx,%ecx), %edx
+	movb	%dl, -88(%ebp,%ecx)
+	incl	%ecx
+.L142:
+	movzbl	(%ebx,%ecx), %eax
+	movb	%al, -88(%ebp,%ecx)
+	incl	%ecx
+.L141:
+	movzbl	(%ebx,%ecx), %edx
+	movb	%dl, -88(%ebp,%ecx)
+	incl	%ecx
+	cmpl	%esi, %ecx
+	jae	.L35
+.L43:
+	movzbl	(%ebx,%ecx), %edx
+	movb	%dl, -88(%ebp,%ecx)
+	leal	1(%ecx), %edx
+	movzbl	(%ebx,%edx), %eax
+	movb	%al, -88(%ebp,%edx)
+	leal	2(%ecx), %edx
+	movzbl	(%ebx,%edx), %eax
+	movb	%al, -88(%ebp,%edx)
+	leal	3(%ecx), %edx
+	movzbl	(%ebx,%edx), %eax
+	movb	%al, -88(%ebp,%edx)
+	leal	4(%ecx), %edx
+	movzbl	(%ebx,%edx), %eax
+	movb	%al, -88(%ebp,%edx)
+	leal	5(%ecx), %edx
+	movzbl	(%ebx,%edx), %eax
+	movb	%al, -88(%ebp,%edx)
+	leal	6(%ecx), %edx
+	movzbl	(%ebx,%edx), %eax
+	movb	%al, -88(%ebp,%edx)
+	leal	7(%ecx), %edx
+	addl	$8, %ecx
+	movzbl	(%ebx,%edx), %eax
+	cmpl	%esi, %ecx
+	movb	%al, -88(%ebp,%edx)
+	jae	.L35
+	jmp	.L43
+.L41:
+	movl	%edi, 4(%esp)
+	movl	12(%ebp), %ebx
+	leal	-88(%ebp), %ecx
+	movl	$0, -28(%ebp)
+	movl	%ecx, (%esp)
+	sall	$3, %ebx
+	movl	%ebx, -32(%ebp)
+	call	tiger_compress
+	addl	$84, %esp
+	popl	%ebx
+	popl	%esi
+	popl	%edi
+	popl	%ebp
+	ret
+	.size	tiger, .-tiger
+	.section	.note.GNU-stack,"",@progbits
+	.ident	"GCC: (GNU) 3.4.0"
