Brawl - Ivysaur - Subroutine - 0x18f90

  1. loop Infinite times:
    1. if (BoolIsTrue LongtermAccessBool(HasCurry))
      1. if ((InternalConstantInt(CurrentSubaction) Equal scalar(380)))
        1. SetAnimationAndTimerFrame(0.0)
      2. else
        1. ChangeSubactionRestartFrame(GekikaraWait)
      3. SyncWait(1.0)
      4. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: true, ty: BoolIsTrue }, Variable(Variable { memory_type: LongtermAccess, data_type: Bool, address: 10 })] }
      5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    2. else
      1. if ((LongtermAccessFloat (0x13) LessThanOrEqual LongtermAccessFloat (0x14)))
        1. ChangeSubactionRestartFrame(StaminaWait)
        2. SyncWait(1.0)
        3. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: true, ty: Comparison }, Variable(Variable { memory_type: LongtermAccess, data_type: Float, address: 19 }), Value(1), Variable(Variable { memory_type: LongtermAccess, data_type: Float, address: 20 })] }
      2. else
        1. if (HoldingItem)
          1. if ((InternalConstantInt (0x5222) Equal scalar(5)))
            1. ChangeSubactionRestartFrame(WaitItem)
            2. SyncWait(1.0)
            3. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: true, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 21026 }), Value(2), Scalar(5.0)] }
          2. else
            1. if ((InternalConstantInt(CurrentSubaction) Equal scalar(0)))
              1. SetAnimationAndTimerFrame(0.0)
            2. else
              1. ChangeSubactionRestartFrame(Wait1)
            3. SyncWait(1.0)
            4. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
        2. else
          1. Switch(1000, 0)
          2. Case(1)
          3. ChangeSubactionRestartFrame(Wait2)
          4. Case(2)
          5. ChangeSubactionRestartFrame(Wait3)
          6. Case(-1)
          7. SetAnimationAndTimerFrame(0.0)
          8. Case(5)
          9. ChangeSubactionRestartFrame(WaitItem)
          10. UnknownEvent { namespace: 0x0, code: 0x12, unk1: 0x0, arguments: [] }
          11. ChangeSubactionRestartFrame(Wait1)
          12. EndSwitch
          13. SyncWait(1.0)
          14. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    3. LoopRest