touhou-reimpl/research/stage07mboss.tecl

868 lines
32 KiB
Plaintext

#pragma mapfile "utils/th11.eclm"
meta {}
void MBoss() {
stackAlloc(@nargs=1, @blob="10000000");
setBoss(@nargs=1, @blob="00000000");
anmSelect(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="02000000 aa000000");
anmSelect(@nargs=1, @blob="02000000");
anmSetMain(@nargs=2, @blob="00000000 0e000000");
flagSet(@nargs=1, @blob="40000000");
setHurtbox(@nargs=2, @blob="00004042 00004042");
setHitbox(@nargs=2, @blob="00002042 00002042");
lifeSet(@nargs=1, @blob="b80b0000");
lifeMarker(@nargs=3, @blob="00000000 00803b45 80a0ffff");
stars(@nargs=1, @blob="02000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
setChapter(@nargs=1, @blob="06000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
wait(@nargs=1, @blob="46000000");
+60: // 60
dialogWait(@blob="");
moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00008041");
playSound(@nargs=1, @blob="29000000");
fog(@nargs=2, @blob="00002043 00808000");
anmSelect(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="01000000 5c000000");
anmSelect(@nargs=1, @blob="02000000");
call(@nargs=1, @blob="0c000000 4d426f73 73436172 64310000");
jmp(@nargs=2, @blob="2c000000 3c000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
delete(@blob="");
}
void MBossCard1() {
stackAlloc(@nargs=1, @blob="14000000");
spellEx(
@nargs=4,
@blob="a2000000 100e0000 00000000 14000000 e39703fc 724f1a1b e16c035c 69070806 676e85ac",
);
lifeSet(@nargs=1, @blob="b80b0000");
lifeMarker(@nargs=3, @blob="00000000 00803b45 80a0ffff");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 100e0000 0c000000 4d426f73 73436172 64320000",
);
killAllAsync(@blob="");
setInvuln(@nargs=1, @blob="3c000000");
enmCreate(
@nargs=6,
@blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
);
enmKillAll(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
moveLimitReset(@blob="");
+30: // 30
anmPlay(@nargs=2, @blob="00000000 83000000");
+60: // 90
nop(@blob="");
flagSet(@nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="32000000");
seti(@mask=0b1, @nargs=1, @blob="10000000");
jmp(@nargs=2, @blob="a8060000 12010000");
anmSelectedPlay(@nargs=1, @blob="00000000");
callAsync(@nargs=1, @blob="10000000 4d426f73 73436172 64315f61 74330000");
+60: // 150
nop(@blob="");
pushf(@nargs=1, @blob="dc0f4940");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="db0f4940");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
subf(@blob="");
callAsync(
@mask=0b1010,
@nargs=5,
@blob="10000000 4d426f73 73436172 64315f61 74000000 66660000 00008040 66660000 b6867840 66660000 000080bf 69690000 06000000",
);
wait(@nargs=1, @blob="82000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
+16: // 166
anmSetMain(@nargs=2, @blob="00000000 0e000000");
anmSetSprite(@nargs=2, @blob="00000000 0e000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="db0f4940");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="db0f4940");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
addf(@blob="");
callAsync(
@mask=0b1010,
@nargs=5,
@blob="10000000 4d426f73 73436172 64315f61 74000000 66660000 000080bf 66660000 b68678c0 66660000 000080bf 69690000 0a000000",
);
wait(@nargs=1, @blob="c8000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
+16: // 182
anmSetMain(@nargs=2, @blob="00000000 0e000000");
anmSetSprite(@nargs=2, @blob="00000000 0e000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="d80fc93e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
validRad(@mask=0b1, @nargs=1, @blob="00008040");
anmSelectedPlay(@nargs=1, @blob="00000000");
callAsync(@nargs=1, @blob="10000000 4d426f73 73436172 64315f61 74336200");
+60: // 242
nop(@blob="");
pushf(@nargs=1, @blob="dc0f4940");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="db0f4940");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
subf(@blob="");
callAsync(
@mask=0b1010,
@nargs=5,
@blob="10000000 4d426f73 73436172 64315f61 74000000 66660000 00008040 66660000 b68678c0 66660000 000080bf 69690000 06000000",
);
wait(@nargs=1, @blob="82000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
+16: // 258
anmSetMain(@nargs=2, @blob="00000000 0e000000");
anmSetSprite(@nargs=2, @blob="00000000 0e000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="db0f4940");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="db0f4940");
pushi(@nargs=1, @blob="02000000");
divf(@blob="");
addf(@blob="");
callAsync(
@mask=0b1010,
@nargs=5,
@blob="10000000 4d426f73 73436172 64315f61 74000000 66660000 000080bf 66660000 b6867840 66660000 000080bf 69690000 0a000000",
);
wait(@nargs=1, @blob="c8000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
+16: // 274
anmSetMain(@nargs=2, @blob="00000000 0e000000");
anmSetSprite(@nargs=2, @blob="00000000 0e000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="d80fc93e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
validRad(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="5cf9ffff 5a000000");
ret(@blob="");
}
void MBossCard1_at() {
stackAlloc(@nargs=1, @blob="24000000");
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 03000000");
etSprite(@mask=0b100, @nargs=3, @blob="01000000 03000000 0c000000");
etCount(@nargs=3, @blob="01000000 01000000 01000000");
etAngle(@nargs=3, @blob="01000000 00000000 db0fc93e");
etSpeed(@nargs=3, @blob="01000000 cdcccc3d 0000c03f");
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@nargs=1, @blob="00008041");
setf(@mask=0b1, @nargs=1, @blob="0000c041");
pushi(@nargs=1, @blob="db000000");
seti(@mask=0b1, @nargs=1, @blob="20000000");
jmp(@nargs=2, @blob="78020000 00000000");
circlePos(
@mask=0b1111,
@nargs=4,
@blob="00008041 0000a041 00000000 0000c041",
);
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
validRad(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
validRad(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="0000c041");
pushf(@nargs=1, @blob="0000403f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="0000c041");
etEx(
@mask=0b10000,
@nargs=8,
@blob="01000000 01000000 00000000 00100000 20000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="01000000 02000000 00000000 04000000 5a000000 c1bdf0ff 6f12833c 00c079c4",
);
etOffset(@mask=0b110, @nargs=3, @blob="01000000 00008041 0000a041");
etAngle(@mask=0b10, @nargs=3, @blob="01000000 00000041 fac8e53c");
etOn(@nargs=1, @blob="01000000");
pushi(@mask=0b1, @nargs=1, @blob="20000000");
pushi(@nargs=1, @blob="03000000");
modi(@blob="");
pushi(@nargs=1, @blob="00000000");
neqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="01000000");
deci(@mask=0b1, @nargs=1, @blob="20000000");
jmpNeq(@nargs=2, @blob="8cfdffff 00000000");
ret(@blob="");
}
void MBossCard1_at2() {
stackAlloc(@nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 02000000");
etSprite(@nargs=3, @blob="01000000 0c000000 03000000");
etCount(@nargs=3, @blob="01000000 10000000 01000000");
etAngle(@nargs=3, @blob="01000000 00000000 db0fc93e");
etSpeedD(
@nargs=9,
@blob="01000000 0000803f 0000c03f 0000c03f 0000c03f 0000c03f 0000c03f 0000c03f 0000c03f",
);
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
diffWait(@nargs=4, @blob="2c010000 2c010000 b0000000 ba000000");
jmp(@nargs=2, @blob="4c000000 00000000");
etOn(@nargs=1, @blob="01000000");
diffWait(@nargs=4, @blob="1c010000 32000000 32000000 32000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="b8ffffff 00000000");
ret(@blob="");
}
void MBossCard1_at3() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etEx(
@nargs=8,
@blob="00000000 00000000 00000000 04000000 3c000000 c1bdf0ff cdcccc3d f02374c9",
);
pushi(@nargs=1, @blob="0f000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="00000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="30ffffff");
setf(@mask=0b1, @nargs=1, @blob="00008040");
jmp(@nargs=2, @blob="70010000 00000000");
etOffsetAbs(@mask=0b100, @nargs=3, @blob="00000000 000060c3 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="20000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
laserOnA2(
@nargs=8,
@blob="03000000 06000000 00000000 0000803f 00000000 0000be43 00000000 00000042",
);
wait(@nargs=1, @blob="04000000");
etOffsetAbs(@mask=0b10, @nargs=3, @blob="00000000 00008040 000000c2");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="20000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
laserOnA2(
@nargs=8,
@blob="03000000 06000000 db0fc93f 0000803f 00000000 0000be43 00000000 00000042",
);
wait(@nargs=1, @blob="04000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="94feffff 00000000");
ret(@blob="");
}
void MBossCard1_at3b() {
stackAlloc(@nargs=1, @blob="0c000000");
etNew(@nargs=1, @blob="00000000");
etEx(
@nargs=8,
@blob="00000000 00000000 00000000 04000000 3c000000 c1bdf0ff cdcccc3d f02374c9",
);
pushi(@nargs=1, @blob="0f000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
pushi(@nargs=1, @blob="00000000");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="d0000000");
setf(@mask=0b1, @nargs=1, @blob="00008040");
jmp(@nargs=2, @blob="70010000 00000000");
etOffsetAbs(@mask=0b100, @nargs=3, @blob="00000000 00006043 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="20000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
laserOnA2(
@nargs=8,
@blob="03000000 06000000 db0f4940 0000803f 00000000 0000be43 00000000 00000042",
);
wait(@nargs=1, @blob="04000000");
etOffsetAbs(@mask=0b10, @nargs=3, @blob="00000000 00008040 000000c2");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="20000000");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
laserOnA2(
@nargs=8,
@blob="03000000 06000000 db0fc93f 0000803f 00000000 0000be43 00000000 00000042",
);
wait(@nargs=1, @blob="04000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="94feffff 00000000");
ret(@blob="");
}
void MBossCard2() {
stackAlloc(@nargs=1, @blob="14000000");
lifeSet(@nargs=1, @blob="98080000");
lifeMarker(@nargs=3, @blob="00000000 00800945 80a0ffff");
stars(@nargs=1, @blob="01000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 100e0000 0c000000 4d426f73 73436172 64330000",
);
killAllAsync(@blob="");
setInvuln(@nargs=1, @blob="3c000000");
playSound(@nargs=1, @blob="0f000000");
spellEnd(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="44000000 00000000");
etCancel(@nargs=1, @blob="00002044");
jmp(@nargs=2, @blob="2c000000 00000000");
etClear(@nargs=1, @blob="00002044");
enmKillAll(@blob="");
laserCancel(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="cc000000 00000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropExtra(@nargs=2, @blob="02000000 14000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
playSound(@nargs=1, @blob="0f000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
moveLimitReset(@blob="");
+60: // 60
nop(@blob="");
spellEx(
@nargs=4,
@blob="a3000000 100e0000 00000000 1c000000 fd910569 724f1286 ec7f0e7a 68390a04 e4e504f7 6049009e 5fe67d24",
);
+30: // 90
anmPlay(@nargs=2, @blob="00000000 83000000");
+60: // 150
nop(@blob="");
flagSet(@nargs=1, @blob="0c000000");
moveLimit(@nargs=4, @blob="00000000 00000043 00000043 00000042");
pushi(@nargs=1, @blob="32000000");
seti(@mask=0b1, @nargs=1, @blob="10000000");
jmp(@nargs=2, @blob="94000000 96000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
call(@nargs=1, @blob="10000000 4d426f73 73436172 64325f61 74000000");
wait(@nargs=1, @blob="1e000000");
moveRand(@nargs=3, @blob="28000000 04000000 0000c03f");
wait(@nargs=1, @blob="46000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="70ffffff 96000000");
ret(@blob="");
}
void MBossCard2_at() {
stackAlloc(@nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 02000000");
etSprite(@nargs=3, @blob="01000000 0d000000 01000000");
etCount(@nargs=3, @blob="01000000 08000000 01000000");
etAngle(@nargs=3, @blob="01000000 00000000 db0fc93e");
etSpeed(@nargs=3, @blob="01000000 00008040 0000c03f");
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="01000000 01000000 00000000 10000000 3b000000 01000000 00000000 0000803f",
);
etEx(
@nargs=8,
@blob="01000000 02000000 00000000 00200000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
etOn(@nargs=1, @blob="01000000");
wait(@nargs=1, @blob="3c000000");
funcCall(@nargs=1, @blob="06000000");
ret(@blob="");
}
void MBossCard2_at2() {
stackAlloc(@nargs=1, @blob="0c000000");
flagSet(@nargs=1, @blob="20010000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 02000000");
etCount(@nargs=3, @blob="00000000 20000000 01000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 db0fc93e");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 04000000 3c000000 c1bdf0ff 8988083d f02374c9",
);
pushi(@nargs=1, @blob="10000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
jmp(@nargs=2, @blob="a4000000 00000000");
etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
etOn(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="05000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="60ffffff 00000000");
delete(@blob="");
}
void MBossCard3() {
stackAlloc(@nargs=1, @blob="14000000");
lifeSet(@nargs=1, @blob="98080000");
lifeMarker(@nargs=3, @blob="00000000 00800945 80a0ffff");
stars(@nargs=1, @blob="00000000");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 100e0000 0c000000 4d426f73 73446561 64000000",
);
killAllAsync(@blob="");
setInvuln(@nargs=1, @blob="3c000000");
playSound(@nargs=1, @blob="0f000000");
spellEnd(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="44000000 00000000");
etCancel(@nargs=1, @blob="00002044");
jmp(@nargs=2, @blob="2c000000 00000000");
etClear(@nargs=1, @blob="00002044");
enmKillAll(@blob="");
laserCancel(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="cc000000 00000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 00000000");
dropMain(@nargs=1, @blob="05000000");
dropExtra(@nargs=2, @blob="02000000 1e000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
playSound(@nargs=1, @blob="0f000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
moveLimitReset(@blob="");
+60: // 60
nop(@blob="");
spellEx(
@nargs=4,
@blob="a4000000 100e0000 00000000 20000000 e7210603 724f1d24 e2641b78 64470af9 e42d06f4 607c026b dc69fc7f 5ad47960",
);
movePosTime(@nargs=4, @blob="3c000000 04000000 0000a041 00003043");
+30: // 90
anmPlay(@nargs=2, @blob="00000000 83000000");
+60: // 150
nop(@blob="");
flagSet(@nargs=1, @blob="0c000000");
moveLimit(@nargs=4, @blob="00000000 00000043 00000043 00000043");
pushi(@nargs=1, @blob="32000000");
seti(@mask=0b1, @nargs=1, @blob="10000000");
jmp(@nargs=2, @blob="94000000 96000000");
anmSelectedPlay(@nargs=1, @blob="00000000");
call(@nargs=1, @blob="10000000 4d426f73 73436172 64335f61 74000000");
wait(@nargs=1, @blob="1e000000");
moveRand(@nargs=3, @blob="28000000 04000000 0000c03f");
wait(@nargs=1, @blob="46000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="70ffffff 96000000");
ret(@blob="");
}
void MBossCard3_at() {
stackAlloc(@nargs=1, @blob="08000000");
jmp(@nargs=2, @blob="e00f0000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="30000000");
subf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
subf(@blob="");
movePos(@mask=0b11, @nargs=2, @blob="000080bf 000080bf");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
setf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="30000000");
addf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
movePos(@mask=0b11, @nargs=2, @blob="000080bf 000080bf");
pushi(@nargs=1, @blob="05000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
jmp(@nargs=2, @blob="280e0000 00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 02000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 db0fc93e");
etSpeed(@nargs=3, @blob="00000000 00008040 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000803f");
mulf(@blob="");
pushf(@nargs=1, @blob="00000000");
addf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 01000000 00000000 00010000 01000000 0d000000 000080bf f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushf(@nargs=1, @blob="cdcc0c40");
divf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 02000000 00000000 10000000 01000000 01000000 000080bf f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 00080000 03000000 06000000 f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 04000000 00000000 04000000 78000000 c1bdf0ff 8988883c db0fc93f",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
etOffset(@nargs=3, @blob="00000000 0000a0c1 000040c2");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="7bd9a03f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
validRad(@mask=0b1, @nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 02000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 db0fc93e");
etSpeed(@nargs=3, @blob="00000000 00008040 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000803f");
mulf(@blob="");
pushf(@nargs=1, @blob="00000000");
addf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 01000000 00000000 00010000 01000000 0d000000 000080bf f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushf(@nargs=1, @blob="cdcc0c40");
divf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 02000000 00000000 10000000 01000000 01000000 000080bf f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 00080000 03000000 08000000 f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 04000000 00000000 04000000 78000000 c1bdf0ff 8988883c db0fc93f",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
etOffset(@nargs=3, @blob="00000000 0000a0c1 000040c2");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="7bd9a03f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
validRad(@mask=0b1, @nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 02000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 db0fc93e");
etSpeed(@nargs=3, @blob="00000000 00008040 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000803f");
mulf(@blob="");
pushf(@nargs=1, @blob="00000000");
addf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 01000000 00000000 00010000 01000000 0d000000 000080bf f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushf(@nargs=1, @blob="cdcc0c40");
divf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 02000000 00000000 10000000 01000000 01000000 000080bf f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 00080000 03000000 0a000000 f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 04000000 00000000 04000000 78000000 c1bdf0ff 8988883c db0fc93f",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
etOffset(@nargs=3, @blob="00000000 0000a0c1 000040c2");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="7bd9a03f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
validRad(@mask=0b1, @nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 02000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 db0fc93e");
etSpeed(@nargs=3, @blob="00000000 00008040 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000803f");
mulf(@blob="");
pushf(@nargs=1, @blob="00000000");
addf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 01000000 00000000 00010000 01000000 0d000000 000080bf f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushf(@nargs=1, @blob="cdcc0c40");
divf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 02000000 00000000 10000000 01000000 01000000 000080bf f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 00080000 03000000 0d000000 f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 04000000 00000000 04000000 78000000 c1bdf0ff 8988883c db0fc93f",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
etOffset(@nargs=3, @blob="00000000 0000a0c1 000040c2");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="7bd9a03f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
validRad(@mask=0b1, @nargs=1, @blob="00000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 02000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@nargs=3, @blob="00000000 00000000 db0fc93e");
etSpeed(@nargs=3, @blob="00000000 00008040 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
pushf(@nargs=1, @blob="0000803f");
mulf(@blob="");
pushf(@nargs=1, @blob="00000000");
addf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 01000000 00000000 00010000 01000000 0d000000 000080bf f02374c9",
);
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushf(@nargs=1, @blob="cdcc0c40");
divf(@blob="");
etEx(
@mask=0b1000000,
@nargs=8,
@blob="00000000 02000000 00000000 10000000 01000000 01000000 000080bf f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 03000000 00000000 00080000 03000000 0e000000 f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 04000000 00000000 04000000 78000000 c1bdf0ff 8988883c db0fc93f",
);
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
etOffset(@nargs=3, @blob="00000000 0000a0c1 000040c2");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="7bd9a03f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
validRad(@mask=0b1, @nargs=1, @blob="00000000");
wait(@nargs=1, @blob="03000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="dcf1ffff 00000000");
wait(@nargs=1, @blob="07000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="24f0ffff 00000000");
ret(@blob="");
}
void MBossCard3_at2() {
stackAlloc(@nargs=1, @blob="0c000000");
flagSet(@nargs=1, @blob="20010000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 02000000");
etCount(@nargs=3, @blob="00000000 20000000 01000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 db0fc93e");
etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 04000000 3c000000 c1bdf0ff 8988083d f02374c9",
);
pushi(@nargs=1, @blob="10000000");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="06000000");
seti(@mask=0b1, @nargs=1, @blob="04000000");
jmp(@nargs=2, @blob="a4000000 00000000");
etDist(@mask=0b10, @nargs=2, @blob="00000000 00000041");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushi(@nargs=1, @blob="14000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
etOn(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="05000000");
deci(@mask=0b1, @nargs=1, @blob="04000000");
jmpNeq(@nargs=2, @blob="60ffffff 00000000");
delete(@blob="");
}
void MBossDead() {
stackAlloc(@nargs=1, @blob="04000000");
flagSet(@nargs=1, @blob="8c000000");
anmPlay(@nargs=2, @blob="00000000 4c000000");
playSound(@nargs=1, @blob="12000000");
anmPlay(@nargs=2, @blob="00000000 8d000000");
moveVel(@mask=0b1, @nargs=2, @blob="00381cc6 cdcccc3e");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="68000000 00000000");
enmCreate(
@nargs=6,
@blob="10000000 45636c5f 45744272 65616b32 00000000 00000000 00000000 0f270000 00000000 00000000",
);
jmp(@nargs=2, @blob="50000000 00000000");
enmCreate(
@nargs=6,
@blob="10000000 45636c5f 45744272 65616b32 5f6e6900 00000000 00000000 0f270000 00000000 00000000",
);
+60: // 60
etClearAll(@blob="");
spellEnd(@blob="");
enmKillAll(@blob="");
dropMain(@nargs=1, @blob="00000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="0c010000 3c000000");
dropClear(@blob="");
pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
pushi(@nargs=1, @blob="01000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="2c000000 3c000000");
dropMain(@nargs=1, @blob="05000000");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
dropExtra(@nargs=2, @blob="01000000 1e000000");
dropExtra(@nargs=2, @blob="02000000 28000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
setScreenShake(@nargs=3, @blob="1e000000 0c000000 00000000");
anmPlay(@nargs=2, @blob="00000000 4c000000");
anmPlay(@nargs=2, @blob="00000000 8e000000");
playSound(@nargs=1, @blob="12000000");
setBoss(@nargs=1, @blob="ffffffff");
delete(@blob="");
delete(@blob="");
}