/* lzo1y_f1.S -- lzo1y_decompress_asm_fast

   This file is part of the LZO real-time data compression library.

   Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
   Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
   All Rights Reserved.

   The LZO library is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License as
   published by the Free Software Foundation; either version 2 of
   the License, or (at your option) any later version.

   The LZO library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with the LZO library; see the file COPYING.
   If not, write to the Free Software Foundation, Inc.,
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

   Markus F.X.J. Oberhumer
   <markus@oberhumer.com>
   http://www.oberhumer.com/opensource/lzo/
*/

/***** DO NOT EDIT - GENERATED AUTOMATICALLY *****/

#include "asminit.def"
typef(_lzo1y_decompress_asm_fast)
typef(F(lzo1y_decompress_asm_fast))
global(_lzo1y_decompress_asm_fast)
global(F(lzo1y_decompress_asm_fast))
_lzo1y_decompress_asm_fast:
F(lzo1y_decompress_asm_fast):
db 85,87,86,83,81,82,131,236,12,252,139,116,36,40,139,124
db 36,48,189,3,0,0,0,49,192,49,219,172,60,17,118,27
db 44,14,235,34,5,255,0,0,0,138,30,70,8,219,116,244
db 141,68,24,21,235,16,137,246,138,6,70,60,16,115,65,8
db 192,116,230,131,192,6,137,193,49,232,193,233,2,33,232,139
db 22,131,198,4,137,23,131,199,4,73,117,243,41,198,41,199
db 138,6,70,60,16,115,25,193,232,2,138,30,141,151,255,251
db 255,255,141,4,152,70,41,194,139,10,137,15,1,239,235,110
db 60,64,114,52,137,193,193,232,2,141,87,255,33,232,138,30
db 193,233,4,141,4,152,70,41,194,131,193,2,57,232,115,54
db 235,110,5,255,0,0,0,138,30,70,8,219,116,244,141,76
db 24,36,49,192,235,14,137,246,60,32,114,116,131,224,31,116
db 230,141,72,5,102,139,6,141,87,255,193,232,2,131,198,2
db 41,194,57,232,114,58,141,68,15,253,193,233,2,139,26,131
db 194,4,137,31,131,199,4,73,117,243,137,199,49,219,138,70
db 254,33,232,15,132,63,255,255,255,139,22,1,198,137,23,1
db 199,138,6,70,233,119,255,255,255,141,180,38,0,0,0,0
db 135,214,41,233,243,164,137,214,235,212,129,193,255,0,0,0
db 138,30,70,8,219,116,243,141,76,11,12,235,23,141,118,0
db 60,16,114,44,137,193,131,224,8,193,224,13,131,225,7,116
db 223,131,193,5,102,139,6,131,198,2,141,151,0,192,255,255
db 193,232,2,116,43,41,194,233,122,255,255,255,141,116,38,0
db 193,232,2,138,30,141,87,255,141,4,152,70,41,194,138,2
db 136,7,138,90,1,136,95,1,131,199,2,233,110,255,255,255
db 131,249,6,15,149,192,139,84,36,40,3,84,36,44,57,214
db 119,38,114,29,43,124,36,48,139,84,36,52,137,58,247,216
db 131,196,12,90,89,91,94,95,93,195,184,1,0,0,0,235
db 227,184,8,0,0,0,235,220,184,4,0,0,0,235,213,144
size(_lzo1y_decompress_asm_fast,.-_lzo1y_decompress_asm_fast)
size(F(lzo1y_decompress_asm_fast),.-F(lzo1y_decompress_asm_fast))
