func sekibankiFLDZ
  fldz
end

func sekibankiFLD1
  fld1
end

func sekibankiNOP
  nop
end


func sekibankiID_FIX
  cmp byte ptr [esi+0x573],0x00
  je LABEL1
  mov dword ptr [esi+0x34C],0x00000020
  ;mov dword ptr [esi+0x34C],0x0000002D
  jmp LABELEND
  LABEL1:
  mov ebp,[esi+0x170]
  cmp byte ptr [ebp+0x573],0x00
  je LABELEND
  mov dword ptr [esi+0x34C],0x00000020
  ;mov dword ptr [esi+0x34C],0x0000002D
  LABELEND:
  xor ebp,ebp
  cmp [esi+0x196],bp
end
0056CCA4 = sekibankiID_FIX

func sekibankiID_FIX2
  mov dword ptr [esi+0x34C],0x00000020
  fcom dword ptr [esi+0xF4]
end
;0056CD00 = sekibankiID_FIX2

func sekibankiD214_DRAIN
  mov byte ptr [esi+0x194],0x02
end
0057A13F = sekibankiD214_DRAIN

func sekibankiD214_DRAIN2
  cmp dword ptr [esi+0x190],0x00000001
  je LABEL1
  cmp dword ptr [esi+0x190],0x00000002
  je LABEL1
  cmp dword ptr [esi+0x190],0x00000007
  je LABEL1
  jmp LABEL2
  LABEL1:
  cmp byte ptr [esi+0x194],0x01
  jne LABEL2
  mov byte ptr [esi+0x194],0x00
  mov ax,[esi+0x49E]
  add ax,0x00C8
  cmp ax,word ptr [esi+0x4A0]
  jg LABEL3
  mov word ptr [esi+0x49E],ax
  jmp LABEL2
  LABEL3:
  mov ax,[esi+0x4A0]
  mov word ptr [esi+0x49E],ax
  
  LABEL2:
  movzx eax,word ptr [esi+0x13E]
end
00572F71 = sekibankiD214_DRAIN2

;# sekibanki D236
func sekibankiD236_SMTH
  mov word ptr [esi+0x36C],0x001E
end
00585A77 = sekibankiD236_SMTH
00585A94 = sekibankiD236_SMTH
00585AB2 = sekibankiD236_SMTH
00585A71 = sekibankiFLD1
00585A8E = sekibankiFLD1
00585AAC = sekibankiFLD1
00585AC6 = sekibankiFLD1
00585ADE = sekibankiFLD1
00585AFA = sekibankiFLD1


func sekibankiLOCKSOE
  jmp 0x5760E2
end
0057604D = sekibankiLOCKSOE

func sekibankiSOEFLASH
  cmp word ptr [esi+0x140],0x02
end
0057611C = sekibankiSOEFLASH

func sekibankiSOEMOMENTUMSTART
  cmp word ptr [esi+0x140],0x78
end
005761B6 = sekibankiSOEMOMENTUMSTART
00576247 = sekibankiSOEMOMENTUMSTART
00576232 = sekibankiSOEMOMENTUMSTART

func sekibankiLOCKCLONES1
  cmp word ptr [esi+0x13E],0x05
end
00575DBF = sekibankiLOCKCLONES1
00576B87 = sekibankiLOCKCLONES1
func sekibankiLOCKCLONES2
  jmp 0x58105D
end
00581018 = sekibankiLOCKCLONES2

func sekibankiLOCKSWORD
  cmp word ptr [esi+0x140],0x73
end

00575AF9 = sekibankiLOCKSWORD
00575B5C = sekibankiLOCKSWORD
00575B7C = sekibankiLOCKSWORD

005768D5 = sekibankiLOCKSWORD
00576938 = sekibankiLOCKSWORD
00576958 = sekibankiLOCKSWORD


func sekibankiSWAPPOS
  cmp word ptr [esi+0x13E],0x00
  jne 0x57ED2F
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  pushad
  popad
  
  LABEL1:
  
  cmp dword ptr [esi+0x144],0x0A
  jg short LABELZ
  jmp END2
  LABELZ:
  pushad
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELK
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELK1
  LABELK:
  popad
  jmp 0x57ED2F
  
  LABELK1:
  popad
  
  END2:
  jmp 0x57F73D
end
0057E042 = sekibankiSWAPPOS

;# leftover unused func, use for reference
func sekibankiBEAMSC_SYS

  
  pushad
  mov eax,[esi+0x190]
  cmp eax,0x04
  je short LABEL3A
  cmp eax,0x06
  je short LABEL3A
  cmp eax,0x08
  je short LABEL3A
  jmp short LABEL3
  LABEL3A:
  mov byte ptr [esi+0x194],0x00
  LABEL3:

  mov eax,[esi+0x190]
  
  cmp eax, 0x00
  jne short LABEL4
  
  ;cmp eax, 0x01
  ;je short LABEL4
  ;cmp eax, 0x02
  ;je short LABEL4
  
  jmp short LABEL5
  LABEL4:
  movzx eax, word ptr [esi+0x36C]
  add ax,0x01
  mov word ptr [esi+0x36C],ax
  cmp ax,0x04
  jl short LABEL5
  cmp byte ptr [esi+0x194],0x00
  je short LABEL5
  mov dword ptr [esi+0x190],0x00
  mov word ptr [esi+0x36C],0x00
  
  LABEL5:
  popad
  
  ;cmp al,0x10
  ;jb 0x57E432
  
  cmp dword ptr [esi+0x144],0x168
  jg short LABELZ
  cmp byte ptr [esi+0x194],0x00
  jle short LABELZ
  jmp END
  LABELZ:
  pushad
  mov al, [esi+0x113]
  cmp al,0x10
  
  popad
  jmp 0x57ED2F
  
end


