func orinFLDZ
  fldz
end
func orinFLD1
  fld1
end
func orinFMULZERO
  fmul qword ptr [0x86812C]
end
func orinNOP
  nop
end


func orinID_FIX
  mov dword ptr [esi+0x34C],0x00000019
  ;mov dword ptr [esi+0x34C],0x00000024
  cmp word ptr [esi+0x196],0x0000
end
006E36A3 = orinID_FIX

func orin2SC_AIR_FIX
  mov eax,[edx+0x0C]
  push 0x05
end
006EC0DF = orin2SC_AIR_FIX

func orinD214_NEW
  cmp word ptr [esi+0x13E],0x0001
  jne short LABEL1
  cmp word ptr [esi+0x140],0x0005
  je short LABEL2
  cmp word ptr [esi+0x140],0x000B
  je short LABEL2
  jne short LABEL1
  LABEL2:
  je 0x6EB1A1
  LABEL1:
  jne 0x6EB2CA
end

func orinD214_NEWBASE
  pushf
  pushad
  
  cmp word ptr [esi+0x142],0x00
  jne short LABELC
  cmp word ptr [esi+0x140],0x07
  jne short LABELC
  cmp word ptr [esi+0x13E],0x00
  jne short LABELC
  push 0x2D
  push 0x000000C8
  mov ecx,esi
  call 0x47A9E0
  LABELC:
  
  cmp word ptr [esi+0x13E],0x0001
  jne LABELZ
  cmp byte ptr [esi+0x104],0x01
  jne LABEL2
  
  cmp dword ptr [esi+0x754],0x00
  jl short LABELA1
  jmp short LABELA0
  
  LABEL2:
  cmp dword ptr [esi+0x754],0x00
  jg short LABELA1
  jmp short LABELA0
  
  LABELA0:
  fld dword ptr [esi+0xF4]
  fadd dword ptr [0x85B9C0]
  fstp dword ptr [esi+0xF4]
  cmp word ptr [esi+0x140],0x0006
  jl LABEL1
  mov word ptr [esi+0x140],0x0000
  mov word ptr [esi+0x142],0x00FF
  jmp LABEL1
  
  LABELA1:
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x85B9C0]
  fstp dword ptr [esi+0xF4]
  cmp word ptr [esi+0x140],0x000D
  je LABELA2
  cmp word ptr [esi+0x140],0x0006
  jge LABEL1
  LABELA2:
  mov word ptr [esi+0x140],0x0007
  mov word ptr [esi+0x142],0x00FF
  jmp LABEL1
  
  LABEL1:
  cmp word ptr [esi+0x13C],0x0208
  jne LABELVER
  fld dword ptr [0x86782C]
  fld dword ptr [esi+0xF4]
  fcompp
  fnstsw ax
  test ah,0x41
  je short LABELX
  fld dword ptr [esi+0xF4]
  fld dword ptr [0x85B908]
  fcompp
  fnstsw ax
  test ah,0x41
  je short LABELY
  jmp LABELZ
  LABELY:
  fld dword ptr [0x85B908]
  fstp dword ptr [esi+0xF4]
  jmp short LABELZ
  LABELX:
  fld dword ptr [0x86782C]
  fstp dword ptr [esi+0xF4]
  jmp LABELZ
  
  LABELVER:
  fld dword ptr [0x85B3B0]
  fld dword ptr [esi+0xF4]
  fcompp
  fnstsw ax
  test ah,0x41
  je short LABELX1
  fld dword ptr [esi+0xF4]
  fld qword ptr [0x85B860]
  fcompp
  fnstsw ax
  test ah,0x41
  je short LABELY1
  jmp LABELZ
  LABELY1:
  fld qword ptr [0x85B860]
  fstp dword ptr [esi+0xF4]
  jmp short LABELZ
  LABELX1:
  fld dword ptr [0x85B3B0]
  fstp dword ptr [esi+0xF4]
  jmp LABELZ
  
  LABELZ:
  popad
  popf
  
  mov ecx,esi
  fstp st0
  call 0x487CA0
