touhou-reimpl/research/stage4c01a.tecl

760 lines
28 KiB
Plaintext

#pragma mapfile "utils/th11.eclm"
meta {}
void BossCard2_01A() {
stackAlloc(@nargs=1, @blob="10000000");
lifeSet(@nargs=1, @blob="a8160000");
setInterrupt(
@nargs=4,
@blob="00000000 100e0000 b80b0000 10000000 426f7373 43617264 335f3031 41000000",
);
lifeMarker(@nargs=3, @blob="00000000 0040b545 ff8080ff");
lifeMarker(@nargs=3, @blob="01000000 00006145 ff4040ff");
lifeMarker(@nargs=3, @blob="02000000 0000fa44 c00000ff");
setChapter(@nargs=1, @blob="2c000000");
spell(
@nargs=4,
@blob="52000000 b80b0000 20a10700 14000000 e6041ef2 724f1e8c ed3a06aa 7bde0510 e61885ac",
);
movePosTime(@nargs=4, @blob="3c000000 00000000 00000000 00000043");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
playSound(@nargs=1, @blob="29000000");
+60: // 60
nop(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@nargs=1, @blob="707756bd");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
diffI(
@mask=0b1,
@nargs=5,
@blob="0c000000 04000000 0c000000 0e000000 10000000",
);
pushf(@nargs=1, @blob="db0fc940");
pushi(@mask=0b1, @nargs=1, @blob="0c000000");
divf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="b0000000 3c000000");
enmCreateA(
@nargs=6,
@blob="10000000 426f7373 43617264 325f3031 41617400 00000000 00000000 e8030000 e8030000 00000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="54ffffff 3c000000");
jmp(@nargs=2, @blob="48000000 3c000000");
wait(@nargs=1, @blob="dc000000");
moveRand(@nargs=3, @blob="3c000000 04000000 00000040");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="bcffffff 3c000000");
ret(@blob="");
}
void BossCard2_01Aat() {
stackAlloc(@nargs=1, @blob="10000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="00000000 67000000");
flagSet(@nargs=1, @blob="0f000000");
callAsync(
@nargs=1,
@blob="14000000 426f7373 43617264 325f3031 416d6f76 65000000",
);
moveCircle(
@mask=0b11,
@nargs=4,
@blob="00f41bc6 00f01bc6 00000000 0000c03f",
);
+90: // 90
moveCircle(@nargs=4, @blob="f02374c9 f02374c9 0000f042 00000000");
callAsync(
@nargs=1,
@blob="14000000 426f7373 43617264 325f3031 416d6f76 65320000",
);
pushf(@mask=0b1, @nargs=1, @blob="00cc1bc6");
setf(@mask=0b1, @nargs=1, @blob="00008040");
diffF(
@mask=0b1,
@nargs=5,
@blob="00000041 0000803f 0000803f 9a99993f 0000c03f",
);
jmp(@nargs=2, @blob="ac070000 5a000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 03000000 0a000000");
etCount(@nargs=3, @blob="00000000 02000000 01000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00000041 0000803f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00000080 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
);
pushi(@nargs=1, @blob="14000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
jmp(@nargs=2, @blob="24010000 5a000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00000041 00000000");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="b950293e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
validRad(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="cdcc4c3d");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
wait(@nargs=1, @blob="0a000000");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="e0feffff 5a000000");
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 08000000 1e000000 c1bdf0ff 00000000 507756bd",
);
pushi(@nargs=1, @blob="14000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
jmp(@nargs=2, @blob="24010000 5a000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00000041 00000000");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="73d9a03e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
validRad(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="cdcc4c3d");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
wait(@nargs=1, @blob="0a000000");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="e0feffff 5a000000");
wait(@nargs=1, @blob="1e000000");
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 08000000 1e000000 c1bdf0ff 00000000 5077563d",
);
pushi(@nargs=1, @blob="14000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
jmp(@nargs=2, @blob="24010000 5a000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00000041 00000000");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="73d9a03e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
validRad(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="cdcc4c3d");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
wait(@nargs=1, @blob="09000000");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="e0feffff 5a000000");
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 08000000 1e000000 c1bdf0ff 00000000 507756bd",
);
pushi(@nargs=1, @blob="14000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
jmp(@nargs=2, @blob="24010000 5a000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00000041 00000000");
etOn(@nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="73d9a03e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
validRad(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="cdcc4c3d");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
wait(@nargs=1, @blob="09000000");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="e0feffff 5a000000");
wait(@nargs=1, @blob="1e000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="58f8ffff 5a000000");
jmp(@nargs=2, @blob="2c000000 5a000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 5a000000");
delete(@blob="");
}
void BossCard2_01Amove() {
stackAlloc(@nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="44000000 00000000");
movePosRel(@mask=0b11, @nargs=2, @blob="00ac1bc6 00a81bc6");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="c0ffffff 00000000");
ret(@blob="");
}
void BossCard2_01Amove2() {
stackAlloc(@nargs=1, @blob="00000000");
jmp(@nargs=2, @blob="80000000 00000000");
moveCircle(@nargs=4, @blob="f02374c9 f02374c9 f02374c9 000040bf");
wait(@nargs=1, @blob="78000000");
moveCircle(@nargs=4, @blob="f02374c9 f02374c9 f02374c9 0000403f");
wait(@nargs=1, @blob="78000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="84ffffff 00000000");
ret(@blob="");
}
void BossCard3_01A() {
stackAlloc(@nargs=1, @blob="10000000");
setInvuln(@nargs=1, @blob="64000000");
enmKillAll(@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");
spellEnd(@blob="");
killAllAsync(@blob="");
funcSet(@nargs=1, @blob="00000000");
laserCancel(@blob="");
setInterrupt(
@nargs=4,
@blob="00000000 d0070000 b80b0000 10000000 426f7373 43617264 345f3031 41000000",
);
setChapter(@nargs=1, @blob="2d000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="d8000000 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");
call(@nargs=1, @blob="10000000 426f7373 43617264 4974656d 00000000");
dropArea(@nargs=2, @blob="00004042 00004042");
dropItems(@blob="");
pushi(@nargs=1, @blob="01000000");
seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
playSound(@nargs=1, @blob="0f000000");
movePosTime(@nargs=4, @blob="3c000000 04000000 000080c2 00000043");
wait(@nargs=1, @blob="5a000000");
spell(
@nargs=4,
@blob="56000000 b80b0000 20a10700 20000000 e6041ef2 724f12a0 ec910eb9 6ae90a18 e6350627 60600296 dcacfe7f 5ad47960",
);
playSound(@nargs=1, @blob="29000000");
+60: // 60
nop(@blob="");
diffF(
@mask=0b1,
@nargs=5,
@blob="00f01bc6 00006040 00006040 0000a040 0000b040",
);
pushi(@nargs=1, @blob="78000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
jmp(@nargs=2, @blob="50040000 3c000000");
callAsync(@nargs=1, @blob="10000000 426f7373 43617264 335f3031 41617400");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
moveVel(@mask=0b1, @nargs=2, @blob="000080bf 0000c040");
moveVelTime(@nargs=4, @blob="3c000000 04000000 f02374c9 00000000");
pushi(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="02000000");
muli(@blob="");
diffWait(@mask=0b11, @nargs=4, @blob="ffffffff 0c000000 50000000 46000000");
pushi(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="50000000");
geqi(@blob="");
jmpEq(@nargs=2, @blob="64000000 3c000000");
pushi(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="01000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
pushf(@nargs=1, @blob="0000a040");
lessf(@blob="");
jmpEq(@nargs=2, @blob="64000000 3c000000");
pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
pushf(@nargs=1, @blob="cdcccc3d");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
callAsync(
@nargs=1,
@blob="14000000 426f7373 43617264 335f3031 41617432 00000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="20000000");
divf(@blob="");
pushf(@nargs=1, @blob="db0f4940");
addf(@blob="");
moveVel(@mask=0b1, @nargs=2, @blob="000080bf 0000c040");
moveVelTime(@nargs=4, @blob="3c000000 04000000 f02374c9 00000000");
diffWait(@mask=0b11, @nargs=4, @blob="0c000000 0c000000 50000000 46000000");
pushi(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="50000000");
geqi(@blob="");
jmpEq(@nargs=2, @blob="64000000 3c000000");
pushi(@mask=0b1, @nargs=1, @blob="0c000000");
pushi(@nargs=1, @blob="01000000");
subi(@blob="");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
pushf(@nargs=1, @blob="0000a040");
lessf(@blob="");
jmpEq(@nargs=2, @blob="64000000 3c000000");
pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
pushf(@nargs=1, @blob="cdcccc3d");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="b4fbffff 3c000000");
ret(@blob="");
}
void BossCard3_01ADollA() {
stackAlloc(@nargs=1, @blob="08000000");
diffF(
@mask=0b1,
@nargs=5,
@blob="00008040 00008040 00008040 0000a040 0000a040",
);
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="00000000 6c000000");
flagSet(@nargs=1, @blob="03000000");
callAsync(
@nargs=1,
@blob="18000000 426f7373 43617264 335f3031 41446f6c 6c506f73 00000000",
);
moveVel(@mask=0b11, @nargs=2, @blob="00f41bc6 00008040");
jmp(@nargs=2, @blob="2c000000 00000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 00000000");
delete(@blob="");
}
void BossCard3_01ADollAttack0() {
stackAlloc(@nargs=1, @blob="04000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 03000000");
etSprite(@nargs=3, @blob="00000000 01000000 0d000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
etSpeed(@nargs=3, @blob="00000000 00000000 0000803f");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00100000 2d000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 02000000 00000000 04000000 78000000 c1bdf0ff abaaaa3c f02374c9",
);
etCopy(@nargs=2, @blob="01000000 00000000");
etSprite(@nargs=3, @blob="01000000 00000000 0c000000");
jmp(@nargs=2, @blob="58010000 02000000");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="78000000");
divf(@blob="");
addf(@blob="");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 000080bf 00000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="08000000");
mulf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="db0fc93f");
subf(@blob="");
etOffsetRad(@mask=0b110, @nargs=3, @blob="00000000 000080bf 000080bf");
etOn(@nargs=1, @blob="00000000");
+2: // 2
etOn(@nargs=1, @blob="01000000");
wait(@nargs=1, @blob="02000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="acfeffff 00000000");
ret(@blob="");
}
void BossCard3_01ADollPos() {
stackAlloc(@nargs=1, @blob="04000000");
jmp(@nargs=2, @blob="24010000 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="40ffffff");
leqf(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00341cc6");
pushi(@nargs=1, @blob="c0000000");
geqf(@blob="");
or(@blob="");
pushf(@mask=0b1, @nargs=1, @blob="00301cc6");
pushi(@nargs=1, @blob="00000000");
lessf(@blob="");
or(@blob="");
jmpEq(@nargs=2, @blob="30000000 00000000");
jmp(@nargs=2, @blob="58000000 00000000");
wait(@nargs=1, @blob="01000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="e0feffff 00000000");
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
pushi(@nargs=1, @blob="50000000");
divf(@blob="");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000000");
moveVel(@mask=0b11, @nargs=2, @blob="00000000 00f01bc6");
callAsync(
@mask=0b10,
@nargs=2,
@blob="1c000000 426f7373 43617264 335f3031 41446f6c 6c417474 61636b30 00000000 66660000 00000000",
);
ret(@blob="");
}
void BossCard3_01Aat() {
stackAlloc(@nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
pushf(@nargs=1, @blob="dc0f49c0");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
jmp(@nargs=2, @blob="a0000000 00000000");
enmCreate(
@nargs=6,
@blob="14000000 426f7373 43617264 335f3031 41446f6c 6c410000 00000000 00000000 e8030000 e8030000 00000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@nargs=1, @blob="c7b8b23e");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="64ffffff 00000000");
playSound(@nargs=1, @blob="10000000");
ret(@blob="");
}
void BossCard3_01Aat2() {
stackAlloc(@nargs=1, @blob="04000000");
pushi(@nargs=1, @blob="08000000");
seti(@mask=0b1, @nargs=1, @blob="00000000");
pushi(@nargs=1, @blob="00000000");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
jmp(@nargs=2, @blob="a0000000 00000000");
enmCreate(
@nargs=6,
@blob="14000000 426f7373 43617264 335f3031 41446f6c 6c410000 00000000 00000000 e8030000 e8030000 00000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@nargs=1, @blob="c7b8b23e");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
deci(@mask=0b1, @nargs=1, @blob="00000000");
jmpNeq(@nargs=2, @blob="64ffffff 00000000");
playSound(@nargs=1, @blob="10000000");
ret(@blob="");
}
void BossCard4_01A() {
stackAlloc(@nargs=1, @blob="14000000");
setInvuln(@nargs=1, @blob="64000000");
enmKillAll(@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");
spellEnd(@blob="");
killAllAsync(@blob="");
funcSet(@nargs=1, @blob="00000000");
laserCancel(@blob="");
setInterrupt(
@nargs=4,
@blob="00000000 00000000 68100000 0c000000 426f7373 44656164 00000000",
);
setChapter(@nargs=1, @blob="2e000000");
pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
pushi(@nargs=1, @blob="00000000");
eqi(@blob="");
jmpEq(@nargs=2, @blob="d8000000 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");
call(@nargs=1, @blob="10000000 426f7373 43617264 4974656d 00000000");
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");
movePosTime(@nargs=4, @blob="5a000000 04000000 00000000 00000043");
moveLimitReset(@blob="");
wait(@nargs=1, @blob="5a000000");
spell(
@nargs=4,
@blob="5a000000 68100000 20a10700 20000000 e6041ef2 724f1272 eca80c6f 68210a33 e40706c6 60ab028f dc8afe7c 5ad47960",
);
flagSet(@nargs=1, @blob="0c000000");
playSound(@nargs=1, @blob="29000000");
+60: // 60
nop(@blob="");
anmSelect(@nargs=1, @blob="02000000");
anmPlay(@nargs=2, @blob="00000000 83000000");
playSound(@nargs=1, @blob="29000000");
wait(@nargs=1, @blob="3c000000");
jmp(@nargs=2, @blob="18040000 3c000000");
diffI(
@mask=0b1,
@nargs=5,
@blob="10000000 04000000 04000000 05000000 06000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@nargs=1, @blob="00000040");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
diffF(
@mask=0b1,
@nargs=5,
@blob="00004041 db0fc93f db0fc93f 7cd9a03f 920a863f",
);
playSound(@nargs=1, @blob="10000000");
jmp(@nargs=2, @blob="b4000000 3c000000");
enmCreate(
@nargs=6,
@blob="14000000 426f7373 43617264 345f3031 41446f6c 6c410000 00000000 00000000 d0070000 e8030000 00000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
deci(@mask=0b1, @nargs=1, @blob="10000000");
jmpNeq(@nargs=2, @blob="50ffffff 3c000000");
pushi(@mask=0b1, @nargs=1, @blob="19d9ffff");
pushi(@nargs=1, @blob="01000000");
geqi(@blob="");
jmpEq(@nargs=2, @blob="ec010000 3c000000");
diffI(
@mask=0b1,
@nargs=5,
@blob="10000000 04000000 04000000 05000000 06000000",
);
diffF(
@mask=0b1,
@nargs=5,
@blob="00004041 db0f493f db0f493f 7cd9203f 920a063f",
);
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
diffF(
@mask=0b1,
@nargs=5,
@blob="00004041 db0fc93f db0fc93f 7cd9a03f 920a863f",
);
validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@nargs=1, @blob="0000a040");
setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
jmp(@nargs=2, @blob="b4000000 3c000000");
enmCreate(
@nargs=6,
@blob="14000000 426f7373 43617264 345f3031 41446f6c 6c410000 00000000 00000000 d0070000 e8030000 00000000",
);
pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
deci(@mask=0b1, @nargs=1, @blob="10000000");
jmpNeq(@nargs=2, @blob="50ffffff 3c000000");
diffWait(@nargs=4, @blob="78000000 78000000 78000000 6e000000");
moveRand(@nargs=3, @blob="28000000 00000000 0000803f");
wait(@nargs=1, @blob="28000000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="ecfbffff 3c000000");
ret(@blob="");
}
void BossCard4_01ADollA() {
stackAlloc(@nargs=1, @blob="0c000000");
anmSelect(@nargs=1, @blob="01000000");
anmSetSprite(@nargs=2, @blob="00000000 66000000");
flagSet(@nargs=1, @blob="0c000000");
moveVel(@mask=0b11, @nargs=2, @blob="00f41bc6 00f01bc6");
moveVelTime(@nargs=4, @blob="50000000 01000000 f02374c9 00000000");
+60: // 60
nop(@blob="");
anmSelect(@nargs=1, @blob="00000000");
anmSetSprite(@nargs=2, @blob="01000000 af000000");
+20: // 80
anmSetSprite(@nargs=2, @blob="00000000 ffffffff");
moveVel(@mask=0b1, @nargs=2, @blob="00f41bc6 9a99993e");
playSound(@nargs=1, @blob="36000000");
flagSet(@nargs=1, @blob="01020000");
pushi(@nargs=1, @blob="08000000");
setf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="0a000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
jmp(@nargs=2, @blob="90000000 50000000");
setHitbox(@mask=0b11, @nargs=2, @blob="00008040 00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushi(@nargs=1, @blob="08000000");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
wait(@nargs=1, @blob="01000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="74ffffff 50000000");
callAsync(@nargs=1, @blob="10000000 426f7373 43617264 345f3031 41617400");
pushi(@nargs=1, @blob="5a000000");
seti(@mask=0b1, @nargs=1, @blob="08000000");
jmp(@nargs=2, @blob="90000000 50000000");
setHitbox(@mask=0b11, @nargs=2, @blob="00008040 00008040");
pushf(@mask=0b1, @nargs=1, @blob="00008040");
pushf(@nargs=1, @blob="9a99193f");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008040");
wait(@nargs=1, @blob="01000000");
deci(@mask=0b1, @nargs=1, @blob="08000000");
jmpNeq(@nargs=2, @blob="74ffffff 50000000");
flagSet(@nargs=1, @blob="03000000");
wait(@nargs=1, @blob="28000000");
delete(@blob="");
jmp(@nargs=2, @blob="2c000000 50000000");
wait(@nargs=1, @blob="e8030000");
pushi(@nargs=1, @blob="01000000");
jmpNeq(@nargs=2, @blob="d8ffffff 50000000");
delete(@blob="");
}
void BossCard4_01Aat() {
stackAlloc(@nargs=1, @blob="10000000");
etNew(@nargs=1, @blob="00000000");
etAim(@nargs=2, @blob="00000000 05000000");
etSprite(@nargs=3, @blob="00000000 01000000 02000000");
etCount(@nargs=3, @blob="00000000 01000000 01000000");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 db0fc93d");
etSpeed(@nargs=3, @blob="00000000 00000000 00000040");
etEx(
@nargs=8,
@blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 01000000 00000000 00000010 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="00000000 02000000 01000000 04000000 78000000 c1bdf0ff 8988083c f02374c9",
);
wait(@nargs=1, @blob="50000000");
pushi(@nargs=1, @blob="1e000000");
seti(@mask=0b1, @nargs=1, @blob="0c000000");
jmp(@nargs=2, @blob="d0000000 00000000");
pushi(@nargs=1, @blob="40000000");
pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
pushi(@nargs=1, @blob="10000000");
mulf(@blob="");
addf(@blob="");
etDist(@mask=0b10, @nargs=2, @blob="00000000 000080bf");
etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000");
etOn(@nargs=1, @blob="00000000");
wait(@nargs=1, @blob="01000000");
deci(@mask=0b1, @nargs=1, @blob="0c000000");
jmpNeq(@nargs=2, @blob="34ffffff 00000000");
ret(@blob="");
}
void BossCard4_01Aat2() {
stackAlloc(@nargs=1, @blob="18000000");
etNew(@nargs=1, @blob="01000000");
etAim(@nargs=2, @blob="01000000 05000000");
etSprite(@nargs=3, @blob="01000000 07000000 06000000");
etCount(@nargs=3, @blob="01000000 01000000 01000000");
etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 db0fc93d");
etSpeed(@nargs=3, @blob="01000000 0000803f 00000040");
etEx(
@nargs=8,
@blob="01000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="01000000 01000000 00000000 00040000 c8000000 c1bdf0ff f02374c9 f02374c9",
);
etEx(
@nargs=8,
@blob="01000000 02000000 01000000 08000000 70170000 c1bdf0ff 00000000 5077563d",
);
etEx(
@nargs=8,
@blob="01000000 03000000 01000000 00000008 70170000 c1bdf0ff db0fc93f 0000803f",
);
etOffsetAbs(@nargs=3, @blob="01000000 00000000 00000000");
etOffset(@mask=0b110, @nargs=3, @blob="01000000 00000000 00008040");
pushi(@nargs=1, @blob="5a000000");
seti(@mask=0b1, @nargs=1, @blob="14000000");
pushf(@nargs=1, @blob="707756bd");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="0000003f");
setf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
setf(@mask=0b1, @nargs=1, @blob="00008041");
jmp(@nargs=2, @blob="78010000 00000000");
etAngle(@mask=0b10, @nargs=3, @blob="01000000 00008041 00000000");
etSpeed(@mask=0b10, @nargs=3, @blob="01000000 00004041 00000000");
etEx(
@mask=0b10000000,
@nargs=8,
@blob="01000000 02000000 01000000 08000000 70170000 c1bdf0ff 00000000 00000041",
);
etOn(@nargs=1, @blob="01000000");
pushf(@mask=0b1, @nargs=1, @blob="00008041");
pushf(@nargs=1, @blob="b6867840");
subf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00008041");
pushf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@nargs=1, @blob="3f357e3f");
mulf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00000041");
pushf(@mask=0b1, @nargs=1, @blob="00004041");
pushf(@nargs=1, @blob="a69b443c");
addf(@blob="");
setf(@mask=0b1, @nargs=1, @blob="00004041");
deci(@mask=0b1, @nargs=1, @blob="14000000");
jmpNeq(@nargs=2, @blob="8cfeffff 00000000");
ret(@blob="");
}