basic win64 PE support added
This commit is contained in:
parent
037c29d24a
commit
5b8a9c0b47
@ -487,6 +487,8 @@ private:
|
||||
#define UPX_F_MACH_AMD64 34
|
||||
#define UPX_F_DYLIB_AMD64 35
|
||||
|
||||
#define UPX_F_WIN64_PEP 36
|
||||
|
||||
#define UPX_F_PLAIN_TEXT 127
|
||||
|
||||
#define UPX_F_ATARI_TOS 129
|
||||
|
||||
1568
src/p_w64pep.cpp
Normal file
1568
src/p_w64pep.cpp
Normal file
File diff suppressed because it is too large
Load Diff
87
src/p_w64pep.h
Normal file
87
src/p_w64pep.h
Normal file
@ -0,0 +1,87 @@
|
||||
/* p_w64pep.h --
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2013 Laszlo Molnar
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them 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.
|
||||
|
||||
This program 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 this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __UPX_P_W64PEP_H
|
||||
#define __UPX_P_W64PEP_H 1
|
||||
|
||||
/*************************************************************************
|
||||
// w64/pep
|
||||
**************************************************************************/
|
||||
|
||||
class PackW64Pep : public PepFile
|
||||
{
|
||||
typedef PepFile super;
|
||||
|
||||
public:
|
||||
PackW64Pep(InputFile *f);
|
||||
virtual ~PackW64Pep();
|
||||
virtual int getFormat() const { return UPX_F_WIN64_PEP; }
|
||||
virtual const char *getName() const { return "win64/pep"; }
|
||||
virtual const char *getFullName(const options_t *) const { return "AMD64-win64.pep"; }
|
||||
virtual const int *getCompressionMethods(int method, int level) const;
|
||||
virtual const int *getFilters() const;
|
||||
|
||||
virtual void pack(OutputFile *fo);
|
||||
|
||||
virtual bool canPack();
|
||||
virtual int canUnpack();
|
||||
|
||||
protected:
|
||||
virtual int readFileHeader();
|
||||
|
||||
virtual void buildLoader(const Filter *ft);
|
||||
virtual Linker* newLinker() const;
|
||||
|
||||
virtual unsigned processImports();
|
||||
virtual void processImports(unsigned, unsigned);
|
||||
virtual void rebuildImports(upx_byte *&);
|
||||
|
||||
virtual void processTls(Interval *); //NEW: TLS callback handling - Stefan Widmann
|
||||
void processTls(Reloc *, const Interval *, unsigned); //NEW: TLS callback handling - Stefan Widmann
|
||||
|
||||
void processLoadConf(Reloc *, const Interval *, unsigned);
|
||||
void processLoadConf(Interval *);
|
||||
upx_byte *oloadconf;
|
||||
unsigned soloadconf;
|
||||
|
||||
unsigned tlscb_ptr; //NEW: TLS callback handling - Stefan Widmann
|
||||
unsigned tls_handler_offset;
|
||||
|
||||
bool isrtm;
|
||||
bool use_dep_hack;
|
||||
bool use_clear_dirty_stack;
|
||||
bool use_tls_callbacks; //NEW: TLS callback handling - Stefan Widmann
|
||||
};
|
||||
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@ -32,6 +32,7 @@
|
||||
#include "packer.h"
|
||||
#include "lefile.h"
|
||||
#include "pefile.h"
|
||||
#include "pepfile.h"
|
||||
#include "p_elf.h"
|
||||
|
||||
#include "p_com.h"
|
||||
@ -50,6 +51,7 @@
|
||||
#include "p_vxd.h"
|
||||
#include "p_w16ne.h"
|
||||
#include "p_w32pe.h"
|
||||
#include "p_w64pep.h"
|
||||
#include "p_vmlinz.h"
|
||||
#include "p_vmlinx.h"
|
||||
#include "p_ps1.h"
|
||||
@ -179,6 +181,9 @@ Packer* PackMaster::visitAllPackers(visit_func_t func, InputFile *f, const optio
|
||||
return p;
|
||||
delete p; p = NULL;
|
||||
#endif
|
||||
if ((p = func(new PackW64Pep(f), user)) != NULL)
|
||||
return p;
|
||||
delete p; p = NULL;
|
||||
if ((p = func(new PackW32Pe(f), user)) != NULL)
|
||||
return p;
|
||||
delete p; p = NULL;
|
||||
|
||||
1728
src/pepfile.cpp
Normal file
1728
src/pepfile.cpp
Normal file
File diff suppressed because it is too large
Load Diff
386
src/pepfile.h
Normal file
386
src/pepfile.h
Normal file
@ -0,0 +1,386 @@
|
||||
/* pepfile.h --
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2013 Laszlo Molnar
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them 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.
|
||||
|
||||
This program 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 this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
|
||||
-------------------------------------------------------------------
|
||||
|
||||
PE+ format extension changes (C) 2010 Stefan Widmann
|
||||
changes in:
|
||||
- pe_header_t
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __UPX_PEPFILE_H
|
||||
#define __UPX_PEPFILE_H 1
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// general/pe handling
|
||||
**************************************************************************/
|
||||
|
||||
class PepFile : public Packer
|
||||
{
|
||||
typedef Packer super;
|
||||
protected:
|
||||
class Interval;
|
||||
class Reloc;
|
||||
class Resource;
|
||||
class Export;
|
||||
|
||||
PepFile(InputFile *f);
|
||||
virtual ~PepFile();
|
||||
virtual int getVersion() const { return 13; }
|
||||
|
||||
virtual void unpack(OutputFile *fo);
|
||||
|
||||
// unpacker capabilities
|
||||
virtual bool canUnpackVersion(int version) const
|
||||
{ return (version >= 12 && version <= 13); }
|
||||
|
||||
protected:
|
||||
virtual int readFileHeader();
|
||||
virtual bool testUnpackVersion(int version) const;
|
||||
|
||||
unsigned pe_offset;
|
||||
|
||||
virtual unsigned processImports() = 0;
|
||||
virtual void processImports(unsigned, unsigned) = 0;
|
||||
virtual void rebuildImports(upx_byte *&) = 0;
|
||||
upx_byte *oimport;
|
||||
unsigned soimport;
|
||||
upx_byte *oimpdlls;
|
||||
unsigned soimpdlls;
|
||||
|
||||
void processRelocs();
|
||||
void processRelocs(Reloc *);
|
||||
void rebuildRelocs(upx_byte *&);
|
||||
upx_byte *orelocs;
|
||||
unsigned sorelocs;
|
||||
upx_byte *oxrelocs;
|
||||
unsigned soxrelocs;
|
||||
|
||||
void processExports(Export *);
|
||||
void processExports(Export *,unsigned);
|
||||
void rebuildExports();
|
||||
upx_byte *oexport;
|
||||
unsigned soexport;
|
||||
|
||||
void processResources(Resource *);
|
||||
void processResources(Resource *, unsigned);
|
||||
void rebuildResources(upx_byte *&);
|
||||
upx_byte *oresources;
|
||||
unsigned soresources;
|
||||
|
||||
// virtual void processTls(Interval *);
|
||||
// void processTls(Reloc *, const Interval *, unsigned);
|
||||
void rebuildTls();
|
||||
upx_byte *otls;
|
||||
unsigned sotls;
|
||||
unsigned tlsindex;
|
||||
|
||||
unsigned stripDebug(unsigned);
|
||||
|
||||
unsigned icondir_offset;
|
||||
int icondir_count;
|
||||
|
||||
bool importbyordinal;
|
||||
bool kernel32ordinal;
|
||||
unsigned rvamin;
|
||||
unsigned cimports; // rva of preprocessed imports
|
||||
unsigned crelocs; // rva of preprocessed fixups
|
||||
int big_relocs;
|
||||
|
||||
__packed_struct(pe_header_t)
|
||||
// 0x0
|
||||
char _[4]; // pemagic
|
||||
LE16 cpu;
|
||||
LE16 objects; // number of sections
|
||||
char __[12]; // timestamp + reserved
|
||||
LE16 opthdrsize;
|
||||
LE16 flags; // characteristics
|
||||
// optional header
|
||||
LE16 coffmagic; // NEW: Stefan Widmann
|
||||
char ___[2]; // linkerversion
|
||||
LE32 codesize;
|
||||
// 0x20
|
||||
LE32 datasize;
|
||||
LE32 bsssize;
|
||||
LE32 entry; // still a 32 bit RVA
|
||||
LE32 codebase;
|
||||
// 0x30
|
||||
//LE32 database; // field does not exist in PE+!
|
||||
// nt specific fields
|
||||
LE64 imagebase; // LE32 -> LE64 - Stefan Widmann standard is 0x0000000140000000
|
||||
LE32 objectalign;
|
||||
LE32 filealign; // should set to 0x200 ?
|
||||
// 0x40
|
||||
char ____[16]; // versions
|
||||
// 0x50
|
||||
LE32 imagesize;
|
||||
LE32 headersize;
|
||||
LE32 chksum; // should set to 0
|
||||
LE16 subsystem;
|
||||
LE16 dllflags;
|
||||
// 0x60
|
||||
char _____[36]; // stack + heap sizes + loader flag
|
||||
// 0x84
|
||||
LE32 ddirsentries; // usually 16
|
||||
|
||||
__packed_struct(ddirs_t)
|
||||
LE32 vaddr; // dir RVAs and sizes are still 32 bit
|
||||
LE32 size;
|
||||
__packed_struct_end()
|
||||
|
||||
ddirs_t ddirs[16];
|
||||
__packed_struct_end()
|
||||
|
||||
__packed_struct(pe_section_t) // no change in section description structures
|
||||
char name[8];
|
||||
LE32 vsize;
|
||||
LE32 vaddr;
|
||||
LE32 size;
|
||||
LE32 rawdataptr;
|
||||
char _[12];
|
||||
LE32 flags;
|
||||
__packed_struct_end()
|
||||
|
||||
pe_header_t ih, oh;
|
||||
pe_section_t *isection;
|
||||
|
||||
static unsigned virta2objnum (unsigned, pe_section_t *, unsigned);
|
||||
unsigned tryremove (unsigned, unsigned);
|
||||
|
||||
enum {
|
||||
PEDIR_EXPORT = 0,
|
||||
PEDIR_IMPORT = 1,
|
||||
PEDIR_RESOURCE = 2,
|
||||
PEDIR_EXCEPTION = 3, // Exception table
|
||||
PEDIR_SEC = 4, // Certificate table (file pointer)
|
||||
PEDIR_RELOC = 5,
|
||||
PEDIR_DEBUG = 6,
|
||||
PEDIR_COPYRIGHT = 7, // Architecture-specific data
|
||||
PEDIR_GLOBALPTR = 8, // Global pointer
|
||||
PEDIR_TLS = 9,
|
||||
PEDIR_LOADCONF = 10, // Load Config Table
|
||||
PEDIR_BOUNDIM = 11,
|
||||
PEDIR_IAT = 12,
|
||||
PEDIR_DELAYIMP = 13, // Delay Import Descriptor
|
||||
PEDIR_COMRT = 14 // Com+ Runtime Header
|
||||
};
|
||||
|
||||
enum {
|
||||
PEFL_CODE = 0x20,
|
||||
PEFL_DATA = 0x40,
|
||||
PEFL_BSS = 0x80,
|
||||
PEFL_INFO = 0x200,
|
||||
PEFL_EXTRELS = 0x01000000, // extended relocations
|
||||
PEFL_DISCARD = 0x02000000,
|
||||
PEFL_NOCACHE = 0x04000000,
|
||||
PEFL_NOPAGE = 0x08000000,
|
||||
PEFL_SHARED = 0x10000000,
|
||||
PEFL_EXEC = 0x20000000,
|
||||
PEFL_READ = 0x40000000,
|
||||
PEFL_WRITE = 0x80000000
|
||||
};
|
||||
|
||||
enum {
|
||||
RELOCS_STRIPPED = 0x0001,
|
||||
EXECUTABLE = 0x0002,
|
||||
LNUM_STRIPPED = 0x0004,
|
||||
LSYMS_STRIPPED = 0x0008,
|
||||
AGGRESSIVE_TRIM = 0x0010,
|
||||
TWO_GIGS_AWARE = 0x0020,
|
||||
FLITTLE_ENDIAN = 0x0080,
|
||||
BITS_32_MACHINE = 0x0100,
|
||||
DEBUG_STRIPPED = 0x0200,
|
||||
REMOVABLE_SWAP = 0x0400,
|
||||
SYSTEM_PROGRAM = 0x1000,
|
||||
DLL_FLAG = 0x2000,
|
||||
FBIG_ENDIAN = 0x8000
|
||||
};
|
||||
|
||||
//NEW: DLL characteristics definition for ASLR, ... - Stefan Widmann
|
||||
enum {
|
||||
IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040,
|
||||
IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY = 0x0080,
|
||||
IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100,
|
||||
IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200,
|
||||
IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400,
|
||||
IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800,
|
||||
IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000,
|
||||
IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000
|
||||
};
|
||||
|
||||
// predefined resource types
|
||||
enum {
|
||||
RT_CURSOR = 1, RT_BITMAP, RT_ICON, RT_MENU, RT_DIALOG, RT_STRING,
|
||||
RT_FONTDIR, RT_FONT, RT_ACCELERATOR, RT_RCDATA, RT_MESSAGETABLE,
|
||||
RT_GROUP_CURSOR, RT_GROUP_ICON = 14, RT_VERSION = 16, RT_DLGINCLUDE,
|
||||
RT_PLUGPLAY = 19, RT_VXD, RT_ANICURSOR, RT_ANIICON, RT_HTML,
|
||||
RT_MANIFEST, RT_LAST
|
||||
};
|
||||
|
||||
class Interval : private noncopyable
|
||||
{
|
||||
unsigned capacity;
|
||||
void *base;
|
||||
public:
|
||||
struct interval
|
||||
{
|
||||
unsigned start, len;
|
||||
} *ivarr;
|
||||
|
||||
unsigned ivnum;
|
||||
|
||||
Interval(void *b);
|
||||
~Interval();
|
||||
|
||||
void add(unsigned start,unsigned len);
|
||||
void add(const void *start,unsigned len);
|
||||
void add(const void *start,const void *end);
|
||||
void add(const Interval *iv);
|
||||
void flatten();
|
||||
|
||||
void clear();
|
||||
void dump() const;
|
||||
|
||||
private:
|
||||
static int __acc_cdecl_qsort compare(const void *p1,const void *p2);
|
||||
};
|
||||
|
||||
class Reloc : private noncopyable
|
||||
{
|
||||
upx_byte *start;
|
||||
unsigned size;
|
||||
|
||||
void newRelocPos(void *p);
|
||||
|
||||
struct reloc;
|
||||
reloc *rel;
|
||||
LE16 *rel1;
|
||||
unsigned counts[16];
|
||||
|
||||
public:
|
||||
Reloc(upx_byte *,unsigned);
|
||||
Reloc(unsigned rnum);
|
||||
//
|
||||
bool next(unsigned &pos,unsigned &type);
|
||||
const unsigned *getcounts() const { return counts; }
|
||||
//
|
||||
void add(unsigned pos,unsigned type);
|
||||
void finish(upx_byte *&p,unsigned &size);
|
||||
};
|
||||
|
||||
class Resource : private noncopyable
|
||||
{
|
||||
struct res_dir_entry;
|
||||
struct res_dir;
|
||||
struct res_data;
|
||||
struct upx_rnode;
|
||||
struct upx_rbranch;
|
||||
struct upx_rleaf;
|
||||
|
||||
const upx_byte *start;
|
||||
upx_byte *newstart;
|
||||
upx_rnode *root;
|
||||
upx_rleaf *head;
|
||||
upx_rleaf *current;
|
||||
unsigned dsize;
|
||||
unsigned ssize;
|
||||
|
||||
void check(const res_dir*,unsigned);
|
||||
upx_rnode *convert(const void *,upx_rnode *,unsigned);
|
||||
void build(const upx_rnode *,unsigned &,unsigned &,unsigned);
|
||||
void clear(upx_byte *,unsigned,Interval *);
|
||||
void dump(const upx_rnode *,unsigned) const;
|
||||
void destroy(upx_rnode *urd,unsigned level);
|
||||
|
||||
public:
|
||||
Resource();
|
||||
Resource(const upx_byte *p);
|
||||
~Resource();
|
||||
void init(const upx_byte *);
|
||||
|
||||
unsigned dirsize() const;
|
||||
bool next();
|
||||
|
||||
unsigned itype() const;
|
||||
const upx_byte *ntype() const;
|
||||
unsigned size() const;
|
||||
unsigned offs() const;
|
||||
unsigned &newoffs();
|
||||
|
||||
upx_byte *build();
|
||||
bool clear();
|
||||
|
||||
void dump() const;
|
||||
unsigned iname() const;
|
||||
const upx_byte *nname() const;
|
||||
/*
|
||||
unsigned ilang() const {return current->id;}
|
||||
const upx_byte *nlang() const {return current->name;}
|
||||
*/
|
||||
};
|
||||
|
||||
class Export : private noncopyable
|
||||
{
|
||||
__packed_struct(export_dir_t)
|
||||
char _[12]; // flags, timedate, version
|
||||
LE32 name;
|
||||
char __[4]; // ordinal base
|
||||
LE32 functions;
|
||||
LE32 names;
|
||||
LE32 addrtable;
|
||||
LE32 nameptrtable;
|
||||
LE32 ordinaltable;
|
||||
__packed_struct_end()
|
||||
|
||||
export_dir_t edir;
|
||||
char *ename;
|
||||
char *functionptrs;
|
||||
char *ordinals;
|
||||
char **names;
|
||||
|
||||
char *base;
|
||||
unsigned size;
|
||||
Interval iv;
|
||||
|
||||
public:
|
||||
Export(char *_base);
|
||||
~Export();
|
||||
|
||||
void convert(unsigned eoffs,unsigned esize);
|
||||
void build(char *base,unsigned newoffs);
|
||||
unsigned getsize() const { return size; }
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif /* already included */
|
||||
|
||||
|
||||
/*
|
||||
vi:ts=4:et
|
||||
*/
|
||||
@ -56,6 +56,7 @@ STUBS += amd64-linux.elf-fold.h
|
||||
STUBS += amd64-linux.kernel.vmlinux-head.h
|
||||
STUBS += amd64-linux.kernel.vmlinux.h
|
||||
STUBS += amd64-linux.shlib-init.h
|
||||
STUBS += amd64-win64.pep.h
|
||||
STUBS += arm-darwin.macho-entry.h
|
||||
STUBS += arm-darwin.macho-fold.h
|
||||
STUBS += arm-linux.elf-entry.h
|
||||
@ -369,6 +370,20 @@ amd64-linux.shlib-init.h : $(srcdir)/src/$$T.S
|
||||
$(call tc,bin2h) tmp/$T.bin $@
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // amd64-win64.pep
|
||||
# ************************************************************************/
|
||||
|
||||
amd64-win64.pep.h : tc_list = amd64-linux.elf default
|
||||
amd64-win64.pep.h : tc_bfdname = elf64-x86-64
|
||||
|
||||
amd64-win64.pep.h : $(srcdir)/src/$$T.S
|
||||
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
|
||||
# $(call tc,objdump) -Dr -M intel-mnemonic tmp/$T.bin | $(RTRIM) > tmp/$T.bin.disasmi
|
||||
$(call tc,f-embed_objinfo,tmp/$T.bin)
|
||||
$(call tc,bin2h) tmp/$T.bin $@
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // armel-eabi-linux.elf
|
||||
# ************************************************************************/
|
||||
|
||||
766
src/stub/amd64-win64.pep.h
Normal file
766
src/stub/amd64-win64.pep.h
Normal file
@ -0,0 +1,766 @@
|
||||
/* amd64-win64.pep.h
|
||||
created from amd64-win64.pep.bin, 11619 (0x2d63) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2013 Laszlo Molnar
|
||||
Copyright (C) 2000-2013 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them 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.
|
||||
|
||||
This program 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 this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_AMD64_WIN64_PEP_SIZE 11619
|
||||
#define STUB_AMD64_WIN64_PEP_ADLER32 0x2097635b
|
||||
#define STUB_AMD64_WIN64_PEP_CRC32 0x71380939
|
||||
|
||||
unsigned char stub_amd64_win64_pep[11619] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,200, 4, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 59, 0, 56, 0,
|
||||
/* 0x0040 */ 128,250, 1, 15,133, 0, 0, 0, 0, 83, 86, 87, 85, 72,190, 0,
|
||||
/* 0x0050 */ 0, 0, 0, 0, 0, 0,128, 72,141,190, 0, 0, 0, 0,102,255,
|
||||
/* 0x0060 */ 135, 0, 0, 0, 0,102,129,135, 0, 0, 0, 0, 0,128,199,135,
|
||||
/* 0x0070 */ 0, 0, 0, 0, 0, 0, 0,128, 87, 49,219, 49,201, 72,131,205,
|
||||
/* 0x0080 */ 255,232, 80, 0, 0, 0, 1,219,116, 2,243,195,139, 30, 72,131,
|
||||
/* 0x0090 */ 238,252, 17,219,138, 22,243,195, 72,141, 4, 47,131,249, 5,138,
|
||||
/* 0x00a0 */ 16,118, 33, 72,131,253,252,119, 27,131,233, 4,139, 16, 72,131,
|
||||
/* 0x00b0 */ 192, 4,131,233, 4,137, 23, 72,141,127, 4,115,239,131,193, 4,
|
||||
/* 0x00c0 */ 138, 16,116, 16, 72,255,192,136, 23,131,233, 1,138, 16, 72,141,
|
||||
/* 0x00d0 */ 127, 1,117,240,243,195,252, 65, 91,235, 8, 72,255,198,136, 23,
|
||||
/* 0x00e0 */ 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,
|
||||
/* 0x00f0 */ 219,138, 22,114,230,141, 65, 1,235, 7,255,200, 65,255,211, 17,
|
||||
/* 0x0100 */ 192, 65,255,211, 17,192, 1,219,117, 10,139, 30, 72,131,238,252,
|
||||
/* 0x0110 */ 17,219,138, 22,115,228,131,232, 3,114, 29,193,224, 8, 15,182,
|
||||
/* 0x0120 */ 210, 9,208, 72,255,198,131,240,255, 15,132, 0, 0, 0, 0,209,
|
||||
/* 0x0130 */ 248, 72, 99,232,114, 56,235, 14, 1,219,117, 8,139, 30, 72,131,
|
||||
/* 0x0140 */ 238,252, 17,219,114, 40,255,193, 1,219,117, 8,139, 30, 72,131,
|
||||
/* 0x0150 */ 238,252, 17,219,114, 24, 65,255,211, 17,201, 1,219,117, 8,139,
|
||||
/* 0x0160 */ 30, 72,131,238,252, 17,219,115,237,131,193, 2,235, 5, 65,255,
|
||||
/* 0x0170 */ 211, 17,201, 72,129,253, 0,251,255,255,131,209, 2,232, 0, 0,
|
||||
/* 0x0180 */ 0, 0,233, 92,255,255,255, 94, 72,141,190, 0, 0, 0, 0, 72,
|
||||
/* 0x0190 */ 137,247,185, 0, 0, 0, 0, 72,141,190, 0, 0, 0, 0,139, 7,
|
||||
/* 0x01a0 */ 9,192,116,255,139, 95, 4, 72,141,140, 48, 0, 0, 0, 0, 72,
|
||||
/* 0x01b0 */ 1,243, 72,131,199, 8, 72,131,236, 40,255,150, 0, 0, 0, 0,
|
||||
/* 0x01c0 */ 72,131,196, 40, 72,149,138, 7, 72,255,199, 8,192,116,207,121,
|
||||
/* 0x01d0 */ 255,122, 16,139, 7, 72,131,199, 4, 72,139,132, 48, 0, 0, 0,
|
||||
/* 0x01e0 */ 0,235,255, 72, 15,183, 23, 72,131,199, 2,235,255, 72,137,249,
|
||||
/* 0x01f0 */ 72,137,250,255,200,242,174, 72,137,233, 72,131,236, 40,255,150,
|
||||
/* 0x0200 */ 0, 0, 0, 0, 72,131,196, 40, 72, 9,192,116, 9, 72,137, 3,
|
||||
/* 0x0210 */ 72,131,195, 8,235,255, 93, 95, 94, 91, 49,192,195, 72,131,236,
|
||||
/* 0x0220 */ 40,255,150, 0, 0, 0, 0, 72,141,190, 0, 0, 0, 0, 72,131,
|
||||
/* 0x0230 */ 199, 4, 72,141, 94,252, 72,139,174, 0, 0, 0, 0, 72,141,190,
|
||||
/* 0x0240 */ 0, 0, 0, 0,187, 0, 0, 0,128, 80, 73,137,225, 65,184, 4,
|
||||
/* 0x0250 */ 0, 0, 0, 72,137,218, 72,137,249, 72,131,236, 32,255,213, 72,
|
||||
/* 0x0260 */ 141,135, 0, 0, 0, 0,128, 32,127,128, 96, 40,127, 76,141, 76,
|
||||
/* 0x0270 */ 36, 32, 77,139, 1, 72,137,218, 72,137,249,255,213, 72,131,196,
|
||||
/* 0x0280 */ 40, 72,141,142, 0, 0, 0, 0, 72,141,185, 0, 0, 0, 0, 49,
|
||||
/* 0x0290 */ 192,170, 73,137,192,186, 1, 0, 0, 0, 80,255,215, 88, 93, 95,
|
||||
/* 0x02a0 */ 94, 91, 72,141, 68, 36,128,106, 0, 72, 57,196,117,249, 72,131,
|
||||
/* 0x02b0 */ 236,128,184, 1, 0, 0, 0,195,233, 0, 0, 0, 0,235, 40, 86,
|
||||
/* 0x02c0 */ 72,190, 0, 0, 0, 0, 0, 0, 0,128,252, 72,173, 72,133,192,
|
||||
/* 0x02d0 */ 116, 20, 81, 82, 65, 80, 72,131,236, 40,255,208, 72,131,196, 40,
|
||||
/* 0x02e0 */ 65, 88, 90, 89,235,229, 94,195, 85, 80, 88, 33,161,216,208,213,
|
||||
/* 0x02f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0300 */ 0, 0, 0, 0, 0, 0, 0, 45,102,105,108,101, 32,102,111,114,
|
||||
/* 0x0310 */ 109, 97,116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52,
|
||||
/* 0x0320 */ 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32,
|
||||
/* 0x0330 */ 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,
|
||||
/* 0x0340 */ 122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32,
|
||||
/* 0x0350 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32,
|
||||
/* 0x0360 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101,
|
||||
/* 0x0370 */ 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,
|
||||
/* 0x0380 */ 115, 10, 32, 32, 48, 32, 80, 69, 73, 83, 68, 76, 76, 49, 32, 32,
|
||||
/* 0x0390 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 57, 32, 32, 48, 48,
|
||||
/* 0x03a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x03b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x03c0 */ 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48,
|
||||
/* 0x03d0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79,
|
||||
/* 0x03e0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32,
|
||||
/* 0x03f0 */ 80, 69, 77, 65, 73, 78, 48, 49, 32, 32, 32, 32, 32, 32, 48, 48,
|
||||
/* 0x0400 */ 48, 48, 48, 48, 49, 53, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0410 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0420 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0430 */ 48, 48, 52, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x0440 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
|
||||
/* 0x0450 */ 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 80, 69, 73, 67, 79, 78,
|
||||
/* 0x0460 */ 83, 49, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 55,
|
||||
/* 0x0470 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0480 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0490 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53,101, 32, 32,
|
||||
/* 0x04a0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x04b0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x04c0 */ 32, 32, 51, 32, 80, 69, 73, 67, 79, 78, 83, 50, 32, 32, 32, 32,
|
||||
/* 0x04d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 57, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x04e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x04f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x0500 */ 48, 48, 48, 48, 48, 48, 54, 53, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x0510 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44,
|
||||
/* 0x0520 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 80, 69,
|
||||
/* 0x0530 */ 84, 76, 83, 72, 65, 75, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0540 */ 48, 48, 48, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0550 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0560 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0570 */ 54,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||
/* 0x0580 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
|
||||
/* 0x0590 */ 78, 76, 89, 10, 32, 32, 53, 32, 80, 69, 77, 65, 73, 78, 48, 50,
|
||||
/* 0x05a0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 49, 32, 32,
|
||||
/* 0x05b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x05c0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x05d0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 56, 32, 32, 50, 42,
|
||||
/* 0x05e0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
|
||||
/* 0x05f0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 80, 69, 77, 65, 73,
|
||||
/* 0x0600 */ 78, 48, 51, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0610 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0620 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0630 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 57, 32,
|
||||
/* 0x0640 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
|
||||
/* 0x0650 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 78, 82,
|
||||
/* 0x0660 */ 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0670 */ 48, 48, 54, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0680 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0690 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x06a0 */ 55, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||
/* 0x06b0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56,
|
||||
/* 0x06c0 */ 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48,
|
||||
/* 0x06d0 */ 48, 48, 48, 48, 48, 97,101, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x06e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x06f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x0700 */ 48, 48, 48,100, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
|
||||
/* 0x0710 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
|
||||
/* 0x0720 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 80, 69, 77, 65, 73,
|
||||
/* 0x0730 */ 78, 49, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0740 */ 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0750 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0760 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 55, 32,
|
||||
/* 0x0770 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
|
||||
/* 0x0780 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 80, 69,
|
||||
/* 0x0790 */ 67, 84, 84, 80, 79, 83, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x07a0 */ 48, 48, 48, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x07b0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x07c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49,
|
||||
/* 0x07d0 */ 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||
/* 0x07e0 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
|
||||
/* 0x07f0 */ 78, 76, 89, 10, 32, 49, 49, 32, 80, 69, 67, 84, 84, 78, 85, 76,
|
||||
/* 0x0800 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 51, 32, 32,
|
||||
/* 0x0810 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0820 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0830 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56,102, 32, 32, 50, 42,
|
||||
/* 0x0840 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
|
||||
/* 0x0850 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 99,116,111,107, 51,
|
||||
/* 0x0860 */ 50, 46, 48, 48, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0870 */ 53, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0880 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0890 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 57, 50, 32,
|
||||
/* 0x08a0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
|
||||
/* 0x08b0 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
|
||||
/* 0x08c0 */ 10, 32, 49, 51, 32, 80, 69, 73, 77, 80, 79, 82, 84, 32, 32, 32,
|
||||
/* 0x08d0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 56, 32, 32, 48, 48, 48,
|
||||
/* 0x08e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x08f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0900 */ 32, 48, 48, 48, 48, 48, 49, 57, 55, 32, 32, 50, 42, 42, 48, 32,
|
||||
/* 0x0910 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
|
||||
/* 0x0920 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 52, 32, 80,
|
||||
/* 0x0930 */ 69, 73, 66, 89, 79, 82, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48,
|
||||
/* 0x0940 */ 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0950 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0960 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x0970 */ 49, 99,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
||||
/* 0x0980 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
|
||||
/* 0x0990 */ 79, 78, 76, 89, 10, 32, 49, 53, 32, 80, 69, 75, 51, 50, 79, 82,
|
||||
/* 0x09a0 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 50, 32,
|
||||
/* 0x09b0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x09c0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x09d0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49,100, 49, 32, 32, 50,
|
||||
/* 0x09e0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
|
||||
/* 0x09f0 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
|
||||
/* 0x0a00 */ 49, 54, 32, 80, 69, 73, 77, 79, 82, 68, 49, 32, 32, 32, 32, 32,
|
||||
/* 0x0a10 */ 32, 48, 48, 48, 48, 48, 48, 48, 97, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x0a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x0a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x0a40 */ 48, 48, 48, 48, 49,101, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
||||
/* 0x0a50 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32,
|
||||
/* 0x0a60 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 55, 32, 80, 69, 73,
|
||||
/* 0x0a70 */ 77, 80, 79, 82, 50, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x0a80 */ 48, 50, 57, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0a90 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0aa0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49,101,
|
||||
/* 0x0ab0 */ 100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x0ac0 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x0ad0 */ 76, 89, 10, 32, 49, 56, 32, 80, 69, 73, 69, 82, 68, 76, 76, 32,
|
||||
/* 0x0ae0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 55, 32, 32, 48,
|
||||
/* 0x0af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0b00 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0b10 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 49, 54, 32, 32, 50, 42, 42,
|
||||
/* 0x0b20 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
|
||||
/* 0x0b30 */ 68, 79, 78, 76, 89, 10, 32, 49, 57, 32, 80, 69, 73, 69, 82, 69,
|
||||
/* 0x0b40 */ 88, 69, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 97,
|
||||
/* 0x0b50 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0b60 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0b70 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 49,100, 32, 32,
|
||||
/* 0x0b80 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x0b90 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x0ba0 */ 32, 50, 48, 32, 80, 69, 73, 77, 68, 79, 78, 69, 32, 32, 32, 32,
|
||||
/* 0x0bb0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x0bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x0be0 */ 48, 48, 48, 48, 48, 50, 50, 55, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x0bf0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x0c00 */ 76, 89, 10, 32, 50, 49, 32, 80, 69, 82, 69, 76, 79, 67, 49, 32,
|
||||
/* 0x0c10 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 55, 32, 32, 48,
|
||||
/* 0x0c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0c30 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0c40 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 50, 55, 32, 32, 50, 42, 42,
|
||||
/* 0x0c50 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76,
|
||||
/* 0x0c60 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 50,
|
||||
/* 0x0c70 */ 32, 80, 69, 82, 69, 76, 79, 67, 50, 32, 32, 32, 32, 32, 32, 48,
|
||||
/* 0x0c80 */ 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x0ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x0cb0 */ 48, 48, 50, 50,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
|
||||
/* 0x0cc0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x0cd0 */ 32, 50, 51, 32, 80, 69, 82, 69, 76, 79, 67, 51, 32, 32, 32, 32,
|
||||
/* 0x0ce0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0cf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x0d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x0d10 */ 48, 48, 48, 48, 48, 50, 51, 50, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x0d20 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x0d30 */ 76, 89, 10, 32, 50, 52, 32, 80, 69, 82, 76, 79, 72, 73, 48, 32,
|
||||
/* 0x0d40 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x0d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0d60 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0d70 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 51, 54, 32, 32, 50, 42, 42,
|
||||
/* 0x0d80 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
|
||||
/* 0x0d90 */ 68, 79, 78, 76, 89, 10, 32, 50, 53, 32, 80, 69, 82, 69, 76, 76,
|
||||
/* 0x0da0 */ 79, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0db0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0dc0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0dd0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 51, 54, 32, 32,
|
||||
/* 0x0de0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x0df0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 54, 32, 80, 69, 82,
|
||||
/* 0x0e00 */ 69, 76, 72, 73, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x0e10 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0e20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0e30 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 51,
|
||||
/* 0x0e40 */ 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x0e50 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 55, 32,
|
||||
/* 0x0e60 */ 80, 69, 68, 69, 80, 72, 65, 75, 32, 32, 32, 32, 32, 32, 48, 48,
|
||||
/* 0x0e70 */ 48, 48, 48, 48, 52, 98, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0e90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0ea0 */ 48, 50, 51, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x0eb0 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
|
||||
/* 0x0ec0 */ 68, 79, 78, 76, 89, 10, 32, 50, 56, 32, 80, 69, 84, 76, 83, 67,
|
||||
/* 0x0ed0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49,100,
|
||||
/* 0x0ee0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0ef0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0f00 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 56, 49, 32, 32,
|
||||
/* 0x0f10 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x0f20 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x0f30 */ 32, 50, 57, 32, 80, 69, 77, 65, 73, 78, 50, 48, 32, 32, 32, 32,
|
||||
/* 0x0f40 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x0f60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x0f70 */ 48, 48, 48, 48, 48, 50, 57,101, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x0f80 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x0f90 */ 76, 89, 10, 32, 51, 48, 32, 67, 76, 69, 65, 82, 83, 84, 65, 67,
|
||||
/* 0x0fa0 */ 75, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, 32, 48,
|
||||
/* 0x0fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0fc0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0fd0 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 97, 50, 32, 32, 50, 42, 42,
|
||||
/* 0x0fe0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
|
||||
/* 0x0ff0 */ 68, 79, 78, 76, 89, 10, 32, 51, 49, 32, 80, 69, 77, 65, 73, 78,
|
||||
/* 0x1000 */ 50, 49, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1010 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1020 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1030 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 98, 50, 32, 32,
|
||||
/* 0x1040 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x1050 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 51, 50, 32, 80, 69, 82,
|
||||
/* 0x1060 */ 69, 84, 85, 82, 78, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1070 */ 48, 48, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1080 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1090 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 98,
|
||||
/* 0x10a0 */ 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x10b0 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 51, 51, 32,
|
||||
/* 0x10c0 */ 80, 69, 68, 79, 74, 85, 77, 80, 32, 32, 32, 32, 32, 32, 48, 48,
|
||||
/* 0x10d0 */ 48, 48, 48, 48, 48, 53, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x10e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x10f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1100 */ 48, 50, 98, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x1110 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65,
|
||||
/* 0x1120 */ 68, 79, 78, 76, 89, 10, 32, 51, 52, 32, 80, 69, 84, 76, 83, 67,
|
||||
/* 0x1130 */ 50, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 98,
|
||||
/* 0x1140 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1150 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1160 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 98,100, 32, 32,
|
||||
/* 0x1170 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x1180 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x1190 */ 32, 51, 53, 32, 85, 80, 88, 49, 72, 69, 65, 68, 32, 32, 32, 32,
|
||||
/* 0x11a0 */ 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x11b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x11c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x11d0 */ 48, 48, 48, 48, 48, 50,101, 56, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x11e0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x11f0 */ 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58,
|
||||
/* 0x1200 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1210 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69,
|
||||
/* 0x1220 */ 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1230 */ 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48,
|
||||
/* 0x1240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||
/* 0x1250 */ 32, 32, 32,100, 32, 32, 80, 69, 77, 65, 73, 78, 49, 48, 9, 48,
|
||||
/* 0x1260 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1270 */ 80, 69, 77, 65, 73, 78, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1280 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, 32,
|
||||
/* 0x1290 */ 32, 32, 80, 69, 73, 77, 68, 79, 78, 69, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x12a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,105,109,112,111,
|
||||
/* 0x12b0 */ 114,116,115, 95,100,111,110,101, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x12c0 */ 48, 48, 48, 48, 48, 48, 48, 50,102, 32,108, 32, 32, 32, 32, 32,
|
||||
/* 0x12d0 */ 32, 32, 80, 69, 73, 77, 80, 79, 82, 84, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x12e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,110,101,120,116,
|
||||
/* 0x12f0 */ 95,102,117,110, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1300 */ 48, 48, 48, 48, 48, 97, 32,108, 32, 32, 32, 32, 32, 32, 32, 80,
|
||||
/* 0x1310 */ 69, 73, 77, 79, 82, 68, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1320 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 98,121,110, 97,109,101, 10,
|
||||
/* 0x1330 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 48,
|
||||
/* 0x1340 */ 32,108, 32, 32, 32, 32, 32, 32, 32, 80, 69, 73, 77, 80, 79, 82,
|
||||
/* 0x1350 */ 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1360 */ 48, 48, 32,110,101,120,116, 95,105,109,112, 10, 48, 48, 48, 48,
|
||||
/* 0x1370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97, 32,108, 32, 32,
|
||||
/* 0x1380 */ 32, 32, 32, 32, 32, 80, 69, 73, 77, 80, 79, 82, 50, 9, 48, 48,
|
||||
/* 0x1390 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,102,
|
||||
/* 0x13a0 */ 105,114,115,116, 95,105,109,112, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x13b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x13c0 */ 32, 32, 80, 69, 77, 65, 73, 78, 50, 49, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x13d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 77, 65,
|
||||
/* 0x13e0 */ 73, 78, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x13f0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69,
|
||||
/* 0x1400 */ 84, 76, 83, 67, 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1410 */ 48, 48, 48, 48, 48, 48, 32, 80, 69, 84, 76, 83, 67, 50, 10, 48,
|
||||
/* 0x1420 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1430 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 83, 68, 76, 76, 49,
|
||||
/* 0x1440 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1450 */ 48, 32, 80, 69, 73, 83, 68, 76, 76, 49, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1460 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1470 */ 32,100, 32, 32, 80, 69, 77, 65, 73, 78, 48, 49, 9, 48, 48, 48,
|
||||
/* 0x1480 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69,
|
||||
/* 0x1490 */ 77, 65, 73, 78, 48, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x14a0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x14b0 */ 80, 69, 73, 67, 79, 78, 83, 49, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x14c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 73, 67, 79, 78,
|
||||
/* 0x14d0 */ 83, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x14e0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 67,
|
||||
/* 0x14f0 */ 79, 78, 83, 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1500 */ 48, 48, 48, 48, 48, 32, 80, 69, 73, 67, 79, 78, 83, 50, 10, 48,
|
||||
/* 0x1510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1520 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 84, 76, 83, 72, 65, 75,
|
||||
/* 0x1530 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1540 */ 48, 32, 80, 69, 84, 76, 83, 72, 65, 75, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1550 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1560 */ 32,100, 32, 32, 80, 69, 77, 65, 73, 78, 48, 50, 9, 48, 48, 48,
|
||||
/* 0x1570 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69,
|
||||
/* 0x1580 */ 77, 65, 73, 78, 48, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1590 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x15a0 */ 80, 69, 77, 65, 73, 78, 48, 51, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 77, 65, 73, 78,
|
||||
/* 0x15c0 */ 48, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15d0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50,
|
||||
/* 0x15e0 */ 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15f0 */ 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1600 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x1610 */ 32, 32, 80, 69, 67, 84, 84, 80, 79, 83, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x1620 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 67, 84,
|
||||
/* 0x1630 */ 84, 80, 79, 83, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1640 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69,
|
||||
/* 0x1650 */ 67, 84, 84, 78, 85, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1660 */ 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 67, 84, 84, 78, 85, 76,
|
||||
/* 0x1670 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1680 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 99,116,111,107, 51, 50,
|
||||
/* 0x1690 */ 46, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x16a0 */ 48, 48, 48, 48, 32, 99,116,111,107, 51, 50, 46, 48, 48, 10, 48,
|
||||
/* 0x16b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x16c0 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 77, 80, 79, 82, 84,
|
||||
/* 0x16d0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x16e0 */ 48, 32, 80, 69, 73, 77, 80, 79, 82, 84, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x16f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1700 */ 32,100, 32, 32, 80, 69, 73, 66, 89, 79, 82, 68, 9, 48, 48, 48,
|
||||
/* 0x1710 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69,
|
||||
/* 0x1720 */ 73, 66, 89, 79, 82, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1730 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1740 */ 80, 69, 75, 51, 50, 79, 82, 68, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 75, 51, 50, 79,
|
||||
/* 0x1760 */ 82, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1770 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 77,
|
||||
/* 0x1780 */ 79, 82, 68, 49, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1790 */ 48, 48, 48, 48, 48, 32, 80, 69, 73, 77, 79, 82, 68, 49, 10, 48,
|
||||
/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x17b0 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 77, 80, 79, 82, 50,
|
||||
/* 0x17c0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17d0 */ 48, 32, 80, 69, 73, 77, 80, 79, 82, 50, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x17e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x17f0 */ 32,100, 32, 32, 80, 69, 73, 69, 82, 68, 76, 76, 9, 48, 48, 48,
|
||||
/* 0x1800 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69,
|
||||
/* 0x1810 */ 73, 69, 82, 68, 76, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1830 */ 80, 69, 73, 69, 82, 69, 88, 69, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 73, 69, 82, 69,
|
||||
/* 0x1850 */ 88, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1860 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 73, 77,
|
||||
/* 0x1870 */ 68, 79, 78, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1880 */ 48, 48, 48, 48, 48, 32, 80, 69, 73, 77, 68, 79, 78, 69, 10, 48,
|
||||
/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x18a0 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 82, 69, 76, 79, 67, 49,
|
||||
/* 0x18b0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18c0 */ 48, 32, 80, 69, 82, 69, 76, 79, 67, 49, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x18e0 */ 32,100, 32, 32, 80, 69, 82, 69, 76, 79, 67, 50, 9, 48, 48, 48,
|
||||
/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69,
|
||||
/* 0x1900 */ 82, 69, 76, 79, 67, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1910 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1920 */ 80, 69, 82, 69, 76, 79, 67, 51, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1930 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 82, 69, 76, 79,
|
||||
/* 0x1940 */ 67, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1950 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 82, 76,
|
||||
/* 0x1960 */ 79, 72, 73, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1970 */ 48, 48, 48, 48, 48, 32, 80, 69, 82, 76, 79, 72, 73, 48, 10, 48,
|
||||
/* 0x1980 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1990 */ 108, 32, 32, 32, 32,100, 32, 32, 80, 69, 82, 69, 76, 76, 79, 48,
|
||||
/* 0x19a0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19b0 */ 48, 32, 80, 69, 82, 69, 76, 76, 79, 48, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x19c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x19d0 */ 32,100, 32, 32, 80, 69, 82, 69, 76, 72, 73, 48, 9, 48, 48, 48,
|
||||
/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69,
|
||||
/* 0x19f0 */ 82, 69, 76, 72, 73, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1a10 */ 80, 69, 68, 69, 80, 72, 65, 75, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 68, 69, 80, 72,
|
||||
/* 0x1a30 */ 65, 75, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a40 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 84, 76,
|
||||
/* 0x1a50 */ 83, 67, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a60 */ 48, 48, 48, 32, 80, 69, 84, 76, 83, 67, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1a80 */ 32,100, 32, 32, 80, 69, 77, 65, 73, 78, 50, 48, 9, 48, 48, 48,
|
||||
/* 0x1a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69,
|
||||
/* 0x1aa0 */ 77, 65, 73, 78, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1ac0 */ 67, 76, 69, 65, 82, 83, 84, 65, 67, 75, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 76, 69, 65,
|
||||
/* 0x1ae0 */ 82, 83, 84, 65, 67, 75, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1b00 */ 80, 69, 82, 69, 84, 85, 82, 78, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 69, 82, 69, 84, 85,
|
||||
/* 0x1b20 */ 82, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b30 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 69, 68, 79,
|
||||
/* 0x1b40 */ 74, 85, 77, 80, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b50 */ 48, 48, 48, 48, 48, 32, 80, 69, 68, 79, 74, 85, 77, 80, 10, 48,
|
||||
/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1b70 */ 108, 32, 32, 32, 32,100, 32, 32, 85, 80, 88, 49, 72, 69, 65, 68,
|
||||
/* 0x1b80 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b90 */ 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
|
||||
/* 0x1bb0 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,116, 97,114,116,
|
||||
/* 0x1bd0 */ 95,111,102, 95, 99,111,109,112,114,101,115,115,101,100, 10, 48,
|
||||
/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1bf0 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48,
|
||||
/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,
|
||||
/* 0x1c10 */ 116, 97,114,116, 95,111,102, 95,117,110, 99,111,109,112,114,101,
|
||||
/* 0x1c20 */ 115,115,101,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c30 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
|
||||
/* 0x1c40 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c50 */ 48, 48, 48, 48, 32,105, 99,111,110, 95,111,102,102,115,101,116,
|
||||
/* 0x1c60 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c70 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9,
|
||||
/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c90 */ 32,105, 99,111,110, 95,100,101,108,116, 97, 10, 48, 48, 48, 48,
|
||||
/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32,
|
||||
/* 0x1cb0 */ 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x1cc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,116,108,115, 95,
|
||||
/* 0x1cd0 */ 97,100,100,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1cf0 */ 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 32,116,108,115, 95,118, 97,108,117,
|
||||
/* 0x1d10 */ 101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d20 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
|
||||
/* 0x1d30 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d40 */ 48, 32,102,105,108,116,101,114, 95, 98,117,102,102,101,114, 95,
|
||||
/* 0x1d50 */ 115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
|
||||
/* 0x1d70 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d80 */ 48, 48, 48, 48, 48, 32,102,105,108,116,101,114, 95,108,101,110,
|
||||
/* 0x1d90 */ 103,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1da0 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78,
|
||||
/* 0x1db0 */ 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1dc0 */ 48, 48, 48, 32, 99,111,109,112,114,101,115,115,101,100, 95,105,
|
||||
/* 0x1dd0 */ 109,112,111,114,116,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1df0 */ 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e00 */ 48, 48, 48, 48, 48, 48, 32,115,116, 97,114,116, 95,111,102, 95,
|
||||
/* 0x1e10 */ 105,109,112,111,114,116,115, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1e30 */ 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 32, 76,111, 97,100, 76,105, 98,114,
|
||||
/* 0x1e50 */ 97,114,121, 65, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e60 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
|
||||
/* 0x1e70 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e80 */ 48, 48, 48, 48, 32,107,101,114,110,101,108, 51, 50, 95,111,114,
|
||||
/* 0x1e90 */ 100,105,110, 97,108,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1eb0 */ 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 32, 71,101,116, 80,114,111, 99, 65,100,
|
||||
/* 0x1ed0 */ 100,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
|
||||
/* 0x1ef0 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f00 */ 48, 48, 48, 48, 48, 32, 69,120,105,116, 80,114,111, 99,101,115,
|
||||
/* 0x1f10 */ 115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f20 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
|
||||
/* 0x1f30 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f40 */ 48, 32,115,116, 97,114,116, 95,111,102, 95,114,101,108,111, 99,
|
||||
/* 0x1f50 */ 115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f60 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
|
||||
/* 0x1f70 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f80 */ 48, 32, 86,105,114,116,117, 97,108, 80,114,111,116,101, 99,116,
|
||||
/* 0x1f90 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1fa0 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9,
|
||||
/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1fc0 */ 32,118,112, 95, 98, 97,115,101, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1fe0 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ff0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,118,112, 95,115,105,122,101,
|
||||
/* 0x2000 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2010 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9,
|
||||
/* 0x2020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2030 */ 32,115,119,114,105, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2040 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
|
||||
/* 0x2050 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2060 */ 48, 48, 48, 48, 48, 32,116,108,115, 95,109,111,100,117,108,101,
|
||||
/* 0x2070 */ 95, 98, 97,115,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2080 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
|
||||
/* 0x2090 */ 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x20a0 */ 48, 48, 48, 48, 48, 32,111,114,105,103,105,110, 97,108, 95,101,
|
||||
/* 0x20b0 */ 110,116,114,121, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x20c0 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85,
|
||||
/* 0x20d0 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x20e0 */ 48, 48, 48, 48, 32,116,108,115, 95, 99, 97,108,108, 98, 97, 99,
|
||||
/* 0x20f0 */ 107,115, 95,112,116,114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
|
||||
/* 0x2100 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
|
||||
/* 0x2110 */ 80, 69, 73, 83, 68, 76, 76, 49, 93, 58, 10, 79, 70, 70, 83, 69,
|
||||
/* 0x2120 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
|
||||
/* 0x2130 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
|
||||
/* 0x2140 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2150 */ 48, 48, 48, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
|
||||
/* 0x2160 */ 51, 50, 32, 32, 32, 32, 32, 80, 69, 77, 65, 73, 78, 50, 49, 43,
|
||||
/* 0x2170 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
|
||||
/* 0x2180 */ 102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
|
||||
/* 0x2190 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 77, 65,
|
||||
/* 0x21a0 */ 73, 78, 48, 49, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
|
||||
/* 0x21b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
||||
/* 0x21c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
||||
/* 0x21d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 54,
|
||||
/* 0x21e0 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 54, 52, 32, 32, 32, 32,
|
||||
/* 0x21f0 */ 32, 32, 32,115,116, 97,114,116, 95,111,102, 95, 99,111,109,112,
|
||||
/* 0x2200 */ 114,101,115,115,101,100, 43, 48,120, 56, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2210 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2220 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 32, 82, 95, 88, 56, 54,
|
||||
/* 0x2230 */ 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,115,116, 97,
|
||||
/* 0x2240 */ 114,116, 95,111,102, 95,117,110, 99,111,109,112,114,101,115,115,
|
||||
/* 0x2250 */ 101,100, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
|
||||
/* 0x2260 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 73, 67,
|
||||
/* 0x2270 */ 79, 78, 83, 49, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
|
||||
/* 0x2280 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
||||
/* 0x2290 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
||||
/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51,
|
||||
/* 0x22b0 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32,
|
||||
/* 0x22c0 */ 32, 32, 32,105, 99,111,110, 95,111,102,102,115,101,116, 10, 10,
|
||||
/* 0x22d0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
|
||||
/* 0x22e0 */ 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 73, 67, 79, 78, 83, 50,
|
||||
/* 0x22f0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2300 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2310 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
|
||||
/* 0x2320 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 88,
|
||||
/* 0x2330 */ 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,105,
|
||||
/* 0x2340 */ 99,111,110, 95,111,102,102,115,101,116, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x2350 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55, 32, 82, 95, 88, 56,
|
||||
/* 0x2360 */ 54, 95, 54, 52, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32,105, 99,
|
||||
/* 0x2370 */ 111,110, 95,100,101,108,116, 97, 43, 48,120, 48, 48, 48, 48, 48,
|
||||
/* 0x2380 */ 48, 48, 48, 48, 48, 48, 48, 56, 48, 48, 48, 10, 10, 82, 69, 76,
|
||||
/* 0x2390 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
||||
/* 0x23a0 */ 70, 79, 82, 32, 91, 80, 69, 84, 76, 83, 72, 65, 75, 93, 58, 10,
|
||||
/* 0x23b0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x23c0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x23d0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x23e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 88, 56, 54, 95,
|
||||
/* 0x23f0 */ 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,116,108,115, 95,
|
||||
/* 0x2400 */ 97,100,100,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2410 */ 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54,
|
||||
/* 0x2420 */ 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32,116,108,115, 95,118,
|
||||
/* 0x2430 */ 97,108,117,101, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 56,
|
||||
/* 0x2440 */ 48, 48, 48, 48, 48, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84,
|
||||
/* 0x2450 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
|
||||
/* 0x2460 */ 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
||||
/* 0x2470 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
||||
/* 0x2480 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
||||
/* 0x2490 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x24a0 */ 97, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50,
|
||||
/* 0x24b0 */ 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120,
|
||||
/* 0x24c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 98,
|
||||
/* 0x24d0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53,
|
||||
/* 0x24e0 */ 50, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32,
|
||||
/* 0x24f0 */ 32, 32, 32, 32, 80, 69, 77, 65, 73, 78, 49, 48, 43, 48,120,102,
|
||||
/* 0x2500 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10,
|
||||
/* 0x2510 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
|
||||
/* 0x2520 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 67, 84, 84, 80, 79,
|
||||
/* 0x2530 */ 83, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2540 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2550 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
|
||||
/* 0x2560 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95,
|
||||
/* 0x2570 */ 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2580 */ 102,105,108,116,101,114, 95, 98,117,102,102,101,114, 95,115,116,
|
||||
/* 0x2590 */ 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
|
||||
/* 0x25a0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 99,116,111,
|
||||
/* 0x25b0 */ 107, 51, 50, 46, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
||||
/* 0x25c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
||||
/* 0x25d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
||||
/* 0x25e0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x25f0 */ 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32,
|
||||
/* 0x2600 */ 32, 32, 32, 32, 32,102,105,108,116,101,114, 95,108,101,110,103,
|
||||
/* 0x2610 */ 116,104, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
|
||||
/* 0x2620 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 73, 77,
|
||||
/* 0x2630 */ 80, 79, 82, 84, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
|
||||
/* 0x2640 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
||||
/* 0x2650 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
||||
/* 0x2660 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51,
|
||||
/* 0x2670 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32,
|
||||
/* 0x2680 */ 32, 32, 32, 99,111,109,112,114,101,115,115,101,100, 95,105,109,
|
||||
/* 0x2690 */ 112,111,114,116,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x26a0 */ 48, 48, 48, 48, 48, 99, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x26b0 */ 80, 67, 56, 32, 32, 32, 32, 32, 32,105,109,112,111,114,116,115,
|
||||
/* 0x26c0 */ 95,100,111,110,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x26d0 */ 48, 48, 48, 48, 49, 52, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x26e0 */ 51, 50, 83, 32, 32, 32, 32, 32, 32,115,116, 97,114,116, 95,111,
|
||||
/* 0x26f0 */ 102, 95,105,109,112,111,114,116,115, 10, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2700 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 53, 32, 82, 95, 88, 56, 54,
|
||||
/* 0x2710 */ 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32, 76,111, 97,
|
||||
/* 0x2720 */ 100, 76,105, 98,114, 97,114,121, 65, 10, 10, 82, 69, 76, 79, 67,
|
||||
/* 0x2730 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
|
||||
/* 0x2740 */ 82, 32, 91, 80, 69, 73, 66, 89, 79, 82, 68, 93, 58, 10, 79, 70,
|
||||
/* 0x2750 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
|
||||
/* 0x2760 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2770 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2780 */ 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52,
|
||||
/* 0x2790 */ 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 98,121,110, 97,109,101,
|
||||
/* 0x27a0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
|
||||
/* 0x27b0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 75, 51, 50, 79,
|
||||
/* 0x27c0 */ 82, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
|
||||
/* 0x27d0 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x27e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
|
||||
/* 0x27f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82,
|
||||
/* 0x2800 */ 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32,
|
||||
/* 0x2810 */ 32,107,101,114,110,101,108, 51, 50, 95,111,114,100,105,110, 97,
|
||||
/* 0x2820 */ 108,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2830 */ 48, 49, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 56,
|
||||
/* 0x2840 */ 32, 32, 32, 32, 32, 32,110,101,120,116, 95,105,109,112, 10, 10,
|
||||
/* 0x2850 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
|
||||
/* 0x2860 */ 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 73, 77, 79, 82, 68, 49,
|
||||
/* 0x2870 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2880 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2890 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
|
||||
/* 0x28a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 32, 82, 95, 88,
|
||||
/* 0x28b0 */ 56, 54, 95, 54, 52, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32,102,
|
||||
/* 0x28c0 */ 105,114,115,116, 95,105,109,112, 10, 10, 82, 69, 76, 79, 67, 65,
|
||||
/* 0x28d0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
|
||||
/* 0x28e0 */ 32, 91, 80, 69, 73, 77, 80, 79, 82, 50, 93, 58, 10, 79, 70, 70,
|
||||
/* 0x28f0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89,
|
||||
/* 0x2900 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2910 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2920 */ 48, 48, 48, 48, 49, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
|
||||
/* 0x2930 */ 51, 50, 83, 32, 32, 32, 32, 32, 32, 71,101,116, 80,114,111, 99,
|
||||
/* 0x2940 */ 65,100,100,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2950 */ 48, 48, 48, 48, 48, 48, 50, 56, 32, 82, 95, 88, 56, 54, 95, 54,
|
||||
/* 0x2960 */ 52, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32,110,101,120,116, 95,
|
||||
/* 0x2970 */ 102,117,110, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
|
||||
/* 0x2980 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69,
|
||||
/* 0x2990 */ 73, 69, 82, 69, 88, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
||||
/* 0x29a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
|
||||
/* 0x29b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
|
||||
/* 0x29c0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x29d0 */ 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32,
|
||||
/* 0x29e0 */ 32, 32, 32, 32, 32, 69,120,105,116, 80,114,111, 99,101,115,115,
|
||||
/* 0x29f0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
|
||||
/* 0x2a00 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 82, 69, 76, 79,
|
||||
/* 0x2a10 */ 67, 49, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
|
||||
/* 0x2a20 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2a30 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
|
||||
/* 0x2a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82,
|
||||
/* 0x2a50 */ 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32,
|
||||
/* 0x2a60 */ 32,115,116, 97,114,116, 95,111,102, 95,114,101,108,111, 99,115,
|
||||
/* 0x2a70 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
|
||||
/* 0x2a80 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 68, 69, 80, 72,
|
||||
/* 0x2a90 */ 65, 75, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32,
|
||||
/* 0x2aa0 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2ab0 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
|
||||
/* 0x2ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82,
|
||||
/* 0x2ad0 */ 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32,
|
||||
/* 0x2ae0 */ 32, 86,105,114,116,117, 97,108, 80,114,111,116,101, 99,116, 10,
|
||||
/* 0x2af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97,
|
||||
/* 0x2b00 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32,
|
||||
/* 0x2b10 */ 32, 32, 32,118,112, 95, 98, 97,115,101, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x2b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 32, 82, 95, 88, 56,
|
||||
/* 0x2b30 */ 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32,118,112,
|
||||
/* 0x2b40 */ 95,115,105,122,101, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2b50 */ 56, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2b60 */ 48, 48, 48, 48, 48, 48, 48, 50, 99, 32, 82, 95, 88, 56, 54, 95,
|
||||
/* 0x2b70 */ 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,115,119,114,105,
|
||||
/* 0x2b80 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
|
||||
/* 0x2b90 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 84, 76, 83, 67,
|
||||
/* 0x2ba0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2bb0 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2bc0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
|
||||
/* 0x2bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 88,
|
||||
/* 0x2be0 */ 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32, 32, 32,116,
|
||||
/* 0x2bf0 */ 108,115, 95,109,111,100,117,108,101, 95, 98, 97,115,101, 10, 48,
|
||||
/* 0x2c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97, 32,
|
||||
/* 0x2c10 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 83, 32, 32, 32, 32,
|
||||
/* 0x2c20 */ 32, 32, 80, 69, 84, 76, 83, 67, 50, 43, 48,120, 48, 48, 48, 48,
|
||||
/* 0x2c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 10, 10, 82, 69,
|
||||
/* 0x2c40 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
|
||||
/* 0x2c50 */ 32, 70, 79, 82, 32, 91, 80, 69, 68, 79, 74, 85, 77, 80, 93, 58,
|
||||
/* 0x2c60 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2c70 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2c80 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54,
|
||||
/* 0x2ca0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,111,114,105,
|
||||
/* 0x2cb0 */ 103,105,110, 97,108, 95,101,110,116,114,121, 43, 48,120,102,102,
|
||||
/* 0x2cc0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10,
|
||||
/* 0x2cd0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
|
||||
/* 0x2ce0 */ 68, 83, 32, 70, 79, 82, 32, 91, 80, 69, 84, 76, 83, 67, 50, 93,
|
||||
/* 0x2cf0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2d00 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2d10 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x2d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 32, 82, 95, 88, 56,
|
||||
/* 0x2d30 */ 54, 95, 54, 52, 95, 54, 52, 32, 32, 32, 32, 32, 32, 32,116,108,
|
||||
/* 0x2d40 */ 115, 95, 99, 97,108,108, 98, 97, 99,107,115, 95,112,116,114, 43,
|
||||
/* 0x2d50 */ 48,120, 56, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2d60 */ 48, 48, 10
|
||||
};
|
||||
431
src/stub/src/amd64-win64.pep.S
Normal file
431
src/stub/src/amd64-win64.pep.S
Normal file
@ -0,0 +1,431 @@
|
||||
/*
|
||||
; AMD64-win64.pep.S -- loader & decompressor for the w64/pe32+ format
|
||||
;
|
||||
; This file is part of the UPX executable compressor.
|
||||
;
|
||||
; Copyright (C) 1996-2009 Markus Franz Xaver Johannes Oberhumer
|
||||
; Copyright (C) 1996-2009 Laszlo Molnar
|
||||
; All Rights Reserved.
|
||||
;
|
||||
; UPX and the UCL library are free software; you can redistribute them
|
||||
; and/or modify them 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.
|
||||
;
|
||||
; This program 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 this program; see the file COPYING.
|
||||
; If not, write to the Free Software Foundation, Inc.,
|
||||
; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
;
|
||||
; Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
; <markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
;
|
||||
;---------------------------------------------------------------------
|
||||
;
|
||||
; 64 bit modifications (C) 2010 Stefan Widmann
|
||||
;
|
||||
; Major changes when porting 32 bit code to 64 bit:
|
||||
; - there are no pusha/popa instructions
|
||||
; - since we cannot use pusha/popa, we save rbx, rsi, rdi and rbp instead
|
||||
; - inc <reg> are now being encoded in 2 byte instructions
|
||||
; - functions use fast call calling convention (parameters are passed in registers)
|
||||
; rcx, rdx, r8, r9
|
||||
; - caller is responsible for stack allocation for callee
|
||||
; - caller cleans up stack
|
||||
; - caller must keep the stack 16 byte aligned, 32 bytes shadow space on stack
|
||||
; For more information about the 64 bit calling convention see http://blogs.msdn.com/oldnewthing/archive/2004/01/14/58579.aspx
|
||||
*/
|
||||
|
||||
#include "arch/amd64/macros.S"
|
||||
|
||||
#define IMM8(value) byte ptr 0; \
|
||||
.reloc $ - 1, R_X86_64_8, value
|
||||
|
||||
#define IMM16(value) word ptr (1<<15); \
|
||||
.reloc $ - 2, R_X86_64_16, (1<<15) + value
|
||||
|
||||
#define IMM32(value) dword ptr (1<<31); \
|
||||
.reloc $ - 4, R_X86_64_32, (1<<31) + value
|
||||
|
||||
#define IMM64(value) qword ptr (1<<63); \
|
||||
.reloc $ - 8, R_X86_64_64, (1<<63) + value
|
||||
|
||||
#define SHORT(label) $ + 1; .reloc $ - 1, R_X86_64_PC8, label
|
||||
|
||||
.intel_syntax noprefix
|
||||
|
||||
// =============
|
||||
// ============= ENTRY POINT
|
||||
// =============
|
||||
|
||||
section PEISDLL1
|
||||
cmp dl, 1
|
||||
jnz reloc_end_jmp
|
||||
section PEMAIN01
|
||||
//; remember to keep stack aligned!
|
||||
push rbx
|
||||
push rsi
|
||||
push rdi
|
||||
push rbp
|
||||
movabs rsi, IMM64(start_of_compressed) //; relocated
|
||||
lea rdi, [rsi + start_of_uncompressed]
|
||||
|
||||
section PEICONS1
|
||||
incw [rdi + icon_offset]
|
||||
section PEICONS2
|
||||
add [rdi + icon_offset], IMM16(icon_delta)
|
||||
section PETLSHAK
|
||||
mov [rdi + tls_address], IMM32(tls_value)
|
||||
|
||||
section PEMAIN02
|
||||
push rdi
|
||||
section PEMAIN03
|
||||
|
||||
// =============
|
||||
// ============= DECOMPRESSION
|
||||
// =============
|
||||
|
||||
.att_syntax
|
||||
section NRV_HEAD
|
||||
/* Working registers */
|
||||
#define off %eax /* XXX: 2GB */
|
||||
#define len %ecx /* XXX: 2GB */
|
||||
#define lenq %rcx
|
||||
#define bits %ebx
|
||||
#define disp %rbp
|
||||
|
||||
xor bits,bits // empty; force refill
|
||||
xor len,len // create loop invariant
|
||||
orq $(~0),disp // -1: initial displacement
|
||||
call setup // push &getbit [TUNED]
|
||||
ra_setup:
|
||||
|
||||
#define jnextb0np jnextb0yp
|
||||
#define jnextb0yp GETBITp; jnc
|
||||
#define jnextb1np jnextb1yp
|
||||
#define jnextb1yp GETBITp; jc
|
||||
#define GETBITp \
|
||||
addl bits,bits; jnz 0f; \
|
||||
movl (%rsi),bits; subq $-4,%rsi; \
|
||||
adcl bits,bits; movb (%rsi),%dl; \
|
||||
0:
|
||||
/* Same, but without prefetch (not useful for length of match.) */
|
||||
#define jnextb0n jnextb0y
|
||||
#define jnextb0y GETBIT; jnc
|
||||
#define jnextb1n jnextb1y
|
||||
#define jnextb1y GETBIT; jc
|
||||
#define GETBIT \
|
||||
addl bits,bits; jnz 0f; \
|
||||
movl (%rsi),bits; subq $-4,%rsi; \
|
||||
adcl bits,bits; \
|
||||
0:
|
||||
|
||||
/* rotate next bit into bottom bit of reg */
|
||||
#define getnextbp(reg) call *%r11; adcl reg,reg
|
||||
#define getnextb(reg) getnextbp(reg)
|
||||
|
||||
|
||||
getbit:
|
||||
addl bits,bits; jz refill // Carry= next bit
|
||||
rep; ret
|
||||
refill:
|
||||
movl (%rsi),bits; subq $-4,%rsi // next 32 bits; set Carry
|
||||
adcl bits,bits // LSB= 1 (CarryIn); CarryOut= next bit
|
||||
movb (%rsi),%dl // speculate: literal, or bottom 8 bits of offset
|
||||
rep; ret
|
||||
|
||||
copy: // In: len, %rdi, disp; Out: 0==len, %rdi, disp; trashes %rax, %rdx
|
||||
leaq (%rdi,disp),%rax; cmpl $5,len // <=3 is forced
|
||||
movb (%rax),%dl; jbe copy1 // <=5 for better branch predict
|
||||
cmpq $-4,disp; ja copy1 // 4-byte chunks would overlap
|
||||
subl $4,len // adjust for termination cases
|
||||
copy4:
|
||||
movl (%rax),%edx; addq $4, %rax; subl $4,len
|
||||
movl %edx,(%rdi); leaq 4(%rdi),%rdi; jnc copy4
|
||||
addl $4,len; movb (%rax),%dl; jz copy0
|
||||
copy1:
|
||||
incq %rax; movb %dl,(%rdi); subl $1,len
|
||||
movb (%rax),%dl
|
||||
leaq 1(%rdi),%rdi; jnz copy1
|
||||
copy0:
|
||||
rep; ret
|
||||
|
||||
setup:
|
||||
cld
|
||||
pop %r11 // addq $ getbit - ra_setup,%r11 # &getbit
|
||||
|
||||
#define NO_METHOD_CHECK
|
||||
|
||||
section NRV2E
|
||||
#include "arch/amd64/nrv2e_d.S"
|
||||
|
||||
|
||||
#if 0 //; FIXME
|
||||
#include "arch/amd64/nrv2b_d.S"
|
||||
#include "arch/amd64/nrv2d_d.S"
|
||||
#include "arch/amd64/nrv2e_d.S"
|
||||
#include "arch/amd64/lzma_d.S"
|
||||
#endif
|
||||
|
||||
.intel_syntax noprefix
|
||||
// =============
|
||||
section PEMAIN10
|
||||
eof:
|
||||
pop rsi // load vaddr
|
||||
|
||||
// =============
|
||||
// ============= CALLTRICK
|
||||
// =============
|
||||
|
||||
section PECTTPOS
|
||||
lea rdi, [rsi + filter_buffer_start]
|
||||
section PECTTNUL
|
||||
mov rdi, rsi
|
||||
|
||||
#if 0 //; FIXME use amd_bxx.S
|
||||
cjt32 esi
|
||||
#endif
|
||||
|
||||
section ctok32.00
|
||||
mov ecx, offset filter_length
|
||||
#if 0 //; FIXME
|
||||
ctok32 esi, (offset filter_cto)
|
||||
#endif
|
||||
|
||||
// =============
|
||||
// ============= IMPORTS
|
||||
// =============
|
||||
|
||||
section PEIMPORT
|
||||
lea rdi, [rsi + compressed_imports]
|
||||
next_dll:
|
||||
mov eax, [rdi]
|
||||
or eax, eax
|
||||
jz SHORT(imports_done)
|
||||
mov ebx, [rdi + 4] // iat
|
||||
lea rcx, [rax + rsi + start_of_imports]
|
||||
add rbx, rsi
|
||||
add rdi, 8
|
||||
|
||||
sub rsp, 0x28
|
||||
call [rsi + LoadLibraryA]
|
||||
add rsp, 0x28
|
||||
|
||||
xchg rax, rbp
|
||||
next_func:
|
||||
mov al, [rdi]
|
||||
inc rdi
|
||||
or al, al
|
||||
jz next_dll
|
||||
section PEIBYORD
|
||||
jns SHORT(byname)
|
||||
section PEK32ORD
|
||||
jpe not_kernel32
|
||||
mov eax, [rdi]
|
||||
add rdi, 4
|
||||
mov rax, [rax + rsi + kernel32_ordinals]
|
||||
jmp SHORT(next_imp)
|
||||
not_kernel32:
|
||||
section PEIMORD1
|
||||
movzxw rdx, word ptr [rdi]
|
||||
add rdi, 2
|
||||
jmp SHORT(first_imp)
|
||||
|
||||
byname:
|
||||
section PEIMPOR2
|
||||
mov rcx, rdi // something > 0
|
||||
mov rdx, rdi
|
||||
dec eax
|
||||
repne
|
||||
scasb
|
||||
first_imp:
|
||||
mov rcx, rbp
|
||||
|
||||
sub rsp, 0x28
|
||||
call [rsi + GetProcAddress]
|
||||
add rsp, 0x28
|
||||
|
||||
or rax, rax
|
||||
jz imp_failed
|
||||
next_imp:
|
||||
mov [rbx], rax
|
||||
add rbx, 8
|
||||
jmp SHORT(next_func)
|
||||
imp_failed:
|
||||
section PEIERDLL
|
||||
pop rbp
|
||||
pop rdi
|
||||
pop rsi
|
||||
pop rbx
|
||||
xor eax, eax
|
||||
ret
|
||||
|
||||
section PEIEREXE
|
||||
// rcx contains garbage -> garbage return code
|
||||
sub rsp, 0x28
|
||||
call [rsi + ExitProcess]
|
||||
section PEIMDONE
|
||||
imports_done:
|
||||
|
||||
// =============
|
||||
// ============= RELOCATION
|
||||
// =============
|
||||
|
||||
section PERELOC1
|
||||
lea rdi, [rsi + start_of_relocs]
|
||||
section PERELOC2
|
||||
add rdi, 4
|
||||
section PERELOC3
|
||||
lea rbx, [rsi - 4]
|
||||
|
||||
#if 0 //; FIXME
|
||||
reloc64 rdi, rbx, rsi
|
||||
#endif
|
||||
|
||||
|
||||
// =============
|
||||
|
||||
// FIXME: depends on that in PERELOC1 edi is set!!
|
||||
section PERLOHI0
|
||||
#if 0
|
||||
xchg edi, esi
|
||||
lea ecx, [rdi + reloc_delt]
|
||||
#endif
|
||||
|
||||
section PERELLO0
|
||||
#if 0
|
||||
.byte 0xA9 //test eax, XXXXXXXX
|
||||
rello0:
|
||||
add [rdi + rax], cx //why do we just use cx instead of ecx?
|
||||
lodsd
|
||||
or eax, eax
|
||||
jnz rello0
|
||||
#endif
|
||||
// =============
|
||||
|
||||
section PERELHI0
|
||||
#if 0
|
||||
shr ecx, 16
|
||||
.byte 0xA9 //test eax, XXXXXXXX
|
||||
relhi0:
|
||||
add [rdi + rax], cx //why do we just use cx instead of ecx?
|
||||
lodsd
|
||||
or eax, eax
|
||||
jnz relhi0
|
||||
#endif
|
||||
|
||||
// =============
|
||||
section PEDEPHAK
|
||||
mov rbp, [rsi + VirtualProtect]
|
||||
lea rdi, [rsi + vp_base]
|
||||
mov ebx, IMM32(vp_size) // 0x1000 or 0x2000
|
||||
|
||||
push rax // provide 8 bytes stack
|
||||
mov r9, rsp
|
||||
mov r8d, 4 // PAGE_READWRITE
|
||||
mov rdx, rbx // size
|
||||
mov rcx, rdi // address
|
||||
|
||||
sub rsp, 0x20
|
||||
call rbp // VirtualProtect
|
||||
|
||||
lea rax, [rdi + swri]
|
||||
andb [rax], 0x7f // marks UPX0 non writeable
|
||||
andb [rax + 0x28], 0x7f // marks UPX1 non writeable
|
||||
|
||||
lea r9, [rsp + 0x20]
|
||||
movq r8, [r9] // original protection
|
||||
mov rdx, rbx
|
||||
mov rcx, rdi
|
||||
|
||||
call rbp
|
||||
add rsp, 0x28
|
||||
|
||||
// =============
|
||||
section PETLSC
|
||||
lea rcx, [rsi + tls_module_base] //;load module base to rcx
|
||||
lea rdi, [rcx + tls_handler_start + 1] //;load offset of handler
|
||||
//;remove jump from TLS handler entry (overwrite displacement)
|
||||
xor eax, eax
|
||||
stosb
|
||||
//;emulate callbacks like PE loader would have done
|
||||
mov r8, rax //;0 - reserved
|
||||
mov edx, 1 //;DLL_PROCESS_ATTACH
|
||||
|
||||
push rax //;align stack
|
||||
call rdi //;contains ptr to callback handler
|
||||
pop rax
|
||||
|
||||
// =============
|
||||
section PEMAIN20
|
||||
pop rbp
|
||||
pop rdi
|
||||
pop rsi
|
||||
pop rbx
|
||||
|
||||
// clear the dirty stack
|
||||
.macro clearstack128 tmp_reg
|
||||
.local loop
|
||||
lea \tmp_reg, [rsp - 128]
|
||||
loop:
|
||||
push 0
|
||||
cmp rsp, \tmp_reg
|
||||
jnz loop
|
||||
sub rsp, -128
|
||||
.endm
|
||||
|
||||
section CLEARSTACK
|
||||
clearstack128 rax
|
||||
|
||||
section PEMAIN21
|
||||
reloc_end_jmp:
|
||||
|
||||
section PERETURN
|
||||
mov eax, 1
|
||||
ret
|
||||
section PEDOJUMP
|
||||
jmp original_entry
|
||||
|
||||
// =============
|
||||
section PETLSC2
|
||||
//;TLS_CALLBACK(hModule, reason, reserved)
|
||||
tls_handler_start:
|
||||
jmp end_of_tls_handler //;this jump is patched to EB 00 (jmp $+2) by stub
|
||||
push rsi
|
||||
movabs rsi, IMM64(tls_callbacks_ptr) //;must be relocated
|
||||
cld //;you never know, this code gets called by the PE loader
|
||||
walk_tlsc_chain2:
|
||||
lodsq
|
||||
test rax, rax
|
||||
jz done_callbacks
|
||||
|
||||
push rcx
|
||||
push rdx
|
||||
push r8
|
||||
|
||||
sub rsp, 0x28
|
||||
call rax
|
||||
add rsp, 0x28
|
||||
|
||||
pop r8
|
||||
pop rdx
|
||||
pop rcx
|
||||
|
||||
jmp walk_tlsc_chain2
|
||||
done_callbacks:
|
||||
pop rsi
|
||||
end_of_tls_handler:
|
||||
ret
|
||||
|
||||
// =============
|
||||
// ============= CUT HERE
|
||||
// =============
|
||||
|
||||
#include "include/header.S"
|
||||
|
||||
// vi:ts=8:et:nowrap
|
||||
@ -29,7 +29,11 @@
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#ifndef NO_METHOD_CHECK
|
||||
cmpb $ M_NRV2E_LE32,methb; je top_n2e; jmp not_n2e
|
||||
#else
|
||||
jmp top_n2e
|
||||
#endif
|
||||
|
||||
lit_n2e:
|
||||
incq %rsi; movb %dl,(%rdi)
|
||||
|
||||
193
src/stub/tmp/amd64-win64.pep.bin.dump
Normal file
193
src/stub/tmp/amd64-win64.pep.bin.dump
Normal file
@ -0,0 +1,193 @@
|
||||
file format elf64-x86-64
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 PEISDLL1 00000009 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
|
||||
1 PEMAIN01 00000015 0000000000000000 0000000000000000 00000049 2**0 CONTENTS, RELOC, READONLY
|
||||
2 PEICONS1 00000007 0000000000000000 0000000000000000 0000005e 2**0 CONTENTS, RELOC, READONLY
|
||||
3 PEICONS2 00000009 0000000000000000 0000000000000000 00000065 2**0 CONTENTS, RELOC, READONLY
|
||||
4 PETLSHAK 0000000a 0000000000000000 0000000000000000 0000006e 2**0 CONTENTS, RELOC, READONLY
|
||||
5 PEMAIN02 00000001 0000000000000000 0000000000000000 00000078 2**0 CONTENTS, READONLY
|
||||
6 PEMAIN03 00000000 0000000000000000 0000000000000000 00000079 2**0 CONTENTS, READONLY
|
||||
7 NRV_HEAD 00000060 0000000000000000 0000000000000000 00000079 2**0 CONTENTS, READONLY
|
||||
8 NRV2E 000000ae 0000000000000000 0000000000000000 000000d9 2**0 CONTENTS, RELOC, READONLY
|
||||
9 PEMAIN10 00000001 0000000000000000 0000000000000000 00000187 2**0 CONTENTS, READONLY
|
||||
10 PECTTPOS 00000007 0000000000000000 0000000000000000 00000188 2**0 CONTENTS, RELOC, READONLY
|
||||
11 PECTTNUL 00000003 0000000000000000 0000000000000000 0000018f 2**0 CONTENTS, READONLY
|
||||
12 ctok32.00 00000005 0000000000000000 0000000000000000 00000192 2**0 CONTENTS, RELOC, READONLY
|
||||
13 PEIMPORT 00000038 0000000000000000 0000000000000000 00000197 2**0 CONTENTS, RELOC, READONLY
|
||||
14 PEIBYORD 00000002 0000000000000000 0000000000000000 000001cf 2**0 CONTENTS, RELOC, READONLY
|
||||
15 PEK32ORD 00000012 0000000000000000 0000000000000000 000001d1 2**0 CONTENTS, RELOC, READONLY
|
||||
16 PEIMORD1 0000000a 0000000000000000 0000000000000000 000001e3 2**0 CONTENTS, RELOC, READONLY
|
||||
17 PEIMPOR2 00000029 0000000000000000 0000000000000000 000001ed 2**0 CONTENTS, RELOC, READONLY
|
||||
18 PEIERDLL 00000007 0000000000000000 0000000000000000 00000216 2**0 CONTENTS, READONLY
|
||||
19 PEIEREXE 0000000a 0000000000000000 0000000000000000 0000021d 2**0 CONTENTS, RELOC, READONLY
|
||||
20 PEIMDONE 00000000 0000000000000000 0000000000000000 00000227 2**0 CONTENTS, READONLY
|
||||
21 PERELOC1 00000007 0000000000000000 0000000000000000 00000227 2**0 CONTENTS, RELOC, READONLY
|
||||
22 PERELOC2 00000004 0000000000000000 0000000000000000 0000022e 2**0 CONTENTS, READONLY
|
||||
23 PERELOC3 00000004 0000000000000000 0000000000000000 00000232 2**0 CONTENTS, READONLY
|
||||
24 PERLOHI0 00000000 0000000000000000 0000000000000000 00000236 2**0 CONTENTS, READONLY
|
||||
25 PERELLO0 00000000 0000000000000000 0000000000000000 00000236 2**0 CONTENTS, READONLY
|
||||
26 PERELHI0 00000000 0000000000000000 0000000000000000 00000236 2**0 CONTENTS, READONLY
|
||||
27 PEDEPHAK 0000004b 0000000000000000 0000000000000000 00000236 2**0 CONTENTS, RELOC, READONLY
|
||||
28 PETLSC 0000001d 0000000000000000 0000000000000000 00000281 2**0 CONTENTS, RELOC, READONLY
|
||||
29 PEMAIN20 00000004 0000000000000000 0000000000000000 0000029e 2**0 CONTENTS, READONLY
|
||||
30 CLEARSTACK 00000010 0000000000000000 0000000000000000 000002a2 2**0 CONTENTS, READONLY
|
||||
31 PEMAIN21 00000000 0000000000000000 0000000000000000 000002b2 2**0 CONTENTS, READONLY
|
||||
32 PERETURN 00000006 0000000000000000 0000000000000000 000002b2 2**0 CONTENTS, READONLY
|
||||
33 PEDOJUMP 00000005 0000000000000000 0000000000000000 000002b8 2**0 CONTENTS, RELOC, READONLY
|
||||
34 PETLSC2 0000002b 0000000000000000 0000000000000000 000002bd 2**0 CONTENTS, RELOC, READONLY
|
||||
35 UPX1HEAD 00000020 0000000000000000 0000000000000000 000002e8 2**0 CONTENTS, READONLY
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
|
||||
0000000000000000 l d PEMAIN10 0000000000000000 PEMAIN10
|
||||
0000000000000000 l PEIMDONE 0000000000000000 imports_done
|
||||
000000000000002f l PEIMPORT 0000000000000000 next_func
|
||||
000000000000000a l PEIMORD1 0000000000000000 byname
|
||||
0000000000000020 l PEIMPOR2 0000000000000000 next_imp
|
||||
000000000000000a l PEIMPOR2 0000000000000000 first_imp
|
||||
0000000000000000 l d PEMAIN21 0000000000000000 PEMAIN21
|
||||
0000000000000000 l d PETLSC2 0000000000000000 PETLSC2
|
||||
0000000000000000 l d PEISDLL1 0000000000000000 PEISDLL1
|
||||
0000000000000000 l d PEMAIN01 0000000000000000 PEMAIN01
|
||||
0000000000000000 l d PEICONS1 0000000000000000 PEICONS1
|
||||
0000000000000000 l d PEICONS2 0000000000000000 PEICONS2
|
||||
0000000000000000 l d PETLSHAK 0000000000000000 PETLSHAK
|
||||
0000000000000000 l d PEMAIN02 0000000000000000 PEMAIN02
|
||||
0000000000000000 l d PEMAIN03 0000000000000000 PEMAIN03
|
||||
0000000000000000 l d NRV2E 0000000000000000 NRV2E
|
||||
0000000000000000 l d PECTTPOS 0000000000000000 PECTTPOS
|
||||
0000000000000000 l d PECTTNUL 0000000000000000 PECTTNUL
|
||||
0000000000000000 l d ctok32.00 0000000000000000 ctok32.00
|
||||
0000000000000000 l d PEIMPORT 0000000000000000 PEIMPORT
|
||||
0000000000000000 l d PEIBYORD 0000000000000000 PEIBYORD
|
||||
0000000000000000 l d PEK32ORD 0000000000000000 PEK32ORD
|
||||
0000000000000000 l d PEIMORD1 0000000000000000 PEIMORD1
|
||||
0000000000000000 l d PEIMPOR2 0000000000000000 PEIMPOR2
|
||||
0000000000000000 l d PEIERDLL 0000000000000000 PEIERDLL
|
||||
0000000000000000 l d PEIEREXE 0000000000000000 PEIEREXE
|
||||
0000000000000000 l d PEIMDONE 0000000000000000 PEIMDONE
|
||||
0000000000000000 l d PERELOC1 0000000000000000 PERELOC1
|
||||
0000000000000000 l d PERELOC2 0000000000000000 PERELOC2
|
||||
0000000000000000 l d PERELOC3 0000000000000000 PERELOC3
|
||||
0000000000000000 l d PERLOHI0 0000000000000000 PERLOHI0
|
||||
0000000000000000 l d PERELLO0 0000000000000000 PERELLO0
|
||||
0000000000000000 l d PERELHI0 0000000000000000 PERELHI0
|
||||
0000000000000000 l d PEDEPHAK 0000000000000000 PEDEPHAK
|
||||
0000000000000000 l d PETLSC 0000000000000000 PETLSC
|
||||
0000000000000000 l d PEMAIN20 0000000000000000 PEMAIN20
|
||||
0000000000000000 l d CLEARSTACK 0000000000000000 CLEARSTACK
|
||||
0000000000000000 l d PERETURN 0000000000000000 PERETURN
|
||||
0000000000000000 l d PEDOJUMP 0000000000000000 PEDOJUMP
|
||||
0000000000000000 l d UPX1HEAD 0000000000000000 UPX1HEAD
|
||||
0000000000000000 *UND* 0000000000000000 start_of_compressed
|
||||
0000000000000000 *UND* 0000000000000000 start_of_uncompressed
|
||||
0000000000000000 *UND* 0000000000000000 icon_offset
|
||||
0000000000000000 *UND* 0000000000000000 icon_delta
|
||||
0000000000000000 *UND* 0000000000000000 tls_address
|
||||
0000000000000000 *UND* 0000000000000000 tls_value
|
||||
0000000000000000 *UND* 0000000000000000 filter_buffer_start
|
||||
0000000000000000 *UND* 0000000000000000 filter_length
|
||||
0000000000000000 *UND* 0000000000000000 compressed_imports
|
||||
0000000000000000 *UND* 0000000000000000 start_of_imports
|
||||
0000000000000000 *UND* 0000000000000000 LoadLibraryA
|
||||
0000000000000000 *UND* 0000000000000000 kernel32_ordinals
|
||||
0000000000000000 *UND* 0000000000000000 GetProcAddress
|
||||
0000000000000000 *UND* 0000000000000000 ExitProcess
|
||||
0000000000000000 *UND* 0000000000000000 start_of_relocs
|
||||
0000000000000000 *UND* 0000000000000000 VirtualProtect
|
||||
0000000000000000 *UND* 0000000000000000 vp_base
|
||||
0000000000000000 *UND* 0000000000000000 vp_size
|
||||
0000000000000000 *UND* 0000000000000000 swri
|
||||
0000000000000000 *UND* 0000000000000000 tls_module_base
|
||||
0000000000000000 *UND* 0000000000000000 original_entry
|
||||
0000000000000000 *UND* 0000000000000000 tls_callbacks_ptr
|
||||
|
||||
RELOCATION RECORDS FOR [PEISDLL1]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000005 R_X86_64_PC32 PEMAIN21+0xfffffffffffffffc
|
||||
|
||||
RELOCATION RECORDS FOR [PEMAIN01]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000006 R_X86_64_64 start_of_compressed+0x8000000000000000
|
||||
0000000000000011 R_X86_64_32S start_of_uncompressed
|
||||
|
||||
RELOCATION RECORDS FOR [PEICONS1]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S icon_offset
|
||||
|
||||
RELOCATION RECORDS FOR [PEICONS2]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S icon_offset
|
||||
0000000000000007 R_X86_64_16 icon_delta+0x0000000000008000
|
||||
|
||||
RELOCATION RECORDS FOR [PETLSHAK]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000002 R_X86_64_32S tls_address
|
||||
0000000000000006 R_X86_64_32 tls_value+0x0000000080000000
|
||||
|
||||
RELOCATION RECORDS FOR [NRV2E]:
|
||||
OFFSET TYPE VALUE
|
||||
00000000000000a5 R_X86_64_PC32 NRV_HEAD+0x000000000000001b
|
||||
0000000000000052 R_X86_64_PC32 PEMAIN10+0xfffffffffffffffc
|
||||
|
||||
RELOCATION RECORDS FOR [PECTTPOS]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S filter_buffer_start
|
||||
|
||||
RELOCATION RECORDS FOR [ctok32.00]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000001 R_X86_64_32 filter_length
|
||||
|
||||
RELOCATION RECORDS FOR [PEIMPORT]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S compressed_imports
|
||||
000000000000000c R_X86_64_PC8 imports_done
|
||||
0000000000000014 R_X86_64_32S start_of_imports
|
||||
0000000000000025 R_X86_64_32S LoadLibraryA
|
||||
|
||||
RELOCATION RECORDS FOR [PEIBYORD]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000001 R_X86_64_PC8 byname
|
||||
|
||||
RELOCATION RECORDS FOR [PEK32ORD]:
|
||||
OFFSET TYPE VALUE
|
||||
000000000000000c R_X86_64_32S kernel32_ordinals
|
||||
0000000000000011 R_X86_64_PC8 next_imp
|
||||
|
||||
RELOCATION RECORDS FOR [PEIMORD1]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000009 R_X86_64_PC8 first_imp
|
||||
|
||||
RELOCATION RECORDS FOR [PEIMPOR2]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000013 R_X86_64_32S GetProcAddress
|
||||
0000000000000028 R_X86_64_PC8 next_func
|
||||
|
||||
RELOCATION RECORDS FOR [PEIEREXE]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000006 R_X86_64_32S ExitProcess
|
||||
|
||||
RELOCATION RECORDS FOR [PERELOC1]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S start_of_relocs
|
||||
|
||||
RELOCATION RECORDS FOR [PEDEPHAK]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S VirtualProtect
|
||||
000000000000000a R_X86_64_32S vp_base
|
||||
000000000000000f R_X86_64_32 vp_size+0x0000000080000000
|
||||
000000000000002c R_X86_64_32S swri
|
||||
|
||||
RELOCATION RECORDS FOR [PETLSC]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000003 R_X86_64_32S tls_module_base
|
||||
000000000000000a R_X86_64_32S PETLSC2+0x0000000000000001
|
||||
|
||||
RELOCATION RECORDS FOR [PEDOJUMP]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000001 R_X86_64_PC32 original_entry+0xfffffffffffffffc
|
||||
|
||||
RELOCATION RECORDS FOR [PETLSC2]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000005 R_X86_64_64 tls_callbacks_ptr+0x8000000000000000
|
||||
Loading…
Reference in New Issue
Block a user