end


func orinD214_NEW1
  cmp word ptr [ecx+0x13E],0x01
end

func orinD214_SPIRIT
  jmp 0x6EB1AE
end
func orinD214_CJUMP
  jmp 0x6EAFFD
end

func orinD214_CNOEND
  fcomp qword ptr [0x85AE94]
end

func orinD214_CNOEND1
  cmp word ptr [esi+0x13C],0x208
  jne short LABEL1
  cmp dword ptr [esi+0x760],0x00
  jmp short LABEL2
  LABEL1:
  cmp dword ptr [esi+0x764],0x00
  LABEL2:
  nop
end

006EB194 = orinD214_NEW
006EB17B = orinNOP
006EAFFD = orinD214_NEWBASE
006EB03A = orinNOP
00702F3F = orinD214_NEW1
;00702F6D = orinFLD1
006EB1A1 = orinD214_SPIRIT
006EB337 = orinD214_CJUMP
006EB04E = orinD214_CNOEND
006EB00D = orinD214_CNOEND1

func orinD214_LV
  fld dword ptr [esi+0x11C]
  fld dword ptr [esi+0xF0]
  pushf
  pushad
  mov eax,[esi+0x398]
  cmp byte ptr [eax+0x6A5],0x00
  je LV0
  cmp byte ptr [eax+0x6A5],0x01
  je LV1
  cmp byte ptr [eax+0x6A5],0x02
  je LV2
  cmp byte ptr [eax+0x6A5],0x03
  je LV3
  jmp LV4
  LV0:
  fstp dword ptr [esi+0xF0]
  jmp END
  LV1:
  fadd dword ptr [0x86782C]
  fstp dword ptr [esi+0xF0]
  fadd dword ptr [0x85AD04]
  jmp END
  LV2:
  fadd dword ptr [0x86782C]
  fadd dword ptr [0x86782C]
  fstp dword ptr [esi+0xF0]
  fadd dword ptr [0x85AD04]
  fadd dword ptr [0x85AD04]
  jmp END
  LV3:
  fadd dword ptr [0x86782C]
  fadd dword ptr [0x86782C]
  fadd dword ptr [0x86782C]
  fstp dword ptr [esi+0xF0]
  fadd dword ptr [0x85AD04]
  fadd dword ptr [0x85AD04]
  fadd dword ptr [0x85AD04]
  jmp END
  LV4:
  fadd dword ptr [0x86782C]
  fadd dword ptr [0x86782C]
  fadd dword ptr [0x86782C]
  fadd dword ptr [0x86782C]
  fstp dword ptr [esi+0xF0]
  fadd dword ptr [0x85AD04]
  fadd dword ptr [0x85AD04]
  fadd dword ptr [0x85AD04]
  fadd dword ptr [0x85AD04]
  END:
  fstp dword ptr [esi+0x11C]
  popad
  popf
  fld1
end

;00702FA4 = orinD214_LV
00702F6D = orinD214_LV
0070364C = orinNOP

func orinD214_HP
  mov word ptr [esi+0x184],0x01F4
end
007142A9 = orinD214_HP
007142BB = orinD214_HP
007142CC = orinD214_HP
007142DE = orinD214_HP
007142F0 = orinD214_HP

func orinD214_ONHIT
  ;# out of bounds
  fld dword ptr [0x85B8F4]
  fld dword ptr [esi+0xEC]
  fcompp
  fnstsw ax
  test ah,0x41
  ;# je = A < B
  je 0x70349C
  
  fld dword ptr [esi+0xEC]
  fldz
  fcompp
  fnstsw ax
  test ah,0x41
  ;# je = A < B
  je 0x70349C

  cmp word ptr [esi+0x13E],0x05
  jl short LABEL1
  cmp word ptr [esi+0x13E],0x07
  jg short LABEL1
  pushad
  push 0x02
  push 0x02
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  popad
  LABEL2:
  jne 0x70349C
  LABEL1:
  movsx eax,word ptr [esi+0x13E]
