#pragma mapfile "utils/th11.eclm"

meta {}


void Boss() {
    stackAlloc(@nargs=1, @blob="04000000");
    setBoss(@nargs=1, @blob="00000000");
    anmSelect(@nargs=1, @blob="02000000");
    anmSetMain(@nargs=2, @blob="00000000 00000000");
    flagSet(@nargs=1, @blob="4c000000");
    setHurtbox(@nargs=2, @blob="00004042 00004042");
    setHitbox(@nargs=2, @blob="00004042 00004042");
    setInvuln(@nargs=1, @blob="3c000000");
    lifeSet(@nargs=1, @blob="c8320000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    setChapter(@nargs=1, @blob="18000000");
+60: // 60
    dialogWait(@blob="");
    playSound(@nargs=1, @blob="29000000");
    fog(@nargs=2, @blob="00002043 0000ff00");
    setChapter(@nargs=1, @blob="18000000");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 0000c042");
    lifeSet(@nargs=1, @blob="c8320000");
    anmSelect(@nargs=1, @blob="00000000");
    anmSetSprite(@nargs=2, @blob="01000000 5c000000");
    anmSetSprite(@nargs=2, @blob="02000000 aa000000");
    anmSelect(@nargs=1, @blob="02000000");
    call(@nargs=1, @blob="08000000 426f7373 31000000");
    delete(@blob="");
}


void Boss1() {
    stackAlloc(@nargs=1, @blob="00000000");
    timerReset(@blob="");
    lifeMarker(@nargs=3, @blob="00000000 00803b45 80a0ffff");
    setInterrupt(
        @nargs=4,
        @blob="00000000 b80b0000 100e0000 0c000000 426f7373 43617264 31000000",
    );
    setChapter(@nargs=1, @blob="18000000");
    stars(@nargs=1, @blob="09000000");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
    wait(@nargs=1, @blob="14000000");
    jmp(@nargs=2, @blob="28010000 00000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    playSound(@nargs=1, @blob="29000000");
    wait(@nargs=1, @blob="3c000000");
    callAsync(@nargs=1, @blob="0c000000 426f7373 31417431 00000000");
    wait(@nargs=1, @blob="64000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    playSound(@nargs=1, @blob="29000000");
    wait(@nargs=1, @blob="3c000000");
    callAsync(@nargs=1, @blob="0c000000 426f7373 31417431 62000000");
    wait(@nargs=1, @blob="3c000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00004040");
    wait(@nargs=1, @blob="3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="dcfeffff 00000000");
    ret(@blob="");
}


void Boss1At1() {
    stackAlloc(@nargs=1, @blob="18000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 03000000 0a000000");
    etCount(@nargs=3, @blob="00000000 1c000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000c03f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00100000 28000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    seti(@mask=0b1, @nargs=1, @blob="10000000");
    pushi(@nargs=1, @blob="10000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="44010000 00000000");
    circlePos(
        @mask=0b1111,
        @nargs=4,
        @blob="00000041 00004041 00008040 00000000",
    );
    etOffset(@mask=0b110, @nargs=3, @blob="00000000 00000041 00004041");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    etOn(@nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="00008041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="7028c43e");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    validRad(@mask=0b1, @nargs=1, @blob="00008040");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="10000000");
    jmpNeq(@nargs=2, @blob="c0feffff 00000000");
    ret(@blob="");
}


void Boss1At1b() {
    stackAlloc(@nargs=1, @blob="18000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 03000000 08000000");
    etCount(@nargs=3, @blob="00000000 1c000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000c03f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00100000 28000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    seti(@mask=0b1, @nargs=1, @blob="10000000");
    pushi(@nargs=1, @blob="10000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="44010000 00000000");
    circlePos(
        @mask=0b1111,
        @nargs=4,
        @blob="00000041 00004041 00008040 00000000",
    );
    etOffset(@mask=0b110, @nargs=3, @blob="00000000 00000041 00004041");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    etOn(@nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="00008041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="7028c43e");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    validRad(@mask=0b1, @nargs=1, @blob="00008040");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="10000000");
    jmpNeq(@nargs=2, @blob="c0feffff 00000000");
    ret(@blob="");
}


void Boss2() {
    stackAlloc(@nargs=1, @blob="00000000");
    timerReset(@blob="");
    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="");
    laserCancel(@blob="");
    funcSet(@nargs=1, @blob="00000000");
    lifeSet(@nargs=1, @blob="dc370000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 e40c0000 100e0000 0c000000 426f7373 43617264 32000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 00404e45 80a0ffff");
    setChapter(@nargs=1, @blob="19000000");
    stars(@nargs=1, @blob="08000000");
    setInvuln(@nargs=1, @blob="3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="e4000000 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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 14000000");
    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");
+60: // 60
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00004042");
    callAsync(@nargs=1, @blob="0c000000 426f7373 32417431 00000000");
    jmp(@nargs=2, @blob="48000000 3c000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00000040");
    wait(@nargs=1, @blob="78000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="bcffffff 3c000000");
    ret(@blob="");
}


void Boss2At1() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 03000000 02000000");
    etCount(@nargs=3, @blob="00000000 0e000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000a040 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="b8010000 00000000");
    pushi(@nargs=1, @blob="05000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    pushf(@nargs=1, @blob="00006040");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    jmp(@nargs=2, @blob="24010000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="7077d63c");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    validRad(@mask=0b1, @nargs=1, @blob="00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="9a99993e");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="e0feffff 00000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="4cfeffff 00000000");
    ret(@blob="");
}


void Boss3() {
    stackAlloc(@nargs=1, @blob="04000000");
    timerReset(@blob="");
    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");
    lifeSet(@nargs=1, @blob="e8350000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 f00a0000 100e0000 0c000000 426f7373 43617264 33000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 00002f45 80a0ffff");
    setChapter(@nargs=1, @blob="1a000000");
    stars(@nargs=1, @blob="07000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="f8000000 00000000");
    setInvuln(@nargs=1, @blob="3c000000");
    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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 14000000");
    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 00000000 00000043");
+60: // 60
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    playSound(@nargs=1, @blob="29000000");
    wait(@nargs=1, @blob="3c000000");
    callAsync(@nargs=1, @blob="0c000000 426f7373 33417431 00000000");
    jmp(@nargs=2, @blob="5c000000 3c000000");
    wait(@nargs=1, @blob="a0000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00004040");
    wait(@nargs=1, @blob="3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="a8ffffff 3c000000");
    ret(@blob="");
}


void Boss3At1() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 0d000000 01000000");
    etCount(@nargs=3, @blob="00000000 0e000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000a040 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etDist(@nargs=2, @blob="00000000 00008041");
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="b8010000 00000000");
    pushi(@nargs=1, @blob="05000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    pushf(@nargs=1, @blob="00002040");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    jmp(@nargs=2, @blob="24010000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="7077d63c");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    validRad(@mask=0b1, @nargs=1, @blob="00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="cdcccc3d");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="e0feffff 00000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="4cfeffff 00000000");
    ret(@blob="");
}


void Boss4() {
    stackAlloc(@nargs=1, @blob="00000000");
    timerReset(@blob="");
    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");
    lifeSet(@nargs=1, @blob="78370000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 800c0000 100e0000 0c000000 426f7373 43617264 34000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 00004845 80a0ffff");
    setChapter(@nargs=1, @blob="19000000");
    stars(@nargs=1, @blob="06000000");
    setInvuln(@nargs=1, @blob="3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="e4000000 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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 14000000");
    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");
+120: // 120
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00004042");
    wait(@nargs=1, @blob="14000000");
    jmp(@nargs=2, @blob="14010000 78000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    playSound(@nargs=1, @blob="29000000");
    wait(@nargs=1, @blob="3c000000");
    callAsync(@nargs=1, @blob="0c000000 426f7373 34417431 00000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    playSound(@nargs=1, @blob="29000000");
    wait(@nargs=1, @blob="3c000000");
    callAsync(@nargs=1, @blob="0c000000 426f7373 34417431 62000000");
    wait(@nargs=1, @blob="3c000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00004040");
    wait(@nargs=1, @blob="3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="f0feffff 78000000");
    ret(@blob="");
}


void Boss4At1() {
    stackAlloc(@nargs=1, @blob="18000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 03000000 02000000");
    etCount(@nargs=3, @blob="00000000 14000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000c03f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00100000 28000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    seti(@mask=0b1, @nargs=1, @blob="10000000");
    pushi(@nargs=1, @blob="10000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="44010000 00000000");
    circlePos(
        @mask=0b1111,
        @nargs=4,
        @blob="00000041 00004041 00008040 00000000",
    );
    etOffset(@mask=0b110, @nargs=3, @blob="00000000 00000041 00004041");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    etOn(@nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="00008041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="7028c43e");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    validRad(@mask=0b1, @nargs=1, @blob="00008040");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="10000000");
    jmpNeq(@nargs=2, @blob="c0feffff 00000000");
    ret(@blob="");
}


void Boss4At1b() {
    stackAlloc(@nargs=1, @blob="18000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 03000000 04000000");
    etCount(@nargs=3, @blob="00000000 14000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000c03f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00100000 28000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    seti(@mask=0b1, @nargs=1, @blob="10000000");
    pushi(@nargs=1, @blob="10000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="44010000 00000000");
    circlePos(
        @mask=0b1111,
        @nargs=4,
        @blob="00000041 00004041 00008040 00000000",
    );
    etOffset(@mask=0b110, @nargs=3, @blob="00000000 00000041 00004041");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    etOn(@nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="00008041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="7028c43e");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    validRad(@mask=0b1, @nargs=1, @blob="00008040");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="10000000");
    jmpNeq(@nargs=2, @blob="c0feffff 00000000");
    ret(@blob="");
}


void Boss5() {
    stackAlloc(@nargs=1, @blob="00000000");
    timerReset(@blob="");
    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");
    lifeSet(@nargs=1, @blob="f92a0000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 01000000 100e0000 0c000000 426f7373 43617264 35000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 0000803f 80a0ffff");
    setChapter(@nargs=1, @blob="19000000");
    stars(@nargs=1, @blob="05000000");
    setInvuln(@nargs=1, @blob="3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="e4000000 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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 14000000");
    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");
+120: // 120
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00004042");
    callAsync(@nargs=1, @blob="0c000000 426f7373 35417431 00000000");
    jmp(@nargs=2, @blob="48000000 78000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 0000803f");
    wait(@nargs=1, @blob="78000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="bcffffff 78000000");
    ret(@blob="");
}


void Boss5At1() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 03000000 04000000");
    etCount(@nargs=3, @blob="00000000 10000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000a040 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="b8010000 00000000");
    pushi(@nargs=1, @blob="05000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    pushf(@nargs=1, @blob="00004040");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    jmp(@nargs=2, @blob="24010000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="7077d63c");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    validRad(@mask=0b1, @nargs=1, @blob="00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="9a99193e");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="e0feffff 00000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="4cfeffff 00000000");
    ret(@blob="");
}


void Boss5At1b() {
    stackAlloc(@nargs=1, @blob="18000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 03000000 04000000");
    etCount(@nargs=3, @blob="00000000 18000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000c03f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00100000 28000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    seti(@mask=0b1, @nargs=1, @blob="10000000");
    pushi(@nargs=1, @blob="10000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="44010000 00000000");
    circlePos(
        @mask=0b1111,
        @nargs=4,
        @blob="00000041 00004041 00008040 00000000",
    );
    etOffset(@mask=0b110, @nargs=3, @blob="00000000 00000041 00004041");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    etOn(@nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="00008041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="7028c43e");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    validRad(@mask=0b1, @nargs=1, @blob="00008040");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="10000000");
    jmpNeq(@nargs=2, @blob="c0feffff 00000000");
    ret(@blob="");
}


void Boss6() {
    stackAlloc(@nargs=1, @blob="00000000");
    timerReset(@blob="");
    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");
    lifeSet(@nargs=1, @blob="90330000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 800c0000 100e0000 0c000000 426f7373 43617264 36000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 00004845 80a0ffff");
    setChapter(@nargs=1, @blob="19000000");
    stars(@nargs=1, @blob="04000000");
    setInvuln(@nargs=1, @blob="3c000000");
    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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 14000000");
    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");
    anmSetSprite(@nargs=2, @blob="02000000 ffffffff");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
+120: // 120
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00004042");
    callAsync(@nargs=1, @blob="0c000000 426f7373 36417431 00000000");
    jmp(@nargs=2, @blob="5c000000 78000000");
    wait(@nargs=1, @blob="a0000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00000040");
    wait(@nargs=1, @blob="3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="a8ffffff 78000000");
    ret(@blob="");
}


void Boss6At1() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 0d000000 02000000");
    etCount(@nargs=3, @blob="00000000 0e000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000a040 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etDist(@nargs=2, @blob="00000000 00008041");
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="b8010000 00000000");
    pushi(@nargs=1, @blob="0a000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    pushf(@nargs=1, @blob="00002040");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    jmp(@nargs=2, @blob="24010000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="7077d63c");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    validRad(@mask=0b1, @nargs=1, @blob="00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@mask=0b10, @nargs=3, @blob="00000000 00008040 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@nargs=1, @blob="0ad7a33d");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="03000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="e0feffff 00000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="4cfeffff 00000000");
    ret(@blob="");
}


void Boss7() {
    stackAlloc(@nargs=1, @blob="00000000");
    timerReset(@blob="");
    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");
    lifeSet(@nargs=1, @blob="20350000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 100e0000 100e0000 0c000000 426f7373 43617264 37000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 00006145 80a0ffff");
    setChapter(@nargs=1, @blob="19000000");
    stars(@nargs=1, @blob="03000000");
    setInvuln(@nargs=1, @blob="3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="e4000000 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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 14000000");
    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");
    anmSetSprite(@nargs=2, @blob="02000000 ffffffff");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
+120: // 120
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00004042");
    callAsync(@nargs=1, @blob="0c000000 426f7373 37417431 00000000");
    callAsync(@nargs=1, @blob="0c000000 426f7373 37417432 00000000");
    jmp(@nargs=2, @blob="5c000000 78000000");
    wait(@nargs=1, @blob="a0000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00000040");
    wait(@nargs=1, @blob="3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="a8ffffff 78000000");
    ret(@blob="");
}


void Boss7At1() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="02000000");
    etAim(@nargs=2, @blob="02000000 02000000");
    etSprite(@nargs=3, @blob="02000000 0c000000 04000000");
    etCount(@nargs=3, @blob="02000000 01000000 01000000");
    etAngle(@nargs=3, @blob="02000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="02000000 00000040 cdcc4c3e");
    etEx(
        @nargs=8,
        @blob="02000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    wait(@nargs=1, @blob="1e000000");
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="40000000 00000000");
    etOn(@nargs=1, @blob="02000000");
    wait(@nargs=1, @blob="28000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="c4ffffff 00000000");
    ret(@blob="");
}


void Boss7At2() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 02000000");
    etSprite(@nargs=3, @blob="00000000 03000000 04000000");
    etCount(@nargs=3, @blob="00000000 01000000 0a000000");
    etAngle(@nargs=3, @blob="00000000 db0fc9bf 00000000");
    etSpeed(@nargs=3, @blob="00000000 00000041 cdcc4c3e");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 10000000 3c000000 01000000 db0fc93f 00004040",
    );
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 02000000");
    etSprite(@nargs=3, @blob="01000000 03000000 04000000");
    etCount(@nargs=3, @blob="01000000 01000000 0a000000");
    etAngle(@nargs=3, @blob="01000000 db0fc93f 00000000");
    etSpeed(@nargs=3, @blob="01000000 00000041 cdcc4c3e");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 10000000 3c000000 01000000 db0fc9bf 00004040",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="54000000 00000000");
    etOn(@nargs=1, @blob="00000000");
    etOn(@nargs=1, @blob="01000000");
    wait(@nargs=1, @blob="3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="b0ffffff 00000000");
    ret(@blob="");
}


void Boss8() {
    stackAlloc(@nargs=1, @blob="00000000");
    timerReset(@blob="");
    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");
    lifeSet(@nargs=1, @blob="e02e0000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 d0070000 100e0000 0c000000 426f7373 43617264 38000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 0000fa44 80a0ffff");
    setChapter(@nargs=1, @blob="19000000");
    stars(@nargs=1, @blob="02000000");
    setInvuln(@nargs=1, @blob="3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="e4000000 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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 14000000");
    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");
    anmSetSprite(@nargs=2, @blob="02000000 ffffffff");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
+120: // 120
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00004042");
    callAsync(@nargs=1, @blob="0c000000 426f7373 38417431 00000000");
    callAsync(@nargs=1, @blob="0c000000 426f7373 38417432 00000000");
    jmp(@nargs=2, @blob="5c000000 78000000");
    wait(@nargs=1, @blob="a0000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00000040");
    wait(@nargs=1, @blob="3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="a8ffffff 78000000");
    ret(@blob="");
}


void Boss8At1() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="02000000");
    etAim(@nargs=2, @blob="02000000 02000000");
    etSprite(@nargs=3, @blob="02000000 0c000000 04000000");
    etCount(@nargs=3, @blob="02000000 01000000 01000000");
    etAngle(@nargs=3, @blob="02000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="02000000 00000040 cdcc4c3e");
    etEx(
        @nargs=8,
        @blob="02000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    wait(@nargs=1, @blob="1e000000");
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="40000000 00000000");
    etOn(@nargs=1, @blob="02000000");
    wait(@nargs=1, @blob="28000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="c4ffffff 00000000");
    ret(@blob="");
}


void Boss8At2() {
    stackAlloc(@nargs=1, @blob="0c000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 02000000");
    etSprite(@nargs=3, @blob="00000000 03000000 04000000");
    etCount(@nargs=3, @blob="00000000 01000000 0a000000");
    etAngle(@nargs=3, @blob="00000000 db0fc9bf 00000000");
    etSpeed(@nargs=3, @blob="00000000 00000041 cdcc4c3e");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 10000000 3c000000 01000000 db0fc93f 00004040",
    );
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 02000000");
    etSprite(@nargs=3, @blob="01000000 03000000 04000000");
    etCount(@nargs=3, @blob="01000000 01000000 0a000000");
    etAngle(@nargs=3, @blob="01000000 db0fc93f 00000000");
    etSpeed(@nargs=3, @blob="01000000 00000041 cdcc4c3e");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 10000000 3c000000 01000000 db0fc9bf 00004040",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00141cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="54000000 00000000");
    etOn(@nargs=1, @blob="00000000");
    etOn(@nargs=1, @blob="01000000");
    wait(@nargs=1, @blob="0a000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="b0ffffff 00000000");
    ret(@blob="");
}


void BossCard1() {
    stackAlloc(@nargs=1, @blob="14000000");
    etProtectRange(@nargs=1, @blob="00000000");
    enmKillAll(@blob="");
    spellEnd(@blob="");
    killAllAsync(@blob="");
    funcSet(@nargs=1, @blob="00000000");
    laserCancel(@blob="");
    playSound(@nargs=1, @blob="0f000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    setInvuln(@nargs=1, @blob="3c000000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 18150000 08000000 426f7373 32000000",
    );
    spellEx(
        @nargs=4,
        @blob="a5000000 18150000 20a10700 1c000000 e2221a67 724f074a f97b0ffd 69001996 f60d1421 748d0357 de907d24",
    );
    setChapter(@nargs=1, @blob="2b000000");
    killAllAsync(@blob="");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00002043");
    moveLimit(@nargs=4, @blob="00000000 00000043 0000c043 00008043");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="4c000000 00000000");
    dropClear(@blob="");
    dropMain(@nargs=1, @blob="05000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
+120: // 120
    nop(@blob="");
    jmp(@nargs=2, @blob="f4010000 78000000");
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="c092ab3b");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    callAsync(@nargs=1, @blob="0c000000 426f7373 43617264 31417400");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31417432 00000000");
    wait(@nargs=1, @blob="c8000000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31417433 00000000");
    wait(@nargs=1, @blob="c8000000");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    playSound(@nargs=1, @blob="29000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="64000000");
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="94d9203d");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    callAsync(@nargs=1, @blob="0c000000 426f7373 43617264 31417400");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31417432 00000000");
    wait(@nargs=1, @blob="78000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="10feffff 78000000");
    jmp(@nargs=2, @blob="2c000000 78000000");
    wait(@nargs=1, @blob="e8030000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="d8ffffff 78000000");
    ret(@blob="");
}


void BossCard10() {
    stackAlloc(@nargs=1, @blob="08000000");
    setInvuln(@nargs=1, @blob="c8000000");
    enmKillAll(@blob="");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    spellEnd(@blob="");
    killAllAsync(@blob="");
    funcCall(@nargs=1, @blob="0b000000");
    setChapter(@nargs=1, @blob="34000000");
    moveReset(@blob="");
    flagClear(@nargs=1, @blob="23000000");
    lifeSet(@nargs=1, @blob="c02b0000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 882c0000 0c000000 426f7373 44656164 00000000",
    );
    lifeMarker(@nargs=3, @blob="00000000 00002f46 80a0ffff");
    stars(@nargs=1, @blob="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="04000000 02000000");
    dropExtra(@nargs=2, @blob="02000000 28000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    anmSetMain(@nargs=2, @blob="00000000 00000000");
    wait(@nargs=1, @blob="b4000000");
    timerReset(@blob="");
    spellEx(
        @nargs=4,
        @blob="ae000000 882c0000 20a10700 1c000000 f60b16e8 704f12a6 ec7a0e77 68d80a31 e4fd0621 627102b1 de907d24",
    );
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
    moveLimitReset(@blob="");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31304574 41740000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31304574 41743200");
    funcSet(@nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    jmp(@nargs=2, @blob="40040000 3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="04000000");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="2c010000 3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="1ed9ffff");
    pushi(@nargs=1, @blob="d0200000");
    lessi(@blob="");
    jmpEq(@nargs=2, @blob="c4000000 3c000000");
    playSound(@nargs=1, @blob="0f000000");
    etClear(@nargs=1, @blob="00002044");
    killAllAsync(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31304574 41744200");
    callAsync(
        @nargs=1,
        @blob="14000000 426f7373 43617264 31304574 41744232 00000000",
    );
    jmp(@nargs=2, @blob="c8020000 3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="04000000");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="2c010000 3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="1ed9ffff");
    pushi(@nargs=1, @blob="e0150000");
    lessi(@blob="");
    jmpEq(@nargs=2, @blob="c4000000 3c000000");
    playSound(@nargs=1, @blob="0f000000");
    etClear(@nargs=1, @blob="00002044");
    killAllAsync(@blob="");
    pushi(@nargs=1, @blob="02000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31304574 41744300");
    callAsync(
        @nargs=1,
        @blob="14000000 426f7373 43617264 31304574 41744332 00000000",
    );
    jmp(@nargs=2, @blob="64010000 3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="04000000");
    pushi(@nargs=1, @blob="02000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="14010000 3c000000");
    pushi(@mask=0b1, @nargs=1, @blob="1ed9ffff");
    pushi(@nargs=1, @blob="f00a0000");
    lessi(@blob="");
    jmpEq(@nargs=2, @blob="c4000000 3c000000");
    playSound(@nargs=1, @blob="0f000000");
    etClear(@nargs=1, @blob="00002044");
    killAllAsync(@blob="");
    pushi(@nargs=1, @blob="03000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 31304574 41744400");
    callAsync(
        @nargs=1,
        @blob="14000000 426f7373 43617264 31304574 41744432 00000000",
    );
    wait(@nargs=1, @blob="01000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="c4fbffff 3c000000");
    jmp(@nargs=2, @blob="2c000000 3c000000");
    wait(@nargs=1, @blob="e8030000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
    ret(@blob="");
}


void BossCard10EtAt() {
    stackAlloc(@nargs=1, @blob="10000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 01000000 06000000");
    etCount(@nargs=3, @blob="00000000 40000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 03000000");
    etSprite(@nargs=3, @blob="01000000 01000000 02000000");
    etCount(@nargs=3, @blob="01000000 40000000 01000000");
    etAngle(@nargs=3, @blob="01000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="01000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    jmp(@nargs=2, @blob="a0000000 00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="64000000");
    etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="01000000");
    wait(@nargs=1, @blob="64000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="64ffffff 00000000");
    ret(@blob="");
}


void BossCard10EtAt2() {
    stackAlloc(@nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="d80fc93e");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    jmp(@nargs=2, @blob="ec000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="7077563d");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="7077563d");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f01bc6");
    wait(@nargs=1, @blob="01000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="18ffffff 00000000");
    ret(@blob="");
}


void BossCard10EtAtB() {
    stackAlloc(@nargs=1, @blob="10000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 01000000 06000000");
    etCount(@nargs=3, @blob="00000000 30000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000c03f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 03000000");
    etSprite(@nargs=3, @blob="01000000 01000000 02000000");
    etCount(@nargs=3, @blob="01000000 30000000 01000000");
    etAngle(@nargs=3, @blob="01000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="01000000 0000c03f 0000c03f");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    jmp(@nargs=2, @blob="a0000000 00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="37000000");
    etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="01000000");
    wait(@nargs=1, @blob="37000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="64ffffff 00000000");
    ret(@blob="");
}


void BossCard10EtAtB2() {
    stackAlloc(@nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="d80fc93e");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    jmp(@nargs=2, @blob="ec000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="7077563d");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="7077563d");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f01bc6");
    wait(@nargs=1, @blob="01000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="18ffffff 00000000");
    ret(@blob="");
}


void BossCard10EtAtC() {
    stackAlloc(@nargs=1, @blob="10000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 01000000 06000000");
    etCount(@nargs=3, @blob="00000000 40000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 03000000");
    etSprite(@nargs=3, @blob="01000000 01000000 02000000");
    etCount(@nargs=3, @blob="01000000 40000000 01000000");
    etAngle(@nargs=3, @blob="01000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="01000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    jmp(@nargs=2, @blob="a0000000 00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="64000000");
    etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="01000000");
    wait(@nargs=1, @blob="64000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="64ffffff 00000000");
    ret(@blob="");
}


void BossCard10EtAtC2() {
    stackAlloc(@nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    jmp(@nargs=2, @blob="ec000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="7077563d");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="7077563d");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f01bc6");
    wait(@nargs=1, @blob="01000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="18ffffff 00000000");
    ret(@blob="");
}


void BossCard10EtAtD() {
    stackAlloc(@nargs=1, @blob="10000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 01000000 06000000");
    etCount(@nargs=3, @blob="00000000 40000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 03000000");
    etSprite(@nargs=3, @blob="01000000 01000000 02000000");
    etCount(@nargs=3, @blob="01000000 40000000 01000000");
    etAngle(@nargs=3, @blob="01000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="01000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    jmp(@nargs=2, @blob="a0000000 00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="28000000");
    etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 00000000");
    etOn(@nargs=1, @blob="01000000");
    wait(@nargs=1, @blob="28000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="64ffffff 00000000");
    ret(@blob="");
}


void BossCard10EtAtD2() {
    stackAlloc(@nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="f90f493e");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    jmp(@nargs=2, @blob="ec000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="1409a63c");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="1409a63c");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    validRad(@mask=0b1, @nargs=1, @blob="00f01bc6");
    wait(@nargs=1, @blob="01000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="18ffffff 00000000");
    ret(@blob="");
}


void BossCard1At() {
    stackAlloc(@nargs=1, @blob="0c000000");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    etNew(@nargs=1, @blob="00000000");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 04000000 28000000 c1bdf0ff cdcc4c3e f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 01000000 00010000 02000000 0d000000 f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="40ffffff");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="0a000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="10010000 00000000");
    etOffsetAbs(@mask=0b10, @nargs=3, @blob="00000000 00008040 0000e843");
    laserOnA2(
        @mask=0b100,
        @nargs=8,
        @blob="03000000 06000000 00000000 0000803f 00000000 0000a043 00000000 00000042",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="0a000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="f4feffff 00000000");
    ret(@blob="");
}


void BossCard1At2() {
    stackAlloc(@nargs=1, @blob="0c000000");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    etNew(@nargs=1, @blob="00000000");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 04000000 28000000 c1bdf0ff 9a99193e f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 01000000 00010000 01000000 01000000 f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="c0000000");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="0a000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="10010000 00000000");
    etOffsetAbs(@mask=0b10, @nargs=3, @blob="00000000 00008040 0000e843");
    laserOnA2(
        @mask=0b100,
        @nargs=8,
        @blob="03000000 06000000 00000000 0000803f 00000000 0000a043 00000000 00000042",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="0a000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="f4feffff 00000000");
    ret(@blob="");
}


void BossCard1At3() {
    stackAlloc(@nargs=1, @blob="0c000000");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    etNew(@nargs=1, @blob="02000000");
    etAim(@nargs=2, @blob="02000000 03000000");
    etSprite(@nargs=3, @blob="02000000 0c000000 01000000");
    etCount(@nargs=3, @blob="02000000 01000000 01000000");
    etAngle(@nargs=3, @blob="02000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="02000000 00008040 0000c03f");
    etEx(
        @nargs=8,
        @blob="02000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="02000000 01000000 01000000 20000000 28000000 01000000 00000000 f02374c9",
    );
    etNew(@nargs=1, @blob="03000000");
    etAim(@nargs=2, @blob="03000000 02000000");
    etSprite(@nargs=3, @blob="03000000 01000000 02000000");
    etCount(@nargs=3, @blob="03000000 10000000 01000000");
    etAngle(@nargs=3, @blob="03000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="03000000 00004040 0000c03f");
    etEx(
        @nargs=8,
        @blob="03000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="40ffffff");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="1e000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="7c010000 00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="02000000 00000000 00000000");
    etOn(@nargs=1, @blob="02000000");
    pushi(@mask=0b1, @nargs=1, @blob="08000000");
    pushi(@nargs=1, @blob="03000000");
    modi(@blob="");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="2c000000 00000000");
    etOn(@nargs=1, @blob="03000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="10000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="d80fc93e");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="0a000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="88feffff 00000000");
    ret(@blob="");
}


void BossCard2() {
    stackAlloc(@nargs=1, @blob="04000000");
    spellEx(
        @nargs=4,
        @blob="a6000000 18150000 20a10700 18000000 e2221a67 724f039d f97d0e44 683b0a1d e42d06ed 625c81e8",
    );
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 18150000 08000000 426f7373 33000000",
    );
    enmKillAll(@blob="");
    killAllAsync(@blob="");
    moveReset(@blob="");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
    setInvuln(@nargs=1, @blob="3c000000");
    playSound(@nargs=1, @blob="07000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="4c000000 00000000");
    dropClear(@blob="");
    dropMain(@nargs=1, @blob="05000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    setChapter(@nargs=1, @blob="2c000000");
+120: // 120
    nop(@blob="");
    moveLimit(@nargs=4, @blob="00000000 00000043 0000a043 0000c040");
    callAsync(@nargs=1, @blob="0c000000 426f7373 43617264 32617400");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 32617432 00000000");
    jmp(@nargs=2, @blob="70000000 78000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    moveRand(@nargs=3, @blob="3c000000 00000000 0000c03f");
    wait(@nargs=1, @blob="54010000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="94ffffff 78000000");
    ret(@blob="");
}


void BossCard2at() {
    stackAlloc(@nargs=1, @blob="14000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 04000000 04000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00000010 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 02000000 00000000 00040000 78000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 03000000 00000000 10000000 78000000 01000000 f02374c9 00000000",
    );
    etEx(
        @nargs=8,
        @blob="00000000 04000000 00000000 00200000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
    );
    etSound(@nargs=3, @blob="00000000 07000000 ffffffff");
    jmp(@nargs=2, @blob="68020000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    pushi(@nargs=1, @blob="40000000");
    addf(@blob="");
    circlePos(
        @mask=0b1111,
        @nargs=4,
        @blob="00000041 00004041 00000000 000080bf",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00b01bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00004041");
    addf(@blob="");
    pushf(@mask=0b1, @nargs=1, @blob="00b41bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00000041");
    addf(@blob="");
    etOffsetAbs(@mask=0b110, @nargs=3, @blob="00000000 000080bf 000080bf");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="db0f4940");
    pushi(@nargs=1, @blob="03000000");
    mulf(@blob="");
    pushi(@nargs=1, @blob="04000000");
    divf(@blob="");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    pushi(@nargs=1, @blob="08000000");
    divf(@blob="");
    addf(@blob="");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00000000 00000000");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="01000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="9cfdffff 00000000");
    ret(@blob="");
}


void BossCard2at2() {
    stackAlloc(@nargs=1, @blob="18000000");
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 00000000");
    etSprite(@nargs=3, @blob="01000000 0c000000 03000000");
    etCount(@nargs=3, @blob="01000000 01000000 01000000");
    etAngle(@nargs=3, @blob="01000000 00000000 db0f493e");
    etSpeed(@nargs=3, @blob="01000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etSound(@nargs=3, @blob="01000000 07000000 ffffffff");
    pushi(@nargs=1, @blob="50000000");
    seti(@mask=0b1, @nargs=1, @blob="14000000");
    jmp(@nargs=2, @blob="d8010000 00000000");
    etCount(@nargs=3, @blob="01000000 09000000 01000000");
    etOn(@nargs=1, @blob="01000000");
    pushi(@mask=0b1, @nargs=1, @blob="14000000");
    pushi(@nargs=1, @blob="14000000");
    greateri(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="14000000");
    pushi(@nargs=1, @blob="04000000");
    subi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="14000000");
    wait(@mask=0b1, @nargs=1, @blob="14000000");
    etCount(@nargs=3, @blob="01000000 08000000 01000000");
    etOn(@nargs=1, @blob="01000000");
    pushi(@mask=0b1, @nargs=1, @blob="14000000");
    pushi(@nargs=1, @blob="14000000");
    greateri(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="14000000");
    pushi(@nargs=1, @blob="04000000");
    subi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="14000000");
    wait(@mask=0b1, @nargs=1, @blob="14000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="2cfeffff 00000000");
    ret(@blob="");
}


void BossCard3() {
    stackAlloc(@nargs=1, @blob="08000000");
    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="");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 18150000 08000000 426f7373 34000000",
    );
    setChapter(@nargs=1, @blob="2d000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="4c000000 00000000");
    dropClear(@blob="");
    dropMain(@nargs=1, @blob="05000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    spellEx(
        @nargs=4,
        @blob="a7000000 18150000 20a10700 14000000 e10501e0 724f12bb ec9e0ff8 62421c8a e61885ac",
    );
    anmSelectedPlay(@nargs=1, @blob="00000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    playSound(@nargs=1, @blob="29000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
    callAsync(
        @nargs=5,
        @blob="0c000000 426f7373 43617264 33417400 69690000 00000000 69690000 02000000 66660000 fdad00bc 66660000 db0fc93d",
    );
    callAsync(
        @nargs=5,
        @blob="0c000000 426f7373 43617264 33417400 69690000 01000000 69690000 01000000 66660000 fdad003c 66660000 db0fc9bd",
    );
    anmSelectedPlay(@nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="2c000000 3c000000");
    wait(@nargs=1, @blob="64000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
    ret(@blob="");
}


void BossCard3At() {
    stackAlloc(@nargs=1, @blob="14000000");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    setf(@mask=0b1, @nargs=1, @blob="00008041");
    etNew(@mask=0b1, @nargs=1, @blob="00000000");
    etAim(@mask=0b1, @nargs=2, @blob="00000000 03000000");
    etSprite(@mask=0b101, @nargs=3, @blob="00000000 1b000000 04000000");
    etCount(@mask=0b1, @nargs=3, @blob="00000000 0c000000 01000000");
    etAngle(@mask=0b1, @nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@mask=0b1, @nargs=3, @blob="00000000 00002040 0000c03f");
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 01000000 00000000 00040000 04010000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b10000001,
        @nargs=8,
        @blob="00000000 02000000 00000000 08000000 04010000 c1bdf0ff 44a20abc 00000041",
    );
    jmp(@nargs=2, @blob="04010000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008041");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    pushi(@nargs=1, @blob="40000000");
    divf(@blob="");
    addf(@blob="");
    etAngle(@mask=0b11, @nargs=3, @blob="00000000 000080bf 00000000");
    etOn(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008041");
    pushf(@mask=0b1, @nargs=1, @blob="00004041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008041");
    wait(@nargs=1, @blob="12000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="00ffffff 00000000");
    ret(@blob="");
}


void BossCard4() {
    stackAlloc(@nargs=1, @blob="08000000");
    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="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    spellEnd(@blob="");
    killAllAsync(@blob="");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 18150000 08000000 426f7373 35000000",
    );
    setChapter(@nargs=1, @blob="2d000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="4c000000 00000000");
    dropClear(@blob="");
    dropMain(@nargs=1, @blob="05000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    spellEx(
        @nargs=4,
        @blob="a8000000 18150000 20a10700 18000000 e003051b 724f12a0 eead0e44 6ae90a37 e43d04da e32a81e8",
    );
    anmSelectedPlay(@nargs=1, @blob="00000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    playSound(@nargs=1, @blob="29000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
    callAsync(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 34417400 69690000 00000000 69690000 04000000 66660000 c67307bc 66660000 db0fc93d 66660000 db0fc9bf",
    );
    callAsync(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 34417400 69690000 01000000 69690000 03000000 66660000 c673073c 66660000 db0fc9bd 66660000 db0fc93f",
    );
    anmSelectedPlay(@nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="2c000000 3c000000");
    wait(@nargs=1, @blob="64000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
    ret(@blob="");
}


void BossCard4At() {
    stackAlloc(@nargs=1, @blob="20000000");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    setf(@mask=0b1, @nargs=1, @blob="0000a041");
    pushi(@nargs=1, @blob="28000000");
    seti(@mask=0b1, @nargs=1, @blob="1c000000");
    etNew(@mask=0b1, @nargs=1, @blob="00000000");
    etAim(@mask=0b1, @nargs=2, @blob="00000000 05000000");
    etSprite(@mask=0b101, @nargs=3, @blob="00000000 1b000000 04000000");
    etCount(@mask=0b1, @nargs=3, @blob="00000000 0c000000 01000000");
    etAngle(@mask=0b1, @nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@mask=0b1, @nargs=3, @blob="00000000 9a99993e 0000c03f");
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 01000000 00000000 00040000 04010000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b1000001,
        @nargs=8,
        @blob="00000000 02000000 00000000 10000000 01000000 01000000 00008041 f02374c9",
    );
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 04000000 00000000 00100000 19000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 05000000 00000000 00200000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
    );
    etSound(@nargs=3, @blob="00000000 07000000 ffffffff");
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="0000c041");
    jmp(@nargs=2, @blob="d0020000 00000000");
    etEx(
        @mask=0b10010001,
        @nargs=8,
        @blob="00000000 03000000 00000000 08000000 1c000000 c1bdf0ff c10ffc3b 00000041",
    );
    etDist(@mask=0b11, @nargs=2, @blob="00000000 0000c041");
    pushf(@mask=0b1, @nargs=1, @blob="0000c041");
    pushi(@nargs=1, @blob="5e010000");
    lessf(@blob="");
    jmpEq(@nargs=2, @blob="98000000 00000000");
    etAngle(@mask=0b1, @nargs=3, @blob="00000000 00000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="0000c041");
    pushi(@nargs=1, @blob="20000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="0000c041");
    jmp(@nargs=2, @blob="dc000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="0000a041");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    pushi(@nargs=1, @blob="60000000");
    divf(@blob="");
    addf(@blob="");
    etAngle(@mask=0b11, @nargs=3, @blob="00000000 000080bf 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="0000a041");
    pushf(@mask=0b1, @nargs=1, @blob="00004041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="0000a041");
    etDist(@mask=0b11, @nargs=2, @blob="00000000 0000c041");
    pushi(@mask=0b1, @nargs=1, @blob="1c000000");
    pushi(@nargs=1, @blob="04010000");
    lessi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="1c000000");
    pushi(@nargs=1, @blob="14000000");
    addi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="1c000000");
    etOn(@mask=0b1, @nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="14000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="34fdffff 00000000");
    ret(@blob="");
}


void BossCard5() {
    stackAlloc(@nargs=1, @blob="08000000");
    setInvuln(@nargs=1, @blob="c8000000");
    enmKillAll(@blob="");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    spellEnd(@blob="");
    killAllAsync(@blob="");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 b80b0000 08000000 426f7373 36000000",
    );
    setChapter(@nargs=1, @blob="2d000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="4c000000 00000000");
    dropClear(@blob="");
    dropMain(@nargs=1, @blob="05000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    spellEx(
        @nargs=4,
        @blob="a9000000 b80b0000 20a10700 18000000 e3c31c22 724f069c e6000e48 68380a3f e4e706d8 625c81e8",
    );
    spellTimeout(@blob="");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    flagSet(@nargs=1, @blob="02000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00006043");
    moveLimitReset(@blob="");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    playSound(@nargs=1, @blob="29000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    anmSelect(@nargs=1, @blob="02000000");
    anmSetSprite(@nargs=2, @blob="02000000 17000000");
    flagClear(@nargs=1, @blob="02000000");
    pushi(@nargs=1, @blob="04000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    pushf(@nargs=1, @blob="d7316240");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    jmp(@nargs=2, @blob="9c000000 3c000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 426f7373 43617264 35536861 646f7700 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    deci(@mask=0b1, @nargs=1, @blob="04000000");
    jmpNeq(@nargs=2, @blob="68ffffff 3c000000");
    pushi(@nargs=1, @blob="04000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    pushf(@nargs=1, @blob="e73a8a40");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    jmp(@nargs=2, @blob="a0000000 3c000000");
    enmCreate(
        @nargs=6,
        @blob="14000000 426f7373 43617264 35536861 646f7732 00000000 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    deci(@mask=0b1, @nargs=1, @blob="04000000");
    jmpNeq(@nargs=2, @blob="64ffffff 3c000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="40000000 3c000000");
    setInvuln(@nargs=1, @blob="14000000");
    wait(@nargs=1, @blob="0a000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="c4ffffff 3c000000");
    ret(@blob="");
}


void BossCard5At() {
    stackAlloc(@nargs=1, @blob="20000000");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    setf(@mask=0b1, @nargs=1, @blob="0000a041");
    pushi(@nargs=1, @blob="28000000");
    seti(@mask=0b1, @nargs=1, @blob="1c000000");
    etNew(@mask=0b1, @nargs=1, @blob="00000000");
    etAim(@mask=0b1, @nargs=2, @blob="00000000 05000000");
    etSprite(@mask=0b101, @nargs=3, @blob="00000000 1b000000 04000000");
    etCount(@mask=0b1, @nargs=3, @blob="00000000 0c000000 01000000");
    etAngle(@mask=0b1, @nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@mask=0b1, @nargs=3, @blob="00000000 9a99993e 0000c03f");
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 01000000 00000000 00040000 04010000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b1000001,
        @nargs=8,
        @blob="00000000 02000000 00000000 10000000 01000000 01000000 00008041 f02374c9",
    );
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 04000000 00000000 00100000 19000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @mask=0b1,
        @nargs=8,
        @blob="00000000 05000000 00000000 00200000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
    );
    etSound(@nargs=3, @blob="00000000 07000000 ffffffff");
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="0000c041");
    jmp(@nargs=2, @blob="d0020000 00000000");
    etEx(
        @mask=0b10010001,
        @nargs=8,
        @blob="00000000 03000000 00000000 08000000 1c000000 c1bdf0ff c10ffc3b 00000041",
    );
    etDist(@mask=0b11, @nargs=2, @blob="00000000 0000c041");
    pushf(@mask=0b1, @nargs=1, @blob="0000c041");
    pushi(@nargs=1, @blob="5e010000");
    lessf(@blob="");
    jmpEq(@nargs=2, @blob="98000000 00000000");
    etAngle(@mask=0b1, @nargs=3, @blob="00000000 00000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="0000c041");
    pushi(@nargs=1, @blob="20000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="0000c041");
    jmp(@nargs=2, @blob="dc000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="0000a041");
    pushf(@mask=0b1, @nargs=1, @blob="00381cc6");
    pushi(@nargs=1, @blob="60000000");
    divf(@blob="");
    addf(@blob="");
    etAngle(@mask=0b11, @nargs=3, @blob="00000000 000080bf 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="0000a041");
    pushf(@mask=0b1, @nargs=1, @blob="00004041");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="0000a041");
    etDist(@mask=0b11, @nargs=2, @blob="00000000 0000c041");
    pushi(@mask=0b1, @nargs=1, @blob="1c000000");
    pushi(@nargs=1, @blob="04010000");
    lessi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="1c000000");
    pushi(@nargs=1, @blob="14000000");
    addi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="1c000000");
    etOn(@mask=0b1, @nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="14000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="34fdffff 00000000");
    ret(@blob="");
}


void BossCard5Shadow() {
    stackAlloc(@nargs=1, @blob="08000000");
    anmSelect(@nargs=1, @blob="00000000");
    anmSetSprite(@nargs=2, @blob="00000000 c0000000");
    anmSwitch(@nargs=2, @blob="00000000 01000000");
    flagSet(@nargs=1, @blob="03010000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    funcSet(@nargs=1, @blob="07000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 05000000");
    etSprite(@nargs=3, @blob="00000000 05000000 02000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 ae47813f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00000010 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="06000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    call(
        @nargs=1,
        @blob="14000000 426f7373 43617264 35536861 646f7732 41740000",
    );
    delete(@blob="");
}


void BossCard5Shadow2() {
    stackAlloc(@nargs=1, @blob="08000000");
    anmSelect(@nargs=1, @blob="00000000");
    anmSetSprite(@nargs=2, @blob="00000000 c0000000");
    anmSwitch(@nargs=2, @blob="00000000 02000000");
    flagSet(@nargs=1, @blob="03010000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    funcSet(@nargs=1, @blob="07000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 05000000");
    etSprite(@nargs=3, @blob="00000000 05000000 06000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 ae47813f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00000010 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="02000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    call(
        @nargs=1,
        @blob="14000000 426f7373 43617264 35536861 646f7732 41740000",
    );
    delete(@blob="");
}


void BossCard5Shadow2At() {
    stackAlloc(@nargs=1, @blob="10000000");
    pushf(@nargs=1, @blob="7cb8e43a");
    setf(@mask=0b1, @nargs=1, @blob="00004041");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="00000000");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    pushi(@nargs=1, @blob="08000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    pushi(@nargs=1, @blob="02000000");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    jmp(@nargs=2, @blob="20030000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="00000000");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="f4000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushi(@nargs=1, @blob="02000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00601bc6");
    greaterf(@blob="");
    jmpEq(@nargs=2, @blob="40000000 00000000");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="40000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00601bc6");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00004041");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00004041");
    pushf(@nargs=1, @blob="bd370636");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00004041");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="db0f4940");
    pushi(@nargs=1, @blob="02000000");
    divf(@blob="");
    subf(@blob="");
    ins_277(@mask=0b10, @nargs=2, @blob="00000000 000080bf");
    etSpeed(@nargs=3, @blob="00000000 00000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="db0f4940");
    pushi(@nargs=1, @blob="02000000");
    divf(@blob="");
    subf(@blob="");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 000080bf 00000000");
    wait(@nargs=1, @blob="01000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="e4fcffff 00000000");
    ret(@blob="");
}


void BossCard6() {
    stackAlloc(@nargs=1, @blob="08000000");
    setInvuln(@nargs=1, @blob="c8000000");
    enmKillAll(@blob="");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    spellEnd(@blob="");
    killAllAsync(@blob="");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 18150000 08000000 426f7373 37000000",
    );
    setChapter(@nargs=1, @blob="2d000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="4c000000 00000000");
    dropClear(@blob="");
    dropMain(@nargs=1, @blob="05000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    spellEx(
        @nargs=4,
        @blob="aa000000 18150000 20a10700 20000000 e1cd1d6f 7d95108d fd931bbf 697e0afd e6350627 607c026b dc84fe4a 5ad47960",
    );
    spellTimeout(@blob="");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
    moveLimitReset(@blob="");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
    anmSelect(@nargs=1, @blob="02000000");
    jmp(@nargs=2, @blob="b4090000 3c000000");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="7077563d");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="0000803f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="e2cb1640");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="9a99993e");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="06000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="78000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 36457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="707756bd");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="0000803f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="d80f493f");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="9a99993e");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="06000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="78000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 36457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushi(@nargs=1, @blob="05000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    jmp(@nargs=2, @blob="48000000 3c000000");
    moveRand(@nargs=3, @blob="32000000 00000000 0000803f");
    wait(@nargs=1, @blob="32000000");
    deci(@mask=0b1, @nargs=1, @blob="04000000");
    jmpNeq(@nargs=2, @blob="bcffffff 3c000000");
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="7077563d");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="0000803f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="ce53fb3f");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="cdcc4c3e");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="0a000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="78000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 36457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushf(@nargs=1, @blob="d80fc9bf");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="707756bd");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="0000803f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="e2cb963f");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="cdcc4c3e");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="0a000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="78000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 36457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushi(@nargs=1, @blob="05000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    jmp(@nargs=2, @blob="48000000 3c000000");
    moveRand(@nargs=3, @blob="32000000 00000000 0000803f");
    wait(@nargs=1, @blob="32000000");
    deci(@mask=0b1, @nargs=1, @blob="04000000");
    jmpNeq(@nargs=2, @blob="bcffffff 3c000000");
    pushf(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="7077563d");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="9a99993f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="dc0f4940");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="cdcccc3d");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="04000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="78000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 36457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushf(@nargs=1, @blob="dc0f4940");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="707756bd");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="9a99993f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="cdcccc3d");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="04000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="78000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 36457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushi(@nargs=1, @blob="05000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    jmp(@nargs=2, @blob="48000000 3c000000");
    moveRand(@nargs=3, @blob="32000000 00000000 0000803f");
    wait(@nargs=1, @blob="32000000");
    deci(@mask=0b1, @nargs=1, @blob="04000000");
    jmpNeq(@nargs=2, @blob="bcffffff 3c000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="50f6ffff 3c000000");
    ret(@blob="");
}


void BossCard6Et() {
    stackAlloc(@nargs=1, @blob="08000000");
    flagSet(@nargs=1, @blob="2c010000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 36457441 74000000");
    moveEllipse(
        @mask=0b110011,
        @nargs=6,
        @blob="00f41bc6 00f01bc6 00000000 0000803f 00e81bc6 003c1bc6",
    );
    wait(@mask=0b1, @nargs=1, @blob="00d9ffff");
    moveEllipse(
        @nargs=6,
        @blob="f02374c9 f02374c9 f02374c9 00000000 f02374c9 f02374c9",
    );
    wait(@nargs=1, @blob="90010000");
    delete(@blob="");
    delete(@blob="");
}


void BossCard6EtAt() {
    stackAlloc(@nargs=1, @blob="00000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 05000000");
    etSprite(@mask=0b100, @nargs=3, @blob="00000000 02000000 ffd8ffff");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00000010 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 02000000 00000000 00100000 78000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 03000000 00000000 00000010 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 04000000 00000000 04000000 78000000 c1bdf0ff 8fc2753c f02374c9",
    );
    jmp(@nargs=2, @blob="5c000000 00000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00cc1bc6 00000000");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="02000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="a8ffffff 00000000");
    ret(@blob="");
}


void BossCard7() {
    stackAlloc(@nargs=1, @blob="08000000");
    setInvuln(@nargs=1, @blob="c8000000");
    enmKillAll(@blob="");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    spellEnd(@blob="");
    killAllAsync(@blob="");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 9c180000 08000000 426f7373 38000000",
    );
    setChapter(@nargs=1, @blob="2d000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 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");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    spellEx(
        @nargs=4,
        @blob="ab000000 9c180000 20a10700 14000000 e2e201ee 724f060e ed3a1bb0 627c0806 676e85ac",
    );
    anmSelectedPlay(@nargs=1, @blob="00000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
    moveLimitReset(@blob="");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    moveLimit(@nargs=4, @blob="00000000 00000043 00008c43 00000042");
    anmSelect(@nargs=1, @blob="02000000");
    pushi(@nargs=1, @blob="02000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    funcSet(@nargs=1, @blob="08000000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 37457441 74320000");
    jmp(@nargs=2, @blob="10010000 3c000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    call(@nargs=1, @blob="10000000 426f7373 43617264 37457441 74000000");
    wait(@nargs=1, @blob="50000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00004040");
    wait(@nargs=1, @blob="78000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    call(@nargs=1, @blob="10000000 426f7373 43617264 37457441 74330000");
    wait(@nargs=1, @blob="50000000");
    moveRand(@nargs=3, @blob="3c000000 04000000 00004040");
    wait(@nargs=1, @blob="78000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="f4feffff 3c000000");
    ret(@blob="");
}


void BossCard7Et() {
    stackAlloc(@nargs=1, @blob="08000000");
    flagSet(@nargs=1, @blob="2c010000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 37457441 74000000");
    moveEllipse(
        @mask=0b110011,
        @nargs=6,
        @blob="00f41bc6 00f01bc6 00000000 0000803f 00e81bc6 003c1bc6",
    );
    wait(@mask=0b1, @nargs=1, @blob="00d9ffff");
    moveEllipse(
        @nargs=6,
        @blob="f02374c9 f02374c9 f02374c9 00000000 f02374c9 f02374c9",
    );
    wait(@nargs=1, @blob="90010000");
    delete(@blob="");
    delete(@blob="");
}


void BossCard7EtAt() {
    stackAlloc(@nargs=1, @blob="00000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 02000000");
    etSprite(@nargs=3, @blob="00000000 1b000000 02000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 00000040 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 d0070000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 02000000 00000000 00010000 0a000000 0f000000 f02374c9 f02374c9",
    );
    etOffset(@nargs=3, @blob="00000000 000000c2 000040c2");
    etOn(@nargs=1, @blob="00000000");
    etOffset(@nargs=3, @blob="00000000 00000042 000040c2");
    etOn(@nargs=1, @blob="00000000");
    ret(@blob="");
}


void BossCard7EtAt2() {
    stackAlloc(@nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="50030000 00000000");
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 03000000");
    etSprite(@nargs=3, @blob="01000000 12000000 00000000");
    etCount(@nargs=3, @blob="01000000 01000000 01000000");
    etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushf(@nargs=1, @blob="cdcccc3e");
    mulf(@blob="");
    etSpeed(@mask=0b10, @nargs=3, @blob="01000000 000080bf 0000c03f");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 00000000 00100000 32000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 00200000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    etOffsetRad(@mask=0b110, @nargs=3, @blob="01000000 00381cc6 000080bf");
    wait(@nargs=1, @blob="02000000");
    etNew(@nargs=1, @blob="01000000");
    etAim(@nargs=2, @blob="01000000 03000000");
    etSprite(@nargs=3, @blob="01000000 19000000 00000000");
    etCount(@nargs=3, @blob="01000000 01000000 01000000");
    etAngle(@mask=0b10, @nargs=3, @blob="01000000 00381cc6 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushf(@nargs=1, @blob="cdcccc3e");
    mulf(@blob="");
    etSpeed(@mask=0b10, @nargs=3, @blob="01000000 000080bf 0000c03f");
    etEx(
        @nargs=8,
        @blob="01000000 00000000 00000000 00100000 32000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="01000000 01000000 00000000 00200000 c1bdf0ff c1bdf0ff f02374c9 f02374c9",
    );
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="08000000");
    mulf(@blob="");
    etOffsetRad(@mask=0b110, @nargs=3, @blob="01000000 00381cc6 000080bf");
    wait(@nargs=1, @blob="02000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="b4fcffff 00000000");
    ret(@blob="");
}


void BossCard7EtAt3() {
    stackAlloc(@nargs=1, @blob="00000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 1b000000 02000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 00000040 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 d0070000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 02000000 00000000 00010000 0a000000 0f000000 f02374c9 f02374c9",
    );
    etAngle(@nargs=3, @blob="00000000 db0fc93e 00000000");
    etOffset(@nargs=3, @blob="00000000 000000c2 000040c2");
    etOn(@nargs=1, @blob="00000000");
    etAngle(@nargs=3, @blob="00000000 dfed2f40 00000000");
    etOffset(@nargs=3, @blob="00000000 00000042 000040c2");
    etOn(@nargs=1, @blob="00000000");
    ret(@blob="");
}


void BossCard8() {
    stackAlloc(@nargs=1, @blob="08000000");
    setInvuln(@nargs=1, @blob="c8000000");
    enmKillAll(@blob="");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    spellEnd(@blob="");
    killAllAsync(@blob="");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 9c180000 0c000000 426f7373 43617264 39000000",
    );
    setChapter(@nargs=1, @blob="2d000000");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="9c000000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="25d9ffff");
    pushi(@nargs=1, @blob="01000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="4c000000 00000000");
    dropClear(@blob="");
    dropMain(@nargs=1, @blob="05000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    spellEx(
        @nargs=4,
        @blob="ac000000 9c180000 20a10700 18000000 e72504cb 724f074b e725039b 697e0192 f40e0bdd 625c81e8",
    );
    anmSelectedPlay(@nargs=1, @blob="00000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
    moveLimitReset(@blob="");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    flagSet(@nargs=1, @blob="0c000000");
    anmSelect(@nargs=1, @blob="02000000");
    pushi(@nargs=1, @blob="02000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    anmReset(@blob="");
    anmSetSprite(@nargs=2, @blob="00000000 05000000");
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="94d9a03d");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="0000803f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="e2cb1640");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="9a99993e");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="06000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="64000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 38457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    pushf(@nargs=1, @blob="d80fc93f");
    setf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    pushf(@nargs=1, @blob="94d9a0bd");
    setf(@mask=0b1, @nargs=1, @blob="00f01bc6");
    pushf(@nargs=1, @blob="0000803f");
    setf(@mask=0b1, @nargs=1, @blob="00ec1bc6");
    pushf(@nargs=1, @blob="d80f493f");
    setf(@mask=0b1, @nargs=1, @blob="00e81bc6");
    pushf(@nargs=1, @blob="9a99993e");
    setf(@mask=0b1, @nargs=1, @blob="003c1bc6");
    pushi(@nargs=1, @blob="0a000000");
    seti(@mask=0b1, @nargs=1, @blob="ffd8ffff");
    pushi(@nargs=1, @blob="64000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    enmCreate(
        @nargs=6,
        @blob="0c000000 426f7373 43617264 38457400 00000000 00000000 0a000000 0a000000 00000000",
    );
    jmp(@nargs=2, @blob="38070000 3c000000");
    pushi(@nargs=1, @blob="a0010000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    pushi(@nargs=1, @blob="60ffffff");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1111110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 000080bf 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="40000000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    pushi(@nargs=1, @blob="60ffffff");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1111110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 000080bf 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="a0000000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1101110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 0000a043 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="a0000000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1101110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 00008042 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="aa000000");
    playSound(@nargs=1, @blob="29000000");
    wait(@nargs=1, @blob="3c000000");
    moveBezier(
        @mask=0b1111110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 00b41bc6 00b01bc6 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="a0010000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    pushi(@nargs=1, @blob="60ffffff");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1111110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 000080bf 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="40000000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    pushi(@nargs=1, @blob="a0000000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1111110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 000080bf 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="60ffffff");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1101110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 00008042 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="a0000000");
    pushf(@mask=0b1, @nargs=1, @blob="000c1cc6");
    pushi(@nargs=1, @blob="10000000");
    mulf(@blob="");
    addf(@blob="");
    moveBezier(
        @mask=0b1101110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 000080bf 00008043 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="aa000000");
    playSound(@nargs=1, @blob="29000000");
    wait(@nargs=1, @blob="3c000000");
    moveBezier(
        @mask=0b1111110,
        @nargs=7,
        @blob="f0000000 00e41bc6 00e01bc6 00b41bc6 00b01bc6 00e41bc6 00e01bc6",
    );
    wait(@nargs=1, @blob="e6000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="ccf8ffff 3c000000");
    ret(@blob="");
}


void BossCard8Et() {
    stackAlloc(@nargs=1, @blob="08000000");
    flagSet(@nargs=1, @blob="2c010000");
    pushf(@mask=0b1, @nargs=1, @blob="00f41bc6");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 38457441 74000000");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 3845744d 6f766500");
    moveEllipseRel(
        @mask=0b110011,
        @nargs=6,
        @blob="00f41bc6 00f01bc6 00000000 0000803f 00e81bc6 003c1bc6",
    );
    wait(@mask=0b1, @nargs=1, @blob="00d9ffff");
    moveEllipseRel(
        @nargs=6,
        @blob="f02374c9 f02374c9 f02374c9 00000000 f02374c9 f02374c9",
    );
    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 BossCard8EtAt() {
    stackAlloc(@nargs=1, @blob="04000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 05000000");
    etSprite(@mask=0b100, @nargs=3, @blob="00000000 01000000 ffd8ffff");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 00000000 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00000010 01000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 02000000 00000000 00040000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 03000000 00000000 00100000 78000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 04000000 00000000 00000010 00000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 05000000 00000000 04000000 78000000 c1bdf0ff cdcccc3c f02374c9",
    );
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="f4000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00c81bc6");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    addf(@blob="");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 000080bf 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@nargs=1, @blob="94d9a03c");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    validRad(@mask=0b1, @nargs=1, @blob="00000000");
    etOn(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="02000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="10ffffff 00000000");
    ret(@blob="");
}


void BossCard8EtMove() {
    stackAlloc(@nargs=1, @blob="00000000");
    jmp(@nargs=2, @blob="44000000 00000000");
    movePos(@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 BossCard9() {
    stackAlloc(@nargs=1, @blob="08000000");
    setInvuln(@nargs=1, @blob="c8000000");
    enmKillAll(@blob="");
    pushi(@mask=0b1, @nargs=1, @blob="fed8ffff");
    pushi(@nargs=1, @blob="00000000");
    eqi(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="0c000000 45636c5f 45744272 65616b00 00000000 00000000 0f270000 00000000 00000000",
    );
    jmp(@nargs=2, @blob="50000000 00000000");
    enmCreate(
        @nargs=6,
        @blob="10000000 45636c5f 45744272 65616b5f 6e690000 00000000 00000000 0f270000 00000000 00000000",
    );
    spellEnd(@blob="");
    killAllAsync(@blob="");
    funcCall(@nargs=1, @blob="0b000000");
    setChapter(@nargs=1, @blob="2d000000");
    moveReset(@blob="");
    flagSet(@nargs=1, @blob="0f000000");
    lifeSet(@nargs=1, @blob="a00f0000");
    setInterrupt(
        @nargs=4,
        @blob="00000000 00000000 d40d0000 0c000000 426f7373 43617264 31300000",
    );
    lifeMarker(@nargs=3, @blob="00000000 00007a45 80a0ffff");
    stars(@nargs=1, @blob="01000000");
    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="01000000 0a000000");
    dropExtra(@nargs=2, @blob="02000000 28000000");
    dropItems(@blob="");
    pushi(@nargs=1, @blob="01000000");
    seti(@mask=0b1, @nargs=1, @blob="25d9ffff");
    playSound(@nargs=1, @blob="0f000000");
    anmSetMain(@nargs=2, @blob="00000000 00000000");
    wait(@nargs=1, @blob="78000000");
    timerReset(@blob="");
    spellEx(
        @nargs=4,
        @blob="ad000000 d40d0000 20a10700 1c000000 f60b1925 71d71312 e1240ff8 68c60a32 e4e306f0 605e02aa de907d24",
    );
    spellTimeout(@blob="");
    playSound(@nargs=1, @blob="37000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 00000000 00000043");
    moveLimitReset(@blob="");
+60: // 60
    nop(@blob="");
    anmPlay(@nargs=2, @blob="00000000 83000000");
    anmSelectedPlay(@nargs=1, @blob="00000000");
    wait(@nargs=1, @blob="3c000000");
    anmReset(@blob="");
    anmSelect(@nargs=1, @blob="02000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 11000000 01000000");
    etCount(@nargs=3, @blob="00000000 20000000 01000000");
    etAngle(@mask=0b10, @nargs=3, @blob="00000000 00381cc6 00000000");
    etSpeed(@nargs=3, @blob="00000000 00000040 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etOn(@nargs=1, @blob="00000000");
    pushi(@nargs=1, @blob="02000000");
    seti(@mask=0b1, @nargs=1, @blob="00d9ffff");
    funcCall(@nargs=1, @blob="09000000");
    funcSet(@nargs=1, @blob="0a000000");
    flagSet(@nargs=1, @blob="20000000");
    fog(@nargs=2, @blob="00000000 0000ff00");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 39457441 74410000");
    wait(@nargs=1, @blob="78000000");
    fog(@nargs=2, @blob="00000043 ff00ff00");
    wait(@nargs=1, @blob="78000000");
    movePosTime(@nargs=4, @blob="3c000000 04000000 000000c3 00000043");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="78000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="78000000");
    movePosTime(@nargs=4, @blob="78000000 00000000 000000c3 00000043");
    wait(@nargs=1, @blob="78000000");
    movePosTime(@nargs=4, @blob="78000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="78000000");
    movePosTime(@nargs=4, @blob="f0000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="f0000000");
    etClear(@nargs=1, @blob="00002044");
    killAllAsync(@blob="");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 39457441 74423100");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 39457441 74423200");
    movePosTime(
        @mask=0b1100,
        @nargs=4,
        @blob="3c000000 00000000 00b41bc6 00b01bc6",
    );
    wait(@nargs=1, @blob="68010000");
    movePosTime(@nargs=4, @blob="a0000000 00000000 000000c3 00000043");
    wait(@nargs=1, @blob="a0000000");
    movePosTime(@nargs=4, @blob="a0000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="a0000000");
    movePosTime(@nargs=4, @blob="a0000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="a0000000");
    movePosTime(@nargs=4, @blob="a0000000 00000000 00000043 00000043");
    wait(@nargs=1, @blob="a0000000");
    movePosTime(@nargs=4, @blob="78000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="78000000");
    movePosTime(@nargs=4, @blob="78000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="78000000");
    movePosTime(@nargs=4, @blob="78000000 00000000 000000c3 00000043");
    wait(@nargs=1, @blob="78000000");
    movePosTime(@nargs=4, @blob="78000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="78000000");
    etClear(@nargs=1, @blob="00002044");
    fog(@nargs=2, @blob="00001043 ff00ff00");
    killAllAsync(@blob="");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 39457441 74433100");
    callAsync(@nargs=1, @blob="10000000 426f7373 43617264 39457441 74433200");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000e042");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 00000043 0000b443");
    wait(@nargs=1, @blob="3c000000");
    movePosTime(@nargs=4, @blob="3c000000 00000000 000000c3 0000b443");
    wait(@nargs=1, @blob="3c000000");
    jmp(@nargs=2, @blob="2c000000 3c000000");
    wait(@nargs=1, @blob="e8030000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
    ret(@blob="");
}


void BossCard9EtAtA() {
    stackAlloc(@nargs=1, @blob="10000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 01000000 06000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushi(@nargs=1, @blob="40ffffff");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="40000000");
    mulf(@blob="");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    jmp(@nargs=2, @blob="e8020000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="05000000");
    modi(@blob="");
    pushi(@nargs=1, @blob="01000000");
    geqi(@blob="");
    jmpEq(@nargs=2, @blob="2c010000 00000000");
    pushi(@nargs=1, @blob="06000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    etAngle(@nargs=3, @blob="00000000 db0fc93f 00000000");
    jmp(@nargs=2, @blob="a4000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="08000000");
    pushi(@nargs=1, @blob="40000000");
    mulf(@blob="");
    addf(@blob="");
    etOffsetAbs(@mask=0b10, @nargs=3, @blob="00000000 000080bf 000080c1");
    etOn(@nargs=1, @blob="00000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="60ffffff 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="08000000");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="40ffffff");
    lessf(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="40000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="01000000");
    addi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    wait(@nargs=1, @blob="0d000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="1cfdffff 00000000");
    ret(@blob="");
}


void BossCard9EtAtB1() {
    stackAlloc(@nargs=1, @blob="10000000");
    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(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushi(@nargs=1, @blob="40ffffff");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="40000000");
    mulf(@blob="");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    jmp(@nargs=2, @blob="e8020000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="06000000");
    modi(@blob="");
    pushi(@nargs=1, @blob="01000000");
    greateri(@blob="");
    jmpEq(@nargs=2, @blob="2c010000 00000000");
    pushi(@nargs=1, @blob="06000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    etAngle(@nargs=3, @blob="00000000 db0fc9bf 00000000");
    jmp(@nargs=2, @blob="a4000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="08000000");
    pushi(@nargs=1, @blob="40000000");
    mulf(@blob="");
    addf(@blob="");
    etOffsetAbs(@mask=0b10, @nargs=3, @blob="00000000 000080bf 0000e843");
    etOn(@nargs=1, @blob="00000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="60ffffff 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="08000000");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="40ffffff");
    lessf(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="40000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="01000000");
    addi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    wait(@nargs=1, @blob="0d000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="1cfdffff 00000000");
    ret(@blob="");
}


void BossCard9EtAtB2() {
    stackAlloc(@nargs=1, @blob="10000000");
    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(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="40000000");
    mulf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    jmp(@nargs=2, @blob="e8020000 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="06000000");
    modi(@blob="");
    pushi(@nargs=1, @blob="01000000");
    greateri(@blob="");
    jmpEq(@nargs=2, @blob="2c010000 00000000");
    pushi(@nargs=1, @blob="07000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    etAngle(@nargs=3, @blob="00000000 db0f4940 00000000");
    jmp(@nargs=2, @blob="a4000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="08000000");
    pushi(@nargs=1, @blob="40000000");
    mulf(@blob="");
    addf(@blob="");
    etOffsetAbs(@mask=0b100, @nargs=3, @blob="00000000 00005043 000080bf");
    etOn(@nargs=1, @blob="00000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="60ffffff 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="08000000");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="40000000");
    geqf(@blob="");
    jmpEq(@nargs=2, @blob="64000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="40000000");
    subf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="01000000");
    addi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    wait(@nargs=1, @blob="0d000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="1cfdffff 00000000");
    ret(@blob="");
}


void BossCard9EtAtC1() {
    stackAlloc(@nargs=1, @blob="10000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 01000000 02000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 02000000 00000000 00040000 3c000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushi(@nargs=1, @blob="40ffffff");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="0c000000");
    mulf(@blob="");
    addf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    jmp(@nargs=2, @blob="8c010000 00000000");
    pushi(@nargs=1, @blob="0e000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    etAngle(@nargs=3, @blob="00000000 db0fc9bf 00000000");
    jmp(@nargs=2, @blob="a4000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="08000000");
    pushi(@nargs=1, @blob="1e000000");
    mulf(@blob="");
    addf(@blob="");
    etOffsetAbs(@mask=0b10, @nargs=3, @blob="00000000 000080bf 0000e843");
    etOn(@nargs=1, @blob="00000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="60ffffff 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="01000000");
    addi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    wait(@nargs=1, @blob="64000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="78feffff 00000000");
    ret(@blob="");
}


void BossCard9EtAtC2() {
    stackAlloc(@nargs=1, @blob="10000000");
    etNew(@nargs=1, @blob="00000000");
    etAim(@nargs=2, @blob="00000000 03000000");
    etSprite(@nargs=3, @blob="00000000 01000000 02000000");
    etCount(@nargs=3, @blob="00000000 01000000 01000000");
    etAngle(@nargs=3, @blob="00000000 00000000 00000000");
    etSpeed(@nargs=3, @blob="00000000 0000803f 0000c03f");
    etEx(
        @nargs=8,
        @blob="00000000 00000000 01000000 02000000 02000000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 01000000 00000000 00020000 90010000 c1bdf0ff f02374c9 f02374c9",
    );
    etEx(
        @nargs=8,
        @blob="00000000 02000000 00000000 00040000 3c000000 c1bdf0ff f02374c9 f02374c9",
    );
    pushi(@nargs=1, @blob="00000000");
    setf(@mask=0b1, @nargs=1, @blob="00000000");
    pushf(@mask=0b1, @nargs=1, @blob="003c1cc6");
    pushi(@nargs=1, @blob="0c000000");
    mulf(@blob="");
    setf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@nargs=1, @blob="00000000");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    jmp(@nargs=2, @blob="8c010000 00000000");
    pushi(@nargs=1, @blob="10000000");
    seti(@mask=0b1, @nargs=1, @blob="08000000");
    etAngle(@nargs=3, @blob="00000000 db0f4940 00000000");
    jmp(@nargs=2, @blob="a4000000 00000000");
    pushf(@mask=0b1, @nargs=1, @blob="00008040");
    pushi(@mask=0b1, @nargs=1, @blob="08000000");
    pushi(@nargs=1, @blob="1e000000");
    mulf(@blob="");
    addf(@blob="");
    etOffsetAbs(@mask=0b100, @nargs=3, @blob="00000000 00005043 000080bf");
    etOn(@nargs=1, @blob="00000000");
    deci(@mask=0b1, @nargs=1, @blob="08000000");
    jmpNeq(@nargs=2, @blob="60ffffff 00000000");
    pushi(@mask=0b1, @nargs=1, @blob="0c000000");
    pushi(@nargs=1, @blob="01000000");
    addi(@blob="");
    seti(@mask=0b1, @nargs=1, @blob="0c000000");
    wait(@nargs=1, @blob="64000000");
    pushi(@nargs=1, @blob="01000000");
    jmpNeq(@nargs=2, @blob="78feffff 00000000");
    ret(@blob="");
}


void BossDead() {
    stackAlloc(@nargs=1, @blob="08000000");
    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",
    );
    gameSpeed(@nargs=1, @blob="0000003f");
+60: // 60
    etClearAll(@blob="");
    spellEnd(@blob="");
    enmKillAll(@blob="");
    gameSpeed(@nargs=1, @blob="0000803e");
    setBoss(@nargs=1, @blob="ffffffff");
    dropMain(@nargs=1, @blob="00000000");
    setScreenShake(@nargs=3, @blob="1e000000 0c000000 00000000");
    anmPlay(@nargs=2, @blob="00000000 4c000000");
    anmPlay(@nargs=2, @blob="00000000 8e000000");
    playSound(@nargs=1, @blob="12000000");
    flagSet(@nargs=1, @blob="20000000");
    moveVel(@nargs=2, @blob="00000000 00000000");
    pushi(@nargs=1, @blob="28000000");
    seti(@mask=0b1, @nargs=1, @blob="04000000");
    jmp(@nargs=2, @blob="2c000000 3d000000");
+1: // 61
    flagSet(@nargs=1, @blob="20000000");
    deci(@mask=0b1, @nargs=1, @blob="04000000");
    jmpNeq(@nargs=2, @blob="d8ffffff 3c000000");
    gameSpeed(@nargs=1, @blob="0000803f");
    delete(@blob="");
    delete(@blob="");
}