mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
new format UPX_F_LINUX_ELF32_MIPSEL [work in progress]
This commit is contained in:
parent
c3363712d9
commit
573009eeb6
|
@ -456,6 +456,7 @@ private:
|
||||||
#define UPX_F_VMLINUX_AMD64 27
|
#define UPX_F_VMLINUX_AMD64 27
|
||||||
#define UPX_F_VMLINUX_ARMEL 28
|
#define UPX_F_VMLINUX_ARMEL 28
|
||||||
#define UPX_F_MACH_i386 29
|
#define UPX_F_MACH_i386 29
|
||||||
|
#define UPX_F_LINUX_ELF32_MIPSEL 30
|
||||||
|
|
||||||
#define UPX_F_PLAIN_TEXT 127
|
#define UPX_F_PLAIN_TEXT 127
|
||||||
|
|
||||||
|
|
|
@ -68,10 +68,13 @@
|
||||||
};
|
};
|
||||||
enum { // e_machine
|
enum { // e_machine
|
||||||
EM_386 = 3,
|
EM_386 = 3,
|
||||||
|
EM_MIPS = 8,
|
||||||
|
EM_MIPS_RS3_LE = 10, /* MIPS R3000 little-endian */
|
||||||
EM_PPC = 20,
|
EM_PPC = 20,
|
||||||
EM_PPC64 = 21,
|
EM_PPC64 = 21,
|
||||||
EM_ARM = 40,
|
EM_ARM = 40,
|
||||||
EM_X86_64 = 62
|
EM_X86_64 = 62
|
||||||
|
|
||||||
};
|
};
|
||||||
enum { // e_version
|
enum { // e_version
|
||||||
EV_CURRENT = 1
|
EV_CURRENT = 1
|
||||||
|
|
229
src/p_lx_elf.cpp
229
src/p_lx_elf.cpp
|
@ -141,6 +141,7 @@ PackLinuxElf64::checkEhdr(Elf64_Ehdr const *ehdr) const
|
||||||
PackLinuxElf::PackLinuxElf(InputFile *f)
|
PackLinuxElf::PackLinuxElf(InputFile *f)
|
||||||
: super(f), file_image(NULL), dynstr(NULL),
|
: super(f), file_image(NULL), dynstr(NULL),
|
||||||
sz_phdrs(0), sz_elf_hdrs(0), sz_pack2(0),
|
sz_phdrs(0), sz_elf_hdrs(0), sz_pack2(0),
|
||||||
|
lg2_page(12), page_size(1u<<lg2_page),
|
||||||
e_machine(0), ei_class(0), ei_data(0), ei_osabi(0), osabi_note(NULL)
|
e_machine(0), ei_class(0), ei_data(0), ei_osabi(0), osabi_note(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -201,7 +202,7 @@ void PackLinuxElf::defineSymbols(Filter const *)
|
||||||
}
|
}
|
||||||
|
|
||||||
PackLinuxElf32::PackLinuxElf32(InputFile *f)
|
PackLinuxElf32::PackLinuxElf32(InputFile *f)
|
||||||
: super(f), phdri(NULL),
|
: super(f), phdri(NULL), page_mask(~0u<<lg2_page),
|
||||||
dynseg(NULL), hashtab(NULL), dynsym(NULL)
|
dynseg(NULL), hashtab(NULL), dynsym(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -212,7 +213,7 @@ PackLinuxElf32::~PackLinuxElf32()
|
||||||
}
|
}
|
||||||
|
|
||||||
PackLinuxElf64::PackLinuxElf64(InputFile *f)
|
PackLinuxElf64::PackLinuxElf64(InputFile *f)
|
||||||
: super(f), phdri(NULL)
|
: super(f), phdri(NULL), page_mask(~0ull<<lg2_page)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,6 +246,12 @@ PackLinuxElf32armBe::getCompressionMethods(int method, int level) const
|
||||||
return Packer::getDefaultCompressionMethods_8(method, level);
|
return Packer::getDefaultCompressionMethods_8(method, level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int const *
|
||||||
|
PackLinuxElf32mipsel::getCompressionMethods(int method, int level) const
|
||||||
|
{
|
||||||
|
return Packer::getDefaultCompressionMethods_le32(method, level);
|
||||||
|
}
|
||||||
|
|
||||||
int const *
|
int const *
|
||||||
PackLinuxElf32ppc::getFilters() const
|
PackLinuxElf32ppc::getFilters() const
|
||||||
{
|
{
|
||||||
|
@ -288,6 +295,11 @@ void PackLinuxElf32armBe::updateLoader(OutputFile *fo)
|
||||||
ARM_updateLoader(fo);
|
ARM_updateLoader(fo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PackLinuxElf32mipsel::updateLoader(OutputFile *fo)
|
||||||
|
{
|
||||||
|
ARM_updateLoader(fo); // not ARM specific; (no 32-bit immediates)
|
||||||
|
}
|
||||||
|
|
||||||
void PackLinuxElf32::updateLoader(OutputFile *fo)
|
void PackLinuxElf32::updateLoader(OutputFile *fo)
|
||||||
{
|
{
|
||||||
set_native32(&elfout.ehdr.e_entry, fo->getBytesWritten() +
|
set_native32(&elfout.ehdr.e_entry, fo->getBytesWritten() +
|
||||||
|
@ -560,8 +572,6 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#define PAGE_MASK (~0u<<12)
|
|
||||||
#define PAGE_SIZE (-PAGE_MASK)
|
|
||||||
lsize = /*getLoaderSize()*/ 64 * 1024; // upper bound; avoid circularity
|
lsize = /*getLoaderSize()*/ 64 * 1024; // upper bound; avoid circularity
|
||||||
acc_uint64l_t lo_va_stub = get_native64(&elfout.phdr[0].p_vaddr);
|
acc_uint64l_t lo_va_stub = get_native64(&elfout.phdr[0].p_vaddr);
|
||||||
acc_uint64l_t adrc;
|
acc_uint64l_t adrc;
|
||||||
|
@ -572,7 +582,7 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
|
||||||
unsigned lenm;
|
unsigned lenm;
|
||||||
unsigned lenu;
|
unsigned lenu;
|
||||||
len += (7&-lsize) + lsize;
|
len += (7&-lsize) + lsize;
|
||||||
bool const is_big = (lo_va_user < (lo_va_stub + len + 2*PAGE_SIZE));
|
bool const is_big = (lo_va_user < (lo_va_stub + len + 2*page_size));
|
||||||
if (is_big) {
|
if (is_big) {
|
||||||
set_native64( &elfout.ehdr.e_entry,
|
set_native64( &elfout.ehdr.e_entry,
|
||||||
get_native64(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
|
get_native64(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
|
||||||
|
@ -581,10 +591,10 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
|
||||||
lo_va_stub = lo_va_user;
|
lo_va_stub = lo_va_user;
|
||||||
adrc = lo_va_stub;
|
adrc = lo_va_stub;
|
||||||
adrm = getbrk(phdri, get_native16(&ehdri.e_phnum));
|
adrm = getbrk(phdri, get_native16(&ehdri.e_phnum));
|
||||||
adru = PAGE_MASK & (~PAGE_MASK + adrm); // round up to page boundary
|
adru = page_mask & (~page_mask + adrm); // round up to page boundary
|
||||||
adrx = adru + hlen;
|
adrx = adru + hlen;
|
||||||
lenm = PAGE_SIZE + len;
|
lenm = page_size + len;
|
||||||
lenu = PAGE_SIZE + len;
|
lenu = page_size + len;
|
||||||
cntc = len >> 3; // over-estimate; corrected at runtime
|
cntc = len >> 3; // over-estimate; corrected at runtime
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -592,12 +602,12 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
|
||||||
adrc = adrm;
|
adrc = adrm;
|
||||||
adru = lo_va_stub;
|
adru = lo_va_stub;
|
||||||
adrx = lo_va_stub + hlen;
|
adrx = lo_va_stub + hlen;
|
||||||
lenm = PAGE_SIZE;
|
lenm = page_size;
|
||||||
lenu = PAGE_SIZE + len;
|
lenu = page_size + len;
|
||||||
cntc = 0;
|
cntc = 0;
|
||||||
}
|
}
|
||||||
adrm = PAGE_MASK & (~PAGE_MASK + adrm); // round up to page boundary
|
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
|
||||||
adrc = PAGE_MASK & (~PAGE_MASK + adrc); // round up to page boundary
|
adrc = page_mask & (~page_mask + adrc); // round up to page boundary
|
||||||
|
|
||||||
linker->defineSymbol("ADRX", adrx); // compressed input for eXpansion
|
linker->defineSymbol("ADRX", adrx); // compressed input for eXpansion
|
||||||
|
|
||||||
|
@ -614,8 +624,6 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
|
||||||
#undef EI_NIDENT
|
#undef EI_NIDENT
|
||||||
linker->defineSymbol("LENM", lenm); // len for map
|
linker->defineSymbol("LENM", lenm); // len for map
|
||||||
linker->defineSymbol("ADRM", adrm); // addr for map
|
linker->defineSymbol("ADRM", adrm); // addr for map
|
||||||
#undef PAGE_SIZE
|
|
||||||
#undef PAGE_MASK
|
|
||||||
|
|
||||||
//linker->dumpSymbols(); // debug
|
//linker->dumpSymbols(); // debug
|
||||||
}
|
}
|
||||||
|
@ -734,6 +742,19 @@ PackLinuxElf32armLe::buildLoader(Filter const *ft)
|
||||||
stub_arm_linux_elf_fold, sizeof(stub_arm_linux_elf_fold), ft);
|
stub_arm_linux_elf_fold, sizeof(stub_arm_linux_elf_fold), ft);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const
|
||||||
|
#include "stub/mipsel.r3000-linux.elf-entry.h"
|
||||||
|
static const
|
||||||
|
#include "stub/mipsel.r3000-linux.elf-fold.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
PackLinuxElf32mipsel::buildLoader(Filter const *ft)
|
||||||
|
{
|
||||||
|
buildLinuxLoader(
|
||||||
|
stub_mipsel_r3000_linux_elf_entry, sizeof(stub_mipsel_r3000_linux_elf_entry),
|
||||||
|
stub_mipsel_r3000_linux_elf_fold, sizeof(stub_mipsel_r3000_linux_elf_fold), ft);
|
||||||
|
}
|
||||||
|
|
||||||
static const
|
static const
|
||||||
#include "stub/powerpc-linux.elf-entry.h"
|
#include "stub/powerpc-linux.elf-entry.h"
|
||||||
static const
|
static const
|
||||||
|
@ -993,6 +1014,10 @@ PackLinuxElf32::generateElfHdr(
|
||||||
cprElfHdr3 *const h3 = (cprElfHdr3 *)&elfout;
|
cprElfHdr3 *const h3 = (cprElfHdr3 *)&elfout;
|
||||||
memcpy(h3, proto, sizeof(*h3)); // reads beyond, but OK
|
memcpy(h3, proto, sizeof(*h3)); // reads beyond, but OK
|
||||||
h3->ehdr.e_ident[Elf32_Ehdr::EI_OSABI] = ei_osabi;
|
h3->ehdr.e_ident[Elf32_Ehdr::EI_OSABI] = ei_osabi;
|
||||||
|
if (Elf32_Ehdr::EM_MIPS==e_machine) { // MIPS R3000 FIXME
|
||||||
|
h3->ehdr.e_ident[Elf32_Ehdr::EI_OSABI] = Elf32_Ehdr::ELFOSABI_NONE;
|
||||||
|
h3->ehdr.e_flags = ehdri.e_flags;
|
||||||
|
}
|
||||||
|
|
||||||
assert(get_native32(&h2->ehdr.e_phoff) == sizeof(Elf32_Ehdr));
|
assert(get_native32(&h2->ehdr.e_phoff) == sizeof(Elf32_Ehdr));
|
||||||
h2->ehdr.e_shoff = 0;
|
h2->ehdr.e_shoff = 0;
|
||||||
|
@ -1006,19 +1031,33 @@ PackLinuxElf32::generateElfHdr(
|
||||||
set_native32(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize;
|
set_native32(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize;
|
||||||
h2->phdr[0].p_memsz = h2->phdr[0].p_filesz;
|
h2->phdr[0].p_memsz = h2->phdr[0].p_filesz;
|
||||||
|
|
||||||
|
unsigned const e_phnum = get_native16(&ehdri.e_phnum);
|
||||||
|
Elf32_Phdr const *phdr = phdri;
|
||||||
|
for (unsigned j=0; j < e_phnum; ++phdr, ++j) {
|
||||||
|
if (phdr->PT_LOAD32 == get_native32(&phdr->p_type)) {
|
||||||
|
unsigned x = phdr->p_align >> lg2_page;
|
||||||
|
while (x>>=1) {
|
||||||
|
++lg2_page;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
page_size = 1u<<lg2_page;
|
||||||
|
page_mask = ~0u<<lg2_page;
|
||||||
|
for (unsigned j=0; j < 3; ++j) {
|
||||||
|
set_native32(&h3->phdr[j].p_align, page_size);
|
||||||
|
}
|
||||||
|
|
||||||
// Info for OS kernel to set the brk()
|
// Info for OS kernel to set the brk()
|
||||||
if (brka) {
|
if (brka) {
|
||||||
#define PAGE_MASK (~0u<<12)
|
|
||||||
// linux-2.6.14 binfmt_elf.c: SIGKILL if (0==.p_memsz) on a page boundary
|
// linux-2.6.14 binfmt_elf.c: SIGKILL if (0==.p_memsz) on a page boundary
|
||||||
unsigned const brkb = brka | ((0==(~PAGE_MASK & brka)) ? 0x20 : 0);
|
unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0);
|
||||||
set_native32(&h2->phdr[1].p_type, PT_LOAD32); // be sure
|
set_native32(&h2->phdr[1].p_type, PT_LOAD32); // be sure
|
||||||
set_native32(&h2->phdr[1].p_offset, ~PAGE_MASK & brkb);
|
set_native32(&h2->phdr[1].p_offset, ~page_mask & brkb);
|
||||||
set_native32(&h2->phdr[1].p_vaddr, brkb);
|
set_native32(&h2->phdr[1].p_vaddr, brkb);
|
||||||
set_native32(&h2->phdr[1].p_paddr, brkb);
|
set_native32(&h2->phdr[1].p_paddr, brkb);
|
||||||
h2->phdr[1].p_filesz = 0;
|
h2->phdr[1].p_filesz = 0;
|
||||||
h2->phdr[1].p_memsz = 0;
|
h2->phdr[1].p_memsz = 0;
|
||||||
set_native32(&h2->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
|
set_native32(&h2->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
|
||||||
#undef PAGE_MASK
|
|
||||||
}
|
}
|
||||||
if (ph.format==getFormat()) {
|
if (ph.format==getFormat()) {
|
||||||
assert(2==get_native16(&h2->ehdr.e_phnum));
|
assert(2==get_native16(&h2->ehdr.e_phnum));
|
||||||
|
@ -1057,16 +1096,14 @@ PackOpenBSDElf32x86::generateElfHdr(
|
||||||
set_native32(&h3->phdr[0].p_filesz, sizeof(*h3)+sizeof(elfnote)); // + identsize;
|
set_native32(&h3->phdr[0].p_filesz, sizeof(*h3)+sizeof(elfnote)); // + identsize;
|
||||||
h3->phdr[0].p_memsz = h3->phdr[0].p_filesz;
|
h3->phdr[0].p_memsz = h3->phdr[0].p_filesz;
|
||||||
|
|
||||||
#define PAGE_MASK (~0u<<12)
|
unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0);
|
||||||
unsigned const brkb = brka | ((0==(~PAGE_MASK & brka)) ? 0x20 : 0);
|
|
||||||
set_native32(&h3->phdr[1].p_type, PT_LOAD32); // be sure
|
set_native32(&h3->phdr[1].p_type, PT_LOAD32); // be sure
|
||||||
set_native32(&h3->phdr[1].p_offset, ~PAGE_MASK & brkb);
|
set_native32(&h3->phdr[1].p_offset, ~page_mask & brkb);
|
||||||
set_native32(&h3->phdr[1].p_vaddr, brkb);
|
set_native32(&h3->phdr[1].p_vaddr, brkb);
|
||||||
set_native32(&h3->phdr[1].p_paddr, brkb);
|
set_native32(&h3->phdr[1].p_paddr, brkb);
|
||||||
h3->phdr[1].p_filesz = 0;
|
h3->phdr[1].p_filesz = 0;
|
||||||
h3->phdr[1].p_memsz = 0;
|
h3->phdr[1].p_memsz = 0;
|
||||||
set_native32(&h3->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
|
set_native32(&h3->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W);
|
||||||
#undef PAGE_MASK
|
|
||||||
|
|
||||||
set_native32(&h3->phdr[2].p_type, Elf32_Phdr::PT_NOTE);
|
set_native32(&h3->phdr[2].p_type, Elf32_Phdr::PT_NOTE);
|
||||||
set_native32(&h3->phdr[2].p_offset, note_offset);
|
set_native32(&h3->phdr[2].p_offset, note_offset);
|
||||||
|
@ -1118,19 +1155,33 @@ PackLinuxElf64::generateElfHdr(
|
||||||
set_native64(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize;
|
set_native64(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize;
|
||||||
h2->phdr[0].p_memsz = h2->phdr[0].p_filesz;
|
h2->phdr[0].p_memsz = h2->phdr[0].p_filesz;
|
||||||
|
|
||||||
|
unsigned const e_phnum = get_native16(&ehdri.e_phnum);
|
||||||
|
Elf64_Phdr const *phdr = phdri;
|
||||||
|
for (unsigned j=0; j < e_phnum; ++phdr, ++j) {
|
||||||
|
if (phdr->PT_LOAD64 == get_native64(&phdr->p_type)) {
|
||||||
|
unsigned x = phdr->p_align >> lg2_page;
|
||||||
|
while (x>>=1) {
|
||||||
|
++lg2_page;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
page_size = 1u <<lg2_page;
|
||||||
|
page_mask = ~0ull<<lg2_page;
|
||||||
|
for (unsigned j=0; j < 3; ++j) {
|
||||||
|
set_native64(&h3->phdr[j].p_align, page_size);
|
||||||
|
}
|
||||||
|
|
||||||
// Info for OS kernel to set the brk()
|
// Info for OS kernel to set the brk()
|
||||||
if (brka) {
|
if (brka) {
|
||||||
#define PAGE_MASK (~0ul<<12)
|
|
||||||
// linux-2.6.14 binfmt_elf.c: SIGKILL if (0==.p_memsz) on a page boundary
|
// linux-2.6.14 binfmt_elf.c: SIGKILL if (0==.p_memsz) on a page boundary
|
||||||
unsigned const brkb = brka | ((0==(~PAGE_MASK & brka)) ? 0x20 : 0);
|
unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0);
|
||||||
set_native32(&h2->phdr[1].p_type, PT_LOAD32); // be sure
|
set_native32(&h2->phdr[1].p_type, PT_LOAD32); // be sure
|
||||||
set_native64(&h2->phdr[1].p_offset, ~PAGE_MASK & brkb);
|
set_native64(&h2->phdr[1].p_offset, ~page_mask & brkb);
|
||||||
set_native64(&h2->phdr[1].p_vaddr, brkb);
|
set_native64(&h2->phdr[1].p_vaddr, brkb);
|
||||||
set_native64(&h2->phdr[1].p_paddr, brkb);
|
set_native64(&h2->phdr[1].p_paddr, brkb);
|
||||||
h2->phdr[1].p_filesz = 0;
|
h2->phdr[1].p_filesz = 0;
|
||||||
h2->phdr[1].p_memsz = 0;
|
h2->phdr[1].p_memsz = 0;
|
||||||
set_native32(&h2->phdr[1].p_flags, Elf64_Phdr::PF_R | Elf64_Phdr::PF_W);
|
set_native32(&h2->phdr[1].p_flags, Elf64_Phdr::PF_R | Elf64_Phdr::PF_W);
|
||||||
#undef PAGE_MASK
|
|
||||||
}
|
}
|
||||||
if (ph.format==getFormat()) {
|
if (ph.format==getFormat()) {
|
||||||
assert(2==get_native16(&h2->ehdr.e_phnum));
|
assert(2==get_native16(&h2->ehdr.e_phnum));
|
||||||
|
@ -1187,6 +1238,14 @@ void PackLinuxElf32armBe::pack1(OutputFile *fo, Filter &ft)
|
||||||
generateElfHdr(fo, &h3, getbrk(phdri, get_native16(&ehdri.e_phnum)) );
|
generateElfHdr(fo, &h3, getbrk(phdri, get_native16(&ehdri.e_phnum)) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PackLinuxElf32mipsel::pack1(OutputFile *fo, Filter &ft)
|
||||||
|
{
|
||||||
|
super::pack1(fo, ft);
|
||||||
|
cprElfHdr3 h3;
|
||||||
|
memcpy(&h3, stub_mipsel_r3000_linux_elf_fold, sizeof(Elf32_Ehdr) + 2*sizeof(Elf32_Phdr));
|
||||||
|
generateElfHdr(fo, &h3, getbrk(phdri, get_native16(&ehdri.e_phnum)) );
|
||||||
|
}
|
||||||
|
|
||||||
void PackLinuxElf32ppc::pack1(OutputFile *fo, Filter &ft)
|
void PackLinuxElf32ppc::pack1(OutputFile *fo, Filter &ft)
|
||||||
{
|
{
|
||||||
super::pack1(fo, ft);
|
super::pack1(fo, ft);
|
||||||
|
@ -1443,12 +1502,17 @@ PackLinuxElf32armLe::getFilters() const
|
||||||
return ARM_getFilters(false);
|
return ARM_getFilters(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int *
|
||||||
|
PackLinuxElf32mipsel::getFilters() const
|
||||||
|
{
|
||||||
|
static const int f_none[] = { FT_END };
|
||||||
|
return f_none;
|
||||||
|
}
|
||||||
|
|
||||||
void PackLinuxElf32::ARM_defineSymbols(Filter const * /*ft*/)
|
void PackLinuxElf32::ARM_defineSymbols(Filter const * /*ft*/)
|
||||||
{
|
{
|
||||||
unsigned const hlen = sz_elf_hdrs + sizeof(l_info) + sizeof(p_info);
|
unsigned const hlen = sz_elf_hdrs + sizeof(l_info) + sizeof(p_info);
|
||||||
|
|
||||||
#define PAGE_MASK (~0u<<12)
|
|
||||||
#define PAGE_SIZE (-PAGE_MASK)
|
|
||||||
lsize = /*getLoaderSize()*/ 4 * 1024; // upper bound; avoid circularity
|
lsize = /*getLoaderSize()*/ 4 * 1024; // upper bound; avoid circularity
|
||||||
unsigned const lo_va_user = 0x8000; // XXX
|
unsigned const lo_va_user = 0x8000; // XXX
|
||||||
unsigned lo_va_stub = get_native32(&elfout.phdr[0].p_vaddr);
|
unsigned lo_va_stub = get_native32(&elfout.phdr[0].p_vaddr);
|
||||||
|
@ -1465,17 +1529,15 @@ void PackLinuxElf32::ARM_defineSymbols(Filter const * /*ft*/)
|
||||||
lo_va_stub = lo_va_user;
|
lo_va_stub = lo_va_user;
|
||||||
adrc = lo_va_stub;
|
adrc = lo_va_stub;
|
||||||
adrm = getbrk(phdri, get_native16(&ehdri.e_phnum));
|
adrm = getbrk(phdri, get_native16(&ehdri.e_phnum));
|
||||||
adrx = hlen + (PAGE_MASK & (~PAGE_MASK + adrm)); // round up to page boundary
|
adrx = hlen + (page_mask & (~page_mask + adrm)); // round up to page boundary
|
||||||
}
|
}
|
||||||
adrm = PAGE_MASK & (~PAGE_MASK + adrm); // round up to page boundary
|
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
|
||||||
adrc = PAGE_MASK & (~PAGE_MASK + adrc); // round up to page boundary
|
adrc = page_mask & (~page_mask + adrc); // round up to page boundary
|
||||||
|
|
||||||
linker->defineSymbol("CPR0", 4+ linker->getSymbolOffset("cpr0"));
|
linker->defineSymbol("CPR0", 4+ linker->getSymbolOffset("cpr0"));
|
||||||
linker->defineSymbol("LENF", 4+ linker->getSymbolOffset("end_decompress"));
|
linker->defineSymbol("LENF", 4+ linker->getSymbolOffset("end_decompress"));
|
||||||
|
|
||||||
linker->defineSymbol("ADRM", adrm); // addr for map
|
linker->defineSymbol("ADRM", adrm); // addr for map
|
||||||
#undef PAGE_SIZE
|
|
||||||
#undef PAGE_MASK
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PackLinuxElf32armLe::defineSymbols(Filter const *ft)
|
void PackLinuxElf32armLe::defineSymbols(Filter const *ft)
|
||||||
|
@ -1488,6 +1550,82 @@ void PackLinuxElf32armBe::defineSymbols(Filter const *ft)
|
||||||
ARM_defineSymbols(ft);
|
ARM_defineSymbols(ft);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PackLinuxElf32mipsel::defineSymbols(Filter const * /*ft*/)
|
||||||
|
{
|
||||||
|
unsigned const hlen = sz_elf_hdrs + sizeof(l_info) + sizeof(p_info);
|
||||||
|
|
||||||
|
// We want to know if compressed data, plus stub, plus a couple pages,
|
||||||
|
// will fit below the uncompressed program in memory. But we don't
|
||||||
|
// know the final total compressed size yet, so use the uncompressed
|
||||||
|
// size (total over all PT_LOAD32) as an upper bound.
|
||||||
|
unsigned len = 0;
|
||||||
|
unsigned lo_va_user = ~0u; // infinity
|
||||||
|
for (int j= get_native16(&ehdri.e_phnum); --j>=0; ) {
|
||||||
|
if (PT_LOAD32 == get_native32(&phdri[j].p_type)) {
|
||||||
|
len += (unsigned)get_native32(&phdri[j].p_filesz);
|
||||||
|
unsigned const va = get_native32(&phdri[j].p_vaddr);
|
||||||
|
if (va < lo_va_user) {
|
||||||
|
lo_va_user = va;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lsize = /*getLoaderSize()*/ 64 * 1024; // upper bound; avoid circularity
|
||||||
|
unsigned lo_va_stub = get_native64(&elfout.phdr[0].p_vaddr);
|
||||||
|
unsigned adrc;
|
||||||
|
unsigned adrm;
|
||||||
|
unsigned adru;
|
||||||
|
unsigned adrx;
|
||||||
|
unsigned cntc;
|
||||||
|
unsigned lenm;
|
||||||
|
unsigned lenu;
|
||||||
|
len += (7&-lsize) + lsize;
|
||||||
|
bool const is_big = (lo_va_user < (lo_va_stub + len + 2*page_size));
|
||||||
|
if (is_big) {
|
||||||
|
set_native32( &elfout.ehdr.e_entry,
|
||||||
|
get_native32(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
|
||||||
|
set_native32(&elfout.phdr[0].p_vaddr, lo_va_user);
|
||||||
|
set_native32(&elfout.phdr[0].p_paddr, lo_va_user);
|
||||||
|
lo_va_stub = lo_va_user;
|
||||||
|
adrc = lo_va_stub;
|
||||||
|
adrm = getbrk(phdri, get_native16(&ehdri.e_phnum));
|
||||||
|
adru = page_mask & (~page_mask + adrm); // round up to page boundary
|
||||||
|
adrx = adru + hlen;
|
||||||
|
lenm = page_size + len;
|
||||||
|
lenu = page_size + len;
|
||||||
|
cntc = len >> 3; // over-estimate; corrected at runtime
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
adrm = lo_va_stub + len;
|
||||||
|
adrc = adrm;
|
||||||
|
adru = lo_va_stub;
|
||||||
|
adrx = lo_va_stub + hlen;
|
||||||
|
lenm = page_size;
|
||||||
|
lenu = page_size + len;
|
||||||
|
cntc = 0;
|
||||||
|
}
|
||||||
|
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
|
||||||
|
adrc = page_mask & (~page_mask + adrc); // round up to page boundary
|
||||||
|
|
||||||
|
linker->defineSymbol("ADRX", adrx); // compressed input for eXpansion
|
||||||
|
linker->defineSymbol("LENX", 0x2345); // FIXME
|
||||||
|
|
||||||
|
// For actual moving, we need the true count, which depends on sz_pack2
|
||||||
|
// and is not yet known. So the runtime stub detects "no move"
|
||||||
|
// if adrm==adrc, and otherwise uses actual sz_pack2 to compute cntc.
|
||||||
|
//linker->defineSymbol("CNTC", cntc); // count for copy
|
||||||
|
|
||||||
|
linker->defineSymbol("LENU", lenu); // len for unmap
|
||||||
|
linker->defineSymbol("ADRC", adrc); // addr for copy
|
||||||
|
linker->defineSymbol("ADRU", adru); // addr for unmap
|
||||||
|
#define EI_NIDENT 16 /* <elf.h> */
|
||||||
|
linker->defineSymbol("JMPU", EI_NIDENT -4 + lo_va_user); // unmap trampoline
|
||||||
|
#undef EI_NIDENT
|
||||||
|
linker->defineSymbol("LENM", lenm); // len for map
|
||||||
|
linker->defineSymbol("ADRM", adrm); // addr for map
|
||||||
|
|
||||||
|
//linker->dumpSymbols(); // debug
|
||||||
|
}
|
||||||
|
|
||||||
void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)
|
void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)
|
||||||
{
|
{
|
||||||
overlay_offset = sz_elf_hdrs + sizeof(linfo);
|
overlay_offset = sz_elf_hdrs + sizeof(linfo);
|
||||||
|
@ -1502,10 +1640,8 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)
|
||||||
// tries to make .bss, which requires PF_W.
|
// tries to make .bss, which requires PF_W.
|
||||||
// But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X.
|
// But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X.
|
||||||
#if 0 /*{*/
|
#if 0 /*{*/
|
||||||
#define PAGE_MASK (~0u<<12)
|
|
||||||
// pre-calculate for benefit of runtime disappearing act via munmap()
|
// pre-calculate for benefit of runtime disappearing act via munmap()
|
||||||
set_native32(&elfout.phdr[0].p_memsz, PAGE_MASK & (~PAGE_MASK + len));
|
set_native32(&elfout.phdr[0].p_memsz, page_mask & (~page_mask + len));
|
||||||
#undef PAGE_MASK
|
|
||||||
#else /*}{*/
|
#else /*}{*/
|
||||||
set_native32(&elfout.phdr[0].p_memsz, len);
|
set_native32(&elfout.phdr[0].p_memsz, len);
|
||||||
#endif /*}*/
|
#endif /*}*/
|
||||||
|
@ -1552,10 +1688,8 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft)
|
||||||
// tries to make .bss, which requires PF_W.
|
// tries to make .bss, which requires PF_W.
|
||||||
// But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X.
|
// But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X.
|
||||||
#if 0 /*{*/
|
#if 0 /*{*/
|
||||||
#define PAGE_MASK (~0u<<12)
|
|
||||||
// pre-calculate for benefit of runtime disappearing act via munmap()
|
// pre-calculate for benefit of runtime disappearing act via munmap()
|
||||||
set_native64(&elfout.phdr[0].p_memsz, PAGE_MASK & (~PAGE_MASK + len));
|
set_native64(&elfout.phdr[0].p_memsz, page_mask & (~page_mask + len));
|
||||||
#undef PAGE_MASK
|
|
||||||
#else /*}{*/
|
#else /*}{*/
|
||||||
set_native64(&elfout.phdr[0].p_memsz, len);
|
set_native64(&elfout.phdr[0].p_memsz, len);
|
||||||
#endif /*}*/
|
#endif /*}*/
|
||||||
|
@ -1873,11 +2007,28 @@ PackLinuxElf32armLe::~PackLinuxElf32armLe()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PackLinuxElf32mipsel::PackLinuxElf32mipsel(InputFile *f) : super(f)
|
||||||
|
{
|
||||||
|
e_machine = Elf32_Ehdr::EM_MIPS;
|
||||||
|
ei_class = Elf32_Ehdr::ELFCLASS32;
|
||||||
|
ei_data = Elf32_Ehdr::ELFDATA2LSB;
|
||||||
|
ei_osabi = Elf32_Ehdr::ELFOSABI_LINUX;
|
||||||
|
}
|
||||||
|
|
||||||
|
PackLinuxElf32mipsel::~PackLinuxElf32mipsel()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
Linker* PackLinuxElf32armLe::newLinker() const
|
Linker* PackLinuxElf32armLe::newLinker() const
|
||||||
{
|
{
|
||||||
return new ElfLinkerArmLE();
|
return new ElfLinkerArmLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Linker* PackLinuxElf32mipsel::newLinker() const
|
||||||
|
{
|
||||||
|
return new ElfLinkerMipsLE();
|
||||||
|
}
|
||||||
|
|
||||||
PackLinuxElf32armBe::PackLinuxElf32armBe(InputFile *f) : super(f)
|
PackLinuxElf32armBe::PackLinuxElf32armBe(InputFile *f) : super(f)
|
||||||
{
|
{
|
||||||
e_machine = Elf32_Ehdr::EM_ARM;
|
e_machine = Elf32_Ehdr::EM_ARM;
|
||||||
|
|
|
@ -70,6 +70,8 @@ protected:
|
||||||
unsigned sz_phdrs; // sizeof Phdr[]
|
unsigned sz_phdrs; // sizeof Phdr[]
|
||||||
unsigned sz_elf_hdrs; // all Elf headers
|
unsigned sz_elf_hdrs; // all Elf headers
|
||||||
unsigned sz_pack2; // after pack2(), before loader
|
unsigned sz_pack2; // after pack2(), before loader
|
||||||
|
unsigned lg2_page; // log2(PAGE_SIZE)
|
||||||
|
unsigned page_size; // 1u<<lg2_page
|
||||||
|
|
||||||
unsigned short e_machine;
|
unsigned short e_machine;
|
||||||
unsigned char ei_class;
|
unsigned char ei_class;
|
||||||
|
@ -126,6 +128,7 @@ protected:
|
||||||
protected:
|
protected:
|
||||||
Elf32_Ehdr ehdri; // from input file
|
Elf32_Ehdr ehdri; // from input file
|
||||||
Elf32_Phdr *phdri; // for input file
|
Elf32_Phdr *phdri; // for input file
|
||||||
|
unsigned page_mask; // AND clears the offset-within-page
|
||||||
|
|
||||||
Elf32_Dyn const *dynseg; // from PT_DYNAMIC
|
Elf32_Dyn const *dynseg; // from PT_DYNAMIC
|
||||||
unsigned int const *hashtab; // from DT_HASH
|
unsigned int const *hashtab; // from DT_HASH
|
||||||
|
@ -211,6 +214,7 @@ protected:
|
||||||
protected:
|
protected:
|
||||||
Elf64_Ehdr ehdri; // from input file
|
Elf64_Ehdr ehdri; // from input file
|
||||||
Elf64_Phdr *phdri; // for input file
|
Elf64_Phdr *phdri; // for input file
|
||||||
|
acc_uint64l_t page_mask; // AND clears the offset-within-page
|
||||||
|
|
||||||
struct cprElfHdr1 {
|
struct cprElfHdr1 {
|
||||||
Elf64_Ehdr ehdr;
|
Elf64_Ehdr ehdr;
|
||||||
|
@ -450,6 +454,26 @@ protected:
|
||||||
virtual void defineSymbols(Filter const *);
|
virtual void defineSymbols(Filter const *);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class PackLinuxElf32mipsel : public PackLinuxElf32Le
|
||||||
|
{
|
||||||
|
typedef PackLinuxElf32Le super;
|
||||||
|
public:
|
||||||
|
PackLinuxElf32mipsel(InputFile *f);
|
||||||
|
virtual ~PackLinuxElf32mipsel();
|
||||||
|
virtual int getFormat() const { return UPX_F_LINUX_ELF32_MIPSEL; }
|
||||||
|
virtual const char *getName() const { return "linux/mipsel"; }
|
||||||
|
virtual const char *getFullName(const options_t *) const { return "mipsel-linux.elf"; }
|
||||||
|
virtual const int *getFilters() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual const int *getCompressionMethods(int method, int level) const;
|
||||||
|
virtual Linker* newLinker() const;
|
||||||
|
virtual void pack1(OutputFile *, Filter &); // generate executable header
|
||||||
|
virtual void buildLoader(const Filter *);
|
||||||
|
virtual void updateLoader(OutputFile *);
|
||||||
|
virtual void defineSymbols(Filter const *);
|
||||||
|
};
|
||||||
|
|
||||||
#endif /*} already included */
|
#endif /*} already included */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -337,9 +337,11 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
|
||||||
f_len = shdr->sh_size;
|
f_len = shdr->sh_size;
|
||||||
++shdr;
|
++shdr;
|
||||||
for (int j= -2+ ehdri.e_shnum; --j>=0; ++shdr) {
|
for (int j= -2+ ehdri.e_shnum; --j>=0; ++shdr) {
|
||||||
|
unsigned prev_end = shdr[-1].sh_size + shdr[-1].sh_offset;
|
||||||
|
prev_end += ~(-shdr[0].sh_addralign) & -prev_end; // align_up
|
||||||
if ((Shdr::SHF_ALLOC & shdr->sh_flags)
|
if ((Shdr::SHF_ALLOC & shdr->sh_flags)
|
||||||
&& (Shdr::SHF_EXECINSTR & shdr->sh_flags)
|
&& (Shdr::SHF_EXECINSTR & shdr->sh_flags)
|
||||||
&& shdr[0].sh_offset==(shdr[-1].sh_size + shdr[-1].sh_offset)) {
|
&& shdr[0].sh_offset==prev_end) {
|
||||||
f_len += shdr->sh_size;
|
f_len += shdr->sh_size;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -347,7 +349,7 @@ void PackVmlinuxBase<T>::pack(OutputFile *fo)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { // ft.buf_len already specified, or shdr[1] not instructions
|
else { // ft.buf_len already specified, or Shdr[1] not instructions
|
||||||
f_ptr = ibuf;
|
f_ptr = ibuf;
|
||||||
f_len = ph.u_len;
|
f_len = ph.u_len;
|
||||||
}
|
}
|
||||||
|
|
|
@ -243,6 +243,8 @@ Packer* PackMaster::visitAllPackers(visit_func_t func, InputFile *f, const optio
|
||||||
return p;
|
return p;
|
||||||
if ((p = func(new PackLinuxElf32ppc(f), user)) != NULL)
|
if ((p = func(new PackLinuxElf32ppc(f), user)) != NULL)
|
||||||
return p;
|
return p;
|
||||||
|
if ((p = func(new PackLinuxElf32mipsel(f), user)) != NULL)
|
||||||
|
return p;
|
||||||
if ((p = func(new PackLinuxI386sh(f), user)) != NULL)
|
if ((p = func(new PackLinuxI386sh(f), user)) != NULL)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,6 +88,8 @@ STUBS += i386-linux.kernel.vmlinuz.h
|
||||||
STUBS += i386-win32.pe.h
|
STUBS += i386-win32.pe.h
|
||||||
STUBS += m68k-atari.tos.h
|
STUBS += m68k-atari.tos.h
|
||||||
STUBS += mipsel.r3000-ps1.h
|
STUBS += mipsel.r3000-ps1.h
|
||||||
|
STUBS += mipsel.r3000-linux.elf-entry.h
|
||||||
|
STUBS += mipsel.r3000-linux.elf-fold.h
|
||||||
STUBS += powerpc-darwin.macho-entry.h
|
STUBS += powerpc-darwin.macho-entry.h
|
||||||
STUBS += powerpc-darwin.macho-fold.h
|
STUBS += powerpc-darwin.macho-fold.h
|
||||||
STUBS += powerpc-linux.elf-entry.h
|
STUBS += powerpc-linux.elf-entry.h
|
||||||
|
@ -825,6 +827,42 @@ endif
|
||||||
$(call tc,bin2h-c) tmp/$T.bin $@
|
$(call tc,bin2h-c) tmp/$T.bin $@
|
||||||
|
|
||||||
|
|
||||||
|
# /***********************************************************************
|
||||||
|
# // mipsel.r3000-linux.elf
|
||||||
|
# ************************************************************************/
|
||||||
|
|
||||||
|
mipsel.r3000-linux.elf%.h : tc_list = mipsel.r3000-ps1 default
|
||||||
|
mipsel.r3000-linux.elf%.h : tc_bfdname = elf32-littlemips
|
||||||
|
|
||||||
|
mipsel.r3000-linux.elf-entry.h : $(srcdir)/src/$$T.S
|
||||||
|
ifeq (1,1)
|
||||||
|
# info: we really need as-2.17 here
|
||||||
|
$(call tc,pp-as) -DPS1 $< -o - | $(RTRIM) > tmp/$T.i
|
||||||
|
$(call tc,as) tmp/$T.i -o tmp/$T.bin
|
||||||
|
$(call tc,gpp_mkdep) --mode=c --MMD=$@ $< --MF=tmp/$T.d
|
||||||
|
else
|
||||||
|
# info: as-2.16.1 as used by gcc-4.1.1 does _not_ work
|
||||||
|
$(call tc,gcc) -c -DPS1 -Wa,-O,-mno-pdr $< -o tmp/$T.bin
|
||||||
|
endif
|
||||||
|
$(call tc,f-embed_objinfo,tmp/$T.bin)
|
||||||
|
$(call tc,bin2h-c) tmp/$T.bin $@
|
||||||
|
|
||||||
|
mipsel.r3000-linux.elf-fold.h : tmp/$$T.o tmp/mipsel.r3000-linux.elf-main.o $(srcdir)/src/$$T.lds
|
||||||
|
$(call tc,ld) --strip-all -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
|
||||||
|
$(call tc,f-objstrip,tmp/$T.bin)
|
||||||
|
$(call tc,sstrip) tmp/$T.bin
|
||||||
|
$(call tc,bin2h) tmp/$T.bin $@
|
||||||
|
|
||||||
|
tmp/mipsel.r3000-linux.elf-fold.o : $(srcdir)/src/$$T.S
|
||||||
|
$(call tc,gcc) -c $< -o $@
|
||||||
|
$(call tc,f-objstrip,$@)
|
||||||
|
|
||||||
|
tmp/mipsel.r3000-linux.elf-main.o : $(srcdir)/src/$$T.c
|
||||||
|
$(call tc,gcc) -c -Os $< -o $@
|
||||||
|
$(call tc,f-objstrip,$@)
|
||||||
|
$(call tc,objdump) -dr $(tc_objdump_disasm_options) $@ | $(RTRIM) > $@.disasm
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // powerpc-darwin.macho
|
# // powerpc-darwin.macho
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
|
|
675
src/stub/mipsel.r3000-linux.elf-entry.h
Normal file
675
src/stub/mipsel.r3000-linux.elf-entry.h
Normal file
|
@ -0,0 +1,675 @@
|
||||||
|
/* mipsel.r3000-linux.elf-entry.h
|
||||||
|
created from mipsel.r3000-linux.elf-entry.bin, 10216 (0x27e8) bytes
|
||||||
|
|
||||||
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
|
Copyright (C) 1996-2007 Markus Franz Xaver Johannes Oberhumer
|
||||||
|
Copyright (C) 1996-2007 Laszlo Molnar
|
||||||
|
Copyright (C) 2000-2007 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
|
||||||
|
<mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10216
|
||||||
|
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0x3e427e50
|
||||||
|
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0xc169b462
|
||||||
|
|
||||||
|
unsigned char stub_mipsel_r3000_linux_elf_entry[10216] = {
|
||||||
|
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
|
||||||
|
1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */
|
||||||
|
232, 29, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */
|
||||||
|
20, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 40 */
|
||||||
|
0, 0, 0, 0, 44, 0, 17, 4, 0, 0,247, 39, 0,128, 13, 60, /* 0x 50 */
|
||||||
|
33, 72,160, 1, 1, 0, 11, 36,194,119, 9, 0, 7, 0,169, 21, /* 0x 60 */
|
||||||
|
64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 70 */
|
||||||
|
194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 1, 0, 15, 36, /* 0x 80 */
|
||||||
|
5, 0,192, 17, 0, 0,174,144, 1, 0,165, 36, 0, 0, 14,161, /* 0x 90 */
|
||||||
|
241,255, 0, 16, 1, 0, 8, 37,194,119, 9, 0, 7, 0,169, 21, /* 0x a0 */
|
||||||
|
64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x b0 */
|
||||||
|
194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 64,120, 15, 0, /* 0x c0 */
|
||||||
|
33,120,238, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x d0 */
|
||||||
|
0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x e0 */
|
||||||
|
64, 72, 9, 0, 1, 0, 41, 37, 13, 0,192, 21,254,255,238, 37, /* 0x f0 */
|
||||||
|
33,120,238, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 100 */
|
||||||
|
0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 110 */
|
||||||
|
64, 72, 9, 0, 1, 0, 41, 37,223,255, 0, 16, 33,120,238, 1, /* 0x 120 */
|
||||||
|
13, 0,192, 21,253,255,239, 37,194,119, 9, 0, 7, 0,169, 21, /* 0x 130 */
|
||||||
|
64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 140 */
|
||||||
|
194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 33,120, 96, 1, /* 0x 150 */
|
||||||
|
11, 0, 0, 16, 1, 0,204, 49, 0, 0,174,144, 0,122, 15, 0, /* 0x 160 */
|
||||||
|
33,120,238, 1, 1, 0,238, 37,255,255,192, 17, 1, 0,165, 36, /* 0x 170 */
|
||||||
|
66,120, 15, 0, 1, 0,239, 37, 33, 88,224, 1, 1, 0,204, 49, /* 0x 180 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 190 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 1a0 */
|
||||||
|
1, 0, 41, 37, 35, 0,128, 21,254,255,204, 37, 12, 0,192, 17, /* 0x 1b0 */
|
||||||
|
1, 0, 12, 36,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 1c0 */
|
||||||
|
0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 1d0 */
|
||||||
|
64, 72, 9, 0, 1, 0, 41, 37, 22, 0, 0, 16, 33, 96,192, 1, /* 0x 1e0 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 1f0 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 200 */
|
||||||
|
1, 0, 41, 37, 64, 96, 12, 0, 33, 96,142, 1,194,119, 9, 0, /* 0x 210 */
|
||||||
|
7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 220 */
|
||||||
|
4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 230 */
|
||||||
|
235,255,192, 17, 1, 5,238, 45, 5, 0,140, 37, 35, 96,142, 1, /* 0x 240 */
|
||||||
|
35,120, 15, 1, 0, 0,238,145,255,255,140, 37, 1, 0,239, 37, /* 0x 250 */
|
||||||
|
1, 0, 8, 37,251,255,128, 21,255,255, 14,161,127,255, 0, 16, /* 0x 260 */
|
||||||
|
194,119, 9, 0, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36, /* 0x 270 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 280 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 290 */
|
||||||
|
1, 0, 41, 37, 1, 0, 15, 36, 5, 0,192, 17, 0, 0,174,144, /* 0x 2a0 */
|
||||||
|
1, 0,165, 36, 0, 0, 14,161,241,255, 0, 16, 1, 0, 8, 37, /* 0x 2b0 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 2c0 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 2d0 */
|
||||||
|
1, 0, 41, 37, 64,120, 15, 0, 33,120,238, 1,194,119, 9, 0, /* 0x 2e0 */
|
||||||
|
7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 2f0 */
|
||||||
|
4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 300 */
|
||||||
|
13, 0,192, 21,254,255,238, 37, 33,120,207, 1,194,119, 9, 0, /* 0x 310 */
|
||||||
|
7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 320 */
|
||||||
|
4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 330 */
|
||||||
|
223,255, 0, 16, 33,120,238, 1, 13, 0,192, 21,253,255,239, 37, /* 0x 340 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 350 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 360 */
|
||||||
|
1, 0, 41, 37, 33,120, 96, 1, 11, 0, 0, 16, 1, 0,204, 49, /* 0x 370 */
|
||||||
|
0, 0,174,144, 0,122, 15, 0, 33,120,238, 1, 1, 0,238, 37, /* 0x 380 */
|
||||||
|
255,255,192, 17, 1, 0,165, 36, 66,120, 15, 0, 1, 0,239, 37, /* 0x 390 */
|
||||||
|
33, 88,224, 1, 1, 0,204, 49,194,119, 9, 0, 7, 0,169, 21, /* 0x 3a0 */
|
||||||
|
64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, 4, 0,165, 36, /* 0x 3b0 */
|
||||||
|
194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, 64, 96, 12, 0, /* 0x 3c0 */
|
||||||
|
33, 96,142, 1, 23, 0,128, 21,254,255,140, 37, 1, 0, 12, 36, /* 0x 3d0 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 3e0 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 3f0 */
|
||||||
|
1, 0, 41, 37, 64, 96, 12, 0, 33, 96,142, 1,194,119, 9, 0, /* 0x 400 */
|
||||||
|
7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 410 */
|
||||||
|
4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 420 */
|
||||||
|
235,255,192, 17, 1, 5,238, 45, 4, 0,140, 37, 35, 96,142, 1, /* 0x 430 */
|
||||||
|
35,120, 15, 1, 0, 0,238,145,255,255,140, 37, 1, 0,239, 37, /* 0x 440 */
|
||||||
|
1, 0, 8, 37,251,255,128, 21,255,255, 14,161,137,255, 0, 16, /* 0x 450 */
|
||||||
|
194,119, 9, 0, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36, /* 0x 460 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 470 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 480 */
|
||||||
|
1, 0, 41, 37, 1, 0, 15, 36, 5, 0,192, 17, 0, 0,174,144, /* 0x 490 */
|
||||||
|
1, 0,165, 36, 0, 0, 14,161,241,255, 0, 16, 1, 0, 8, 37, /* 0x 4a0 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 4b0 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 4c0 */
|
||||||
|
1, 0, 41, 37, 64,120, 15, 0, 33,120,238, 1,194,119, 9, 0, /* 0x 4d0 */
|
||||||
|
7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 4e0 */
|
||||||
|
4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 4f0 */
|
||||||
|
235,255,192, 17, 2, 0, 14, 36, 3, 0,238, 21,253,255,239, 37, /* 0x 500 */
|
||||||
|
8, 0, 0, 16, 33,120, 96, 1, 0, 0,174,144, 0,122, 15, 0, /* 0x 510 */
|
||||||
|
33,120,238, 1, 1, 0,239, 37,255,255,224, 17, 1, 0,165, 36, /* 0x 520 */
|
||||||
|
33, 88,224, 1,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 530 */
|
||||||
|
0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 540 */
|
||||||
|
64, 72, 9, 0, 1, 0, 41, 37, 33, 96,192, 1,194,119, 9, 0, /* 0x 550 */
|
||||||
|
7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, 3, 0,169,136, /* 0x 560 */
|
||||||
|
4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, 1, 0, 41, 37, /* 0x 570 */
|
||||||
|
64, 96, 12, 0, 33, 96,142, 1, 23, 0,128, 21,254,255,140, 37, /* 0x 580 */
|
||||||
|
1, 0, 12, 36,194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, /* 0x 590 */
|
||||||
|
0, 0,169,152, 3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, /* 0x 5a0 */
|
||||||
|
64, 72, 9, 0, 1, 0, 41, 37, 64, 96, 12, 0, 33, 96,142, 1, /* 0x 5b0 */
|
||||||
|
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,169,152, /* 0x 5c0 */
|
||||||
|
3, 0,169,136, 4, 0,165, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 5d0 */
|
||||||
|
1, 0, 41, 37,235,255,192, 17, 1, 13,238, 45, 4, 0,140, 37, /* 0x 5e0 */
|
||||||
|
35, 96,142, 1, 35,120, 15, 1, 0, 0,238,145,255,255,140, 37, /* 0x 5f0 */
|
||||||
|
1, 0,239, 37, 1, 0, 8, 37,251,255,128, 21,255,255, 14,161, /* 0x 600 */
|
||||||
|
152,255, 0, 16,194,119, 9, 0, 0, 0,136,144, 1, 0,137,144, /* 0x 610 */
|
||||||
|
7, 0, 2, 49,194, 64, 8, 0, 0,250, 1, 36, 4, 8, 1, 1, /* 0x 620 */
|
||||||
|
96,241, 33, 36, 33,232,161, 3, 44, 0,161,175, 32, 0,161, 39, /* 0x 630 */
|
||||||
|
24, 0,161,175, 20, 0,167,175, 16, 0,166,175, 28, 0,167, 39, /* 0x 640 */
|
||||||
|
33, 48,160, 0, 2, 0,133, 36, 48, 0,164, 39, 2, 0,130,160, /* 0x 650 */
|
||||||
|
15, 0, 33, 49, 0, 0,129,160, 2, 73, 9, 0, 1, 0,137,160, /* 0x 660 */
|
||||||
|
9,248,224, 2, 44, 0,161,143, 40, 0,166,143, 32, 0,167,143, /* 0x 670 */
|
||||||
|
35,232,161, 3,200,255,189, 39, 52, 0,183,175, 48, 0,182,175, /* 0x 680 */
|
||||||
|
44, 0,181,175, 40, 0,180,175, 36, 0,179,175, 32, 0,178,175, /* 0x 690 */
|
||||||
|
28, 0,177,175, 24, 0,176,175, 33,168,160, 0, 12, 0,167,175, /* 0x 6a0 */
|
||||||
|
33,152, 0, 1, 16, 0,169,175, 20, 0,170,175, 4, 0,144, 36, /* 0x 6b0 */
|
||||||
|
2, 0,130,144, 1, 0, 3, 36, 4, 16, 67, 0,255,255, 66, 36, /* 0x 6c0 */
|
||||||
|
8, 0,162,175, 1, 0,130,144, 0, 0, 0, 0, 4, 16, 67, 0, /* 0x 6d0 */
|
||||||
|
255,255, 66, 36, 4, 0,162,175, 0, 0,150,144, 0, 0,224,172, /* 0x 6e0 */
|
||||||
|
0, 0, 64,173, 1, 0,132,144, 0, 0, 0, 0, 33, 32,196, 2, /* 0x 6f0 */
|
||||||
|
0, 3, 2, 36, 4, 32,130, 0, 54, 7,132, 36, 33, 16, 0, 2, /* 0x 700 */
|
||||||
|
4, 0, 0, 16, 33, 88, 0, 0, 0, 4, 3, 36,254,255, 67,164, /* 0x 710 */
|
||||||
|
1, 0,107, 37,252,255,100, 21, 2, 0, 66, 36, 33, 56,166, 2, /* 0x 720 */
|
||||||
|
33,104,160, 2, 33,192, 0, 0, 33, 32, 0, 0, 35, 16,245, 0, /* 0x 730 */
|
||||||
|
123, 2,130, 16, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x 740 */
|
||||||
|
37,192, 98, 0, 1, 0,132, 36, 5, 0, 2, 36,247,255,130, 20, /* 0x 750 */
|
||||||
|
1, 0,173, 37, 33, 80, 0, 0, 33,112, 0, 0, 33,144, 0, 0, /* 0x 760 */
|
||||||
|
1, 0, 17, 36, 1, 0, 20, 36, 1, 0, 23, 36, 0, 0,183,175, /* 0x 770 */
|
||||||
|
87, 2, 0, 16,255,255, 15, 36,255,255, 70, 52, 43, 16,207, 0, /* 0x 780 */
|
||||||
|
8, 0, 64, 20, 0, 0, 0, 0,101, 2,167, 17, 0,122, 15, 0, /* 0x 790 */
|
||||||
|
0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, /* 0x 7a0 */
|
||||||
|
1, 0,173, 37, 8, 0,163,143, 0, 0, 0, 0, 36, 40, 67, 1, /* 0x 7b0 */
|
||||||
|
0,201, 18, 0, 33, 16,185, 0, 64, 16, 2, 0, 33, 88, 2, 2, /* 0x 7c0 */
|
||||||
|
0, 0, 99,149,194, 18, 15, 0, 24, 0, 67, 0, 18, 96, 0, 0, /* 0x 7d0 */
|
||||||
|
43, 16, 12, 3,125, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, /* 0x 7e0 */
|
||||||
|
67, 17, 2, 0, 33, 16, 98, 0, 0, 0, 98,165, 4, 0,163,143, /* 0x 7f0 */
|
||||||
|
0, 0, 0, 0, 36, 16, 67, 1, 4, 24,194, 2, 8, 0, 2, 36, /* 0x 800 */
|
||||||
|
35, 16, 86, 0, 7, 16, 78, 0, 33, 16, 98, 0, 64, 26, 2, 0, /* 0x 810 */
|
||||||
|
192, 18, 2, 0, 35, 16, 67, 0, 33, 16, 2, 2,108, 14, 70, 36, /* 0x 820 */
|
||||||
|
7, 0, 66, 42, 3, 0, 64, 16, 33,120,128, 1, 85, 0, 0, 16, /* 0x 830 */
|
||||||
|
1, 0, 5, 36, 35, 16, 81, 1, 33, 16, 98, 2, 0, 0, 89,144, /* 0x 840 */
|
||||||
|
1, 0, 5, 36,255, 0, 2, 60,255,255, 66, 52, 43, 16, 79, 0, /* 0x 850 */
|
||||||
|
8, 0, 64, 20, 0, 0, 0, 0, 49, 2,167, 17, 0,122, 15, 0, /* 0x 860 */
|
||||||
|
0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, /* 0x 870 */
|
||||||
|
1, 0,173, 37, 64,200, 25, 0, 0, 1, 44, 51, 64, 16, 12, 0, /* 0x 880 */
|
||||||
|
33, 16,194, 0, 64,112, 5, 0, 33, 88, 78, 0, 0, 2, 99,149, /* 0x 890 */
|
||||||
|
194, 18, 15, 0, 24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, /* 0x 8a0 */
|
||||||
|
9, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, /* 0x 8b0 */
|
||||||
|
33, 16, 98, 0, 0, 2, 98,165, 41, 0,128, 21, 33, 40,192, 1, /* 0x 8c0 */
|
||||||
|
9, 0, 0, 16, 33,120,128, 0, 35,120,228, 1, 35,192, 4, 3, /* 0x 8d0 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0, 0, 2, 98,165, 1, 0,162, 36, /* 0x 8e0 */
|
||||||
|
40, 0,128, 17, 33, 40,162, 0, 0, 1,162, 40, 37, 0, 64, 16, /* 0x 8f0 */
|
||||||
|
255, 0, 2, 60,213,255, 0, 16,255,255, 66, 52,255,255, 66, 52, /* 0x 900 */
|
||||||
|
43, 16, 79, 0, 9, 0, 64, 20, 64, 96, 5, 0, 4, 2,167, 17, /* 0x 910 */
|
||||||
|
0,122, 15, 0, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x 920 */
|
||||||
|
37,192, 98, 0, 1, 0,173, 37, 64, 96, 5, 0, 33, 88,204, 0, /* 0x 930 */
|
||||||
|
0, 0, 99,149,194, 18, 15, 0, 24, 0, 67, 0, 18, 32, 0, 0, /* 0x 940 */
|
||||||
|
43, 16, 4, 3, 8, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, /* 0x 950 */
|
||||||
|
67, 17, 2, 0, 33, 16, 98, 0, 0, 0, 98,165, 33, 40,128, 1, /* 0x 960 */
|
||||||
|
8, 0, 0, 16, 33,120,128, 0, 35,120,228, 1, 35,192, 4, 3, /* 0x 970 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0, 0, 0, 98,165, 1, 0,162, 36, /* 0x 980 */
|
||||||
|
33, 40,162, 0, 0, 1,162, 40,220,255, 64, 20,255, 0, 2, 60, /* 0x 990 */
|
||||||
|
255, 0,174, 48, 33, 16,106, 2, 0, 0, 78,160, 4, 0, 66, 42, /* 0x 9a0 */
|
||||||
|
3, 0, 64, 16, 1, 0, 67, 37,200, 1, 0, 16, 33,144, 0, 0, /* 0x 9b0 */
|
||||||
|
10, 0, 66, 42, 3, 0, 64, 16, 0, 0, 0, 0,195, 1, 0, 16, /* 0x 9c0 */
|
||||||
|
253,255, 82, 38,193, 1, 0, 16,250,255, 82, 38, 35, 32,236, 1, /* 0x 9d0 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0, 0, 0, 98,165, 43, 16,196, 0, /* 0x 9e0 */
|
||||||
|
8, 0, 64, 20, 35,192, 12, 3,205, 1,167, 17, 0, 34, 4, 0, /* 0x 9f0 */
|
||||||
|
0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, /* 0x a00 */
|
||||||
|
1, 0,173, 37, 64, 16, 18, 0, 33,112, 2, 2,128, 1,195,149, /* 0x a10 */
|
||||||
|
194, 18, 4, 0, 24, 0, 67, 0, 18, 96, 0, 0, 43, 16, 12, 3, /* 0x a20 */
|
||||||
|
15, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, /* 0x a30 */
|
||||||
|
33, 16, 98, 0,128, 1,194,165, 7, 0, 66, 42, 2, 0, 64, 20, /* 0x a40 */
|
||||||
|
33,144, 0, 0, 3, 0, 18, 36,100, 6, 14, 38, 0, 0,183,175, /* 0x a50 */
|
||||||
|
33,184,128, 2, 33,160, 32, 2,144, 0, 0, 16, 33, 88,128, 1, /* 0x a60 */
|
||||||
|
35, 88,140, 0, 66, 17, 3, 0, 35, 16, 98, 0,128, 1,194,165, /* 0x a70 */
|
||||||
|
43, 16,203, 0, 8, 0, 64, 20, 35,192, 12, 3,168, 1,167, 17, /* 0x a80 */
|
||||||
|
0, 90, 11, 0, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x a90 */
|
||||||
|
37,192, 98, 0, 1, 0,173, 37,152, 1,195,149,194, 18, 11, 0, /* 0x aa0 */
|
||||||
|
24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, 50, 0, 64, 16, /* 0x ab0 */
|
||||||
|
0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, /* 0x ac0 */
|
||||||
|
152, 1,194,165, 0, 1, 2, 60, 43, 16,130, 0, 8, 0, 64, 16, /* 0x ad0 */
|
||||||
|
33, 88,128, 0,146, 1,167, 17, 0, 90, 4, 0, 0, 26, 24, 0, /* 0x ae0 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, /* 0x af0 */
|
||||||
|
64, 16, 25, 0, 33, 24, 2, 2, 64, 16, 5, 0, 33, 32, 98, 0, /* 0x b00 */
|
||||||
|
224, 1,131,148,194, 18, 11, 0, 24, 0, 67, 0, 18, 96, 0, 0, /* 0x b10 */
|
||||||
|
43, 16, 12, 3, 18, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, /* 0x b20 */
|
||||||
|
67, 17, 2, 0, 33, 16, 98, 0,125, 1, 64, 17,224, 1,130,164, /* 0x b30 */
|
||||||
|
7, 0, 66, 42, 2, 0, 64, 20, 9, 0, 18, 36, 11, 0, 18, 36, /* 0x b40 */
|
||||||
|
35, 16, 81, 1, 33, 16, 98, 2, 0, 0, 78,144, 33, 16,106, 2, /* 0x b50 */
|
||||||
|
0, 0, 78,160, 1, 0, 67, 37, 92, 1, 0, 16, 33,120,128, 1, /* 0x b60 */
|
||||||
|
35, 88,108, 1, 35,192, 12, 3, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x b70 */
|
||||||
|
69, 0, 0, 16,224, 1,130,164, 35, 88,100, 1, 66, 17, 3, 0, /* 0x b80 */
|
||||||
|
35, 16, 98, 0,152, 1,194,165, 43, 16,203, 0, 8, 0, 64, 20, /* 0x b90 */
|
||||||
|
35,192, 4, 3, 98, 1,167, 17, 0, 90, 11, 0, 0, 26, 24, 0, /* 0x ba0 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, /* 0x bb0 */
|
||||||
|
176, 1,195,149,194, 18, 11, 0, 24, 0, 67, 0, 18, 32, 0, 0, /* 0x bc0 */
|
||||||
|
43, 16, 4, 3, 7, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, /* 0x bd0 */
|
||||||
|
67, 17, 2, 0, 33, 16, 98, 0,176, 1,194,165, 28, 0, 0, 16, /* 0x be0 */
|
||||||
|
33, 16,128, 2, 35, 88,100, 1, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x bf0 */
|
||||||
|
176, 1,194,165, 43, 16,203, 0, 8, 0, 64, 20, 35,192, 4, 3, /* 0x c00 */
|
||||||
|
71, 1,167, 17, 0, 90, 11, 0, 0, 26, 24, 0, 0, 0,162,145, /* 0x c10 */
|
||||||
|
0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37,200, 1,195,149, /* 0x c20 */
|
||||||
|
194, 18, 11, 0, 24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, /* 0x c30 */
|
||||||
|
11, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, /* 0x c40 */
|
||||||
|
33, 16, 98, 0,200, 1,194,165, 33, 16,224, 2, 33,184,128, 2, /* 0x c50 */
|
||||||
|
33,160, 32, 2, 33,136, 64, 0, 11, 0, 0, 16, 33, 88,128, 0, /* 0x c60 */
|
||||||
|
35, 88,100, 1, 35,192, 4, 3, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x c70 */
|
||||||
|
200, 1,194,165, 0, 0,162,143, 0, 0,183,175, 33,184,128, 2, /* 0x c80 */
|
||||||
|
33,160, 32, 2, 33,136, 64, 0, 7, 0, 66, 42, 2, 0, 64, 20, /* 0x c90 */
|
||||||
|
8, 0, 18, 36, 11, 0, 18, 36,104, 10, 14, 38,255, 0, 2, 60, /* 0x ca0 */
|
||||||
|
255,255, 76, 52, 43, 16,139, 1, 8, 0, 64, 20, 0, 0, 0, 0, /* 0x cb0 */
|
||||||
|
27, 1,167, 17, 0, 90, 11, 0, 0, 26, 24, 0, 0, 0,162,145, /* 0x cc0 */
|
||||||
|
0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, 0, 0,195,149, /* 0x cd0 */
|
||||||
|
194, 18, 11, 0, 24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, /* 0x ce0 */
|
||||||
|
12, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, /* 0x cf0 */
|
||||||
|
33, 16, 98, 0, 0, 0,194,165, 0, 17, 5, 0, 33, 16,194, 1, /* 0x d00 */
|
||||||
|
4, 0, 69, 36, 33,120,128, 0, 3, 0, 8, 36, 41, 0, 0, 16, /* 0x d10 */
|
||||||
|
33, 48, 0, 0, 35, 88,100, 1, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x d20 */
|
||||||
|
0, 0,194,165, 43, 16,139, 1, 8, 0, 64, 20, 35,192, 4, 3, /* 0x d30 */
|
||||||
|
251, 0,167, 17, 0, 90, 11, 0, 0, 26, 24, 0, 0, 0,162,145, /* 0x d40 */
|
||||||
|
0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, 2, 0,195,149, /* 0x d50 */
|
||||||
|
194, 18, 11, 0, 24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, /* 0x d60 */
|
||||||
|
12, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, /* 0x d70 */
|
||||||
|
33, 16, 98, 0, 2, 0,194,165, 0, 17, 5, 0, 33, 16,194, 1, /* 0x d80 */
|
||||||
|
4, 1, 69, 36, 33,120,128, 0, 3, 0, 8, 36, 9, 0, 0, 16, /* 0x d90 */
|
||||||
|
8, 0, 6, 36, 35,120,100, 1, 35,192, 4, 3, 66, 17, 3, 0, /* 0x da0 */
|
||||||
|
35, 16, 98, 0, 2, 0,194,165, 4, 2,197, 37, 8, 0, 8, 36, /* 0x db0 */
|
||||||
|
16, 0, 6, 36, 33,112, 0, 1, 1, 0, 25, 36,255, 0, 2, 60, /* 0x dc0 */
|
||||||
|
255,255, 66, 52, 43, 16, 79, 0, 9, 0, 64, 20, 64, 96, 25, 0, /* 0x dd0 */
|
||||||
|
211, 0,167, 17, 0,122, 15, 0, 0, 26, 24, 0, 0, 0,162,145, /* 0x de0 */
|
||||||
|
0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, 64, 96, 25, 0, /* 0x df0 */
|
||||||
|
33, 88,172, 0, 0, 0, 99,149,194, 18, 15, 0, 24, 0, 67, 0, /* 0x e00 */
|
||||||
|
18, 32, 0, 0, 43, 16, 4, 3, 8, 0, 64, 16, 0, 8, 2, 36, /* 0x e10 */
|
||||||
|
35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, 0, 0, 98,165, /* 0x e20 */
|
||||||
|
33,200,128, 1, 8, 0, 0, 16, 33,120,128, 0, 35,120,228, 1, /* 0x e30 */
|
||||||
|
35,192, 4, 3, 66, 17, 3, 0, 35, 16, 98, 0, 0, 0, 98,165, /* 0x e40 */
|
||||||
|
1, 0, 34, 39, 33,200, 34, 3,255,255,206, 37,220,255,192, 21, /* 0x e50 */
|
||||||
|
255, 0, 2, 60, 1, 0, 2, 36, 4, 16, 2, 1, 35, 16, 34, 3, /* 0x e60 */
|
||||||
|
33, 72, 70, 0, 4, 0, 66, 42,134, 0, 64, 16, 4, 0, 34, 41, /* 0x e70 */
|
||||||
|
2, 0, 64, 20, 33, 24, 32, 1, 3, 0, 3, 36,192, 17, 3, 0, /* 0x e80 */
|
||||||
|
33, 16, 2, 2, 96, 3, 70, 36, 1, 0, 14, 36, 6, 0, 25, 36, /* 0x e90 */
|
||||||
|
255, 0, 2, 60,255,255, 66, 52, 43, 16, 79, 0, 9, 0, 64, 20, /* 0x ea0 */
|
||||||
|
64, 96, 14, 0,158, 0,167, 17, 0,122, 15, 0, 0, 26, 24, 0, /* 0x eb0 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, /* 0x ec0 */
|
||||||
|
64, 96, 14, 0, 33, 88,204, 0, 0, 0, 99,149,194, 18, 15, 0, /* 0x ed0 */
|
||||||
|
24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, 8, 0, 64, 16, /* 0x ee0 */
|
||||||
|
0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, /* 0x ef0 */
|
||||||
|
0, 0, 98,165, 33,112,128, 1, 8, 0, 0, 16, 33,120,128, 0, /* 0x f00 */
|
||||||
|
35,120,228, 1, 35,192, 4, 3, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x f10 */
|
||||||
|
0, 0, 98,165, 1, 0,194, 37, 33,112,194, 1,255,255, 57, 39, /* 0x f20 */
|
||||||
|
220,255, 32, 23,255, 0, 2, 60,192,255,195, 37, 4, 0, 98, 40, /* 0x f30 */
|
||||||
|
80, 0, 64, 20, 33,112, 96, 0, 67, 32, 3, 0, 1, 0, 98, 48, /* 0x f40 */
|
||||||
|
2, 0, 75, 52, 14, 0, 98, 40, 8, 0, 64, 16,255,255,153, 36, /* 0x f50 */
|
||||||
|
4,112, 43, 3, 64, 16, 14, 0, 33, 32, 2, 2, 64, 16, 3, 0, /* 0x f60 */
|
||||||
|
35, 16,130, 0, 26, 0, 0, 16, 94, 5, 72, 36,251,255,132, 36, /* 0x f70 */
|
||||||
|
255, 0, 2, 60,255,255, 66, 52, 43, 16, 79, 0, 8, 0, 64, 20, /* 0x f80 */
|
||||||
|
0, 0, 0, 0,102, 0,167, 17, 0,122, 15, 0, 0, 26, 24, 0, /* 0x f90 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, /* 0x fa0 */
|
||||||
|
66,120, 15, 0, 43, 16, 15, 3, 3, 0, 64, 20, 64, 88, 11, 0, /* 0x fb0 */
|
||||||
|
35,192, 15, 3, 1, 0,107, 53,255,255,132, 36,237,255,128, 20, /* 0x fc0 */
|
||||||
|
255, 0, 2, 60, 68, 6, 8, 38, 0,113, 11, 0, 4, 0, 25, 36, /* 0x fd0 */
|
||||||
|
1, 0, 6, 36, 1, 0, 5, 36,255, 0, 2, 60,255,255, 66, 52, /* 0x fe0 */
|
||||||
|
43, 16, 79, 0, 9, 0, 64, 20, 64, 96, 5, 0, 76, 0,167, 17, /* 0x ff0 */
|
||||||
|
0,122, 15, 0, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x1000 */
|
||||||
|
37,192, 98, 0, 1, 0,173, 37, 64, 96, 5, 0, 33, 88, 12, 1, /* 0x1010 */
|
||||||
|
0, 0, 99,149,194, 18, 15, 0, 24, 0, 67, 0, 18, 32, 0, 0, /* 0x1020 */
|
||||||
|
43, 16, 4, 3, 8, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, /* 0x1030 */
|
||||||
|
67, 17, 2, 0, 33, 16, 98, 0, 0, 0, 98,165, 33, 40,128, 1, /* 0x1040 */
|
||||||
|
9, 0, 0, 16, 33,120,128, 0, 35,120,228, 1, 35,192, 4, 3, /* 0x1050 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0, 0, 0, 98,165, 1, 0,162, 36, /* 0x1060 */
|
||||||
|
33, 40,162, 0, 37,112,198, 1,255,255, 57, 39,218,255, 32, 23, /* 0x1070 */
|
||||||
|
64, 48, 6, 0, 1, 0,209, 37, 26, 0, 32, 18,255, 0, 2, 60, /* 0x1080 */
|
||||||
|
7, 0, 82, 38, 43, 16, 81, 1, 38, 0, 64, 20, 1, 0, 2, 36, /* 0x1090 */
|
||||||
|
35, 16, 81, 1, 33, 88, 98, 2, 33, 32,106, 2, 33, 24, 64, 1, /* 0x10a0 */
|
||||||
|
0, 0,110,145, 1, 0, 99, 36, 33, 16, 73, 1, 2, 0, 66, 36, /* 0x10b0 */
|
||||||
|
6, 0, 98, 16, 0, 0,142,160, 1, 0,107, 37, 16, 0,162,143, /* 0x10c0 */
|
||||||
|
0, 0, 0, 0,246,255, 98, 20, 1, 0,132, 36, 33, 80, 96, 0, /* 0x10d0 */
|
||||||
|
16, 0,163,143, 0, 0, 0, 0, 43, 16, 67, 1,166,253, 64, 20, /* 0x10e0 */
|
||||||
|
255, 0, 2, 60,255,255, 66, 52, 43, 16, 79, 0, 4, 0, 64, 20, /* 0x10f0 */
|
||||||
|
35, 40,181, 1, 10, 0,167, 17, 1, 0,173, 37, 35, 40,181, 1, /* 0x1100 */
|
||||||
|
12, 0,162,143, 0, 0, 0, 0, 0, 0, 69,172, 20, 0,163,143, /* 0x1110 */
|
||||||
|
0, 0, 0, 0, 0, 0,106,172, 2, 0, 0, 16, 33, 16, 0, 0, /* 0x1120 */
|
||||||
|
1, 0, 2, 36, 52, 0,183,143, 48, 0,182,143, 44, 0,181,143, /* 0x1130 */
|
||||||
|
40, 0,180,143, 36, 0,179,143, 32, 0,178,143, 28, 0,177,143, /* 0x1140 */
|
||||||
|
24, 0,176,143, 8, 0,224, 3, 56, 0,189, 39,200,255,189, 39, /* 0x1150 */
|
||||||
|
52, 0,183,175, 48, 0,182,175, 44, 0,181,175, 40, 0,180,175, /* 0x1160 */
|
||||||
|
36, 0,179,175, 32, 0,178,175, 28, 0,177,175, 24, 0,176,175, /* 0x1170 */
|
||||||
|
33,168,160, 0, 12, 0,167,175, 33,152, 0, 1, 16, 0,169,175, /* 0x1180 */
|
||||||
|
20, 0,170,175, 4, 0,144, 36, 2, 0,130,144, 1, 0, 3, 36, /* 0x1190 */
|
||||||
|
4, 16, 67, 0,255,255, 66, 36, 8, 0,162,175, 1, 0,130,144, /* 0x11a0 */
|
||||||
|
0, 0, 0, 0, 4, 16, 67, 0,255,255, 66, 36, 4, 0,162,175, /* 0x11b0 */
|
||||||
|
0, 0,150,144, 0, 0,224,172, 0, 0, 64,173, 1, 0,132,144, /* 0x11c0 */
|
||||||
|
0, 0, 0, 0, 33, 32,196, 2, 0, 3, 2, 36, 4, 32,130, 0, /* 0x11d0 */
|
||||||
|
54, 7,132, 36, 33, 16, 0, 2, 4, 0, 0, 16, 33, 88, 0, 0, /* 0x11e0 */
|
||||||
|
0, 4, 3, 36,254,255, 67,164, 1, 0,107, 37,252,255,100, 21, /* 0x11f0 */
|
||||||
|
2, 0, 66, 36, 33, 56,166, 2, 33,104,160, 2, 33,192, 0, 0, /* 0x1200 */
|
||||||
|
33, 32, 0, 0, 35, 16,245, 0,123, 2,130, 16, 0, 26, 24, 0, /* 0x1210 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,132, 36, /* 0x1220 */
|
||||||
|
5, 0, 2, 36,247,255,130, 20, 1, 0,173, 37, 33, 80, 0, 0, /* 0x1230 */
|
||||||
|
33,112, 0, 0, 33,144, 0, 0, 1, 0, 17, 36, 1, 0, 20, 36, /* 0x1240 */
|
||||||
|
1, 0, 23, 36, 0, 0,183,175, 87, 2, 0, 16,255,255, 15, 36, /* 0x1250 */
|
||||||
|
255,255, 70, 52, 43, 16,207, 0, 8, 0, 64, 20, 0, 0, 0, 0, /* 0x1260 */
|
||||||
|
101, 2,167, 17, 0,122, 15, 0, 0, 26, 24, 0, 0, 0,162,145, /* 0x1270 */
|
||||||
|
0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, 8, 0,163,143, /* 0x1280 */
|
||||||
|
0, 0, 0, 0, 36, 40, 67, 1, 0,201, 18, 0, 33, 16,185, 0, /* 0x1290 */
|
||||||
|
64, 16, 2, 0, 33, 88, 2, 2, 0, 0, 99,149,194, 18, 15, 0, /* 0x12a0 */
|
||||||
|
24, 0, 67, 0, 18, 96, 0, 0, 43, 16, 12, 3,125, 0, 64, 16, /* 0x12b0 */
|
||||||
|
0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, /* 0x12c0 */
|
||||||
|
0, 0, 98,165, 4, 0,163,143, 0, 0, 0, 0, 36, 16, 67, 1, /* 0x12d0 */
|
||||||
|
4, 24,194, 2, 8, 0, 2, 36, 35, 16, 86, 0, 7, 16, 78, 0, /* 0x12e0 */
|
||||||
|
33, 16, 98, 0, 64, 26, 2, 0,192, 18, 2, 0, 35, 16, 67, 0, /* 0x12f0 */
|
||||||
|
33, 16, 2, 2,108, 14, 70, 36, 7, 0, 66, 42, 3, 0, 64, 16, /* 0x1300 */
|
||||||
|
33,120,128, 1, 85, 0, 0, 16, 1, 0, 5, 36, 35, 16, 81, 1, /* 0x1310 */
|
||||||
|
33, 16, 98, 2, 0, 0, 89,144, 1, 0, 5, 36,255, 0, 2, 60, /* 0x1320 */
|
||||||
|
255,255, 66, 52, 43, 16, 79, 0, 8, 0, 64, 20, 0, 0, 0, 0, /* 0x1330 */
|
||||||
|
49, 2,167, 17, 0,122, 15, 0, 0, 26, 24, 0, 0, 0,162,145, /* 0x1340 */
|
||||||
|
0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, 64,200, 25, 0, /* 0x1350 */
|
||||||
|
0, 1, 44, 51, 64, 16, 12, 0, 33, 16,194, 0, 64,112, 5, 0, /* 0x1360 */
|
||||||
|
33, 88, 78, 0, 0, 2, 99,149,194, 18, 15, 0, 24, 0, 67, 0, /* 0x1370 */
|
||||||
|
18, 32, 0, 0, 43, 16, 4, 3, 9, 0, 64, 16, 0, 8, 2, 36, /* 0x1380 */
|
||||||
|
35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, 0, 2, 98,165, /* 0x1390 */
|
||||||
|
41, 0,128, 21, 33, 40,192, 1, 9, 0, 0, 16, 33,120,128, 0, /* 0x13a0 */
|
||||||
|
35,120,228, 1, 35,192, 4, 3, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x13b0 */
|
||||||
|
0, 2, 98,165, 1, 0,162, 36, 40, 0,128, 17, 33, 40,162, 0, /* 0x13c0 */
|
||||||
|
0, 1,162, 40, 37, 0, 64, 16,255, 0, 2, 60,213,255, 0, 16, /* 0x13d0 */
|
||||||
|
255,255, 66, 52,255,255, 66, 52, 43, 16, 79, 0, 9, 0, 64, 20, /* 0x13e0 */
|
||||||
|
64, 96, 5, 0, 4, 2,167, 17, 0,122, 15, 0, 0, 26, 24, 0, /* 0x13f0 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, /* 0x1400 */
|
||||||
|
64, 96, 5, 0, 33, 88,204, 0, 0, 0, 99,149,194, 18, 15, 0, /* 0x1410 */
|
||||||
|
24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, 8, 0, 64, 16, /* 0x1420 */
|
||||||
|
0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, /* 0x1430 */
|
||||||
|
0, 0, 98,165, 33, 40,128, 1, 8, 0, 0, 16, 33,120,128, 0, /* 0x1440 */
|
||||||
|
35,120,228, 1, 35,192, 4, 3, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x1450 */
|
||||||
|
0, 0, 98,165, 1, 0,162, 36, 33, 40,162, 0, 0, 1,162, 40, /* 0x1460 */
|
||||||
|
220,255, 64, 20,255, 0, 2, 60,255, 0,174, 48, 33, 16,106, 2, /* 0x1470 */
|
||||||
|
0, 0, 78,160, 4, 0, 66, 42, 3, 0, 64, 16, 1, 0, 67, 37, /* 0x1480 */
|
||||||
|
200, 1, 0, 16, 33,144, 0, 0, 10, 0, 66, 42, 3, 0, 64, 16, /* 0x1490 */
|
||||||
|
0, 0, 0, 0,195, 1, 0, 16,253,255, 82, 38,193, 1, 0, 16, /* 0x14a0 */
|
||||||
|
250,255, 82, 38, 35, 32,236, 1, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x14b0 */
|
||||||
|
0, 0, 98,165, 43, 16,196, 0, 8, 0, 64, 20, 35,192, 12, 3, /* 0x14c0 */
|
||||||
|
205, 1,167, 17, 0, 34, 4, 0, 0, 26, 24, 0, 0, 0,162,145, /* 0x14d0 */
|
||||||
|
0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, 64, 16, 18, 0, /* 0x14e0 */
|
||||||
|
33,112, 2, 2,128, 1,195,149,194, 18, 4, 0, 24, 0, 67, 0, /* 0x14f0 */
|
||||||
|
18, 96, 0, 0, 43, 16, 12, 3, 15, 0, 64, 16, 0, 8, 2, 36, /* 0x1500 */
|
||||||
|
35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0,128, 1,194,165, /* 0x1510 */
|
||||||
|
7, 0, 66, 42, 2, 0, 64, 20, 33,144, 0, 0, 3, 0, 18, 36, /* 0x1520 */
|
||||||
|
100, 6, 14, 38, 0, 0,183,175, 33,184,128, 2, 33,160, 32, 2, /* 0x1530 */
|
||||||
|
144, 0, 0, 16, 33, 88,128, 1, 35, 88,140, 0, 66, 17, 3, 0, /* 0x1540 */
|
||||||
|
35, 16, 98, 0,128, 1,194,165, 43, 16,203, 0, 8, 0, 64, 20, /* 0x1550 */
|
||||||
|
35,192, 12, 3,168, 1,167, 17, 0, 90, 11, 0, 0, 26, 24, 0, /* 0x1560 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, /* 0x1570 */
|
||||||
|
152, 1,195,149,194, 18, 11, 0, 24, 0, 67, 0, 18, 32, 0, 0, /* 0x1580 */
|
||||||
|
43, 16, 4, 3, 50, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, /* 0x1590 */
|
||||||
|
67, 17, 2, 0, 33, 16, 98, 0,152, 1,194,165, 0, 1, 2, 60, /* 0x15a0 */
|
||||||
|
43, 16,130, 0, 8, 0, 64, 16, 33, 88,128, 0,146, 1,167, 17, /* 0x15b0 */
|
||||||
|
0, 90, 4, 0, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x15c0 */
|
||||||
|
37,192, 98, 0, 1, 0,173, 37, 64, 16, 25, 0, 33, 24, 2, 2, /* 0x15d0 */
|
||||||
|
64, 16, 5, 0, 33, 32, 98, 0,224, 1,131,148,194, 18, 11, 0, /* 0x15e0 */
|
||||||
|
24, 0, 67, 0, 18, 96, 0, 0, 43, 16, 12, 3, 18, 0, 64, 16, /* 0x15f0 */
|
||||||
|
0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, /* 0x1600 */
|
||||||
|
125, 1, 64, 17,224, 1,130,164, 7, 0, 66, 42, 2, 0, 64, 20, /* 0x1610 */
|
||||||
|
9, 0, 18, 36, 11, 0, 18, 36, 35, 16, 81, 1, 33, 16, 98, 2, /* 0x1620 */
|
||||||
|
0, 0, 78,144, 33, 16,106, 2, 0, 0, 78,160, 1, 0, 67, 37, /* 0x1630 */
|
||||||
|
92, 1, 0, 16, 33,120,128, 1, 35, 88,108, 1, 35,192, 12, 3, /* 0x1640 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0, 69, 0, 0, 16,224, 1,130,164, /* 0x1650 */
|
||||||
|
35, 88,100, 1, 66, 17, 3, 0, 35, 16, 98, 0,152, 1,194,165, /* 0x1660 */
|
||||||
|
43, 16,203, 0, 8, 0, 64, 20, 35,192, 4, 3, 98, 1,167, 17, /* 0x1670 */
|
||||||
|
0, 90, 11, 0, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x1680 */
|
||||||
|
37,192, 98, 0, 1, 0,173, 37,176, 1,195,149,194, 18, 11, 0, /* 0x1690 */
|
||||||
|
24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, 7, 0, 64, 16, /* 0x16a0 */
|
||||||
|
0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, /* 0x16b0 */
|
||||||
|
176, 1,194,165, 28, 0, 0, 16, 33, 16,128, 2, 35, 88,100, 1, /* 0x16c0 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0,176, 1,194,165, 43, 16,203, 0, /* 0x16d0 */
|
||||||
|
8, 0, 64, 20, 35,192, 4, 3, 71, 1,167, 17, 0, 90, 11, 0, /* 0x16e0 */
|
||||||
|
0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, /* 0x16f0 */
|
||||||
|
1, 0,173, 37,200, 1,195,149,194, 18, 11, 0, 24, 0, 67, 0, /* 0x1700 */
|
||||||
|
18, 32, 0, 0, 43, 16, 4, 3, 11, 0, 64, 16, 0, 8, 2, 36, /* 0x1710 */
|
||||||
|
35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0,200, 1,194,165, /* 0x1720 */
|
||||||
|
33, 16,224, 2, 33,184,128, 2, 33,160, 32, 2, 33,136, 64, 0, /* 0x1730 */
|
||||||
|
11, 0, 0, 16, 33, 88,128, 0, 35, 88,100, 1, 35,192, 4, 3, /* 0x1740 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0,200, 1,194,165, 0, 0,162,143, /* 0x1750 */
|
||||||
|
0, 0,183,175, 33,184,128, 2, 33,160, 32, 2, 33,136, 64, 0, /* 0x1760 */
|
||||||
|
7, 0, 66, 42, 2, 0, 64, 20, 8, 0, 18, 36, 11, 0, 18, 36, /* 0x1770 */
|
||||||
|
104, 10, 14, 38,255, 0, 2, 60,255,255, 76, 52, 43, 16,139, 1, /* 0x1780 */
|
||||||
|
8, 0, 64, 20, 0, 0, 0, 0, 27, 1,167, 17, 0, 90, 11, 0, /* 0x1790 */
|
||||||
|
0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, /* 0x17a0 */
|
||||||
|
1, 0,173, 37, 0, 0,195,149,194, 18, 11, 0, 24, 0, 67, 0, /* 0x17b0 */
|
||||||
|
18, 32, 0, 0, 43, 16, 4, 3, 12, 0, 64, 16, 0, 8, 2, 36, /* 0x17c0 */
|
||||||
|
35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, 0, 0,194,165, /* 0x17d0 */
|
||||||
|
0, 17, 5, 0, 33, 16,194, 1, 4, 0, 69, 36, 33,120,128, 0, /* 0x17e0 */
|
||||||
|
3, 0, 8, 36, 41, 0, 0, 16, 33, 48, 0, 0, 35, 88,100, 1, /* 0x17f0 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0, 0, 0,194,165, 43, 16,139, 1, /* 0x1800 */
|
||||||
|
8, 0, 64, 20, 35,192, 4, 3,251, 0,167, 17, 0, 90, 11, 0, /* 0x1810 */
|
||||||
|
0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, /* 0x1820 */
|
||||||
|
1, 0,173, 37, 2, 0,195,149,194, 18, 11, 0, 24, 0, 67, 0, /* 0x1830 */
|
||||||
|
18, 32, 0, 0, 43, 16, 4, 3, 12, 0, 64, 16, 0, 8, 2, 36, /* 0x1840 */
|
||||||
|
35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, 2, 0,194,165, /* 0x1850 */
|
||||||
|
0, 17, 5, 0, 33, 16,194, 1, 4, 1, 69, 36, 33,120,128, 0, /* 0x1860 */
|
||||||
|
3, 0, 8, 36, 9, 0, 0, 16, 8, 0, 6, 36, 35,120,100, 1, /* 0x1870 */
|
||||||
|
35,192, 4, 3, 66, 17, 3, 0, 35, 16, 98, 0, 2, 0,194,165, /* 0x1880 */
|
||||||
|
4, 2,197, 37, 8, 0, 8, 36, 16, 0, 6, 36, 33,112, 0, 1, /* 0x1890 */
|
||||||
|
1, 0, 25, 36,255, 0, 2, 60,255,255, 66, 52, 43, 16, 79, 0, /* 0x18a0 */
|
||||||
|
9, 0, 64, 20, 64, 96, 25, 0,211, 0,167, 17, 0,122, 15, 0, /* 0x18b0 */
|
||||||
|
0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, /* 0x18c0 */
|
||||||
|
1, 0,173, 37, 64, 96, 25, 0, 33, 88,172, 0, 0, 0, 99,149, /* 0x18d0 */
|
||||||
|
194, 18, 15, 0, 24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, /* 0x18e0 */
|
||||||
|
8, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, /* 0x18f0 */
|
||||||
|
33, 16, 98, 0, 0, 0, 98,165, 33,200,128, 1, 8, 0, 0, 16, /* 0x1900 */
|
||||||
|
33,120,128, 0, 35,120,228, 1, 35,192, 4, 3, 66, 17, 3, 0, /* 0x1910 */
|
||||||
|
35, 16, 98, 0, 0, 0, 98,165, 1, 0, 34, 39, 33,200, 34, 3, /* 0x1920 */
|
||||||
|
255,255,206, 37,220,255,192, 21,255, 0, 2, 60, 1, 0, 2, 36, /* 0x1930 */
|
||||||
|
4, 16, 2, 1, 35, 16, 34, 3, 33, 72, 70, 0, 4, 0, 66, 42, /* 0x1940 */
|
||||||
|
134, 0, 64, 16, 4, 0, 34, 41, 2, 0, 64, 20, 33, 24, 32, 1, /* 0x1950 */
|
||||||
|
3, 0, 3, 36,192, 17, 3, 0, 33, 16, 2, 2, 96, 3, 70, 36, /* 0x1960 */
|
||||||
|
1, 0, 14, 36, 6, 0, 25, 36,255, 0, 2, 60,255,255, 66, 52, /* 0x1970 */
|
||||||
|
43, 16, 79, 0, 9, 0, 64, 20, 64, 96, 14, 0,158, 0,167, 17, /* 0x1980 */
|
||||||
|
0,122, 15, 0, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x1990 */
|
||||||
|
37,192, 98, 0, 1, 0,173, 37, 64, 96, 14, 0, 33, 88,204, 0, /* 0x19a0 */
|
||||||
|
0, 0, 99,149,194, 18, 15, 0, 24, 0, 67, 0, 18, 32, 0, 0, /* 0x19b0 */
|
||||||
|
43, 16, 4, 3, 8, 0, 64, 16, 0, 8, 2, 36, 35, 16, 67, 0, /* 0x19c0 */
|
||||||
|
67, 17, 2, 0, 33, 16, 98, 0, 0, 0, 98,165, 33,112,128, 1, /* 0x19d0 */
|
||||||
|
8, 0, 0, 16, 33,120,128, 0, 35,120,228, 1, 35,192, 4, 3, /* 0x19e0 */
|
||||||
|
66, 17, 3, 0, 35, 16, 98, 0, 0, 0, 98,165, 1, 0,194, 37, /* 0x19f0 */
|
||||||
|
33,112,194, 1,255,255, 57, 39,220,255, 32, 23,255, 0, 2, 60, /* 0x1a00 */
|
||||||
|
192,255,195, 37, 4, 0, 98, 40, 80, 0, 64, 20, 33,112, 96, 0, /* 0x1a10 */
|
||||||
|
67, 32, 3, 0, 1, 0, 98, 48, 2, 0, 75, 52, 14, 0, 98, 40, /* 0x1a20 */
|
||||||
|
8, 0, 64, 16,255,255,153, 36, 4,112, 43, 3, 64, 16, 14, 0, /* 0x1a30 */
|
||||||
|
33, 32, 2, 2, 64, 16, 3, 0, 35, 16,130, 0, 26, 0, 0, 16, /* 0x1a40 */
|
||||||
|
94, 5, 72, 36,251,255,132, 36,255, 0, 2, 60,255,255, 66, 52, /* 0x1a50 */
|
||||||
|
43, 16, 79, 0, 8, 0, 64, 20, 0, 0, 0, 0,102, 0,167, 17, /* 0x1a60 */
|
||||||
|
0,122, 15, 0, 0, 26, 24, 0, 0, 0,162,145, 0, 0, 0, 0, /* 0x1a70 */
|
||||||
|
37,192, 98, 0, 1, 0,173, 37, 66,120, 15, 0, 43, 16, 15, 3, /* 0x1a80 */
|
||||||
|
3, 0, 64, 20, 64, 88, 11, 0, 35,192, 15, 3, 1, 0,107, 53, /* 0x1a90 */
|
||||||
|
255,255,132, 36,237,255,128, 20,255, 0, 2, 60, 68, 6, 8, 38, /* 0x1aa0 */
|
||||||
|
0,113, 11, 0, 4, 0, 25, 36, 1, 0, 6, 36, 1, 0, 5, 36, /* 0x1ab0 */
|
||||||
|
255, 0, 2, 60,255,255, 66, 52, 43, 16, 79, 0, 9, 0, 64, 20, /* 0x1ac0 */
|
||||||
|
64, 96, 5, 0, 76, 0,167, 17, 0,122, 15, 0, 0, 26, 24, 0, /* 0x1ad0 */
|
||||||
|
0, 0,162,145, 0, 0, 0, 0, 37,192, 98, 0, 1, 0,173, 37, /* 0x1ae0 */
|
||||||
|
64, 96, 5, 0, 33, 88, 12, 1, 0, 0, 99,149,194, 18, 15, 0, /* 0x1af0 */
|
||||||
|
24, 0, 67, 0, 18, 32, 0, 0, 43, 16, 4, 3, 8, 0, 64, 16, /* 0x1b00 */
|
||||||
|
0, 8, 2, 36, 35, 16, 67, 0, 67, 17, 2, 0, 33, 16, 98, 0, /* 0x1b10 */
|
||||||
|
0, 0, 98,165, 33, 40,128, 1, 9, 0, 0, 16, 33,120,128, 0, /* 0x1b20 */
|
||||||
|
35,120,228, 1, 35,192, 4, 3, 66, 17, 3, 0, 35, 16, 98, 0, /* 0x1b30 */
|
||||||
|
0, 0, 98,165, 1, 0,162, 36, 33, 40,162, 0, 37,112,198, 1, /* 0x1b40 */
|
||||||
|
255,255, 57, 39,218,255, 32, 23, 64, 48, 6, 0, 1, 0,209, 37, /* 0x1b50 */
|
||||||
|
26, 0, 32, 18,255, 0, 2, 60, 7, 0, 82, 38, 43, 16, 81, 1, /* 0x1b60 */
|
||||||
|
38, 0, 64, 20, 1, 0, 2, 36, 35, 16, 81, 1, 33, 88, 98, 2, /* 0x1b70 */
|
||||||
|
33, 32,106, 2, 33, 24, 64, 1, 0, 0,110,145, 1, 0, 99, 36, /* 0x1b80 */
|
||||||
|
33, 16, 73, 1, 2, 0, 66, 36, 6, 0, 98, 16, 0, 0,142,160, /* 0x1b90 */
|
||||||
|
1, 0,107, 37, 16, 0,162,143, 0, 0, 0, 0,246,255, 98, 20, /* 0x1ba0 */
|
||||||
|
1, 0,132, 36, 33, 80, 96, 0, 16, 0,163,143, 0, 0, 0, 0, /* 0x1bb0 */
|
||||||
|
43, 16, 67, 1,166,253, 64, 20,255, 0, 2, 60,255,255, 66, 52, /* 0x1bc0 */
|
||||||
|
43, 16, 79, 0, 4, 0, 64, 20, 35, 40,181, 1, 10, 0,167, 17, /* 0x1bd0 */
|
||||||
|
1, 0,173, 37, 35, 40,181, 1, 12, 0,162,143, 0, 0, 0, 0, /* 0x1be0 */
|
||||||
|
0, 0, 69,172, 20, 0,163,143, 0, 0, 0, 0, 0, 0,106,172, /* 0x1bf0 */
|
||||||
|
2, 0, 0, 16, 33, 16, 0, 0, 1, 0, 2, 36, 52, 0,183,143, /* 0x1c00 */
|
||||||
|
48, 0,182,143, 44, 0,181,143, 40, 0,180,143, 36, 0,179,143, /* 0x1c10 */
|
||||||
|
32, 0,178,143, 28, 0,177,143, 24, 0,176,143, 8, 0,224, 3, /* 0x1c20 */
|
||||||
|
56, 0,189, 39, 13, 0, 0, 0, 0, 0,168,143, 4, 0,189, 39, /* 0x1c30 */
|
||||||
|
34, 16, 72, 0, 0, 0,168,143, 4, 0,189, 39, 34,128, 8, 2, /* 0x1c40 */
|
||||||
|
0, 0,168,143, 4, 0,189, 39, 0, 0, 16,173, 0, 0,168,143, /* 0x1c50 */
|
||||||
|
4, 0,189, 39, 8, 0, 0, 1, 0, 0, 0, 0, 30, 0, 6, 36, /* 0x1c60 */
|
||||||
|
255,255, 17, 4, 33, 40,224, 3, 80, 82, 79, 84, 95, 69, 88, 69, /* 0x1c70 */
|
||||||
|
67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105, /* 0x1c80 */
|
||||||
|
108,101,100, 46, 10, 0, 2, 0, 4, 36, 4, 0, 2, 36, 12, 0, /* 0x1c90 */
|
||||||
|
0, 0,127, 0, 4, 36, 1, 0, 2, 36, 12, 0, 0, 0,160,255, /* 0x1ca0 */
|
||||||
|
181, 38,216,255,230,142,224,255,189, 39,220,255,231,142, 7, 0, /* 0x1cb0 */
|
||||||
|
8, 36, 16, 0,168,175, 18, 16, 8, 36, 20, 0,168,175, 0, 0, /* 0x1cc0 */
|
||||||
|
5, 36, 24, 0,160,175,197, 0, 4, 36,198, 0, 2, 36, 12, 0, /* 0x1cd0 */
|
||||||
|
0, 0, 33, 32, 64, 0,232,255,229,142,224,255,244,142,228,255, /* 0x1ce0 */
|
||||||
|
243,142,236,255,242,142,240,255,241,142, 11, 0,133, 16, 35, 64, /* 0x1cf0 */
|
||||||
|
133, 0, 33,184,232, 2, 33, 48,160, 2, 0, 0,168,140, 8, 0, /* 0x1d00 */
|
||||||
|
132, 36, 4, 0,169,140,248,255,198, 36,248,255,136,172, 8, 0, /* 0x1d10 */
|
||||||
|
165, 36,249,255,192, 28,252,255,137,172, 0, 0,200,142, 33, 56, /* 0x1d20 */
|
||||||
|
160, 3, 0, 0,168,175, 33, 48, 64, 0, 4, 0,197,142, 33, 32, /* 0x1d30 */
|
||||||
|
192, 2, 8, 0,224, 2, 33,248,192, 0,212,255,245,142,215,255, /* 0x1d40 */
|
||||||
|
17, 4, 33,176,224, 3,116,109,112, 47,109,105,112,115,101,108, /* 0x1d50 */
|
||||||
|
46,114, 51, 48, 48, 48, 45,108,105,110,117,120, 46,101,108,102, /* 0x1d60 */
|
||||||
|
45,101,110,116,114,121, 46, 98,105,110, 58, 32, 32, 32, 32, 32, /* 0x1d70 */
|
||||||
|
102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, /* 0x1d80 */
|
||||||
|
50, 45,108,105,116,116,108,101,109,105,112,115, 10, 10, 83,101, /* 0x1d90 */
|
||||||
|
99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, /* 0x1da0 */
|
||||||
|
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, /* 0x1db0 */
|
||||||
|
32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, /* 0x1dc0 */
|
||||||
|
65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, /* 0x1dd0 */
|
||||||
|
32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, /* 0x1de0 */
|
||||||
|
48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, /* 0x1df0 */
|
||||||
|
48, 48, 48, 48, 48, 48, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e00 */
|
||||||
|
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1e10 */
|
||||||
|
48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1e20 */
|
||||||
|
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1e30 */
|
||||||
|
69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 50, /* 0x1e40 */
|
||||||
|
69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, /* 0x1e50 */
|
||||||
|
49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1e60 */
|
||||||
|
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 99, /* 0x1e70 */
|
||||||
|
32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1e80 */
|
||||||
|
44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1e90 */
|
||||||
|
89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, /* 0x1ea0 */
|
||||||
|
32, 32, 32, 32, 48, 48, 48, 48, 48, 49,102, 48, 32, 32, 48, 48, /* 0x1eb0 */
|
||||||
|
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ec0 */
|
||||||
|
32, 32, 48, 48, 48, 48, 48, 50, 55, 52, 32, 32, 50, 42, 42, 48, /* 0x1ed0 */
|
||||||
|
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1ee0 */
|
||||||
|
67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, /* 0x1ef0 */
|
||||||
|
78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1f00 */
|
||||||
|
48, 48, 48, 49, 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f10 */
|
||||||
|
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f20 */
|
||||||
|
48, 52, 54, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1f30 */
|
||||||
|
69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1f40 */
|
||||||
|
68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, 95, 69, /* 0x1f50 */
|
||||||
|
76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, 99, /* 0x1f60 */
|
||||||
|
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f70 */
|
||||||
|
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, 49, 56, 32, 32, /* 0x1f80 */
|
||||||
|
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1f90 */
|
||||||
|
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, /* 0x1fa0 */
|
||||||
|
65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1fb0 */
|
||||||
|
97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1fc0 */
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, 56, /* 0x1fd0 */
|
||||||
|
52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1fe0 */
|
||||||
|
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, /* 0x1ff0 */
|
||||||
|
76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, /* 0x2000 */
|
||||||
|
48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2010 */
|
||||||
|
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2020 */
|
||||||
|
49, 49, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x2030 */
|
||||||
|
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x2040 */
|
||||||
|
32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, /* 0x2050 */
|
||||||
|
32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, /* 0x2060 */
|
||||||
|
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2070 */
|
||||||
|
48, 48, 48, 49, 99, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x2080 */
|
||||||
|
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x2090 */
|
||||||
|
89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, /* 0x20a0 */
|
||||||
|
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x20b0 */
|
||||||
|
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x20c0 */
|
||||||
|
32, 32, 48, 48, 48, 48, 49, 99, 51, 56, 32, 32, 50, 42, 42, 48, /* 0x20d0 */
|
||||||
|
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x20e0 */
|
||||||
|
79, 78, 76, 89, 10, 32, 32, 57, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x20f0 */
|
||||||
|
89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 53,101, 32, /* 0x2100 */
|
||||||
|
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2110 */
|
||||||
|
48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 51, 56, 32, 32, 50, /* 0x2120 */
|
||||||
|
42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x2130 */
|
||||||
|
69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x2140 */
|
||||||
|
49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, /* 0x2150 */
|
||||||
|
32, 48, 48, 48, 48, 48, 48, 99, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2160 */
|
||||||
|
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2170 */
|
||||||
|
48, 48, 48, 49, 99, 57, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x2180 */
|
||||||
|
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x2190 */
|
||||||
|
89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, /* 0x21a0 */
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x21b0 */
|
||||||
|
32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, /* 0x21c0 */
|
||||||
|
48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, /* 0x21d0 */
|
||||||
|
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, /* 0x21e0 */
|
||||||
|
77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, /* 0x21f0 */
|
||||||
|
76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2200 */
|
||||||
|
32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x2210 */
|
||||||
|
88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, /* 0x2220 */
|
||||||
|
73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2230 */
|
||||||
|
32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, /* 0x2240 */
|
||||||
|
48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, /* 0x2250 */
|
||||||
|
48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, /* 0x2260 */
|
||||||
|
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, /* 0x2270 */
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x2280 */
|
||||||
|
32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2290 */
|
||||||
|
78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x22a0 */
|
||||||
|
32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, /* 0x22b0 */
|
||||||
|
48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, /* 0x22c0 */
|
||||||
|
69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x22d0 */
|
||||||
|
32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, /* 0x22e0 */
|
||||||
|
48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, /* 0x22f0 */
|
||||||
|
68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2300 */
|
||||||
|
32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, /* 0x2310 */
|
||||||
|
48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, /* 0x2320 */
|
||||||
|
68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2330 */
|
||||||
|
32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, /* 0x2340 */
|
||||||
|
48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, /* 0x2350 */
|
||||||
|
68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2360 */
|
||||||
|
32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, /* 0x2370 */
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x2380 */
|
||||||
|
76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x2390 */
|
||||||
|
32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x23a0 */
|
||||||
|
48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x23b0 */
|
||||||
|
32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x23c0 */
|
||||||
|
48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, /* 0x23d0 */
|
||||||
|
48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x23e0 */
|
||||||
|
68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 74, 77, 80, 85, /* 0x23f0 */
|
||||||
|
10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x2400 */
|
||||||
|
32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2410 */
|
||||||
|
32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2420 */
|
||||||
|
32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x2430 */
|
||||||
|
48, 48, 48, 48, 48, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, /* 0x2440 */
|
||||||
|
48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x2450 */
|
||||||
|
42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, /* 0x2460 */
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2470 */
|
||||||
|
32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2480 */
|
||||||
|
65, 68, 82, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x2490 */
|
||||||
|
32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x24a0 */
|
||||||
|
48, 48, 48, 48, 32, 76, 69, 78, 88, 10, 48, 48, 48, 48, 48, 48, /* 0x24b0 */
|
||||||
|
50, 48, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, 77, 65, /* 0x24c0 */
|
||||||
|
73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, /* 0x24d0 */
|
||||||
|
97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x24e0 */
|
||||||
|
82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, /* 0x24f0 */
|
||||||
|
77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x2500 */
|
||||||
|
32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2510 */
|
||||||
|
32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2520 */
|
||||||
|
48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x2530 */
|
||||||
|
32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2540 */
|
||||||
|
52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x2550 */
|
||||||
|
32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2560 */
|
||||||
|
56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x2570 */
|
||||||
|
32, 32, 32, 32, 74, 77, 80, 85, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2580 */
|
||||||
|
99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x2590 */
|
||||||
|
32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 49, /* 0x25a0 */
|
||||||
|
48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x25b0 */
|
||||||
|
32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 49, /* 0x25c0 */
|
||||||
|
52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x25d0 */
|
||||||
|
32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 49, /* 0x25e0 */
|
||||||
|
56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x25f0 */
|
||||||
|
32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48, 48, 49, /* 0x2600 */
|
||||||
|
99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x2610 */
|
||||||
|
32, 32, 32, 32, 76, 69, 78, 88, 10, 48, 48, 48, 48, 48, 48, 50, /* 0x2620 */
|
||||||
|
48, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, /* 0x2630 */
|
||||||
|
32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, /* 0x2640 */
|
||||||
|
76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2650 */
|
||||||
|
32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, /* 0x2660 */
|
||||||
|
70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x2670 */
|
||||||
|
32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, /* 0x2680 */
|
||||||
|
48, 48, 48, 48, 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, /* 0x2690 */
|
||||||
|
67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x26a0 */
|
||||||
|
78, 89, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x26b0 */
|
||||||
|
69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, /* 0x26c0 */
|
||||||
|
68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x26d0 */
|
||||||
|
69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x26e0 */
|
||||||
|
65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, 82, 95, /* 0x26f0 */
|
||||||
|
77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, /* 0x2700 */
|
||||||
|
69, 76, 70, 77, 65, 73, 78, 89, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x2710 */
|
||||||
|
84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x2720 */
|
||||||
|
32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x2730 */
|
||||||
|
32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2740 */
|
||||||
|
32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x2750 */
|
||||||
|
48, 99, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x2760 */
|
||||||
|
32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 10, /* 0x2770 */
|
||||||
|
82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x2780 */
|
||||||
|
68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x2790 */
|
||||||
|
93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x27a0 */
|
||||||
|
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x27b0 */
|
||||||
|
76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 51, 56, 32, 82, 95, 77, /* 0x27c0 */
|
||||||
|
73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, /* 0x27d0 */
|
||||||
|
76, 70, 77, 65, 73, 78, 90, 10 /* 0x27e0 */
|
||||||
|
};
|
161
src/stub/mipsel.r3000-linux.elf-fold.h
Normal file
161
src/stub/mipsel.r3000-linux.elf-fold.h
Normal file
|
@ -0,0 +1,161 @@
|
||||||
|
/* mipsel.r3000-linux.elf-fold.h
|
||||||
|
created from mipsel.r3000-linux.elf-fold.bin, 1996 (0x7cc) bytes
|
||||||
|
|
||||||
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
|
Copyright (C) 1996-2007 Markus Franz Xaver Johannes Oberhumer
|
||||||
|
Copyright (C) 1996-2007 Laszlo Molnar
|
||||||
|
Copyright (C) 2000-2007 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
|
||||||
|
<mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 1996
|
||||||
|
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x2a4992e0
|
||||||
|
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0x96679e92
|
||||||
|
|
||||||
|
unsigned char stub_mipsel_r3000_linux_elf_fold[1996] = {
|
||||||
|
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
|
||||||
|
2, 0, 8, 0, 1, 0, 0, 0,128, 0, 16, 0, 52, 0, 0, 0, /* 0x 10 */
|
||||||
|
0, 0, 0, 0, 1, 48, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0, /* 0x 20 */
|
||||||
|
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, /* 0x 30 */
|
||||||
|
0, 0, 16, 0,204, 7, 0, 0,208, 7, 0, 0, 5, 0, 0, 0, /* 0x 40 */
|
||||||
|
0, 16, 0, 0, 1, 0, 0, 0,204, 7, 0, 0, 0, 0, 0, 0, /* 0x 50 */
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 60 */
|
||||||
|
0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 70 */
|
||||||
|
13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, /* 0x 80 */
|
||||||
|
13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, /* 0x 90 */
|
||||||
|
13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x a0 */
|
||||||
|
14, 0,128, 16, 1, 0, 3, 36, 0, 0,130,140, 0, 0, 0, 0, /* 0x b0 */
|
||||||
|
5, 0, 69, 16, 0, 0, 0, 0, 6, 0, 67, 20, 0, 0, 0, 0, /* 0x c0 */
|
||||||
|
4, 0,160, 16, 0, 0, 0, 0, 4, 0,134,172, 8, 0,224, 3, /* 0x d0 */
|
||||||
|
0, 0,133,172, 46, 0, 4, 8, 8, 0,132, 36, 8, 0,224, 3, /* 0x e0 */
|
||||||
|
0, 0, 0, 0,248,255,189, 39, 0, 0,191,175, 0, 0,130,140, /* 0x f0 */
|
||||||
|
4, 0,135,140, 43, 16, 70, 0, 7, 0, 64, 16, 33, 24,192, 0, /* 0x 100 */
|
||||||
|
40, 0, 4, 12,127, 0, 4, 36, 0, 0,226,144, 1, 0,231, 36, /* 0x 110 */
|
||||||
|
0, 0,162,160, 1, 0,165, 36,255,255, 99, 36,255,255, 2, 36, /* 0x 120 */
|
||||||
|
249,255, 98, 20, 0, 0, 0, 0, 4, 0,131,140, 0, 0,130,140, /* 0x 130 */
|
||||||
|
33, 24,102, 0, 35, 16, 70, 0, 0, 0,130,172, 4, 0,131,172, /* 0x 140 */
|
||||||
|
0, 0,191,143, 0, 0, 0, 0, 8, 0,224, 3, 8, 0,189, 39, /* 0x 150 */
|
||||||
|
216,255,189, 39, 28, 0,179,175, 24, 0,178,175, 20, 0,177,175, /* 0x 160 */
|
||||||
|
16, 0,176,175, 33,136,128, 0, 33,128,160, 0, 33,152,192, 0, /* 0x 170 */
|
||||||
|
33,144,224, 0,176, 0, 4, 8, 32, 0,191,175, 33, 32, 32, 2, /* 0x 180 */
|
||||||
|
61, 0, 4, 12, 4, 0,165, 39, 4, 0,163,143, 8, 0,166,143, /* 0x 190 */
|
||||||
|
10, 0, 96, 20, 88, 33, 2, 60, 85, 80, 66, 52, 9, 0,194, 20, /* 0x 1a0 */
|
||||||
|
0, 0, 0, 0, 0, 0, 34,142, 0, 0, 0, 0, 5, 0, 64, 20, /* 0x 1b0 */
|
||||||
|
0, 0, 0, 0,180, 0, 4, 8, 0, 0, 0, 0, 3, 0,192, 20, /* 0x 1c0 */
|
||||||
|
43, 16,102, 0, 40, 0, 4, 12,127, 0, 4, 36,253,255, 64, 20, /* 0x 1d0 */
|
||||||
|
0, 0, 0, 0, 0, 0, 2,142, 0, 0, 0, 0, 43, 16, 67, 0, /* 0x 1e0 */
|
||||||
|
248,255, 64, 20, 43, 16,195, 0, 4, 0, 7,142, 39, 0, 64, 16, /* 0x 1f0 */
|
||||||
|
33, 40,224, 0, 4, 0, 36,142, 12, 0,168,143, 33, 40,192, 0, /* 0x 200 */
|
||||||
|
0, 0,163,175, 33, 48,224, 0, 9,248, 96, 2, 33, 56,160, 3, /* 0x 210 */
|
||||||
|
236,255, 64, 20, 0, 0, 0, 0, 0, 0,165,143, 4, 0,162,143, /* 0x 220 */
|
||||||
|
0, 0, 0, 0,231,255,162, 20, 0, 0, 0, 0, 13, 0,167,147, /* 0x 230 */
|
||||||
|
0, 0, 0, 0, 13, 0,224, 16, 0, 0, 0, 0, 11, 0, 64, 18, /* 0x 240 */
|
||||||
|
1, 2,162, 44, 5, 0, 64, 16, 0, 0, 0, 0, 0, 0, 2,142, /* 0x 250 */
|
||||||
|
0, 0, 0, 0, 5, 0, 69, 20, 0, 0, 0, 0, 4, 0, 4,142, /* 0x 260 */
|
||||||
|
14, 0,166,147, 9,248, 64, 2, 0, 0, 0, 0, 8, 0,162,143, /* 0x 270 */
|
||||||
|
4, 0, 35,142, 0, 0, 36,142, 33, 24, 98, 0, 35, 32,130, 0, /* 0x 280 */
|
||||||
|
4, 0, 35,174,169, 0, 4, 8, 0, 0, 36,174, 61, 0, 4, 12, /* 0x 290 */
|
||||||
|
33, 32, 32, 2, 4, 0,162,143, 4, 0, 3,142, 0, 0, 4,142, /* 0x 2a0 */
|
||||||
|
33, 24, 98, 0, 35, 32,130, 0, 4, 0, 3,174, 0, 0, 4,174, /* 0x 2b0 */
|
||||||
|
0, 0, 2,142, 0, 0, 0, 0,176,255, 64, 20, 12, 0, 6, 36, /* 0x 2c0 */
|
||||||
|
32, 0,191,143, 28, 0,179,143, 24, 0,178,143, 20, 0,177,143, /* 0x 2d0 */
|
||||||
|
16, 0,176,143, 8, 0,224, 3, 40, 0,189, 39,176,255,189, 39, /* 0x 2e0 */
|
||||||
|
72, 0,190,175, 64, 0,182,175, 44, 0,177,175, 40, 0,176,175, /* 0x 2f0 */
|
||||||
|
76, 0,191,175, 68, 0,183,175, 60, 0,181,175, 56, 0,180,175, /* 0x 300 */
|
||||||
|
52, 0,179,175, 48, 0,178,175, 16, 0,162,148, 28, 0,163,140, /* 0x 310 */
|
||||||
|
33,176,160, 0, 2, 0, 66, 56, 44, 0,165,148, 33,136,195, 2, /* 0x 320 */
|
||||||
|
1, 0, 66, 44, 24, 0,164,175, 33,240,192, 0, 28, 0,167,175, /* 0x 330 */
|
||||||
|
32, 0,168,175, 0, 57, 2, 0,255,255,165, 36, 33, 32, 32, 2, /* 0x 340 */
|
||||||
|
255,255, 16, 36, 33, 48, 0, 0, 1, 0, 8, 36,236, 0, 4, 8, /* 0x 350 */
|
||||||
|
36, 0,169,175, 0, 0,130,140, 0, 0, 0, 0, 14, 0, 72, 20, /* 0x 360 */
|
||||||
|
0, 0, 0, 0, 8, 0,131,140, 0, 0, 0, 0, 43, 16,112, 0, /* 0x 370 */
|
||||||
|
2, 0, 64, 16, 0, 0, 0, 0, 33,128, 96, 0, 20, 0,130,140, /* 0x 380 */
|
||||||
|
0, 0, 0, 0, 33, 24, 98, 0, 43, 16,195, 0, 2, 0, 64, 16, /* 0x 390 */
|
||||||
|
0, 0, 0, 0, 33, 48, 96, 0, 32, 0,132, 36,255,255,165, 36, /* 0x 3a0 */
|
||||||
|
236,255,161, 4,255,255, 3, 52,255,255, 4, 60, 36,128, 4, 2, /* 0x 3b0 */
|
||||||
|
35, 16,208, 0, 33, 16, 67, 0, 36, 16, 68, 0, 34, 0,231, 36, /* 0x 3c0 */
|
||||||
|
33, 32, 0, 2, 33, 40, 64, 0, 33, 48, 0, 0,255,255, 8, 36, /* 0x 3d0 */
|
||||||
|
33, 72, 0, 0, 36, 0, 4, 12, 8, 0,162,175, 35,184, 80, 0, /* 0x 3e0 */
|
||||||
|
12, 0,162,175, 90, 1, 4, 8, 16, 0,160,175, 0, 0, 35,142, /* 0x 3f0 */
|
||||||
|
0, 0, 0, 0, 8, 0, 98, 20, 1, 0, 2, 36, 8, 0, 38,142, /* 0x 400 */
|
||||||
|
28, 0,164,143, 33, 48,230, 2, 44, 0, 4, 12, 3, 0, 5, 36, /* 0x 410 */
|
||||||
|
86, 1, 4, 8, 0, 0, 0, 0, 75, 0, 98, 20, 0, 0, 0, 0, /* 0x 420 */
|
||||||
|
8, 0, 34,142, 24, 0, 35,142, 33,168,226, 2, 81,115, 2, 60, /* 0x 430 */
|
||||||
|
128, 24, 3, 0, 64, 98, 66, 52, 6, 16, 98, 0, 16, 0, 42,142, /* 0x 440 */
|
||||||
|
7, 0, 82, 48, 20, 0, 34,142,255,255,163, 50, 20, 0,162,175, /* 0x 450 */
|
||||||
|
33,152, 67, 1, 93, 0,192, 19, 35,160,163, 2, 2, 0, 70, 54, /* 0x 460 */
|
||||||
|
255,255, 8, 36, 50, 0, 7, 36, 4, 0, 41,142, 33, 32,128, 2, /* 0x 470 */
|
||||||
|
35, 72, 35, 1, 33, 40, 96, 2, 0, 0,170,175, 36, 0, 4, 12, /* 0x 480 */
|
||||||
|
4, 0,181,175, 31, 0,130, 22, 0, 0, 0, 0, 11, 0,192, 19, /* 0x 490 */
|
||||||
|
4, 0, 66, 50, 4, 0, 64, 16, 0, 0, 0, 0, 36, 0,167,143, /* 0x 4a0 */
|
||||||
|
47, 1, 4, 8, 0, 0, 0, 0, 33, 56, 0, 0, 24, 0,166,143, /* 0x 4b0 */
|
||||||
|
33, 32,192, 3, 88, 0, 4, 12, 33, 40,160, 3, 35, 16, 19, 0, /* 0x 4c0 */
|
||||||
|
2, 0, 67, 50, 8, 0, 96, 16,255,255, 80, 48, 6, 0, 0, 18, /* 0x 4d0 */
|
||||||
|
33, 24,147, 2, 33, 16, 0, 2,255,255, 66, 36, 0, 0, 96,160, /* 0x 4e0 */
|
||||||
|
253,255, 64, 20, 1, 0, 99, 36, 8, 0,192, 19, 33, 32,128, 2, /* 0x 4f0 */
|
||||||
|
33, 40, 96, 2, 34, 0, 4, 12, 33, 48, 64, 2, 3, 0, 64, 16, /* 0x 500 */
|
||||||
|
0, 0, 0, 0, 40, 0, 4, 12,127, 0, 4, 36, 20, 0,163,143, /* 0x 510 */
|
||||||
|
33, 16,112, 2, 33, 40,163, 2, 33,128,130, 2, 43, 16, 5, 2, /* 0x 520 */
|
||||||
|
9, 0, 64, 16, 35, 40,176, 0, 33, 48, 64, 2, 33, 32, 0, 2, /* 0x 530 */
|
||||||
|
50, 0, 7, 36,255,255, 8, 36, 36, 0, 4, 12, 33, 72, 0, 0, /* 0x 540 */
|
||||||
|
240,255, 2, 22, 0, 0, 0, 0, 16, 0,162,143, 32, 0, 49, 38, /* 0x 550 */
|
||||||
|
1, 0, 66, 36, 16, 0,162,175, 44, 0,194,150, 16, 0,163,143, /* 0x 560 */
|
||||||
|
0, 0, 0, 0, 42, 16, 98, 0,160,255, 64, 20, 6, 0, 2, 36, /* 0x 570 */
|
||||||
|
8, 0,192, 23, 3, 0, 2, 36, 24, 0,164,143, 39, 0, 4, 12, /* 0x 580 */
|
||||||
|
0, 0, 0, 0,223,255, 64, 20, 0, 0, 0, 0,113, 1, 4, 8, /* 0x 590 */
|
||||||
|
0, 0, 0, 0, 16, 0,195,150, 0, 0, 0, 0, 5, 0, 98, 16, /* 0x 5a0 */
|
||||||
|
0, 0, 0, 0, 12, 0,162,143, 8, 0,163,143, 35, 0, 4, 12, /* 0x 5b0 */
|
||||||
|
33, 32, 67, 0, 32, 0,162,143, 0, 0, 0, 0, 7, 0, 64, 16, /* 0x 5c0 */
|
||||||
|
0, 0, 0, 0,123, 1, 4, 8, 0, 0, 87,172, 24, 0,168,143, /* 0x 5d0 */
|
||||||
|
33, 48, 64, 2, 30, 1, 4, 8, 18, 0, 7, 36, 24, 0,194,142, /* 0x 5e0 */
|
||||||
|
76, 0,191,143, 33, 16,226, 2, 72, 0,190,143, 68, 0,183,143, /* 0x 5f0 */
|
||||||
|
64, 0,182,143, 60, 0,181,143, 56, 0,180,143, 52, 0,179,143, /* 0x 600 */
|
||||||
|
48, 0,178,143, 44, 0,177,143, 40, 0,176,143, 8, 0,224, 3, /* 0x 610 */
|
||||||
|
80, 0,189, 39,192,255,189, 39, 60, 0,191,175, 52, 0,181,175, /* 0x 620 */
|
||||||
|
48, 0,180,175, 44, 0,179,175, 40, 0,178,175, 32, 0,176,175, /* 0x 630 */
|
||||||
|
56, 0,182,175, 36, 0,177,175, 4, 0, 22,141, 0, 0, 49,141, /* 0x 640 */
|
||||||
|
0, 0, 3,141, 4, 0, 34,141, 4, 0,180, 39, 33,128,128, 0, /* 0x 650 */
|
||||||
|
33,144,160, 0, 33,168,224, 0, 33, 32,128, 2, 33, 56, 0, 0, /* 0x 660 */
|
||||||
|
12, 0,165, 39, 24, 0,170,175, 12, 0,163,175, 33,152,192, 0, /* 0x 670 */
|
||||||
|
8, 0,162,175, 4, 0,177,175, 88, 0, 4, 12, 16, 0,182,175, /* 0x 680 */
|
||||||
|
8, 0,162,143, 44, 0,198,150, 35, 16, 81, 0, 5, 0, 5, 36, /* 0x 690 */
|
||||||
|
33, 32, 0, 2, 8, 0,162,175, 44, 0, 4, 12, 4, 0,178,175, /* 0x 6a0 */
|
||||||
|
42, 0,198,150, 33, 32, 0, 2, 44, 0, 4, 12, 4, 0, 5, 36, /* 0x 6b0 */
|
||||||
|
52, 0,210, 38, 24, 0,166,143, 8, 0, 66,142, 52, 0,198, 36, /* 0x 6c0 */
|
||||||
|
33, 48,194, 0, 33, 32, 0, 2, 44, 0, 4, 12, 3, 0, 5, 36, /* 0x 6d0 */
|
||||||
|
33, 32, 96, 2, 33, 40,192, 2, 33, 48,128, 2, 33, 56, 0, 2, /* 0x 6e0 */
|
||||||
|
33, 64,160, 3,187, 0, 4, 12, 33, 72,160, 2, 33, 48, 64, 0, /* 0x 6f0 */
|
||||||
|
33, 32, 0, 2, 9, 0, 5, 36, 44, 0, 4, 12, 33,136, 64, 0, /* 0x 700 */
|
||||||
|
44, 0,197,150,229, 1, 4, 8, 33, 32, 0, 0, 0, 0, 67,142, /* 0x 710 */
|
||||||
|
0, 0, 0, 0, 26, 0, 98, 20, 1, 0,132, 36, 8, 0, 66,142, /* 0x 720 */
|
||||||
|
0, 0,164,143, 33, 40, 0, 0, 33, 32, 68, 0, 38, 0, 4, 12, /* 0x 730 */
|
||||||
|
33, 48, 0, 0, 8, 0, 64, 4, 33,128, 64, 0, 33, 32, 64, 0, /* 0x 740 */
|
||||||
|
33, 40,192, 2, 37, 0, 4, 12, 0, 2, 6, 36, 0, 2, 3, 36, /* 0x 750 */
|
||||||
|
3, 0, 67, 16, 33, 48, 0, 0, 40, 0, 4, 12,127, 0, 4, 36, /* 0x 760 */
|
||||||
|
33, 32, 0, 2, 33, 40,192, 2, 33, 56, 0, 0, 33, 64, 0, 0, /* 0x 770 */
|
||||||
|
187, 0, 4, 12, 33, 72, 0, 0,232, 1, 4, 8, 33,136, 64, 0, /* 0x 780 */
|
||||||
|
32, 0, 82, 38, 42, 16,133, 0,224,255, 64, 20, 3, 0, 2, 36, /* 0x 790 */
|
||||||
|
33, 16, 32, 2, 60, 0,191,143, 56, 0,182,143, 52, 0,181,143, /* 0x 7a0 */
|
||||||
|
48, 0,180,143, 44, 0,179,143, 40, 0,178,143, 36, 0,177,143, /* 0x 7b0 */
|
||||||
|
32, 0,176,143, 8, 0,224, 3, 64, 0,189, 39 /* 0x 7c0 */
|
||||||
|
};
|
|
@ -30,41 +30,11 @@
|
||||||
<jreiser@users.sourceforge.net> <jssg@users.sourceforge.net>
|
<jreiser@users.sourceforge.net> <jssg@users.sourceforge.net>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
section lzma.init
|
|
||||||
li tmp,%lo(lzma_stack_adjust-lzma_args_sz)
|
|
||||||
addu sp,tmp
|
|
||||||
/*
|
|
||||||
move var,sp
|
|
||||||
1:
|
|
||||||
sw zero,0(var)
|
|
||||||
addiu tmp,4
|
|
||||||
bnez tmp,1b
|
|
||||||
addiu var,4
|
|
||||||
*/
|
|
||||||
addiu src,2
|
|
||||||
la inSize,lzma_c_len
|
|
||||||
la outSize,lzma_u_len
|
|
||||||
|
|
||||||
addu poutSizeProcessed,sp,outSizeProcessed
|
|
||||||
addiu pinSizeprocessed,sp,inSizeProcessed
|
|
||||||
|
|
||||||
la tmp,lzma_properties
|
|
||||||
sw dst,dst_save(sp)
|
|
||||||
addiu CLzmaDecoderState,sp,lzma_args_sz
|
|
||||||
bal decompressor
|
|
||||||
sw tmp,0(CLzmaDecoderState)
|
|
||||||
lw dst,dst_save(sp)
|
|
||||||
lw outSize,outSizeProcessed(sp)
|
|
||||||
li tmp,%lo(lzma_stack_adjust-lzma_args_sz)
|
|
||||||
addu dst,outSize
|
|
||||||
subu sp,tmp
|
|
||||||
|
|
||||||
section LZMA_DEC10
|
section LZMA_DEC10
|
||||||
#include "lzma_d_cs.S"
|
#include "lzma_d_cs.S"
|
||||||
|
|
||||||
section LZMA_DEC20
|
section LZMA_DEC20
|
||||||
#include "lzma_d_cf.S"
|
#include "lzma_d_cf.S"
|
||||||
|
|
||||||
|
|
||||||
// vi:ts=8:et
|
// vi:ts=8:et
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,9 @@ struct timespec {
|
||||||
#elif defined(__i386__) || defined(__powerpc__) || defined(__arm__)
|
#elif defined(__i386__) || defined(__powerpc__) || defined(__arm__)
|
||||||
#define PAGE_MASK (~0ul<<12) // discards the offset, keeps the page
|
#define PAGE_MASK (~0ul<<12) // discards the offset, keeps the page
|
||||||
#define PAGE_SIZE ( 1ul<<12)
|
#define PAGE_SIZE ( 1ul<<12)
|
||||||
|
#elif defined(__mips__)
|
||||||
|
#define PAGE_MASK (~0ul<<16) // discards the offset, keeps the page
|
||||||
|
#define PAGE_SIZE ( 1ul<<16)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SEEK_SET 0
|
#define SEEK_SET 0
|
||||||
|
|
286
src/stub/src/mipsel.r3000-linux.elf-entry.S
Normal file
286
src/stub/src/mipsel.r3000-linux.elf-entry.S
Normal file
|
@ -0,0 +1,286 @@
|
||||||
|
/* mipsel-linux.elf-entry.S -- Linux program entry point & decompressor (Elf binary)
|
||||||
|
*
|
||||||
|
* This file is part of the UPX executable compressor.
|
||||||
|
*
|
||||||
|
* Copyright (C) 1996-2007 Markus Franz Xaver Johannes Oberhumer
|
||||||
|
* Copyright (C) 1996-2007 Laszlo Molnar
|
||||||
|
* Copyright (C) 2000-2007 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
|
||||||
|
* <mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* John F. Reiser
|
||||||
|
* <jreiser@users.sourceforge.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "arch/mips/mipsel.r3000/macros.ash"
|
||||||
|
#include "arch/mips/mipsel.r3000/bits.ash"
|
||||||
|
|
||||||
|
.set mips1
|
||||||
|
.set noreorder
|
||||||
|
.set noat
|
||||||
|
.altmacro
|
||||||
|
|
||||||
|
sz_Ehdr= 52
|
||||||
|
sz_Phdr= 32
|
||||||
|
|
||||||
|
sz_l_info= 12
|
||||||
|
l_lsize= 8
|
||||||
|
|
||||||
|
sz_p_info= 12
|
||||||
|
|
||||||
|
sz_b_info= 12
|
||||||
|
sz_unc= 0
|
||||||
|
sz_cpr= 4
|
||||||
|
b_method= 8
|
||||||
|
b_ftid= 9
|
||||||
|
b_cto8= 10
|
||||||
|
b_unused=11
|
||||||
|
|
||||||
|
PROT_READ= 1
|
||||||
|
PROT_WRITE= 2
|
||||||
|
PROT_EXEC= 4
|
||||||
|
|
||||||
|
MAP_PRIVATE= 2
|
||||||
|
MAP_FIXED= 0x10
|
||||||
|
MAP_ANONYMOUS= 0x1000
|
||||||
|
|
||||||
|
PAGE_SHIFT= 12
|
||||||
|
PAGE_MASK= (~0<<PAGE_SHIFT)
|
||||||
|
PAGE_SIZE= -PAGE_MASK
|
||||||
|
|
||||||
|
M_NRV2B_LE32=2 // ../conf.h
|
||||||
|
M_NRV2D_LE32=5
|
||||||
|
M_NRV2E_LE32=8
|
||||||
|
|
||||||
|
//BAL=0x04110000
|
||||||
|
|
||||||
|
section ELFMAINX
|
||||||
|
sz_pack2 = . - 4
|
||||||
|
adrm: .long ADRM
|
||||||
|
lenm: .long LENM
|
||||||
|
jmpu: .long JMPU
|
||||||
|
adru: .long ADRU
|
||||||
|
adrc: .long ADRC
|
||||||
|
lenu: .long LENU
|
||||||
|
adrx: .long ADRX
|
||||||
|
lenx: .long LENX
|
||||||
|
_start: .globl _start
|
||||||
|
bal main
|
||||||
|
addiu s7,ra, decompressor - 0f // s7= &decompress
|
||||||
|
0:
|
||||||
|
|
||||||
|
/* Returns 0 on success; non-zero on failure. */
|
||||||
|
decompressor: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method)
|
||||||
|
|
||||||
|
#include "arch/mips/mipsel.r3000/nrv2e_d.ash"
|
||||||
|
section NRV2E
|
||||||
|
nrv2e eof
|
||||||
|
|
||||||
|
#include "arch/mips/mipsel.r3000/nrv2d_d.ash"
|
||||||
|
section NRV2D
|
||||||
|
nrv2d eof
|
||||||
|
|
||||||
|
#include "arch/mips/mipsel.r3000/nrv2b_d.ash"
|
||||||
|
section NRV2B
|
||||||
|
nrv2b eof
|
||||||
|
|
||||||
|
section LZMA_ELF00 # (a0=lxsrc, a1=lxsrclen, a2=lxdst, a3= &lxdstlen)
|
||||||
|
#define lxsrc a0
|
||||||
|
#define lxsrclen a1
|
||||||
|
#define lxdst a2
|
||||||
|
#define lxdstlen a3
|
||||||
|
|
||||||
|
/* LzmaDecode(a0=CLzmaDecoderState *,
|
||||||
|
a1=src, a2=srclen, a3=*psrcdone,
|
||||||
|
dst, dstlen, *pdstdone);
|
||||||
|
struct CLzmaDecoderState {
|
||||||
|
uchar lit_context_bits;
|
||||||
|
uchar lit_pos_bits;
|
||||||
|
uchar pos_bits;
|
||||||
|
uchar unused;
|
||||||
|
struct CProb[LZMA_BASE_SIZE + (LZMA_LIT_SIZE<<n)];
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
LZMA_BASE_NUM = 1846
|
||||||
|
LZMA_LIT_NUM = 768
|
||||||
|
|
||||||
|
lxlzma_szframe = 12*4
|
||||||
|
lxlzma_oldsp = 11*4
|
||||||
|
lxlzma_origdst = 10*4
|
||||||
|
lxlzma_origsrc = 9*4
|
||||||
|
lxlzma_dstdone = 8*4
|
||||||
|
lxlzma_srcdone = 7*4
|
||||||
|
lxlzma_pdstdone = 6*4
|
||||||
|
lxlzma_dstlen = 5*4
|
||||||
|
lxlzma_dst = 4*4
|
||||||
|
|
||||||
|
lbu t0,0(lxsrc) # ((lit_context_bits + lit_pos_bits)<<3) | pos_bits
|
||||||
|
lbu t1,1(lxsrc) # (lit_pos_bits<<4) | lit_context_bits
|
||||||
|
andi v0,t0,7 # pos_bits
|
||||||
|
srl t0,t0,3 # (lit_context_bits + lit_pos_bits)
|
||||||
|
li tmp,-2*LZMA_LIT_NUM
|
||||||
|
sllv tmp,tmp,t0
|
||||||
|
addiu tmp,tmp,-4 - 2*LZMA_BASE_NUM - lxlzma_szframe
|
||||||
|
addu sp,sp,tmp
|
||||||
|
sw tmp, lxlzma_oldsp(sp) # dynamic frame size
|
||||||
|
addiu tmp,sp,lxlzma_dstdone
|
||||||
|
sw tmp, lxlzma_pdstdone(sp)
|
||||||
|
sw lxdstlen,lxlzma_dstlen(sp)
|
||||||
|
sw lxdst, lxlzma_dst(sp)
|
||||||
|
addiu a3,sp,lxlzma_srcdone
|
||||||
|
move a2,lxsrclen
|
||||||
|
addiu a1,lxsrc,2
|
||||||
|
addiu a0,sp,lxlzma_szframe # &CLzamDecoderState
|
||||||
|
sb v0,2(a0) # pos_bits
|
||||||
|
andi tmp,t1,0xf
|
||||||
|
sb tmp,0(a0) # lit_context_bits
|
||||||
|
srl t1,t1,4
|
||||||
|
sb t1,1(a0) # lit_pos_bits
|
||||||
|
jalr s7
|
||||||
|
|
||||||
|
lw tmp, lxlzma_oldsp(sp)
|
||||||
|
lw lxdst, lxlzma_origdst(sp)
|
||||||
|
lw lxdstlen,lxlzma_dstdone(sp)
|
||||||
|
subu sp,tmp
|
||||||
|
|
||||||
|
#include "arch/mips/mipsel.r3000/lzma_d.S"
|
||||||
|
|
||||||
|
section LZMA_DEC30
|
||||||
|
break // FIXME
|
||||||
|
|
||||||
|
section NRV_TAIL
|
||||||
|
// empty
|
||||||
|
|
||||||
|
.macro pop reg
|
||||||
|
lw \reg,0(sp)
|
||||||
|
addiu sp,sp,4
|
||||||
|
.endm
|
||||||
|
|
||||||
|
section ELFMAINY
|
||||||
|
eof:
|
||||||
|
pop t0; sub v0,v0,t0 // src -= eof; // return 0: good; else: bad
|
||||||
|
pop t0; sub s0,s0,t0 // dst -= original_dst
|
||||||
|
pop t0; sw s0,(t0) // actual length used t0 dst
|
||||||
|
pop t0; jr t0; nop
|
||||||
|
|
||||||
|
/* These from /usr/include/sys/syscall.h */
|
||||||
|
SYS_write = 4
|
||||||
|
SYS_exit = 1
|
||||||
|
SYS_mmap = 197
|
||||||
|
SYS___syscall= 198
|
||||||
|
|
||||||
|
msg_SELinux:
|
||||||
|
addiu a2,zero,L71 - L70 // length
|
||||||
|
bal L72
|
||||||
|
move a1,ra
|
||||||
|
L70:
|
||||||
|
.asciz "PROT_EXEC|PROT_WRITE failed.\n"
|
||||||
|
L71:
|
||||||
|
// IDENTSTR goes here
|
||||||
|
|
||||||
|
section ELFMAINZ
|
||||||
|
L72:
|
||||||
|
li a0,2 // fd stderr
|
||||||
|
li v0,SYS_write
|
||||||
|
syscall
|
||||||
|
die:
|
||||||
|
li a0,127
|
||||||
|
li v0,SYS_exit
|
||||||
|
syscall
|
||||||
|
|
||||||
|
/* Decompress the rest of this loader, and jump to it.
|
||||||
|
Map a page to hold the decompressed bytes. Logically this could
|
||||||
|
be done by setting .p_memsz for our first PT_LOAD. But as of 2005-11-09,
|
||||||
|
linux 2.6.14 only does ".bss expansion" on the PT_LOAD that describes the
|
||||||
|
highest address. [I regard this as a bug, and it makes the kernel's
|
||||||
|
fs/binfmt_elf.c complicated, buggy, and insecure.] For us, that is the 2nd
|
||||||
|
PT_LOAD, which is the only way that linux allows to set the brk() for the
|
||||||
|
uncompressed program. [This is a significant kernel misfeature.]
|
||||||
|
*/
|
||||||
|
unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2
|
||||||
|
// compute s5= &decompressor - &b_info(user)
|
||||||
|
addiu s5,s5,(decompressor - sz_pack2) - (sz_Ehdr + 2*sz_Phdr + sz_l_info + sz_p_info)
|
||||||
|
|
||||||
|
/* Get some pages. If small, then get 1 page located just after the end
|
||||||
|
of the first PT_LOAD of the compressed program. This will still be below
|
||||||
|
all of the uncompressed program. If large (>=3MB uncompressed), then enough
|
||||||
|
to duplicate the entire compressed PT_LOAD, plus 1 page, located just after
|
||||||
|
the brk() of the _un_compressed program. The address and length are pre-
|
||||||
|
calculated by PackLinuxElf64amd::defineSymbols().
|
||||||
|
*/
|
||||||
|
#define a0_mmap a2
|
||||||
|
#define a1_mmap a3
|
||||||
|
#define a2_mmap 0x10
|
||||||
|
#define a3_mmap 0x14
|
||||||
|
#define a4_mmap 0x18
|
||||||
|
#define a5_mmap 0x1c
|
||||||
|
#define sp_frame 0x20
|
||||||
|
|
||||||
|
lw a0_mmap,adrm - decompressor(s7)
|
||||||
|
addiu sp,sp,-sp_frame
|
||||||
|
lw a1_mmap,lenm - decompressor(s7)
|
||||||
|
li t0, PROT_READ | PROT_WRITE | PROT_EXEC
|
||||||
|
sw t0,a2_mmap(sp)
|
||||||
|
li t0, MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS
|
||||||
|
sw t0,a3_mmap(sp)
|
||||||
|
li a1,0
|
||||||
|
sw zero,a4_mmap(sp) //; sw zero,a5_mmap(sp) // MAP_ANON ==> ignore offset
|
||||||
|
li a0,SYS_mmap
|
||||||
|
li v0,SYS___syscall
|
||||||
|
syscall // FIXME: check for error
|
||||||
|
move a0,v0 // &new page(s)
|
||||||
|
|
||||||
|
lw a1,adrc - decompressor(s7)
|
||||||
|
lw s4,jmpu - decompressor(s7) // for unmap in fold
|
||||||
|
lw s3,adru - decompressor(s7) // for unmap in fold
|
||||||
|
lw s2,lenu - decompressor(s7) // for unmap in fold
|
||||||
|
lw s1,adrx - decompressor(s7) // for upx_main
|
||||||
|
|
||||||
|
beq a0,a1,L80 // no copy
|
||||||
|
subu t0,a0,a1 // (ADRM - ADRC) == relocation amount
|
||||||
|
addu s7,s7,t0 // update &decompress
|
||||||
|
move a2,s5 // length
|
||||||
|
move_up: // memcpy(dst=a0, src=a1, len=round_up(a2, 8))
|
||||||
|
lw t0, 0(a1); addiu a0,a0, 8
|
||||||
|
lw t1, 4(a1); addiu a2,a2,-8
|
||||||
|
sw t0,-8(a0); addiu a1,a1, 8
|
||||||
|
bgtz a2,move_up
|
||||||
|
sw t1,-4(a0)
|
||||||
|
L80:
|
||||||
|
// Decompress the folded part of this stub, then execute it.
|
||||||
|
lw t0,sz_unc(s6); move a3,sp; sw t0,0(sp) // &dst_len
|
||||||
|
move a2,v0 // &dst
|
||||||
|
lw a1,sz_cpr(s6) // src_len
|
||||||
|
move a0,s6 // &b_info(fold)
|
||||||
|
jr s7 // decompress(src, srclen, dst, &dstlen /*, method*/)
|
||||||
|
move ra,a2 // return to decompressed code
|
||||||
|
main:
|
||||||
|
lw s5,sz_pack2 - decompressor(s7) // length before stub
|
||||||
|
bal unfold
|
||||||
|
move s6,ra
|
||||||
|
// { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...}
|
||||||
|
|
||||||
|
/*__XTHEENDX__*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
vi:ts=8:et:nowrap
|
||||||
|
*/
|
||||||
|
|
162
src/stub/src/mipsel.r3000-linux.elf-fold.S
Normal file
162
src/stub/src/mipsel.r3000-linux.elf-fold.S
Normal file
|
@ -0,0 +1,162 @@
|
||||||
|
/* mipsel-linux.elf-fold.S -- linkage to C code to process Elf binary
|
||||||
|
*
|
||||||
|
* This file is part of the UPX executable compressor.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2000-2007 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
|
||||||
|
* <mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
|
||||||
|
*
|
||||||
|
* John F. Reiser
|
||||||
|
* <jreiser@users.sourceforge.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "arch/mips/mipsel.r3000/macros.ash"
|
||||||
|
#include "arch/mips/mipsel.r3000/bits.ash"
|
||||||
|
|
||||||
|
PAGE_SHIFT= 12
|
||||||
|
PAGE_MASK= 0xffffffffffffffff<<PAGE_SHIFT
|
||||||
|
|
||||||
|
sz_b_info= 12
|
||||||
|
sz_unc= 0
|
||||||
|
sz_cpr= 4
|
||||||
|
|
||||||
|
sz_l_info= 12
|
||||||
|
sz_p_info= 12
|
||||||
|
|
||||||
|
OVERHEAD=2048
|
||||||
|
MAX_ELF_HDR=1024
|
||||||
|
|
||||||
|
SYS_read= 3
|
||||||
|
SYS_open= 5
|
||||||
|
SYS_close= 6
|
||||||
|
|
||||||
|
SYS___syscall= 198
|
||||||
|
SYS_mmap= 197
|
||||||
|
SYS_mprotect= 74
|
||||||
|
SYS_munmap= 73
|
||||||
|
|
||||||
|
SYS_exit= 1
|
||||||
|
SYS_readlink= 58
|
||||||
|
|
||||||
|
break
|
||||||
|
#if 0 /*{*/
|
||||||
|
/* In:
|
||||||
|
cld
|
||||||
|
%rbp= &decompress
|
||||||
|
%rsp= &{LENX,ADRX,LENU,ADRU,JMPU,argc,argv...,0,env...,0,auxv...,0...,strings}
|
||||||
|
*/
|
||||||
|
fold_begin:
|
||||||
|
call L90 # push &L90a
|
||||||
|
L90a:
|
||||||
|
.asciz "/proc/self/exe"
|
||||||
|
L90b:
|
||||||
|
#include "arch/amd64/bxx.S"
|
||||||
|
L90:
|
||||||
|
pop %arg6 # L90a; later, &amdbxx: f_unfilter
|
||||||
|
movq %rsp,%rsi
|
||||||
|
leaq -8 -4 -4 -4096(%rsi),%rdi # 8:ptr, 4:" =", 4:align, 4096:buffer
|
||||||
|
movq %rdi,%rsp
|
||||||
|
0:
|
||||||
|
cmpq $0,(%rsi); movsq; jne 0b # move past argv
|
||||||
|
movq %rdi,%arg3 # remember &new_env[0]
|
||||||
|
stosq # space for new_env[0]
|
||||||
|
0:
|
||||||
|
cmpq $0,(%rsi); movsq; jne 0b # move past env
|
||||||
|
pushq %rdi # &Elf64_auxv
|
||||||
|
0:
|
||||||
|
cmpq $0,(%rsi); movsq; movsq; jne 0b # move past auxv
|
||||||
|
|
||||||
|
movq %rdi,(%arg3) # new_env[0]
|
||||||
|
movl $('='<<24)|(' '<<16)|(' '<<8)|(' '<<0),%eax # " ="
|
||||||
|
stosl
|
||||||
|
movl $4096,%arg3l # buflen
|
||||||
|
movq %rdi,%arg2 # buffer
|
||||||
|
movq %arg6,%arg1 # "/proc/self/exe"
|
||||||
|
push $ SYS_readlink; pop %rax
|
||||||
|
syscall; testl %eax,%eax; js 0f; movb $0,(%arg2,%rax)
|
||||||
|
0:
|
||||||
|
addq $ L90b - L90a,%arg6 # &amdbxx: f_unfilter
|
||||||
|
pop %arg4 # &Elf64_auxv
|
||||||
|
pop %arg2 # LENX
|
||||||
|
pop %arg1 # ADRX
|
||||||
|
|
||||||
|
subq $ OVERHEAD,%rsp
|
||||||
|
movq %rsp,%arg3 # &ELf64_Ehdr temporary space
|
||||||
|
movq %rbp,%arg5 # &decompress: f_expand
|
||||||
|
call upx_main # Out: %rax= entry
|
||||||
|
/* entry= upx_main(b_info *arg1, total_size arg2, Elf64_Ehdr *arg3,
|
||||||
|
Elf32_Auxv_t *arg4, f_decompr arg5, f_unfilter arg6 )
|
||||||
|
*/
|
||||||
|
addq $OVERHEAD,%rsp
|
||||||
|
pop %arg2 # LENU
|
||||||
|
pop %arg1 # ADRU
|
||||||
|
pop %rcx # JMPU
|
||||||
|
push %rax # &entry
|
||||||
|
push $ SYS_munmap; pop %rax
|
||||||
|
jmp *%rcx # goto: syscall; ret
|
||||||
|
|
||||||
|
munmap: .globl munmap
|
||||||
|
movb $ SYS_munmap,%al; jmp sysgo
|
||||||
|
mprotect: .globl mprotect
|
||||||
|
movb $ SYS_mprotect,%al; jmp sysgo
|
||||||
|
brk: .globl brk
|
||||||
|
movb $ SYS_brk,%al; jmp sysgo
|
||||||
|
|
||||||
|
mmap: .globl mmap
|
||||||
|
movb $ SYS_mmap,%al
|
||||||
|
sysarg4:
|
||||||
|
movq %arg4,%sys4
|
||||||
|
sysgo: # NOTE: kernel demands 4th arg in %sys4, NOT %arg4
|
||||||
|
movzbl %al,%eax
|
||||||
|
syscall
|
||||||
|
cmpq $ PAGE_MASK,%rax; jc no_fail
|
||||||
|
orq $~0,%rax # failure; IGNORE errno
|
||||||
|
no_fail:
|
||||||
|
ret
|
||||||
|
|
||||||
|
read: .globl read
|
||||||
|
movb $ SYS_read,%al; jmp sysgo
|
||||||
|
open: .globl open
|
||||||
|
movb $ SYS_open,%al; jmp sysgo
|
||||||
|
close: .globl close
|
||||||
|
movb $ SYS_close,%al; jmp sysgo
|
||||||
|
|
||||||
|
exit: .globl exit
|
||||||
|
movb $ SYS_exit,%al; jmp sysgo
|
||||||
|
#endif /*}*/
|
||||||
|
|
||||||
|
munmap: .globl munmap
|
||||||
|
break
|
||||||
|
mprotect: .globl mprotect
|
||||||
|
break
|
||||||
|
brk: .globl brk
|
||||||
|
break
|
||||||
|
mmap: .globl mmap
|
||||||
|
break
|
||||||
|
read: .globl read
|
||||||
|
break
|
||||||
|
open: .globl open
|
||||||
|
break
|
||||||
|
close: .globl close
|
||||||
|
break
|
||||||
|
exit: .globl exit
|
||||||
|
break
|
||||||
|
|
||||||
|
# vi:ts=8:et:nowrap
|
48
src/stub/src/mipsel.r3000-linux.elf-fold.lds
Normal file
48
src/stub/src/mipsel.r3000-linux.elf-fold.lds
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
/* mipsel.r3000-linux.elf-fold.lds --
|
||||||
|
|
||||||
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
|
Copyright (C) 2000-2007 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
|
||||||
|
<mfx@users.sourceforge.net> <ml1050@users.sourceforge.net>
|
||||||
|
|
||||||
|
John F. Reiser
|
||||||
|
<jreiser@users.sourceforge.net>
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
OUTPUT_FORMAT("elf32-littlemips", "elf32-bigmips", "elf32-littlemips")
|
||||||
|
OUTPUT_ARCH(mips)
|
||||||
|
/*ENTRY(_start)*/
|
||||||
|
PHDRS
|
||||||
|
{
|
||||||
|
text PT_LOAD FILEHDR PHDRS ;
|
||||||
|
data PT_LOAD ; /* for setting brk(0) */
|
||||||
|
}
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0x00100000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */
|
||||||
|
.text : {
|
||||||
|
*(.text)
|
||||||
|
*(.data)
|
||||||
|
} : text
|
||||||
|
.data : {
|
||||||
|
} : data
|
||||||
|
}
|
2
src/stub/src/mipsel.r3000-linux.elf-main.c
Normal file
2
src/stub/src/mipsel.r3000-linux.elf-main.c
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#include "i386-linux.elf-main.c"
|
||||||
|
|
|
@ -333,6 +333,35 @@ decomp_done:
|
||||||
section decompressor.start
|
section decompressor.start
|
||||||
decompressor:
|
decompressor:
|
||||||
|
|
||||||
|
section lzma.init
|
||||||
|
li tmp,%lo(lzma_stack_adjust-lzma_args_sz)
|
||||||
|
addu sp,tmp
|
||||||
|
/*
|
||||||
|
move var,sp
|
||||||
|
1:
|
||||||
|
sw zero,0(var)
|
||||||
|
addiu tmp,4
|
||||||
|
bnez tmp,1b
|
||||||
|
addiu var,4
|
||||||
|
*/
|
||||||
|
addiu src,2
|
||||||
|
la inSize,lzma_c_len
|
||||||
|
la outSize,lzma_u_len
|
||||||
|
|
||||||
|
addu poutSizeProcessed,sp,outSizeProcessed
|
||||||
|
addiu pinSizeprocessed,sp,inSizeProcessed
|
||||||
|
|
||||||
|
la tmp,lzma_properties
|
||||||
|
sw dst,dst_save(sp)
|
||||||
|
addiu CLzmaDecoderState,sp,lzma_args_sz
|
||||||
|
bal decompressor
|
||||||
|
sw tmp,0(CLzmaDecoderState)
|
||||||
|
lw dst,dst_save(sp)
|
||||||
|
lw outSize,outSizeProcessed(sp)
|
||||||
|
li tmp,%lo(lzma_stack_adjust-lzma_args_sz)
|
||||||
|
addu dst,outSize
|
||||||
|
subu sp,tmp
|
||||||
|
|
||||||
#include "arch/mips/mipsel.r3000/lzma_d.S"
|
#include "arch/mips/mipsel.r3000/lzma_d.S"
|
||||||
|
|
||||||
#include "include/header.S"
|
#include "include/header.S"
|
||||||
|
|
64
src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump
Normal file
64
src/stub/tmp/mipsel.r3000-linux.elf-entry.bin.dump
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
tmp/mipsel.r3000-linux.elf-entry.bin: file format elf32-littlemips
|
||||||
|
|
||||||
|
Sections:
|
||||||
|
Idx Name Size VMA LMA File off Algn Flags
|
||||||
|
0 ELFMAINX 00000028 00000000 00000000 00000034 2**0 CONTENTS, RELOC, READONLY
|
||||||
|
1 NRV2E 00000218 00000000 00000000 0000005c 2**0 CONTENTS, RELOC, READONLY
|
||||||
|
2 NRV2D 000001f0 00000000 00000000 00000274 2**0 CONTENTS, RELOC, READONLY
|
||||||
|
3 NRV2B 000001b4 00000000 00000000 00000464 2**0 CONTENTS, RELOC, READONLY
|
||||||
|
4 LZMA_ELF00 0000006c 00000000 00000000 00000618 2**0 CONTENTS, READONLY
|
||||||
|
5 LZMA_DEC10 00000ad8 00000000 00000000 00000684 2**0 CONTENTS, READONLY
|
||||||
|
6 LZMA_DEC20 00000ad8 00000000 00000000 0000115c 2**0 CONTENTS, READONLY
|
||||||
|
7 LZMA_DEC30 00000004 00000000 00000000 00001c34 2**0 CONTENTS, READONLY
|
||||||
|
8 NRV_TAIL 00000000 00000000 00000000 00001c38 2**0 CONTENTS, READONLY
|
||||||
|
9 ELFMAINY 0000005e 00000000 00000000 00001c38 2**0 CONTENTS, RELOC, READONLY
|
||||||
|
10 ELFMAINZ 000000c0 00000000 00000000 00001c96 2**0 CONTENTS, READONLY
|
||||||
|
SYMBOL TABLE:
|
||||||
|
00000000 l d ELFMAINY 00000000 ELFMAINY
|
||||||
|
00000000 l d ELFMAINZ 00000000 ELFMAINZ
|
||||||
|
00000000 l d ELFMAINX 00000000 ELFMAINX
|
||||||
|
00000000 l d NRV2E 00000000 NRV2E
|
||||||
|
00000000 l d NRV2D 00000000 NRV2D
|
||||||
|
00000000 l d NRV2B 00000000 NRV2B
|
||||||
|
00000000 l d LZMA_ELF00 00000000 LZMA_ELF00
|
||||||
|
00000000 l d LZMA_DEC10 00000000 LZMA_DEC10
|
||||||
|
00000000 l d LZMA_DEC20 00000000 LZMA_DEC20
|
||||||
|
00000000 l d LZMA_DEC30 00000000 LZMA_DEC30
|
||||||
|
00000000 l d NRV_TAIL 00000000 NRV_TAIL
|
||||||
|
00000000 *UND* 00000000 ADRM
|
||||||
|
00000000 *UND* 00000000 LENM
|
||||||
|
00000000 *UND* 00000000 JMPU
|
||||||
|
00000000 *UND* 00000000 ADRU
|
||||||
|
00000000 *UND* 00000000 ADRC
|
||||||
|
00000000 *UND* 00000000 LENU
|
||||||
|
00000000 *UND* 00000000 ADRX
|
||||||
|
00000000 *UND* 00000000 LENX
|
||||||
|
00000020 g O ELFMAINX 00000000 _start
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [ELFMAINX]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
00000000 R_MIPS_32 ADRM
|
||||||
|
00000004 R_MIPS_32 LENM
|
||||||
|
00000008 R_MIPS_32 JMPU
|
||||||
|
0000000c R_MIPS_32 ADRU
|
||||||
|
00000010 R_MIPS_32 ADRC
|
||||||
|
00000014 R_MIPS_32 LENU
|
||||||
|
00000018 R_MIPS_32 ADRX
|
||||||
|
0000001c R_MIPS_32 LENX
|
||||||
|
00000020 R_MIPS_PC16 ELFMAINZ
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [NRV2E]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
0000011c R_MIPS_PC16 ELFMAINY
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [NRV2D]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
0000011c R_MIPS_PC16 ELFMAINY
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [NRV2B]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
000000c4 R_MIPS_PC16 ELFMAINY
|
||||||
|
|
||||||
|
RELOCATION RECORDS FOR [ELFMAINY]:
|
||||||
|
OFFSET TYPE VALUE
|
||||||
|
00000038 R_MIPS_PC16 ELFMAINZ
|
Loading…
Reference in New Issue
Block a user