end
00702C8E = orinD214_ONHIT

func orinJ2B
  jmp 0x6E7DBC
end
func orinJ2B_ANG0
  pushf
  pushad
  mov ax,[esi+0x13C]
  cmp ax,0x0196
  je short LABEL1
  fld dword ptr [0x85B9E8]
  jmp short LABEL2
  LABEL1:
  fld dword ptr [0x85B3B0]
  LABEL2:
  popad
  popf
end
func orinJ2B_ANG1
  pushf
  pushad
  mov ax,[esi+0x13C]
  cmp ax,0x0196
  je short LABEL1
  fld dword ptr [0x85B3B0]
  jmp short LABEL2
  LABEL1:
  fld dword ptr [0x871540]
  LABEL2:
  popad
  popf
end
006E8617 = orinJ2B
006E7E48 = orinJ2B_ANG0
006E7E57 = orinJ2B_ANG1

func orin5C_DENSITY
  call 0x48CDE0
  pushf
  pushad
  cmp dword ptr [esi+0x190],0x00000008
  jne short LABEL1
  mov byte ptr [esi+0x194],0x00
  LABEL1:
  popad
  popf
end
;006FF8CF = orin5C_DENSITY

;# float gravity
func orinFLOAT0
  test ah,0x01
  jmp 0x6E3121
end
006E310A = orinFLOAT0
;# change sequence example ^
func orinFLOAT1
  cmp dword ptr [ecx+0x758],0x00
  jmp 0x6E3118
end
006E310F = orinFLOAT1
;# float gravity 2
func orinFLOAT2
  test ah,0x41
  jmp 0x6E3196
end
006E3130 = orinFLOAT2

;# 5c spd
func orin5C_SPD
  fld dword ptr [0x858830]
end
006E895D = orin5C_SPD
;# 5c acc
func orin5C_ACC
  fmul qword ptr [0x8677C8]
end
006FF72B = orin5C_ACC
;# 5x max frame
func orin5C_DUR
  cmp dword ptr [esi+0x144],0x7F
end
006FF971 = orin5C_DUR
;# j5c spd
006E8FD5 = orin5C_SPD

func orinD623B_DUR
  pushf
  pushad
  cmp byte ptr [esi+0x194],0x00
  jne short LABEL1
  mov dword ptr [esi+0x144],0x33
  LABEL1:
  popad
  popf
  cmp dword ptr [esi+0x144],0x32
end
func orinD623C_DUR
  pushf
  pushad
  cmp byte ptr [esi+0x194],0x00
  jne short LABEL1
  mov dword ptr [esi+0x144],0x33
  LABEL1:
  popad
  popf
  cmp dword ptr [esi+0x144],0x32
end
00707526 = orinD623B_DUR
00707547 = orinD623C_DUR

func orinD623_GRAZERES
  push 0x02
  mov ecx,esi
  call 0x48CDE0
  push 0x02
  mov ecx,esi
  call 0x48CE30
end
007074C1 = orinD623_GRAZERES: 9

007074DB = orinNOP
007074F6 = orinNOP
0070750D = orinNOP

func orinD623_RAD
  fld1
  fadd dword ptr [0x85D94C]
  fmulp
end
00707307 = orinD623_RAD

;# 6c duration
func orin6C_DUR
  cmp dword ptr [esi+0x144],0x01
end
006FFE4E = orin6C_DUR
00700162 = orin6C_DUR

;# 2c grav
;#00700FBD = D8 0D E8BA8500
func orin2C_GRAV
  fstp dword ptr [esi+0xF8]
  
  pushf
  pushad
  
  fld dword ptr [esi+0xF8]
  fldz
  fcompp 
  fnstsw ax
  test ah,0x41
  je short LABELX
  fldz
  fstp dword ptr [esi+0xF8]
  LABELX:
  
  
  fld dword ptr [esi+0xF0]
  fld dword ptr [0x85BB54]
  fcompp 
  fnstsw ax
  test ah,0x41
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  fld dword ptr [0x85BA68]
  fstp dword ptr [esi+0xF0]
  fldz
  fst dword ptr [esi+0xF8]
  fld dword ptr [0x871538]
  fadd dword ptr [0x871538]
  fstp dword ptr [esi+0xF4]
  jmp short LABEL3
  LABEL2:
  fldz
  fstp dword ptr [esi+0xF4]
  fld dword ptr [esi+0xF8]
  fld1
  fsubp
  fst dword ptr [esi+0xF8]
  LABEL3:
  popad
  popf