func sekibanki2HEADDROPSC

  cmp word ptr [esi+0x13E],0x02
  je 0x57ED2F
  cmp word ptr [esi+0x13E],0x01
  je SUBSEQ1
  cmp dword ptr [esi+0x144],0x00
  jne LABEL1
  pushad
  mov eax,[esi+0x398]
  mov ecx,[eax+0xFC]
  ;# store additional var in 35C for bullet
  ;# idk for characters...
  mov [esi+0x378],ecx
  fldz
  ;# is this fine? additional var store in 0xFC (temporary) ?
  ;# for characters
  fstp dword ptr [eax+0xFC]
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x194],0x01
  
  fld1
  fst dword ptr [esi+0x11C]
  fstp dword ptr [esi+0x120]
  
  fld dword ptr [ecx+0xEC]
  fstp dword ptr [esi+0xEC]
  fld dword ptr [ecx+0xF0]
  fstp dword ptr [esi+0xF0]
  fldz
  fst dword ptr [esi+0xF8]
  fstp dword ptr [esi+0x100]
  cmp word ptr [esi+0x13E],0x00
  jne short NEXTACC
  fld dword ptr [0x86782C]
  jmp short NEXTACC1
  NEXTACC:
  fldz
  fsub dword ptr [0x86782C]
  NEXTACC1:
  fstp dword ptr [esi+0xF4]
  popad
  
  LABEL1:
  
  pushad
  ;# density
  push 0x02
  mov ecx,esi
  call 0x48CE30
  popad
  
  ;# ??? only matters for beam? hit period stuff?
  pushad
  mov eax,[esi+0x190]
  cmp eax,0x04
  je short ALABEL3A
  cmp eax,0x06
  je short ALABEL3B
  cmp eax,0x08
  je short ALABEL3A
  jmp short ALABEL3
  ALABEL3B:
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00
  jmp short ALABEL3
  ALABEL3A:
  mov byte ptr [esi+0x194],0x00
  ALABEL3:

  mov eax,[esi+0x190]
  
  cmp eax, 0x00
  jne short ALABEL4
  
  ;cmp eax, 0x01
  ;je short ALABEL4
  ;cmp eax, 0x02
  ;je short ALABEL4
  
  jmp short ALABEL5
  ALABEL4:
  movzx eax, word ptr [esi+0x36C]
  add ax,0x01
  mov word ptr [esi+0x36C],ax
  cmp ax,0x04
  jl short ALABEL5
  cmp byte ptr [esi+0x194],0x00
  je short ALABEL5
  mov dword ptr [esi+0x190],0x00
  mov word ptr [esi+0x36C],0x00
  
  
  ALABEL5:
  popad
  
  
  ;# movement
  cmp byte ptr [esi+0x104],0xFF
  jne short FACING
  fld dword ptr [0x87150C]
  jmp short FACING1
  FACING:
  fld1
  FACING1:
  fld dword ptr [esi+0xF4]
  fdiv dword ptr [0x8950D4]
  fst dword ptr [esi+0xF4]
  fmulp st1
  fadd dword ptr [esi+0xEC]
  fstp dword ptr [esi+0xEC]
  
  
  
  
  NEXT1:
  
  cmp word ptr [esi+0x140],0x07
  jne ENDCHECK
  cmp word ptr [esi+0x142],0x00
  jne ENDCHECK
  
  
  ;# obj
  
  
  ;# sound?
  mov ecx,[esi+0x398]
  push 0x01
  call 0x464980

  ;# ang part 1
  mov edx,0x00000000
  mov [esp+0x10],edx
  
  push 0x04
  lea eax,[esp+0x78]
  ;# this line below is for angle honestly
  fild dword ptr [esp+0x14]
  push eax
  push 0x01

  ;# ang
  
  
  ;fld dword ptr [0x85BC14]
  ;sub esp,0x08
  ;fstp dword ptr [esp+0x04]
  ;fld dword ptr [0x85BC10]
  ;fstp dword ptr [esp]
  ;mov ecx,esi
  ;call 0x4877C0
  
  mov eax,[esi+0x170]
  movsx edx,byte ptr [esi+0x104]
  fld dword ptr [eax+0xEC]
  fsub dword ptr [esi+0xEC]
  mov [esp+0x80],edx
  sub esp,0x08
  
  fild dword ptr [esp+0x88]
  fmulp st1
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax+0xF0]
  fadd dword ptr [0x85BBE0]
  fsub dword ptr [esi+0xF0]
  fstp dword ptr [esp]
  
  call 0x409760
  fchs
  add esp,0x08
  
  faddp st1
  fsub dword ptr [0x8589F0]
  ;fsub dword ptr [0x85AE94]
  fstp dword ptr [esp+0x80]
  
  
  
  

  fldz
  fstp dword ptr [esp+0x84]
  ;# subseq?
  fld1
  fstp dword ptr [esp+0x88]

  fldz

  fstp dword ptr [esp+0x8C]
  fld dword ptr [esp+0x80]
  movzx ecx,byte ptr [esi+0x104]
  fchs
  mov edi,[esi]
  push ecx
  push ecx
  add edi,0x44
  fstp dword ptr [esp]
  call 0x409580
  ;#YOFF
  fmul qword ptr [0x8677B0]
  fadd dword ptr [esi+0xF0]
  fstp dword ptr [esp+0x24]
  fld dword ptr [esp+0x24]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [esp+0x8C]
  fchs
  fstp dword ptr [esp]
  call 0x4095F0
  movsx edx,byte ptr [esi+0x104]
  ;#XOFF
  fmul qword ptr [0x8677B0]
  mov eax,[edi]
  mov [esp+0x28],edx
  mov ecx,esi
  fild dword ptr [esp+0x28]
  fmulp st1
  fadd dword ptr [esi+0xEC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x00000355
  call eax
  
  
  ENDCHECK:
  
  
  ;# spell dur
  cmp dword ptr [esi+0x144],0x12C
  jg short LABELZ1
  cmp byte ptr [esi+0x194],0x00
  je short LABELZ1
  jmp short END
  LABELZ1:
  pushad
  mov byte ptr [esi+0x194],0x00
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELJ
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELJ1
  LABELJ:
  popad
  jmp 0x57ED2F
  LABELJ1:
  popad
  END:
  jmp 0x57F73D
  
  SUBSEQ1:
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL21
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00
  
  LABEL21:
  ;# bullet dur
  cmp dword ptr [esi+0x144],0x64
  jg short LABELZ
  cmp byte ptr [esi+0x194],0x00
  jle short LABELZ
  jmp END2
  LABELZ:
  pushad
  mov byte ptr [esi+0x194],0x00
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELK
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELK1
  LABELK:
  popad
  jmp 0x57ED2F
  
  LABELK1:
  popad
  
  END2:
  jmp 0x57F73D
end

0057F843 = sekibanki2HEADDROPSC


func sekibankiHEADDROPSC
  cmp word ptr [esi+0x13E],0x00
  jne SUBSEQ1
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  pushad
  mov eax,[esi+0x398]
  mov ecx,[eax+0xFC]
  ;# store additional var in 35C for bullet
  ;# idk for characters...
  mov [esi+0x378],ecx
  fldz
  ;# is this fine? additional var store in 0xFC (temporary) ?
  ;# for characters
  fstp dword ptr [eax+0xFC]
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x194],0x01
  
  fld1
  fst dword ptr [esi+0x11C]
  fstp dword ptr [esi+0x120]
  
  fld dword ptr [ecx+0xEC]
  fstp dword ptr [esi+0xEC]
  fld dword ptr [ecx+0xF0]
  fstp dword ptr [esi+0xF0]
  fldz
  fst dword ptr [esi+0xF4]
  fst dword ptr [esi+0xF8]
  fstp dword ptr [esi+0x100]
  popad
  
  LABEL1:
  
  pushad
  ;# density
  push 0x02
  mov ecx,esi
  call 0x48CE30
  popad
  
  pushad
  mov eax,[esi+0x190]
  cmp eax,0x04
  je short ALABEL3A
  cmp eax,0x06
  je short ALABEL3B
  cmp eax,0x08
  je short ALABEL3A
  jmp short ALABEL3
  ALABEL3B:
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00
  jmp short ALABEL3
  ALABEL3A:
  mov byte ptr [esi+0x194],0x00
  ALABEL3:

  mov eax,[esi+0x190]
  
  cmp eax, 0x00
  jne short ALABEL4
  
  ;cmp eax, 0x01
  ;je short ALABEL4
  ;cmp eax, 0x02
  ;je short ALABEL4
  
  jmp short ALABEL5
  ALABEL4:
  movzx eax, word ptr [esi+0x36C]
  add ax,0x01
  mov word ptr [esi+0x36C],ax
  cmp ax,0x04
  jl short ALABEL5
  cmp byte ptr [esi+0x194],0x00
  je short ALABEL5
  mov dword ptr [esi+0x190],0x00
  mov word ptr [esi+0x36C],0x00
  
  
  ALABEL5:
  popad
  
  
  
  
  
  NEXT1:
  
  cmp word ptr [esi+0x140],0x07
  jne ENDCHECK
  cmp word ptr [esi+0x142],0x00
  jne ENDCHECK
  
  
  ;# obj
  
  
  ;# sound?
  mov ecx,[esi+0x398]
  push 0x01
  call 0x464980

  ;# ang part 1
  mov edx,0x00000000
  mov [esp+0x10],edx
  
  push 0x04
  lea eax,[esp+0x78]
  ;# this line below is for angle honestly
  fild dword ptr [esp+0x14]
  push eax
  push 0x01

  ;# ang
  
  
  ;# angle limitations, but doesnt seem to be used
  ;fld dword ptr [0x85BC14]
  ;sub esp,0x08
  ;fstp dword ptr [esp+0x04]
  ;fld dword ptr [0x85BC10]
  ;fstp dword ptr [esp]
  ;mov ecx,esi
  ;call 0x4877C0
  
  mov eax,[esi+0x170]
  movsx edx,byte ptr [esi+0x104]
  fld dword ptr [eax+0xEC]
  fsub dword ptr [esi+0xEC]
  mov [esp+0x80],edx
  sub esp,0x08
  
  fild dword ptr [esp+0x88]
  fmulp st1
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax+0xF0]
  fadd dword ptr [0x85BBE0]
  fsub dword ptr [esi+0xF0]
  fstp dword ptr [esp]
  
  call 0x409760
  fchs
  add esp,0x08
  
  faddp st1
  fsub dword ptr [0x8589F0]
  ;fsub dword ptr [0x85AE94]
  fstp dword ptr [esp+0x80]
  
  
  
  

  fldz
  fstp dword ptr [esp+0x84]
  ;# subseq?
  fld1
  fstp dword ptr [esp+0x88]

  ;# duration ?
  fldz

  fstp dword ptr [esp+0x8C]
  fld dword ptr [esp+0x80]
  movzx ecx,byte ptr [esi+0x104]
  fchs
  mov edi,[esi]
  push ecx
  push ecx
  add edi,0x44
  fstp dword ptr [esp]
  call 0x409580
  ;#YOFF
  fmul qword ptr [0x8677B0]
  fadd dword ptr [esi+0xF0]
  fstp dword ptr [esp+0x24]
  fld dword ptr [esp+0x24]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [esp+0x8C]
  fchs
  fstp dword ptr [esp]
  call 0x4095F0
  movsx edx,byte ptr [esi+0x104]
  ;#XOFF
  fmul qword ptr [0x8677B0]
  mov eax,[edi]
  mov [esp+0x28],edx
  mov ecx,esi
  fild dword ptr [esp+0x28]
  fmulp st1
  fadd dword ptr [esi+0xEC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x00000354
  call eax
  
  
  ENDCHECK:
  
  
  ;# spell dur
  ;cmp dword ptr [esi+0x144],0x12C
  cmp dword ptr [esi+0x144],0x9C
  jg short LABELZ1
  cmp byte ptr [esi+0x194],0x00
  je short LABELZ1
  jmp short END
  LABELZ1:
  pushad
  mov byte ptr [esi+0x194],0x00
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELJ
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELJ1
  LABELJ:
  popad
  jmp 0x57ED2F
  LABELJ1:
  popad
  END:
  jmp 0x57F73D
  
  SUBSEQ1:
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL21
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00
  
  LABEL21:
  ;# bullet dur
  cmp dword ptr [esi+0x144],0x64
  jg short LABELZ
  cmp byte ptr [esi+0x194],0x00
  jle short LABELZ
  jmp END2
  LABELZ:
  pushad
  mov byte ptr [esi+0x194],0x00
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELK
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELK1
  LABELK:
  popad
  jmp 0x57ED2F
  
  LABELK1:
  popad
  
  END2:
  jmp 0x57F73D
end
0057F742 = sekibankiHEADDROPSC



func sekibankiNECKSC
  cmp word ptr [esi+0x13E],0x00
  jne SUBSEQ1
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  pushad
  mov eax,[esi+0x398]
  mov ecx,[eax+0xFC]
  ;# store additional var in 35C for bullet
  ;# idk for characters...
  mov [esi+0x378],ecx
  fldz
  ;# is this fine? additional var store in 0xFC (temporary) ?
  ;# for characters
  fstp dword ptr [eax+0xFC]
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x194],0x00
  
  fld dword ptr [ecx+0xEC]
  fst dword ptr [esi+0xEC]
  fstp dword ptr [esi+0xF4]
  fld dword ptr [ecx+0xF0]
  fst dword ptr [esi+0xF0]
  fstp dword ptr [esi+0xF8]
  popad
  
  LABEL1:
  pushad
  mov eax,[esi+0x378]
  
  fld dword ptr [eax+0xEC]
  fstp dword ptr [esi+0xEC]
  fld dword ptr [eax+0xF0]
  fstp dword ptr [esi+0xF0]
  fldz
  fstp dword ptr [esi+0x100]
  
  popad
  
  fld dword ptr [esi+0xEC]
  fsub dword ptr [esi+0xF4]
  fmul st0,st0
  fld dword ptr [esi+0xF0]
  fsub dword ptr [esi+0xF8]
  fmul st0,st0
  faddp
  ;# min dist
  fld dword ptr [0x86788C]
  fcompp
  fnstsw ax
  test ah,0x41
  je ENDCHECK
  
  NEXT1:
  mov eax,[esi+0x144]
  mov edx,0x0
  mov ebx,0x2
  div ebx
  cmp edx,0x1
  jne ENDCHECK
  
  
  fld dword ptr [esi+0xEC]
  fstp dword ptr [esi+0xF4]
  fld dword ptr [esi+0xF0]
  fstp dword ptr [esi+0xF8]
  
  ;# obj
  
  ;# sound?
  mov ecx,[esi+0x398]
  ;push 0x01
  ;call 0x464980

  
  ;# ang part 1
  mov edx,0x00000000
  mov [esp+0x10],edx
  
  push 0x04
  lea eax,[esp+0x78]
  push eax
  push 0x01

  ;# ang
  fldz
  fstp dword ptr [esp+0x80]

  fldz
  fstp dword ptr [esp+0x84]
  ;# subseq?
  fld1
  fstp dword ptr [esp+0x88]

  fldz

  fstp dword ptr [esp+0x8C]
  fld dword ptr [esp+0x80]
  movzx ecx,byte ptr [esi+0x104]
  fchs
  mov edi,[esi]
  push ecx
  push ecx
  add edi,0x44
  fstp dword ptr [esp]
  call 0x409580
  ;#YOFF
  fmul qword ptr [0x8677B0]
  fadd dword ptr [esi+0xF0]
  fstp dword ptr [esp+0x24]
  fld dword ptr [esp+0x24]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [esp+0x8C]
  fchs
  fstp dword ptr [esp]
  call 0x4095F0
  movsx edx,byte ptr [esi+0x104]
  ;#XOFF
  fmul qword ptr [0x8677B0]
  mov eax,[edi]
  mov [esp+0x28],edx
  mov ecx,esi
  fild dword ptr [esp+0x28]
  fmulp st1
  fadd dword ptr [esi+0xEC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x00000357
  call eax
  
  
  ENDCHECK:
  
  
  ;# spell dur
  cmp dword ptr [esi+0x144],0x384
  jg short LABELZ1
  jmp short END
  LABELZ1:
  jmp 0x57ED2F
  END:
  jmp 0x57F73D
  
  SUBSEQ1:
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL21
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00
  
  LABEL21:
  ;# neck dur
  cmp dword ptr [esi+0x144],0x78
  jg short LABELZ
  cmp byte ptr [esi+0x194],0x00
  jle short LABELZ
  jmp END2
  LABELZ:
  pushad
  mov byte ptr [esi+0x194],0x00
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELK
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELK1
  LABELK:
  popad
  jmp 0x57ED2F
  
  LABELK1:
  popad
  
  END2:
  jmp 0x57F73D
end
0057FA60 = sekibankiNECKSC


func sekibankiBEAMSC1
  cmp dword ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  pushad
  mov eax,[esi+0x398]
  mov ecx,[eax+0xFC]
  mov [esi+0x378],ecx
  fldz
  fstp dword ptr [eax+0xFC]
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x194],0x0A
  popad
  
  LABEL1:
  pushad
  mov eax,[esi+0x378]
  fld dword ptr [eax+0xEC]
  fstp dword ptr [esi+0xEC]
  fld dword ptr [eax+0xF0]
  fstp dword ptr [esi+0xF0]
  fldz
  fst dword ptr [esi+0xF4]
  fst dword ptr [esi+0x100]
  fstp dword ptr [esi+0xF8]
  
  mov eax,[esi+0x398]
  mov al,[eax+0x104]
  cmp [esi+0x104],al
  je short LABELY
  mov [esi+0x104],al
  mov word ptr [esi+0x140],0x00
  mov word ptr[ esi+0x142],0x0F
  LABELY:  
  popad
  
  ;# user is hit
  ;# onhit
  
  ;# graze res
  pushad
  push 0x3C
  mov ecx,esi
  call 0x48CDE0

  ;# density
  push 0x04
  mov ecx,esi
  call 0x48CE30
  popad
  
  
  
  pushad
  mov eax,[esi+0x190]
  
  cmp eax,0x04
  je short LABEL3A
  cmp eax,0x06
  je short LABEL3A
  cmp eax,0x08
  je short LABEL3A
  
  jmp short LABEL3
  LABEL3A:
  mov byte ptr [esi+0x194],0x00
  LABEL3:

  mov eax,[esi+0x190]
  
  cmp eax, 0x00
  jne short LABEL4
  
  ;cmp eax, 0x01
  ;je short LABEL4
  ;cmp eax, 0x02
  ;je short LABEL4
  
  jmp short LABEL5
  LABEL4:
  movzx eax, word ptr [esi+0x36C]
  add ax,0x01
  mov word ptr [esi+0x36C],ax
  cmp ax,0x04
  jl short LABEL5
  cmp byte ptr [esi+0x194],0x00
  je short LABEL5
  mov dword ptr [esi+0x190],0x00
  mov word ptr [esi+0x36C],0x00
  
  LABEL5:
  popad
  
  cmp dword ptr [esi+0x144],0x12C
  jg short LABELZ
  cmp byte ptr [esi+0x194],0x00
  jle short LABELZ
  jmp END
  LABELZ:
  pushad
  mov byte ptr [esi+0x194],0x00
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELK
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELK1
  LABELK:
  popad
  jmp 0x57ED2F
  
  LABELK1:
  popad
  
  END:
  jmp 0x57F73D
