void Demonware(int r3)
{
__int32 r31, r29, r28, r11, r4, r10;
r11 = 082067A70;
r31 = r3;
r28 = ((r11 >> 16) & 0xFFFF));
r4 = r3;
r3 = r28;
r29 = 0;
_8241DC20(r3);
r11 = (r3 & 0xFF);
if(r11 == 0)
r3 = r31; // located in a branch if equal, change it to one or noop it to disable the demonware checks
_82502628(r3);
r3 = r31;
_822768F8(r3);
r4 = r3;
if(r3 == 0)
r3 = r29;
if(r3 != 0)
r10 = 0x83FAB62C;
r11 = (r31 * 0x64);
r10 += 0x49D4;
__int32 r5 = (r11 + r10);
_827464F8(r3);
__int32 r9 = r3;
r30 = (0x00 + r9);
_822774D8(r3);
if(r30 == 0)
r3 = r31;
_825025B0(r3);
if(r30 != 0)
r3 = r28;
__int32 r6 = 0;
r5 = 0;
r4 = r30;
_8241D738(r3,r4,r5); // main call to check demonware, nop this.
r29 = r3;
r4 = r30;
r3 += 0x28;
_8251FA50(r3);
r3 = r29;
_8241C9C0(r3);
r3 = r29;
if(r11 != 0)
r3 = 0;
}