end
func orin2C_GRAV_OLD
  fdiv dword ptr [0x85C010]
end
;00700FBD = orin2C_GRAV
00700FBD = orin2C_GRAV_OLD
;#disable break
;#00700FB1 = orinNOP
;00700DF3 = orinNOP

func orin2C_HP
  cmp word ptr [esi+0x184],0xFE0C
end
00700E06 = orin2C_HP


;# d236b proj spd
;#006E9A55 = D9 05 11BC8500
func orinD236_SPD
  fld dword ptr [0x86782C]
end
006E9A55 = orinD236_SPD
;# d236c proj spd
func orinD236_SPD1
  fld dword ptr [0x859F00]
end
006E9E4E = orinD236_SPD1
;# d236c min charge time
func orinD236_MINCHARGE
  mov ebx,0x00000000
end
006E9BE8 = orinD236_MINCHARGE
;#idkfix
func orinD236_IDKFIX
  cmp al,0x03
  jl short LABEL1
  mov ecx,0x0000000A
  LABEL1:
  nop
end
006E9C91 = orinD236_IDKFIX
;# dj236b proj spd
006EA2C9 = orinD236_SPD
;# dj236c proj spd
006EA72C = orinD236_SPD1
;# dj236c min charge time
006EA4AE = orinD236_MINCHARGE

func orinJ6A_FIX
  cmp word ptr [esi+0x140],0x07
end
006E6C72 = orinJ6A_FIX
func orinJ6A_GRAV
  fld dword ptr [0x85BAE8]
  fadd dword ptr [0x85BAE8]
end
006E6C80 = orinJ6A_GRAV

;# charge
func orinA214CHARGE_NORECOIL1
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x85B9C0]
  fstp dword ptr [esi+0xF4]
  cmp dword ptr [esi+0x190],0x00
  jmp 0x6EB61F
end
func orinA214CHARGE_NORECOIL2
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x85B9C0]
  fstp dword ptr [esi+0xF4]
  cmp dword ptr [esi+0x190],0x00
  jmp 0x6EB7CB
end
func orinA214CHARGE_NORECOIL3
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x85B9C0]
  fstp dword ptr [esi+0xF4]
  cmp dword ptr [esi+0x190],0x00
  jmp 0x6EB9AB
end
func orinA214CHARGE_NORECOIL4
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x85B9C0]
  fstp dword ptr [esi+0xF4]
  cmp dword ptr [esi+0x190],0x00
  jmp 0x6EBBE9
end
006EB5ED = orinA214CHARGE_NORECOIL1
006EB7BE = orinA214CHARGE_NORECOIL2
006EB964 = orinA214CHARGE_NORECOIL3
006EBBDC = orinA214CHARGE_NORECOIL4

func orinA214CHARGE_AIRLV
  cmp byte ptr [esi+0x6A9],0x06
end
func orinA214CHARGE_AIRLV2
  cmp byte ptr [esi+0x6A9],0x05
  jmp 0x6FCB23
end
006FD2A9 = orinA214CHARGE_AIRLV
006FD1C9 = orinA214CHARGE_AIRLV
006FCB1D = orinA214CHARGE_AIRLV2

func orinA214CHARGE_SPDB
  pushad
  fld dword ptr [0x85AE94]
  fld dword ptr [0x8589F0]
  mov al,[esi+0x6A9]
  movzx eax,al
  push eax
  fild dword ptr [esp]
  pop eax
  fmulp st1
  faddp
  popad