end


func sekibankiBEAMSC2
  cmp dword ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  pushad
  mov eax,[esi+0x398]
  mov ecx,[eax+0xFC]
  mov [esi+0x378],ecx
  fldz
  fstp dword ptr [eax+0xFC]
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x194],0x14
  fld dword ptr [0x85B98C]
  fstp dword ptr [esi+0x12C]
  popad
  
  LABEL1:
  pushad
  mov eax,[esi+0x378]
  fld dword ptr [eax+0xEC]
  fstp dword ptr [esi+0xEC]
  fld dword ptr [eax+0xF0]
  fstp dword ptr [esi+0xF0]
  fldz
  fst dword ptr [esi+0xF4]
  fst dword ptr [esi+0x100]
  fstp dword ptr [esi+0xF8]
  
  fld dword ptr [esi+0x12C]
  fsub qword ptr [0x894460]
  fstp dword ptr [esi+0x12C]
  
  mov eax,[esi+0x398]
  mov al,[eax+0x104]
  cmp [esi+0x104],al
  je short LABELY
  mov [esi+0x104],al
  mov word ptr [esi+0x140],0x00
  mov word ptr[ esi+0x142],0x0F
  fld dword ptr [0x85B98C]
  fstp dword ptr [esi+0x12C]
  LABELY:
  popad
  
  ;# user is hit
  ;# onhit
  
  ;# graze res
  pushad
  push 0x3C
  mov ecx,esi
  call 0x48CDE0

  ;# density
  push 0x14
  mov ecx,esi
  call 0x48CE30
  popad
  
  
  
  pushad
  mov eax,[esi+0x190]
  cmp eax,0x04
  je short LABEL3A
  cmp eax,0x06
  je short LABEL3A
  cmp eax,0x08
  je short LABEL3A
  jmp short LABEL3
  LABEL3A:
  mov byte ptr [esi+0x194],0x00
  LABEL3:

  mov eax,[esi+0x190]
  
  cmp eax, 0x00
  jne short LABEL4
  
  ;cmp eax, 0x01
  ;je short LABEL4
  ;cmp eax, 0x02
  ;je short LABEL4
  
  jmp short LABEL5
  LABEL4:
  movzx eax, word ptr [esi+0x36C]
  add ax,0x01
  mov word ptr [esi+0x36C],ax
  cmp ax,0x04
  jl short LABEL5
  cmp byte ptr [esi+0x194],0x00
  je short LABEL5
  mov dword ptr [esi+0x190],0x00
  mov word ptr [esi+0x36C],0x00
  
  LABEL5:
  popad
  
  cmp dword ptr [esi+0x144],0x78
  jg short LABELZ
  cmp byte ptr [esi+0x194],0x00
  jle short LABELZ
  jmp END
  LABELZ:
  pushad
  mov byte ptr [esi+0x194],0x00
  mov al,[esi+0x113]
  cmp al,0x10
  jbe short LABELK
  sub al,0x10
  mov [esi+0x113],al
  jmp short LABELK1
  LABELK:
  popad
  jmp 0x57ED2F
  
  LABELK1:
  popad
  
  END:
  jmp 0x57F73D
end
0057F6EB = sekibankiBEAMSC1
0057F9FC = sekibankiBEAMSC2

func sekibankiHEAD_SKILL
  mov [esi+0x170],ecx
  pushad
  cmp word ptr [esi+0x13E],0x00
  jne END
  mov eax,[esi+0x398]
  
  cmp word ptr [eax+0x13C],0x208
  je short CONT
  cmp word ptr [eax+0x13C],0x209
  je short CONT
  jmp END
  CONT:
  cmp word ptr [eax+0x13E],0x01
  jne END
  cmp dword ptr [eax+0x144],0x00
  jne END
  cmp word ptr [eax+0x140],0x00
  jne END
  cmp word ptr [eax+0x142],0x00
  jne END
  mov word ptr [eax+0x142],0x01
  
  fld dword ptr [esi+0xEC]
  fld dword ptr [eax+0xEC]
  fstp dword ptr [esi+0xEC]
  fstp dword ptr [eax+0xEC]
  
  fld dword ptr [esi+0xF0]
  fld dword ptr [eax+0xF0]
  fadd dword ptr [0x857DC8]
  fstp dword ptr [esi+0xF0]
  fsub dword ptr [0x857DC8]
  fstp dword ptr [eax+0xF0]
  
  fldz
  fst dword ptr [eax+0xF4]
  fadd qword ptr [0x857F50]
  fstp dword ptr [eax+0xF8]
  fld dword ptr [0x8677A8]
  fstp dword ptr [eax+0x100]
  
  
  mov ecx,eax
  
  ;#40
  fld dword ptr [0x8596B8]
  fld dword ptr [ecx+0xEC]
  fcompp
  fnstsw ax
  test ah,0x41
  je NEXT1
  fld dword ptr [0x8596B8]
  fstp dword ptr [ecx+0xEC]
  NEXT1:
  
  fld dword ptr [ecx+0xEC]
  ;#1240
  fld dword ptr [0x85A25C]
  fcompp
  fnstsw ax
  test ah,0x41
  je NEXT2
  fld dword ptr [0x85A25C]
  fstp dword ptr [ecx+0xEC]
  NEXT2:
  
  fldz
  fld dword ptr [ecx+0xF0]
  fcompp
  fnstsw ax
  test ah,0x41
  je NEXT3
  fldz
  fstp dword ptr [ecx+0xF0]
  NEXT3:
  
  fld dword ptr [ecx+0xF0]
  ;#1000
  fld dword ptr [0x85D3C4]
  fcompp
  fnstsw ax
  test ah,0x41
  je NEXT4
  fld dword ptr [0x85D3C4]
  fstp dword ptr [ecx+0xF0]
  NEXT4:
  
  END:
  popad
