#include "stdafx.h"



int weird[] =

{

//*

0xE3A01099, // mov       r1, #0x99



0xE5CF1020, // strb      r1, [pc, #0x20]

0xE5CF1020, // strb      r1, [pc, #0x20]

0xE5CF1020, // strb      r1, [pc, #0x20]

0xE5CF1020, // strb      r1, [pc, #0x20]



0xE1A01001, // mov       r1, r1 ; pad

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,



0xE3A04001, // mov       r4, #0x1

0xE3A03001, // mov       r3, #0x1

0xE3A02001, // mov       r2, #0x1

0xE3A01001, // mov       r1, #0x1

0xE6000010, // breakpoint

//*/

/*

0xE28F3053, // add       r3, pc, #0x53



0xE3A01010, // mov       r1, #0x10

0xE7D32001, // ldrb      r2, [r3, +r1]

0xE2222088, // eor       r2, r2, #0x88

0xE7C32001, // strb      r2, [r3, +r1]

0xE2511001, // subs      r1, r1, #1

0x1AFFFFFA, // bne       28011008



//0xE1A0100F, // mov       r1, pc

//0xE3A02020, // mov       r2, #0x20

//0xE3A03D05, // mov       r3, #5, 26

//0xEE071F3A, // mcr       p15, 0, r1, c7, c10, 1 ; clean and invalidate each entry

//0xE0811002, // add       r1, r1, r2

//0xE0533002, // subs      r3, r3, r2

//0xCAFFFFFB, // bgt       |weird+28h (30013058)|

//0xE0211001, // eor       r1, r1, r1

//0xEE071F9A, // mcr       p15, 0, r1, c7, c10, 4 ; drain write buffer

//0xEE071F15, // mcr       p15, 0, r1, c7, c5, 0  ; flush the icache

0xE1A01001, // mov       r1, r1 ; pad

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,

0xE1A01001,



0x6B28C889, // mov       r4, #0x1 ; encoded

0x6B28B889, // mov       r3, #0x1

0x6B28A889, // mov       r2, #0x1

0x6B289889, // mov       r1, #0x1

0xE6000010, // breakpoint

//*/

};



int WINAPI WinMain( HINSTANCE hInstance,

                    HINSTANCE hPrevInstance,

                    LPTSTR    lpCmdLine,

                    int       nCmdShow)

{

    ((void (*)(void)) & weird)();



    return 0;

}