end
func orinA214CHARGE_SPDC
  pushad
  fld dword ptr [0x85B830]
  fld dword ptr [0x8589F0]
  mov al,[esi+0x6A9]
  movzx eax,al
  push eax
  fild dword ptr [esp]
  pop eax
  fmulp st1
  faddp
  popad
end
006EB746 = orinA214CHARGE_SPDB
006EB8D5 = orinA214CHARGE_SPDC
006EBAE8 = orinA214CHARGE_SPDB
006EBCE1 = orinA214CHARGE_SPDC

;# a236

func orinA236_GRAZERES
  pushf
  cmp dword ptr [esi+0x190],0x00000006
  jne short LABEL1
  mov dword ptr [esi+0x190],0x00000000
  pushad
  mov al,[esi+0x194]
  inc al
  mov byte ptr [esi+0x194],al
  popad
  LABEL1:
  popf
  movsx eax,word ptr [esi+0x13E]
end 
;00702811 = orinA236_GRAZERES

;#multihit delay
func orinA236_HITDELAY
  movzx eax,word ptr [esi+0x36E]
  cmp ax,0x0001
  jmp 0x702B97
end
00702B8C = orinA236_HITDELAY
;#hitcount
;#use real estate for hitcount
func orinA236_HITCOUNT
  pushad
  mov eax,[esi+0x398]
  mov al,[eax+0x6AC]
  pushf 
  cmp al,0x02
  jg short LABEL1
  mov ah,0x02
  jmp short LABEL2
  LABEL1:
  mov ah,0x03
  LABEL2:
  popf 
  mov [esi+0x194],ah
  popad
  fld dword ptr [esi+0xF0]
  fstp dword ptr [esp+0x04]
  jmp 0x713EE0
end
00713ECF = orinA236_HITCOUNT
;#angle
func orinA236_FLDZ1
  fldz
  jmp 0x6EAC77
end
func orinA236_FLDZ2
  fldz
  jmp 0x6EACDE
end
func orinA236_FLDZ3
  fldz
  jmp 0x6EAEB3
end
func orinA236_FLDZ4
  fldz
  jmp 0x6EAF1A
end
006EAC71 = orinA236_FLDZ1
006EACD8 = orinA236_FLDZ2
006EAEAD = orinA236_FLDZ3
006EAF14 = orinA236_FLDZ4
;#hardcoded box thing
00702AD4 = orinNOP
;#proj spd
006EAC03 = orinFLDZ
006EAE3F = orinFLDZ


;#sc ver
;#0070F420 = 90 90 90 90 90 90
;#0070F51C = D9 EE 90 90 90 90
;#0070F544 = D9 EE 90 90 90 90


;# orin a22 bomb dist
func orinA22BOMB_DIST
  fcomp dword ptr [0x85CAD8]
end
00705CAF = orinA22BOMB_DIST

;# d22 hold dur
func orinD22_HOLD
  cmp dword ptr [esi+0x144],0x00
end
006ECADC = orinD22_HOLD
;# d22 cancel crash
func orinD22_CRASH
  fnstsw ax
  test ah,0x02
end
0070500D = orinD22_CRASH
func orinD22_CRASH1
  jne 0x705145
end
00705012 = orinD22_CRASH1

func orin3SCRING
  cmp word ptr [esi+0x13E],0x02
end
;006F2292 = orin3SCRING

func orin3SCRING_DUR
  mov dword ptr [esi+0x890],0x30
end
006F213E = orin3SCRING_DUR
006F22AB = orin3SCRING_DUR
006F205E = orin3SCRING_DUR
006F21BF = orin3SCRING_DUR

0070EC16 = orinNOP