end
00580FE2 = sekibankiHEAD_SKILL

func sekibankiHEAD_SPELL
  pushad
  
  mov eax,[esi+0x398]
  ;jmp START
  ;#swap1
  cmp word ptr [eax+0x13C],0x208
  je START4
  ;#swap2
  cmp word ptr [eax+0x13C],0x209
  je START4
  ;#sword1
  cmp word ptr [eax+0x13C],0x259
  je START1
  ;#sword2
  cmp word ptr [eax+0x13C],0x25C
  je START1
  ;#clone1
  cmp word ptr [eax+0x13C],0x25A
  je START2
  ;#soe
  cmp word ptr [eax+0x13C],0x25B
  je START3
  ;#clone2
  cmp word ptr [eax+0x13C],0x25D
  je START2
  jmp END
  START1:
  cmp word ptr [eax+0x13E],0x00
  jne END
  cmp word ptr [eax+0x140],0x09
  jne END
  cmp word ptr [eax+0x142],0x00
  jne END
  jmp START
  
  START2:
  cmp word ptr [eax+0x13E],0x03
  jne END
  cmp word ptr [eax+0x140],0x00
  jne END
  cmp word ptr [eax+0x142],0x00
  jne END
  jmp START
  
  START4:
  cmp word ptr [eax+0x13E],0x00
  jne END
  cmp word ptr [eax+0x140],0x04
  jne END
  cmp word ptr [eax+0x142],0x00
  jne END
  jmp START
  
  START3:
  cmp word ptr [eax+0x13E],0x00
  jne END
  cmp word ptr [eax+0x140],0x09
  jne END
  cmp word ptr [eax+0x142],0x00
  je START3A
  cmp word ptr [eax+0x142],0x02
  je START3A
  jmp END
  START3A:
  jmp START
  
  START:
  ;# boost the frame here?
  cmp word ptr [eax+0x142],0x00
  jne short BOOST
  mov word ptr [eax+0x142],0x01
  je short BOOST1
  BOOST:
  mov word ptr [eax+0x142],0x03
  BOOST1:
  
  ;# ??? objects cant be created on 144=0?
  cmp word ptr [esi+0x13C],0x383
  jne END
  cmp word ptr [esi+0x13E],0x00
  jne END
  ;# is this necessary? might be. bug fix. watch this
  ;cmp dword ptr [esi+0x144],0x01
  ;jl END
  
  cmp word ptr [eax+0x13C],0x208
  je short SKIPFC
  cmp word ptr [eax+0x13C],0x209
  je short SKIPFC
  mov [eax+0xFC],esi
  
  ;# sound?
  
  cmp word ptr [eax+0x13C],0x25A
  je short SOUND1
  cmp word ptr [eax+0x13C],0x25B
  je short SOUND1
  jmp short SOUND2
  
  SOUND1:
  mov ecx,[esi+0x398]
  push 0x02
  call 0x464980
  jmp SKIPFC
  
  SOUND2:
  mov ecx,[esi+0x398]
  push 0x01
  call 0x464980
  
  SKIPFC:
  
  ;# ang part 1
  mov edx,0x00000000
  mov [esp+0x10],edx
  

  push 0x04
  lea eax,[esp+0x78]
  push eax
  push 0x01

  ;# ang
  fldz
  fstp dword ptr [esp+0x80]
  ;mov [esp+0x80],esi

  fldz
  fstp dword ptr [esp+0x84]
  
  ;# subseq?
  push eax
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13C],0x25B
  jne SHORT SUBSEQLOAD0
  cmp word ptr [eax+0x142],0x03
  jne SHORT SUBSEQLOAD0
  fld dword ptr [0x871538]
  jmp short SUBSEQLOAD
  SUBSEQLOAD0:
  fldz
  SUBSEQLOAD:
  pop eax
  fstp dword ptr [esp+0x88]

  fldz

  fstp dword ptr [esp+0x8C]
  fld dword ptr [esp+0x80]
  movzx ecx,byte ptr [esi+0x104]
  fchs
  mov edi,[esi]
  push ecx
  push ecx
  add edi,0x44
  fstp dword ptr [esp]
  call 0x409580
  ;#YOFF
  fmul qword ptr [0x8677B0]
  fadd dword ptr [esi+0xF0]
  fstp dword ptr [esp+0x24]
  fld dword ptr [esp+0x24]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [esp+0x8C]
  fchs
  fstp dword ptr [esp]
  call 0x4095F0
  movsx edx,byte ptr [esi+0x104]
  ;#XOFF
  fmul qword ptr [0x8677B0]
  mov eax,[edi]
  mov [esp+0x28],edx
  mov ecx,esi
  fild dword ptr [esp+0x28]
  fmulp st1
  fadd dword ptr [esi+0xEC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push eax
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13C],0x208
  je short LABELSC0
  cmp word ptr [eax+0x13C],0x209
  je short LABELSC0
  cmp word ptr [eax+0x13C],0x259
  je short LABELSC1
  cmp word ptr [eax+0x13C],0x25C
  je short LABELSC2
  cmp word ptr [eax+0x13C],0x25A
  je short LABELSC3
  cmp word ptr [eax+0x13C],0x25B
  je short LABELSC5
  jmp short LABELSC4
  LABELSC0:
  pop eax
  push 0x0000032B
  jmp short LABELSC
  LABELSC1:
  pop eax
  push 0x00000353
  jmp short LABELSC
  LABELSC2:
  pop eax
  push 0x00000356
  jmp short LABELSC
  LABELSC3:
  pop eax
  push 0x00000354
  jmp short LABELSC
  LABELSC5:
  pop eax
  push 0x00000355
  jmp short LABELSC
  LABELSC4:
  pop eax
  push 0x00000357
  LABELSC:
  call eax
  
  END:
  popad
  
  movzx eax,word ptr [esi+0x13E]
end
00580FE8 = sekibankiHEAD_SPELL
;# maybe we should hijack the gas thing

func sekibankiHEAD_SET
  mov ecx,[edi+0x170]
end
;00580FDC = sekibankiHEAD_SET

func sekibankiA22_STARTUP
  cmp dword ptr [esi+0x144],0x01
end
;00582305 = sekibankiA22_STARTUP

func sekibankiA22_FIREONCE
  mov eax,[esi+0x144]
  cmp word ptr [esi+0x140],0x07
  je short LABEL1
  cmp word ptr [esi+0x140],0x11
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  cmp word ptr [esi+0x142],0x04
  jne short LABEL2
  jmp 0x582347
  LABEL2:
  jmp 0x5823CF
end
00582331 = sekibankiA22_FIREONCE

func sekibankiA22_LASERONHIT
  movsx eax,word ptr [esi+0x13E]
end
0057EB42 = sekibankiA22_LASERONHIT

func sekibankiA22_LASERDUR
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL2
  pushad
  mov eax,[esi+0x398]
  movzx eax, byte ptr [eax+0x6AB]
  add al,0x05
  mov byte ptr [esi+0x194],al
  popad
  LABEL2:
  
  ;# user is hit
  ;# onhit
  pushad
  push 0x02
  push 0x02
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  popad
  jne 0x57ED2F
  
  ;# graze res
  pushad
  push 0x1E
  mov ecx,esi
  call 0x48CDE0

  ;# density
  push 0x04
  mov ecx,esi
  call 0x48CE30
  popad
  
  pushad
  mov eax,[esi+0x190]
  cmp eax,0x04
  je short LABEL3A
  cmp eax,0x06
  je short LABEL3A
  cmp eax,0x08
  je short LABEL3A
  jmp short LABEL3
  LABEL3A:
  mov byte ptr [esi+0x194],0x00
  LABEL3:

  mov eax,[esi+0x190]
  
  cmp eax, 0x00
  jne short LABEL4
  
  ;cmp eax, 0x01
  ;je short LABEL4
  ;cmp eax, 0x02
  ;je short LABEL4
  
  jmp short LABEL5
  LABEL4:
  movzx eax, word ptr [esi+0x36C]
  add ax,0x01
  mov word ptr [esi+0x36C],ax
  cmp ax,0x04
  jl short LABEL5
  cmp byte ptr [esi+0x194],0x00
  je short LABEL5
  mov dword ptr [esi+0x190],0x00
  mov word ptr [esi+0x36C],0x00
  
  LABEL5:
  popad
  
  cmp al,0x10
  jb 0x57E432
  
  cmp dword ptr [esi+0x144],0x2C
  jg short LABEL1
  cmp byte ptr [esi+0x194],0x00
  jle short LABEL1
  add al,0x10
  LABEL1:
  
  sub al,0x10
  cmp al,0x40
  jmp 0x57EC91
end
0057EC85 = sekibankiA22_LASERDUR

func sekibankiA22_LASERBOX2
  fldz
  fsub dword ptr [0x86782C]
