/* lzo1f_f1.S -- lzo1f_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(_lzo1f_decompress_asm_fast)
typef(F(lzo1f_decompress_asm_fast))
global(_lzo1f_decompress_asm_fast)
global(F(lzo1f_decompress_asm_fast))
_lzo1f_decompress_asm_fast:
F(lzo1f_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,144,49,192,138,6,70,60,31,119
db 51,8,192,137,193,117,19,138,6,70,8,192,117,8,129,193
db 255,0,0,0,235,241,141,76,8,31,136,200,193,233,2,243
db 165,36,3,116,8,139,30,1,198,137,31,1,199,138,6,70
db 60,31,118,88,60,223,15,135,132,0,0,0,137,193,193,232
db 2,141,87,255,36,7,193,233,5,137,195,138,6,141,4,195
db 70,41,194,131,193,2,135,214,131,249,6,114,16,131,248,4
db 114,11,136,200,193,233,2,243,165,36,3,136,193,243,164,137
db 214,138,78,254,131,225,3,15,132,123,255,255,255,139,6,1
db 206,137,7,1,207,49,192,138,6,70,235,164,193,232,2,141
db 151,255,247,255,255,137,193,138,6,70,141,4,193,41,194,139
db 2,137,7,131,199,3,235,201,138,6,70,8,192,117,8,129
db 193,255,0,0,0,235,241,141,76,8,31,235,9,141,118,0
db 36,31,137,193,116,226,137,250,102,139,6,131,198,2,193,232
db 2,15,133,122,255,255,255,131,249,1,15,149,192,139,84,36
db 40,3,84,36,44,57,214,119,38,114,29,43,124,36,48,139
db 84,36,52,137,58,247,216,131,196,12,90,89,91,94,95,93
db 195,184,1,0,0,0,235,227,184,8,0,0,0,235,220,184
db 4,0,0,0,235,213,141,118,0,141,188,39,0,0,0,0
size(_lzo1f_decompress_asm_fast,.-_lzo1f_decompress_asm_fast)
size(F(lzo1f_decompress_asm_fast),.-F(lzo1f_decompress_asm_fast))