;# a214 dive
;# make space 817 , 5 & 6
;#old 00704445 = E9 A9 05 00 00 66 9C 60 EB 32 8B 86 64 03 00 00 0F B7 80 3C 01 00 00 66 3D 31 00 7E 14 66 3D 96 00 7D 0E C7 86 4C 03 00 00 00 00 00 00 90 90 90 90 61 66 9D 8A 86 13 01 00 00 C3 90 83 BE 44 01 00 00 00 75 4E 8B 9E 98 03 00 00 8B 9B 3C 01 00 00 81 FB 12 02 03 00 74 26 81 FB 13 02 03 00 74 1E 81 FB 14 02 01 00 74 16 81 FB 15 02 01 00 74 0E 81 FB 5B 02 03 00 74 06 EB A8 90 90 90 90 C7 86 90 01 00 00 00 00 00 00 C7 86 94 01 00 00 01 00 00 00 E9 72 FF FF FF 90 90 90 90 90 90
func orinA214DIVE_SKIP0
  jmp 0x7049F3
end
00704445 = orinA214DIVE_SKIP0

func orinA214DIVE_ONHIT
  push 0x02
  push 0x02
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  jne 0x6FE60E
  fld dword ptr [esi+0x378]
end
0070431F = orinA214DIVE_ONHIT

;# hit function call
func orinA214DIVE_HIT
  pushf 
  pushad 
  jmp short LABEL1
  LABELS:
  ; WHAT ? 398 364 mov eax,[esi+0x364]
  ;mov eax,[esi+0x398]
  ;movzx eax,word ptr [eax+0x13C]
  ;cmp ax,0x0031
  ;jle short LABEL2
  ;cmp ax,0x0096
  ;jnl short LABEL2
  ;LABEL5:
  ;mov dword ptr [esi+0x34C],0x00000000
  LABEL5:
  push 0x02
  push 0x02
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  
  LABEL2:
  popad
  popf
  mov al,[esi+0x113]
  jmp LABELZ
  
  LABEL1:
  cmp dword ptr [esi+0x144],0x00000000
  jne short LABEL3
  mov ebx,[esi+0x398]
  mov ebx,[ebx+0x13C]
  cmp ebx,0x00030212
  je short LABEL4
  cmp ebx,0x00030213
  je short LABEL4
  cmp ebx,0x00010214
  je short LABEL4
  cmp ebx,0x00010215
  je short LABEL4
  cmp ebx,0x0003025B
  je short LABEL4
  jmp short LABEL5
  LABEL4:
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  mov byte ptr [esi+0x18C],0x09
  
  LABEL3:
  jmp LABELS
  
  LABELZ:
  nop
  
end
007043D9 = orinA214DIVE_HIT

006EBF81 = orinNOP
006EC293 = orinNOP
006EB580 = orinNOP
006EC8AD = orinNOP

;# a214 dive x
func orinA214DIVE_FLD10
  mov dword ptr [esi+0x190],0x01
  fld dword ptr [0x86782C]
end
func orinA214DIVE_FLDN2
  fld dword ptr [0x85AD10]
end
006EC078 = orinA214DIVE_FLD10
;# aj214 dive x
006EC606 = orinA214DIVE_FLD10
;# a214 dive y (B,C,JC)
006EC084 = orinA214DIVE_FLDN2
;# a214 dive y (JB)
006EC61C = orinA214DIVE_FLDN2
;# a214b grav
006EC004 = orinFLDZ
;# a214c grav
006EC316 = orinFLDZ
;# a214c lv4
006EC381 = orinA214DIVE_FLD10
006EC39A = orinA214DIVE_FLDN2
;# a214c  dive y. bugged, doesn't matter
;#006EC39A = D9 05 E9AA8500
;# fire frequency
;#006EBDF4 = 25 0F000080
;#006EC105 = 81 E1 0F000080
;#006EC3D2 = 25 0F000080
;#006EC705 = 81 E1 0F000080
;# drop angle
006EBE56 = orinNOP
006EC168 = orinNOP
006EC434 = orinNOP
006EC768 = orinNOP
;# rising speed B
006EBFF8 = orinA214DIVE_FLD10
;# rising speed C
006EC30A = orinA214DIVE_FLD10

;#a214 cancel
;#shitfest
func orinA214DIVE_IDK
  mov dword ptr [esi+0x190],0x00000001