end
0057EC34 = sekibankiA22_LASERBOX2
func sekibankiA22_LASERBOX1
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  pushad
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13C],0x235
  je short LABEL2
  cmp word ptr [eax+0x13C],0x236
  je short LABEL2A
  jmp short LABEL3
  LABEL2:
  ;fld dword ptr [0x85B3B0]
  fldz
  fstp dword ptr [esi+0x12C]
  jmp short LABEL3
  LABEL2A:
  ;fld qword ptr [0x867830]
  fldz
  fadd dword ptr [0x85B3B0]
  fstp dword ptr [esi+0x12C]
  LABEL3:
  popad
  LABEL1:
  fld dword ptr [0x86782C]
end
0057EC4F = sekibankiA22_LASERBOX1

func sekibankiA22_LASER
  pushad
  cmp word ptr [esi+0x140],0x08
  je short LABELX
  cmp word ptr [esi+0x140],0x12
  je short LABELX
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13C],0x235
  je short LABEL2A
  cmp word ptr [eax+0x13C],0x236
  je short LABEL2
  jmp short LABEL3
  LABEL2A:
  mov word ptr [esi+0x140],0x01
  mov word ptr [esi+0x142],0x0F
  jmp short LABEL3
  LABEL2:
  mov word ptr [esi+0x140],0x0B
  mov word ptr [esi+0x142],0x0F
  jmp short LABEL3
  LABELX:
  mov word ptr [esi+0x140],0x15
  mov word ptr [esi+0x142],0x0F
  LABEL3:
  LABEL1:
  popad
  cmp dword ptr [esi+0x144],0x0A
end
00582305 = sekibankiA22_LASER

func sekibankiJB_HOVER
  call 0x487EA0
  test al,al
  
  je LABEL1
  fld dword ptr [esi+0xF4]
  pushad
  
  fldz
  fcomp
  fnstsw ax
  test ah,0x41
  je LABEL1A
  
  ;fld dword ptr [0x85B9C0]
  ;fsubp
  fmul dword ptr [0x85C228]
  fstp dword ptr [esi+0xF4]
  fld1
  fld dword ptr [esi+0xF4]
  fcompp
  fld dword ptr [esi+0xF4]
  fnstsw ax
  test ah,0x41
  je LABEL2
  jmp LABEL1C
  LABEL1C:
  fcomp
  fldz
  jmp LABEL2
  
  LABEL1A:
  ;fld dword ptr [0x85B9C0]
  ;faddp
  fmul dword ptr [0x85C228]
  fld1
  fcomp
  fnstsw ax
  test ah,0x41
  je LABEL2
  jmp LABEL1B
  LABEL1B:
  fcomp
  fldz
  jmp LABEL2
  
  LABEL2:
  popad
  fstp dword ptr [esi+0xF4]
  
  cmp word ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp word ptr [esi+0x140],0x0A
  jne short LABEL1
  cmp word ptr [esi+0x142],0x00
  jne short LABEL1
  
  mov ecx,esi
  call 0x438C60
  test al,al
  jmp 0x570C22
  
  LABEL1:
  jmp 0x570C37
end

func sekibankiJ2B_HOVER
  call 0x487EA0
  test al,al
  
  je LABEL1
  fld dword ptr [esi+0xF4]
  pushad
  
  fldz
  fcomp
  fnstsw ax
  test ah,0x41
  je LABEL1A
  
  ;fld dword ptr [0x85B9C0]
  ;fsubp
  fmul dword ptr [0x85C228]
  fstp dword ptr [esi+0xF4]
  fld1
  fld dword ptr [esi+0xF4]
  fcompp
  fld dword ptr [esi+0xF4]
  fnstsw ax
  test ah,0x41
  je LABEL2
  jmp LABEL1C
  LABEL1C:
  fcomp
  fldz
  jmp LABEL2
  
  LABEL1A:
  ;fld dword ptr [0x85B9C0]
  ;faddp
  fmul dword ptr [0x85C228]
  fld1
  fcomp
  fnstsw ax
  test ah,0x41
  je LABEL2
  jmp LABEL1B
  LABEL1B:
  fcomp
  fldz
  jmp LABEL2
  
  LABEL2:
  popad
  fstp dword ptr [esi+0xF4]
  
  cmp word ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp word ptr [esi+0x140],0x0A
  jne short LABEL1
  cmp word ptr [esi+0x142],0x00
  jne short LABEL1
  
  mov ecx,esi
  call 0x438C60
  test al,al
  jmp 0x570C22
  
  LABEL1:
  jmp 0x570C37
end
00570C19 = sekibankiJB_HOVER
00570D7F = sekibankiJ2B_HOVER

func sekibankiJB_HOVER2
  call 0x438C60
  test al,al
  jne 0x570C22
  jmp 0x570C42
end
;00570C39 = sekibankiJB_HOVER2
func sekibankiJ2B_HOVER2
  call 0x438C60
  test al,al
  jne 0x570C22
  jmp 0x570C42
end
;00570D8E = sekibankiJ2B_HOVER2

;#
func sekibankiNO66AA
  cmp word ptr [esi+0x13C],0x0131
  jmp 0x57C5E3
end
0057C595 = sekibankiNO66AA

func sekibankiNO5AAAA
  push 0x00000143
end
0057C6D5 = sekibankiNO5AAAA
  
  
;# sekibanki new
func sekibanki2B_ANG
  fld dword ptr [0x85C154]
end
00570B86 = sekibanki2B_ANG
func sekibanki2B_LOWER2
  imul edx,edx,0x000000B9
end
00570BA9 = sekibanki2B_LOWER2
func sekibanki2B_LOWER1
  fld dword ptr [0x85D87C]
end
00570B49 = sekibanki2B_LOWER1
func sekibanki2B_LOWER
  fadd dword ptr [0x85BBE4]
end
00570BA0 = sekibanki2B_LOWER

func sekibanki6B_TO5B1
  fld dword ptr [0x85BC10]
end
func sekibanki6B_TO5B2
  fadd qword ptr [0x85BCD0]
end
func sekibanki6B_TO5B3
  lea edx,[edx+edx*0x4]
  shl edx,0x04
end
00570A19 = sekibanki6B_TO5B1
00570A6D = sekibanki6B_TO5B2
00570A73 = sekibanki6B_TO5B3

func sekibanki5C2C_VELOCITY
  ;# default is 6.00f
  
  ;# 7.00f
  ;fld dword ptr [0x85882C]
  
  ;# 8.00f
  fld dword ptr [0x867810]
  
  ;# 10.00f
  ;fld dword ptr [0x86782C]
  
  ;# 12.00f
  ;fld dword ptr [0x858830]
  
end
0057D70F = sekibanki5C2C_VELOCITY

func sekibanki5C2C_CD
  cmp word ptr [esi+0x13E],0x05
  jne short LABEL1
  ;# 2A
  cmp dword ptr [esi+0x144],0x10
  jmp short LABEL2
  LABEL1:
  ;# 10
  cmp dword ptr [esi+0x144],0x0C
  LABEL2:
  nop
end
00581998 = sekibanki5C2C_CD

func sekibankiBOUNDS1
  fld dword ptr [0x85B44C]
end
func sekibankiBOUNDS2
  fcomp dword ptr [0x85C45C]
end
005810EE = sekibankiBOUNDS1
00581107 = sekibankiBOUNDS2
00581A34 = sekibankiBOUNDS1
00581A4D = sekibankiBOUNDS2
00581EF9 = sekibankiBOUNDS1
00581F16 = sekibankiBOUNDS2
0058209E = sekibankiBOUNDS1
005820BB = sekibankiBOUNDS2


func sekibankiC_NEW1
  cmp word ptr [esi+0x140],0x0A
end
func sekibankiC_NEW2
  je 0x57D67E
end
0057D574 = sekibankiC_NEW1
0057D57C = sekibankiC_NEW2

func sekibankiC_ONCE1
  jmp 0x581977
end
func sekibankiC_ONCE2
  cmp word ptr [esi+0x36C],0x01
end
func sekibanki5C_ONCE2
  cmp word ptr [esi+0x36C],0x02
end
func sekibankiC_DUR
  fld dword ptr [0x857DD4]
end

func sekibanki5C_ANG
  
  ;fld dword ptr [0x85BC14]
  ;sub esp,0x08
  ;fstp dword ptr [esp+0x04]
  ;fld dword ptr [0x85BC10]
  ;fstp dword ptr [esp]
  ;mov ecx,esi
  ;call 0x4877C0
  
  mov eax,[esi+0x170]
  movsx edx,byte ptr [esi+0x104]
  fld dword ptr [eax+0xEC]
  fsub dword ptr [esi+0xEC]
  mov [esp+0x80],edx
  sub esp,0x08
  
  fild dword ptr [esp+0x88]
  fmulp st1
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax+0xF0]
  fadd dword ptr [0x85BBE0]
  fsub dword ptr [esi+0xF0]
  fstp dword ptr [esp]
  
  call 0x409760
  fchs
  add esp,0x08
  
  faddp st1
  fsub dword ptr [0x8589F0]
  ;fsub dword ptr [0x85AE94]
  fstp dword ptr [esp+0x80]
end

func sekibanki2C_ANG
  push ebp
  
  ;fld dword ptr [0x85BC14]
  ;sub esp,0x08
  ;fstp dword ptr [esp+0x04]
  ;fld dword ptr [0x85BC10]
  ;fstp dword ptr [esp]
  ;mov ecx,esi
  ;call 0x4877C0
  
  mov eax,[esi+0x170]
  movsx edx,byte ptr [esi+0x104]
  fld dword ptr [eax+0xEC]
  fsub dword ptr [esi+0xEC]
  mov [esp+0x70],edx
  sub esp,0x08
  
  fild dword ptr [esp+0x78]
  fmulp st1
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax+0xF0]
  fadd dword ptr [0x85BBE0]
  fsub dword ptr [esi+0xF0]
  fstp dword ptr [esp]
  
  call 0x409760
  fchs
  add esp,0x08
  
  faddp st1
  fsub dword ptr [0x85AE94]
  fsub dword ptr [0x8589F0]
  ;fsub dword ptr [0x8589F0]
  ;fsub dword ptr [0x8589F0]
  
  fstp dword ptr [esp+0x70]
end

func sekibanki5C_STARTUP
  mov eax,[esi+0x144]
  cmp eax,0x02
  jmp 0x5817E2
end
func sekibanki2C_STARTUP
  mov eax,[esi+0x144]
  cmp eax,0x05
  jmp 0x581B9E
end
func sekibanki5C_STARTUP1
  mov ecx,0x00000002
end
func sekibanki2C_STARTUP1
  mov ecx,0x00000005
end

func sekibanki5C_ANGDIST
  lea edx,[eax+eax]
  jmp 0x581820
end
func sekibanki2C_ANGDIST
  movsx edx,word ptr [esi+0x36C]
  imul edx,edx,0x02
  jmp 0x581BD8
end

005817D9 = sekibanki5C_STARTUP
005817E9 = sekibanki5C_STARTUP1
00581B95 = sekibanki2C_STARTUP
00581BA5 = sekibanki2C_STARTUP1

00581830 = sekibanki5C_ANG
00581849 = sekibankiC_DUR
005818D1 = sekibankiC_ONCE1
005817F8 = sekibankiC_ONCE2
00581819 = sekibanki5C_ANGDIST

;# 2c
00581BE7 = sekibanki2C_ANG
00581BF8 = sekibankiC_DUR
00581C77 = sekibankiC_ONCE1
00581BB4 = sekibanki5C_ONCE2
;00581BCE = sekibanki2C_ANGDIST

;#offscreen
0057D5D0 = sekibankiBOUNDS1
0057D5ED = sekibankiBOUNDS2
;#y off
func sekibankiBOUNDS3
  fcomp qword ptr [0x85B970]
end
0057D61B = sekibankiBOUNDS3

func sekibankiB_FIX
  fild dword ptr [esp+0x10]
  fld dword ptr [0x8589F0]
end
0057D263 = sekibankiB_FIX

func sekibankiJ5B_DIST
  movsx edx,al
  imul edx,edx,0x01
end
00570D0F = sekibankiJ5B_DIST

func sekibankiB_NEW
  fld1
end
0057D207 = sekibankiB_NEW

func sekibankiB_NEW1
  jne 0x57D252
  cmp dword ptr [esi+0x144],0x03
  jl short LABEL1
  cmp dword ptr [esi+0x144],0x06
  jg short LABEL1
  jmp short LABEL2
  LABEL1:
  jmp 0x57D252
  LABEL2:
  nop
end
0057D189 = sekibankiB_NEW1

func sekibankiA22SPIN_START
  pushf
  pushad
  fldz
  fstp dword ptr [esi+0x12C]
  cmp dword ptr [esi+0x190],0x00000006
  jne short LABEL1
  mov byte ptr [esi+0x194],0x01
  LABEL1:
  popad
  popf
  mov eax,[esi+0x35C]
end
;005861BC = sekibankiA22SPIN_START

func sekibankiA22SPIN_FIX
  fstp st0
end
005861C6 = sekibankiA22SPIN_FIX

func sekibankiA22SPIN_CONF
cmp dword ptr [esi+0x144],0x00000060
end
005826E4 = sekibankiA22SPIN_CONF

func sekibankiA22SPIN_LV
  mov al,[edx+0x6AF]
  cmp al,0x00
  je short LABEL0
  cmp al,0x01
  je short LABEL1
  cmp al,0x02
  je short LABEL2
  cmp al,0x03
  je short LABEL3
  jmp short LABEL4
  LABEL0:
  mov dword ptr [esp+0x20],0x00000003
  jmp short END
  LABEL1:
  mov dword ptr [esp+0x20],0x00000003
  jmp short END
  LABEL2:
  mov dword ptr [esp+0x20],0x00000004
  jmp short END
  LABEL3:
  mov dword ptr [esp+0x20],0x00000004
  jmp short END
  LABEL4:
  mov dword ptr [esp+0x20],0x00000005
  END:
  jmp 0x5825D4
end
005825AA = sekibankiA22SPIN_LV

func sekibankiD22_END
  cmp dword ptr [esi+0x190],0x00
  je short LABEL1
  mov dword ptr [esi+0x36C],0x01
  LABEL1:
  cmp word ptr [esi+0x36C],0x00
end
;00581ED8 = sekibankiD22_END

;#HOMING EXAMPLE
func sekibankiREANGLE
  mov eax,[esi+0x170]
  movsx edx,byte ptr [esi+0x104]
  fld dword ptr [eax+0xEC]
  fsub dword ptr [esi+0xEC]
  mov [esp+0x10],edx
  sub esp,0x08
  fild dword ptr [esp+0x18]
  fmulp st1
  fstp dword ptr [esp+0x18]
  fld dword ptr [esp+0x18]
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax+0xF0]
  fsub dword ptr [esi+0xF0]
  fadd qword ptr [0x857B20]
  fstp dword ptr [esp+0x18]
  fld dword ptr [esp+0x18]
  fstp dword ptr [esp]
  call 0x409760
  mov ecx,[esi+0x35C]
  fchs
  fstp dword ptr [esp+0x18]
  add esp,0x08
  fld dword ptr [esp+0x10]
  fst dword ptr [ecx]
  fld dword ptr [0x87153C]
  fcom st1
  fnstsw ax
  fstp st1
  test ah,0x05
  jp short LABEL1
  fstp dword ptr [ecx]
  jmp short LABEL2
  LABEL1:
  fstp st0
  LABEL2:
  fld dword ptr [0x85BA18]
  fcom dword ptr [ecx]
  fnstsw ax
  test ah,0x41
  jne short LABEL3
  fstp dword ptr [ecx]
  jmp short LABEL4
  LABEL3:
  fstp st0
  LABEL4:
  nop
  
  cmp dword ptr [esi+0x144],ebx
end

func sekibankiREANGLE2
  sub esp,0x0C
  mov ecx,esi

  fld dword ptr [0x871544]
  fstp dword ptr [esp+0x08]
  ;#this is the number
  fld dword ptr [0x8589F0]
  fstp dword ptr [esp+0x04]
  fldz
  fstp dword ptr [esp]
  call 0x48CCA0
  mov eax,[esi+0x35C]
  fld dword ptr [eax]
  sub esp,0x08
  ;fstp dword ptr [esi+0x12C]
  fstp st0
  lea ecx,[esi+0x04]
  fld dword ptr [eax+0x04]
  ;fstp dword ptr [esp+0x18]
  ;fld dword ptr [esp+0x18]
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax]
  fstp dword ptr [esp]
  call 0x438C00
  
  cmp dword ptr [esi+0x144],ebx
end


00581EED = sekibankiREANGLE2

func sekibankiD22_FIREFREQ
  pushad
  mov eax,[esi+0x144]
  mov edx,0x0
  mov ebx,0x2
  div ebx
  cmp edx,0x0
  popad
  je short LABEL1
  jmp 0x581FA3
  
  LABEL1:
  mov edx,[esi+0x35C]
end
00581F4A = sekibankiD22_FIREFREQ

func sekibankiD22C_SPD
  fld dword ptr [0x85B9BC]
  ;fld dword ptr [0x85D948]
end
func sekibankiD22B_SPD
  fld dword ptr [0x85BC44]
end
0058164E = sekibankiD22C_SPD
0058155E = sekibankiD22B_SPD

func sekibankiD22_DUR
  pushf
  mov ebx,[esi+0x398]
  movzx ebx, byte ptr [ebx+0x6A7]
  inc ebx
  inc ebx
  inc ebx
  inc ebx
  inc ebx
  inc ebx
  imul ebx,ebx,0x07
  popf
end
00581EE2 = sekibankiD22_DUR

func sekibankiD22C_ANGA
  fld dword ptr [0x85D648]
end
func sekibankiD22C_ANGB
  fldz
end
;005815EB = sekibankiD22C_ANGA
;005815C6 = sekibankiD22C_ANGB

func sekibankiD22C_ANG1
  fldz
  fsub dword ptr [0x871540]
end
func sekibankiD22C_ANG2
  fldz
  fsub dword ptr [0x871540]
end

func sekibankiD22B_ANG1
  fld dword ptr [0x87153C]
end
func sekibankiD22B_ANG2
  fldz
  fsub dword ptr [0x87153C]
end
;#C
00581622 = sekibankiD22B_ANG1
00581639 = sekibankiD22B_ANG2

00581532 = sekibankiD22B_ANG1
00581549 = sekibankiD22B_ANG2


func sekibankiD22_REMNANT

  pushf
  cmp word ptr [esi+0x13E],0x01
  jne short LABEL3
  popf
  pushad
  push 0x03
  push 0x00
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  popad
  jne 0x57E432
  jmp short LABEL4
  LABEL3:
  popf
  LABEL4:


  pushf
  pushad
  cmp word ptr [esi+0x13E],0x01
  jne short LABEL1
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x18C],0x03
  LABEL1:
  popad
  popf
  movsx eax, word ptr [esi+0x13E]
end
0057E34F = sekibankiD22_REMNANT

func sekibankiD22_REMNANT1
  cmp word ptr [esi+0x13E],0x01
  jne short LABEL2
  cmp byte ptr [esi+0x194],0x00
  je short LABEL2
  cmp dword ptr [esi+0x144],0x3C
  jg short LABEL2
  LABEL1:
  jmp 0x57E37A
  LABEL2:
  mov al,[esi+0x113]
end
0057E364 = sekibankiD22_REMNANT1
0057E380 = sekibankiNOP
0057E392 = sekibankiNOP
0057E3C6 = sekibankiNOP

func sekibankiD22_BULLETANG
  fldz
end
0057E37A = sekibankiD22_BULLETANG

func sekibankiADDJ6B
  cmp eax,0x00000068
  je 0x570BEA
  cmp eax,0x000000F0
end
0056F6EB = sekibankiADDJ6B