end
;#b
006EC072 = orinA214DIVE_IDK
;#jb
006EC60C = orinA214DIVE_IDK
;#c
006EC38E = orinA214DIVE_IDK
;#jc
006EC93F = orinA214DIVE_IDK

;# disappear speed
func orinA214DIVE_DISAPP
  jb 0x6FE60E
  sub al,0x01
  jmp 0x7043E9
end
007043E1 = orinA214DIVE_DISAPP
;#size lock
0070434F = orinFLD1
;# esi+6ADh

;# stuff part 2
;#007044E3 = 60 BB 10 00 00 00 8B 96 AD 06 00 00 29 D3 21 D8 61 C3 60 BB 10 00 00 00 8B 96 AD 06 00 00 29 D3 21 D9 61 C3 90 90 90 90 90 90 90
func orinA214DIVE_HURR0A
  pushad
  movzx edx,byte ptr [esi+0x6AD]
  cmp edx,0x01
  je short LABEL1
  cmp edx,0x02
  je short LABEL2
  cmp edx,0x03
  je short LABEL3
  cmp al,0x38
  je short LABEL4
  LABEL3:
  cmp al,0x2A
  je short LABEL4
  LABEL2:
  cmp al,0x32
  je short LABEL4
  LABEL1:
  cmp al,0x3E
  je short LABEL4
  cmp al,0x24
  je short LABEL4
  
  and eax,0x8000000F
  jmp short LABEL5
  LABEL4:
  and eax,0x80000000
  LABEL5:
  popad 
  
  jns 0x6EBE00
  dec eax
  inc eax
  jmp 0x6EBE00
end
func orinA214DIVE_HURR0B
  pushad
  movzx edx,byte ptr [esi+0x6AD]
  cmp edx,0x01
  je short LABEL1
  cmp edx,0x02
  je short LABEL2
  cmp edx,0x03
  je short LABEL3
  cmp al,0x38
  je short LABEL4
  LABEL3:
  cmp al,0x2A
  je short LABEL4
  LABEL2:
  cmp al,0x32
  je short LABEL4
  LABEL1:
  cmp al,0x3E
  je short LABEL4
  cmp al,0x24
  je short LABEL4
  
  and eax,0x8000000F
  jmp short LABEL5
  LABEL4:
  and eax,0x80000000
  LABEL5:
  popad 
  
  jns 0x6EC3DE
  dec eax
  inc eax
  jmp 0x6EC3DE
end

func orinA214DIVE_HURR1
  pushad 
  movzx edx,byte ptr [esi+0x6AD]
  cmp edx,0x01
  je short LABEL1
  cmp edx,0x02
  je short LABEL2
  cmp edx,0x03
  je short LABEL3
  cmp cl,0x3D
  je short LABEL4
  LABEL3:
  cmp cl,0x2F
  je short LABEL4
  LABEL2:
  cmp cl,0x37
  je short LABEL4
  LABEL1:
  cmp cl,0x43
  je short LABEL4
  cmp cl,0x29
  je short LABEL4
  
  and ecx,0x8000000F
  jmp short LABEL5
  LABEL4:
  and ecx,0x80000000
  LABEL5:
  popad 
  
  jns 0x6EC112
  dec ecx
  inc ecx
  jmp 0x6EC112
end

func orinA214DIVE_HURR2_UNUSED
  pushad
  movzx edx,byte ptr [esi+0x6AD]
  cmp edx,0x01
  je short LABEL1
  cmp edx,0x02
  je short LABEL2
  cmp edx,0x03
  je short LABEL3
  cmp al,0x2A
  je short LABEL4
  LABEL3:
  cmp al,0x1C
  je short LABEL4
  LABEL2:
  cmp al,0x24
  je short LABEL4
  LABEL1:
  cmp al,0x30
  je short LABEL4
  cmp al,0x16
  je short LABEL4
  
  and eax,0x8000000F
  jmp short LABEL5
  LABEL4:
  and eax,0x80000000
  LABEL5:
  popad
  
  
end

func orinA214DIVE_HURR3
  pushad 
  movzx edx,byte ptr [esi+0x6AD]
  cmp edx,0x01
  je short LABEL1
  cmp edx,0x02
  je short LABEL2
  cmp edx,0x03
  je short LABEL3
  cmp cl,0x2A
  je short LABEL4
  LABEL3:
  cmp cl,0x1C
  je short LABEL4
  LABEL2:
  cmp cl,0x24
  je short LABEL4
  LABEL1:
  cmp cl,0x30
  je short LABEL4
  cmp cl,0x16
  je short LABEL4
  
  and ecx,0x8000000F
  jmp short LABEL5
  LABEL4:
  and ecx,0x80000000
  LABEL5:
  popad 
  
  jns 0x6EC712
  dec ecx
  inc ecx
  jmp 0x6EC712
end

func orinA214DIVE_HECK
  pushad 
  cmp byte ptr [esi+0x13E],0x02
  je short LABEL1
  jne short LABEL2
  LABEL1:
  cmp dword ptr [esi+0x144],0x35
  je short LABEL3
  LABEL2:
  mov ebx,0x00000002
  and ebx,ebx
  jmp short LABEL4
  LABEL3:
  and ecx,0x80000000
  LABEL4:
  popad
end

006EBDF4 = orinA214DIVE_HURR0A
006EC105 = orinA214DIVE_HURR1
006EC3D2 = orinA214DIVE_HURR0B
006EC705 = orinA214DIVE_HURR3
;#popf unnecessary

;# 3sc freeze atmosphere delay
func orin3SCBUFF_DELAY
  cmp dword ptr [esi+0x144],0x01
end
0070EEC0 = orin3SCBUFF_DELAY

;# 3sc dive
;# rising x
func orin3SCDIVE_RISE
  fld dword ptr [0x85BCA4]
  fstp dword ptr [esi+0xF4]
  jmp 0x6F082C
end
006F0824 = orin3SCDIVE_RISE
;# x spd
006F0923 = orinFLDZ
;# y spd
func orin3SCDIVE_Y
  fld dword ptr [0x85C5BC]
end
006F0940 = orin3SCDIVE_Y

;# stuff part 3
;# insert 3
006F0400 = orinA214DIVE_HECK
;# change bullet seq 817 to 860
func orinWHAT_CHANGESEQ
  push 0x0000035C
end
006F04C5 = orinWHAT_CHANGESEQ
;# disappear speed
;#0070EDC8
;# halt y
0070ED79 = orinNOP
;# halt rot
func orinWHAT_HALTROT
  fldz
  fstp dword ptr [esi+0x12C]
  fstp dword ptr [esi+0x378]
  fld1
  jmp 0x70ED36
end
0070ED24 = orinWHAT_HALTROT
;# halt x??
007059E5 = orinFMULZERO
;# 1 hit
func orinWHAT_1HIT1
  mov eax,[esi+0x190]
  cmp eax,ebp
  jmp 0x6F05F0
end
006F0592 = orinWHAT_1HIT1

;#sprinkler spd
func orinSPRINKLER_SPD
  fld1
  fld1
  faddp
end
006EFF58 = orinSPRINKLER_SPD
006F01E6 = orinSPRINKLER_SPD

;#5sc wave
;#air always grounded
0070BDAE = orinFLDZ
;#0070BB80 = D9 EE 90 90 90 90
;#0070BBDB = D9 EE 90 90 90 90
;#0070BC95 = D9 EE 90 90 90 90
;#0070BD3B = D9 EE 90 90 90 90

func orinF5A_RECEPTION
  fcomp dword ptr [0x857DD8]
end
006FD74B = orinF5A_RECEPTION

;#fix ring issue
func orinRINGFIX
  push 0x00000359
end
0070F037 = orinRINGFIX
0070EBE8 = orinRINGFIX
0070F138 = orinRINGFIX
0070EEB9 = orinRINGFIX
;#