func sekibankiADDJ6B1
  cmp dword ptr [esi+0x758],0x00
  jne short LABEL1
  movsx eax,byte ptr [esi+0x104]
  mov ecx,[esi+0x754]
  imul ecx,eax
  test ecx,ecx
  jg short LABEL2
  mov edx,[esi+0x774]
  imul edx,eax
  test edx,edx
  jle short LABEL1
  LABEL2:
  cmp [esi+0x49E],bp
  jl 0x57CC4B
  push 0x00000195
  mov ecx,esi
  call 0x489610
  cmp bx,ax
  jg short LABEL1
  fldz
  mov eax,[esi]
  fstp dword ptr [esi+0x12C]
  push 0x00000195
  jmp 0x57C3C8
  LABEL1:
  cmp [esi+0x49E],bp
  jl 0x57CC4B
  push 0x00000194

end
0057CBF9 = sekibankiADDJ6B1

func sekibankiADDJ6B2
  pushf
  cmp eax,0xBC
  je short LABEL1
  movzx eax,byte ptr [eax+0x57A308]
  jmp short LABEL2
  LABEL1:
  mov eax,0x0000000B
  LABEL2:
  popf
  nop
end
00579CCC = sekibankiADDJ6B2

func sekibankiB_VELOC
  fld dword ptr [0x85B9D4]
end
;0057D2AF = sekibankiB_VELOC

func sekibanki5B_STARTUP
  cmp word ptr [esi+0x140],0x04
end
005708C5 = sekibanki5B_STARTUP

;#8d4 = 22
;#6c
func sekibanki6C_ANG1
  fld dword ptr [0x87153C]
end
func sekibanki6C_ANG2
  fldz
  fsub dword ptr [0x87153C]
end
005813FF = sekibanki6C_ANG1
00581416 = sekibanki6C_ANG2

func sekibanki6C_DUR
  cmp dword ptr [esi+0x144],0x0B
end
00581A2B = sekibanki6C_DUR

func sekibanki6C_SPD
  ;fld dword ptr [0x85AE94]
  fld dword ptr [0x85D948]
end
00581431 = sekibanki6C_SPD

func sekibankiHEAD_SIZE
  fmul qword ptr [0x86812C]
end
0058124E = sekibankiHEAD_SIZE

func sekibankiHEADX_OFF
  fld dword ptr [0x86782C]
end
;0058107E = sekibankiHEADX_OFF

func sekibankiHEADY_OFF
  fadd dword ptr [0x857DC8]
end
;00581180 = sekibankiHEADY_OFF

func sekibankiHEADRETURN1
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0xC9
  je LABEL1C
  cmp ax,0xCB
  je LABEL1C
  cmp ax,0x208
  je short LABEL1B
  cmp ax,0x209
  je short LABEL1B
  cmp ax,0x19A
  jl short LABEL0
  cmp ax,0x1A0
  jg short LABEL0
  jmp LABEL1B
  LABEL0:
  cmp ax,0x230
  jl short LABEL0B
  cmp ax,0x23E
  jg short LABEL0B
  jmp LABEL1B
  LABEL0B:
  cmp ax,0x190
  je short LABEL1
  cmp ax,0x191
  je short LABEL1
  cmp ax,0x192
  je short LABEL1
  cmp ax,0x194
  je short LABEL1
  cmp ax,0x195
  je short LABEL1
  cmp ax,0x196
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg short LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl short LABEL2
  cmp ax,0x06
  jg short LABEL2
  ;5b
  fld qword ptr [0x85C028]
  jmp short LABELEND
  
  LABEL1B:
  fldz
  jmp LABELEND
  
  LABEL1C:
  fld qword ptr [0x85C028]
  jmp LABELEND
  
  LABEL2:
  fld qword ptr [0x85E548]
  LABELEND:
  popad
  popf
end
func sekibankiHEADRETURN2
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0xC9
  je LABEL1C
  cmp ax,0xCB
  je LABEL1C
  cmp ax,0x208
  je short LABEL1B
  cmp ax,0x209
  je short LABEL1B
  cmp ax,0x19A
  jl short LABEL0
  cmp ax,0x1A0
  jg short LABEL0
  jmp LABEL1B
  LABEL0:
  cmp ax,0x230
  jl short LABEL0B
  cmp ax,0x23E
  jg short LABEL0B
  jmp LABEL1B
  LABEL0B:
  cmp ax,0x190
  je short LABEL1
  cmp ax,0x191
  je short LABEL1
  cmp ax,0x192
  je short LABEL1
  cmp ax,0x194
  je short LABEL1
  cmp ax,0x195
  je short LABEL1
  cmp ax,0x196
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg short LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl short LABEL2
  cmp ax,0x06
  jg short LABEL2
  ;5b
  fmul qword ptr [0x85C028]
  jmp short LABELEND
  
  LABEL1B:
  fmul dword ptr [0x88B5E8]
  jmp LABELEND
  
  LABEL1C:
  fmul qword ptr [0x85C028]
  jmp LABELEND
  
  LABEL2:
  fmul qword ptr [0x85E548]
  LABELEND:
  fmul qword ptr [0x858C10]
  popad
  popf
end

func sekibankiHEADRETURN3
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0xC9
  je LABEL1C
  cmp ax,0xCB
  je LABEL1C
  cmp ax,0x208
  je short LABEL1B
  cmp ax,0x209
  je short LABEL1B
  cmp ax,0x19A
  jl short LABEL0
  cmp ax,0x1A0
  jg short LABEL0
  jmp LABEL1B
  LABEL0:
  cmp ax,0x230
  jl short LABEL0B
  cmp ax,0x23E
  jg short LABEL0B
  jmp LABEL1B
  LABEL0B:
  cmp ax,0x190
  je short LABEL1
  cmp ax,0x191
  je short LABEL1
  cmp ax,0x192
  je short LABEL1
  cmp ax,0x194
  je short LABEL1
  cmp ax,0x195
  je short LABEL1
  cmp ax,0x196
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg short LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl short LABEL2
  cmp ax,0x06
  jg short LABEL2
  ;5b
  fld qword ptr [0x85C028]
  jmp short LABELEND
  
  LABEL1B:
  fldz
  jmp LABELEND
  
  LABEL1C:
  fld qword ptr [0x85C028]
  jmp LABELEND
  
  LABEL2:
  fld qword ptr [0x85E548]
  LABELEND:
  popad
  popf
end
func sekibankiHEADRETURN4
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0xC9
  je LABEL1C
  cmp ax,0xCB
  je LABEL1C
  cmp ax,0x208
  je short LABEL1B
  cmp ax,0x209
  je short LABEL1B
  cmp ax,0x19A
  jl short LABEL0
  cmp ax,0x1A0
  jg short LABEL0
  jmp LABEL1B
  LABEL0:
  cmp ax,0x230
  jl short LABEL0B
  cmp ax,0x23E
  jg short LABEL0B
  jmp LABEL1B
  LABEL0B:
  cmp ax,0x190
  je short LABEL1
  cmp ax,0x191
  je short LABEL1
  cmp ax,0x192
  je short LABEL1
  cmp ax,0x194
  je short LABEL1
  cmp ax,0x195
  je short LABEL1
  cmp ax,0x196
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg short LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl short LABEL2
  cmp ax,0x06
  jg short LABEL2
  ;5b
  fmul qword ptr [0x85C028]
  jmp short LABELEND
  
  LABEL1B:
  fmul dword ptr [0x88B5E8]
  jmp LABELEND
  
  LABEL1C:
  fmul qword ptr [0x85C028]
  jmp LABELEND
  
  LABEL2:
  fmul qword ptr [0x85E548]
  LABELEND:
  fmul qword ptr [0x858C10]
  popad
  popf
end

00581131 = sekibankiHEADRETURN1
0058116A = sekibankiHEADRETURN2
0058119C = sekibankiHEADRETURN3
005811E1 = sekibankiHEADRETURN4


func sekibankiHEAD_REDIRECT_SIDE
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0x190
  je LABEL1B
  cmp ax,0x191
  je LABEL1
  cmp ax,0x194
  je LABEL1C
  cmp ax,0x195
  je LABEL1C
  ;cmp ax,0x196
  ;je LABEL1
  jmp LABEL2
  
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  ;6b
  fld dword ptr [0x85AD00]
  fmul qword ptr [0x858C10]
  jmp LABELEND
  
  LABEL1B:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  fld dword ptr [0x857DD4]
  fmul qword ptr [0x858C10]
  jmp LABELEND
  
  LABEL1C:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  fld dword ptr [0x85D398]
  fmul qword ptr [0x858C10]
  jmp LABELEND
  
  LABEL2:
  fld dword ptr [0x86782C]
  LABELEND:
  popad
  popf
end
0058107E = sekibankiHEAD_REDIRECT_SIDE

func sekibankiHEAD_REDIRECT_UP
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0x190
  je LABEL1
  cmp ax,0x191
  je LABEL1B
  cmp ax,0x192
  je LABEL1
  cmp ax,0x194
  je LABEL1C1
  cmp ax,0x195
  je LABEL1B1
  cmp ax,0x196
  je LABEL1C
  jmp LABEL2
  
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  ;6b
  ;fadd dword ptr [0x85AD00]
  fadd dword ptr [0x857DD4]
  jmp LABELEND
  
  
  LABEL1B:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  ;5b
  jmp LABELEND
  
  
  LABEL1B1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  fadd dword ptr [0x871540]
  jmp LABELEND
  
  
  LABEL1C:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  ;j2b
  ;fsub dword ptr [0x85AD00]
  fsub dword ptr [0x857DD4]
  jmp LABELEND
  
  
  
  LABEL1C1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl LABEL2
  cmp ax,0x06
  jg LABEL2
  fsub dword ptr [0x871540]
  jmp LABELEND
  
  
  LABEL2:
  fadd dword ptr [0x857DC8]
  LABELEND:
  popad
  popf
end
00581180 = sekibankiHEAD_REDIRECT_UP

func sekibankiHEADX_FIX
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0x190
  je short LABEL1
  cmp ax,0x191
  je short LABEL1
  cmp ax,0x192
  je short LABEL1
  cmp ax,0x194
  je short LABEL1
  cmp ax,0x195
  je short LABEL1
  cmp ax,0x196
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg short LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl short LABEL2
  cmp ax,0x06
  jg short LABEL2
  ;5b
  fld dword ptr [esi+0xEC]
  jmp short LABELEND
  LABEL2:
  mov eax,[esi+0x398]
  fld dword ptr [eax+0xEC]
  LABELEND:
  popad
  popf
end
00581139 = sekibankiHEADX_FIX
00581158 = sekibankiHEADX_FIX

func sekibankiHEADY_FIX
  pushf
  pushad
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0x190
  je short LABEL1
  cmp ax,0x191
  je short LABEL1
  cmp ax,0x192
  je short LABEL1
  cmp ax,0x194
  je short LABEL1
  cmp ax,0x195
  je short LABEL1
  cmp ax,0x196
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13E],0x00
  jg short LABEL2
  mov ax,[eax+0x140]
  cmp ax,0x01
  jl short LABEL2
  cmp ax,0x06
  jg short LABEL2
  ;5b
  fld dword ptr [esi+0xF0]
  jmp short LABELEND
  LABEL2:
  mov eax,[esi+0x398]
  fld dword ptr [eax+0xF0]
  LABELEND:
  popad
  popf
end
0058117A = sekibankiHEADY_FIX



func sekibankiJ8AY
  fld dword ptr [0x85BA68]
end
00570340 = sekibankiJ8AY


func sekibanki66B
  fld dword ptr [0x858828]
end
00570F0B = sekibanki66B


;# 6d
func sekibankiDASH
  fld dword ptr [0x858F40]
end
0056D7B0 = sekibankiDASH

;# 4d
;#init spd
func sekibankiBDASH
  fld dword ptr [0x85B9C8]
end
0056D96F = sekibankiBDASH
;#accel
func sekibankiBDASH_ACC
  fadd qword ptr [0x8677A0]
end
0056D869 = sekibankiBDASH_ACC
;#initial displacement??
0056D8B7 = sekibankiNOP: 6

;# hj8
;# y
;#0056DFA8 =
func sekibankiHJ8Y
  fld dword ptr [0x85C120]
  fsub dword ptr [0x85B954]
end
;#0056DF6E = 0F 85 8B AF 00 00 66 39 AE 42 01 00 00 75 F1 66 39 AE 40 01 00 00 75 E8 66 39 9E 3E 01 00 00 75 DF D9 EE 51 8B CE D9 1C 24 E8 A4 97 F1 FF D9 05 20 C1 85 00 90 90 90 90 90 90 D8 25 54 B9 85 00
0056DFA8 = sekibankiHJ8Y
;#idk how this pass

;# diag forward
;# x
func sekibankiHJ9X
  fld dword ptr [0x858F40]
end
0056E0DA = sekibankiHJ9X
;# y
func sekibankiHJ9Y
  fld dword ptr [0x85BC60]
end
0056E0EB = sekibankiHJ9Y

;# diag back
;# x
func sekibankiHJ7X
  fldz
  fsub dword ptr [0x858F40]
end
;#0056E1B8 = 0F 85 41 AD 00 00 66 39 AE 42 01 00 00 75 F1 66 39 AE 40 01 00 00 75 E8 66 39 9E 3E 01 00 00 75 DF D9 EE D8 25 40 8F 85 00 90 90 90 90 90 90 90 90 90 90
0056E1E5 = sekibankiHJ7X
;#this passes too somehow
;# uses same diag y

;# normal jump forward
;# x
func sekibanki9X
  fld dword ptr [0x85C590]
end
0056D132 = sekibanki9X
;# jump back x
func sekibanki7X
  fld dword ptr [0x85C580]
end
0056D1C8 = sekibanki7X
;# jump y all dir
func sekibankiJDIAGY
  fld dword ptr [0x85BC60]
end
0056D07C = sekibankiJDIAGY

;#flight
;# idk
func sekibankiFLIGHT_0
  fcomp dword ptr [0x858830]
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  fld dword ptr [0x858830]
  fstp dword ptr [esi+0x7DC]
  LABEL1:
  jmp 0x56EB99
end
0056EB80 = sekibankiFLIGHT_0
;# actually this?
func sekibankiFLIGHT_1
  fld dword ptr [0x858830]
end
00579D17 = sekibankiFLIGHT_1
;#0056E699
;# flight cost? idk the first line
func sekibankiFLIGHT_2
  jne short LABEL1
  push 0x05
  jmp 0x56E539
  LABEL1:
  push 0x0A
  jmp 0x56E539
end
0056E531 = sekibankiFLIGHT_2

;# 2DD y
func sekibanki2DD
  fld dword ptr [0x85C120]
  fsub dword ptr [0x85B954]
end
0056EE7F = sekibanki2DD

;# b activation delay
func sekibankiBDELAY
  mov edi,0x0000003C
end
0057D42E = sekibankiBDELAY

;# 6c return spd
;#00581131 = DD 05 48E58500
;#0058116A = D8 0D 00AB8500

;# a236 head hitcount
func sekibankiA236HEAD_HITS
  cmp byte ptr [eax+0x6A8],0x05
end
00585D15 = sekibankiA236HEAD_HITS
;# air use levelup
;#0057C190
;#jmp 60ADBE50

;# rekka
;#00572F71

;#
func sekibankiD623B_FIX

  cmp word ptr [esi+0x142],0x00
  jne short SKIP
  cmp word ptr [esi+0x140],0x01
  jne short SKIP
  cmp word ptr [esi+0x13E],0x00
  jne short SKIP
  jmp 0x571FB9
  SKIP:
  jmp 0x57219F
end
;00571E45 = sekibankiD623B_FIX

func sekibankiD623B_FIX2
  jmp 0x57219F
end
;00571FD0 = sekibankiD623B_FIX2

func sekibankiD623B_FIX3
  cmp word ptr [esi+0x140],0x03
  jmp 0x571F84
end
;00571F36 = sekibankiD623B_FIX3

func sekibankiD623_ONESEQ
  jmp 0x572E5A
end
;00571F92 = sekibankiD623_ONESEQ

func sekibankiD623C_ONESEQ
  call 0x438C60
  cmp word ptr [esi+0x13E],0x01
  jne short LABEL1
  cmp word ptr [esi+0x144],0x00
  jne short LABEL1
  jmp 0x572261
  LABEL1:
  jmp 0x57225D
end
;00572258 = sekibankiD623C_ONESEQ

func sekibankiD623C_FIX1
  cmp word ptr [esi+0x140],0x01
end
0057210A = sekibankiD623C_FIX1
func sekibankiD623C_FIX2
  ;push 0x32
  ;mov ecx,esi
  ;call 0x487870
  fldz
  jmp 0x57219F
end
00572134 = sekibankiD623C_FIX2
func sekibankiD623C_FIX3
  jmp 0x5720FD
end
005720F1 = sekibankiD623C_FIX3

func sekibankiD623C_FIX4
  fstp st0
  jmp 0x572134
end
00572124 = sekibankiD623C_FIX4

func sekibankiD623C_FIX5
  fld dword ptr [0x85B3B0]
end
;0057239F = sekibankiD623C_FIX5
func sekibankiD623C_FIX6
  push 0x78
  push 0x000000C8
  mov ecx,esi
  call 0x47A9E0
  fld dword ptr [0x85B3B0]
end
;00572381 = sekibankiD623C_FIX6

;#skip sound
func sekibankiD623C_FIX7
  jmp 0x572298
  ;jmp 0x5722E6
end
0057228F = sekibankiD623C_FIX7

func sekibankiD623C_FIX8
  cmp word ptr [esi+0x140],0x0E
  jmp 0x572345
end
005722EF = sekibankiD623C_FIX8

;#change subseq
func sekibankiD623C_FIX9
  lea eax,[esp+0x298]
  jmp 0x5722B3
end
005722AA = sekibankiD623C_FIX9

func sekibankiD623BC_HEIGHT
  fld dword ptr [esi+0xF0]
  fadd dword ptr [0x857DD4]
end
00571F61 = sekibankiD623BC_HEIGHT
005722BC = sekibankiD623BC_HEIGHT

func sekibankiD623C_LV
  cmp word ptr [esi+0x13E],0x00
  jne short END
  cmp word ptr [esi+0x140],0x01
  ;# use jg for 2x
  jne short END
  cmp word ptr [esi+0x142],0x01
  jne short END
  pushad
  movzx eax, byte ptr [esi+0x6A5]
  add al,0x01
  mov word ptr [esi+0x142],ax
  popad
  END:
  cmp dword ptr [esi+0x760],ebp
end
005720E2 = sekibankiD623C_LV

func sekibankiD623B_MOREFIXES
  cmp word ptr [esi+0x13E],0x00
  jne short END
  cmp word ptr [esi+0x140],0x01
  ;# use jg for 2x
  jne short END
  cmp word ptr [esi+0x142],0x01
  jne short END
  pushad
  movzx eax, byte ptr [esi+0x6A5]
  add ax,0x01
  mov word ptr [esi+0x142],ax
  popad
  END:
  jmp 0x571E7C
end
00571E6B = sekibankiD623B_MOREFIXES

func sekibankiD623B_MOREFIXES2
  cmp byte ptr [esi+0x6A5],0x04
  jmp 0x578EFF
end
00572020 = sekibankiD623B_MOREFIXES2

func sekibankiD623INVULS
  cmp byte ptr [esi+0x6A5],0x06
end
0057A0AA = sekibankiD623INVULS
;00571E6B = sekibankiD623INVULS

;# d623 on fail
func sekibankiD623FAIL_2
  fstp dword ptr [esi+0xF8]
  fld dword ptr [0x85C610]
  fstp dword ptr [esi+0xF8]
end
func sekibankiD623FAIL_3
  fld dword ptr [0x85C610]
end
00571FD9 = sekibankiFLDZ
00571FE7 = sekibankiD623FAIL_2
;#C
00572381 = sekibankiFLDZ
0057239F = sekibankiD623FAIL_3

func sekibankiD214BRECOV
  cmp byte ptr [esi+0x6A6],0x07
end
;0057313B = sekibankiD214BRECOV

;#