func murasaNOP
  nop
end

func murasaFLDZ
  fldz
end

;je 005F81F6

;# A623 bubble fix
0060F6E5 = murasaFLDZ


func murasaID_FIX
  mov dword ptr [esi+0x34C],0x0000001F
  ;mov dword ptr [esi+0x34C],0x00000031
  cmp word [esi+0x196],0x0000
end
005EE78B = murasaID_FIX


func murasaCHAINS

end


func murasaATLAS_1
  fld1
end
005FE771 = murasaATLAS_1

func murasaBERMUDAD22_EFF
  fstp st0
  
  
  cmp word ptr [esi+0x13E],0x00
  je LABELSEQ0
  cmp word ptr [esi+0x13E],0x03
  je LABELSEQ0
  jmp 0x60C3B5
  
  LABELSEQ0:
  pushad
  mov ecx,[esi+0x398]
  
  
  cmp dword ptr [esi+0x144],0x00
  jne LABELJ
  cmp word ptr [esi+0x13E],0x00
  jne LABELJ1
  
  mov ebx,[esi+0x398]
  cmp byte ptr [ebx+0x6A7],0x00
  je LABELH0
  cmp byte ptr [ebx+0x6A7],0x01
  je LABELH1
  cmp byte ptr [ebx+0x6A7],0x02
  je LABELH2
  cmp byte ptr [ebx+0x6A7],0x03
  je LABELH3
  jmp LABELH4
  
  LABELH0:
  fld dword ptr [0x867860]
  jmp short LABELH
  LABELH1:
  fld dword ptr [0x85B870]
  jmp short LABELH
  LABELH2:
  fld dword ptr [0x85BCA4]
  jmp short LABELH
  LABELH3:
  fld dword ptr [0x85882C]
  jmp short LABELH
  LABELH4:
  fld dword ptr [0x867810]
  jmp short LABELH
  
  LABELH:
  fdiv dword ptr [0x86782C]
  fstp dword ptr [esi+0x11C]
  jmp LABELJ
  
  LABELJ1:
  fld dword ptr [0x85BCE8]
  fstp dword ptr [esi+0xF0]
  fld dword ptr [0x8575A4]
  fstp dword ptr [esi+0xEC]
  
  mov ebx,[esi+0x398]
  cmp byte ptr [ebx+0x6A7],0x00
  je LABELHB0
  cmp byte ptr [ebx+0x6A7],0x01
  je LABELHB1
  cmp byte ptr [ebx+0x6A7],0x02
  je LABELHB2
  cmp byte ptr [ebx+0x6A7],0x03
  je LABELHB3
  jmp LABELHB4
  
  LABELHB0:
  fld dword ptr [0x871538]
  jmp short LABELHB
  LABELHB1:
  fld dword ptr [0x867860]
  jmp short LABELHB
  LABELHB2:
  fld dword ptr [0x867860]
  jmp short LABELHB
  LABELHB3:
  fld dword ptr [0x867860]
  jmp short LABELHB
  LABELHB4:
  fld dword ptr [0x85B870]
  jmp short LABELHB
  
  LABELHB:
  fdiv dword ptr [0x86782C]
  fstp dword ptr [esi+0x120]
  
  LABELJ:
  mov ecx,[ecx+0x170]
  
  
  
  
  cmp word ptr [ecx+0x196],0x00
  jne LABELX
  
  ;#jump
  cmp word ptr [ecx+0x13C],0x06
  je LABELY
  cmp word ptr [ecx+0x13C],0x07
  je LABELY
  cmp word ptr [ecx+0x13C],0x08
  je LABELY
  
  ;#air
  cmp word ptr [ecx+0x13C],0x09
  je LABELY
  
  ;#airdash
  cmp word ptr [ecx+0x13C],0xCA
  je LABELY
  
  ;#air backdash
  cmp word ptr [ecx+0x13C],0xCB
  je LABELY
  
  ;#hj and dj
  cmp word ptr [ecx+0x13C],0xD0
  je LABELY
  cmp word ptr [ecx+0x13C],0xD1
  je LABELY
  cmp word ptr [ecx+0x13C],0xD2
  je LABELY
  cmp word ptr [ecx+0x13C],0xD3
  je LABELY
  cmp word ptr [ecx+0x13C],0xD4
  je LABELY
  
  ;#flight
  cmp word ptr [ecx+0x13C],0xD6
  je LABELY
  cmp word ptr [ecx+0x13C],0xD9
  je LABELY
  
  ;#BE
  cmp word ptr [ecx+0x13C],0xDC
  je LABELY
  cmp word ptr [ecx+0x13C],0xDD
  je LABELY
  cmp word ptr [ecx+0x13C],0xDE
  je LABELY
  
  ;#air BE
  cmp word ptr [ecx+0x13C],0xE1
  je LABELY
  cmp word ptr [ecx+0x13C],0xE2
  je LABELY
  
  ;#normals
  cmp word ptr [ecx+0x13C],0x12C
  jl short LABELV
  cmp word ptr [ecx+0x13C],0x1F4
  jge short LABELV
  jmp LABELY
  
  LABELV:
  jmp LABELX
  
  LABELY:
  
  
  cmp word ptr [esi+0x13E],0x00
  jne LABELG
  
  ;#fcompp example
  ;#A (8.00)
  fld dword ptr [0x867810]
  ;fld1
  ;#B
  fld dword ptr [ecx+0xF0]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  
  ;#A (+228.00)
  fld dword ptr [ecx+0xEC]
  ;#B
  fld dword ptr [esi+0xEC]
  fld qword ptr [0x85D660]
  fmul dword ptr [esi+0x11C]
  faddp
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  ;#A (+228.00)
  fld dword ptr [esi+0xEC]
  fld qword ptr [0x85D660]
  fmul dword ptr [esi+0x11C]
  fsubp
  ;#B
  fld dword ptr [ecx+0xEC]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  ;# EFFECT
  fld dword ptr [ecx+0xF0]
  fmul qword ptr [0x85B978]
  fsub dword ptr [0x871538]
  fstp dword ptr [ecx+0xF0]
  jmp LABELX
  
  
  LABELG:
  
  ;#fcompp example
  ;#A (8.00)
  fld dword ptr [0x867810]
  ;fld1
  ;#B
  fld dword ptr [ecx+0xF0]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  
  ;#A (+228.00)
  fld dword ptr [ecx+0xF0]
  fadd dword ptr [0x871544]
  ;#B
  fld dword ptr [esi+0xF0]
  fld qword ptr [0x85D660]
  fmul dword ptr [esi+0x120]
  faddp
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  ;#A (+228.00)
  fld dword ptr [esi+0xF0]
  fld qword ptr [0x85D660]
  fmul dword ptr [esi+0x120]
  fsubp
  ;#B
  fld dword ptr [ecx+0xF0]
  fadd dword ptr [0x871544]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  ;# EFFECT
  fld dword ptr [ecx+0xF0]
  fmul qword ptr [0x85B978]
  fsub dword ptr [0x871538]
  fstp dword ptr [ecx+0xF0]
  
  LABELX:
  popad
  
  ;#SIZE
  ;pushad
  ;cmp dword ptr [esi+0x144],0x00
  ;jne SIZE3
  ;fldz
  ;fstp dword ptr [esi+0x11C]
  ;SIZE3:
  ;cmp dword ptr [esi+0x144],0xA
  ;jge SIZE1
  
  ;fld dword ptr [esi+0x11C]
  ;fadd dword ptr [0x85AD14]
  ;fstp dword ptr [esi+0x11C]
  ;jmp SIZE2
  
  ;SIZE1:
  ;fld1
  ;fstp dword ptr [esi+0x11C]
  ;SIZE2:
  ;popad

  ;#TRANSP START
  pushad
  cmp dword ptr [esi+0x144],0x0A
  jge short LABELM1
  mov eax,[esi+0x144]
  imul eax,0x19
  mov [esi+0x113],al
  mov [esi+0x112],al
  mov [esi+0x111],al
  mov [esi+0x110],al
  jmp short LABELT
  LABELM1:
  mov byte ptr [esi+0x113],0xFF
  mov byte ptr [esi+0x112],0xFF
  mov byte ptr [esi+0x111],0xFF
  mov byte ptr [esi+0x110],0xFF
  LABELT1:
  popad
  
  
  ;#TRANSP
  pushad
  cmp dword ptr [esi+0x144],0xE6
  jl short LABELM
  mov eax,[esi+0x144]
  sub eax,0xE6
  mov ecx,0xA
  sub ecx,eax
  imul ecx,0x19
  mov [esi+0x113],cl
  mov [esi+0x112],cl
  mov [esi+0x111],cl
  mov [esi+0x110],cl
  jmp short LABELT
  LABELM:
  mov byte ptr [esi+0x113],0xFF
  mov byte ptr [esi+0x112],0xFF
  mov byte ptr [esi+0x111],0xFF
  mov byte ptr [esi+0x110],0xFF
  LABELT:
  popad
  
  cmp dword ptr [esi+0x144],0xF0
  jge 0x60C3B5
  cmp word ptr [esi+0x13E],0x00
  je short LABELSEQ
  cmp word ptr [esi+0x13E],0x03
  je short LABELSEQ
  jmp 0x60C3B5
  LABELSEQ:
  pushad
  mov ecx,[esi+0x398]
  cmp word ptr[ecx+0x13C],0x230
  je short LABEL1
  cmp word ptr[ecx+0x13C],0x231
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  cmp word ptr [ecx+0x13E],0x00
  jne short LABEL2
  cmp word ptr [ecx+0x140],0x00
  jne short LABEL2
  cmp word ptr [ecx+0x142],0x00
  jne short LABEL2
  cmp dword ptr [ecx+0x144],0x00
  jne short LABEL2
  popad
  jmp 0x60C3B5
  LABEL2:
  popad
  jmp 0x612841
end
0060D6F9 = murasaBERMUDAD22_EFF

func murasaBERMUDAD22B
  ;#DRAW LAYER
  ;push 0xFFFFFFFF
  push 0x01
  fldz
  mov ecx,esi
end
func murasaBERMUDAD22C
  ;#DRAW LAYER
  ;push 0xFFFFFFFF
  push 0x01
  fld dword ptr [0x871538]
  mov ecx,esi
end
005FABDF = murasaBERMUDAD22B
005FADB0 = murasaBERMUDAD22C

func murasaBERMUDAD22_SOUND
  cmp word ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp word ptr [esi+0x140],0x04
  jne short LABEL1
  cmp word ptr [esi+0x142],0x00
  jne short LABEL1
  
  push 0x0E
  mov ecx,esi
  call 0x464980
  
  LABEL1:
  mov byte ptr [esi+0x18C],0x03
end
005FAB39 = murasaBERMUDAD22_SOUND
005FAD0A = murasaBERMUDAD22_SOUND

func murasaBERMUDA3_EFF

  pushad
  mov ecx,[esi+0x398]
  mov ecx,[ecx+0x170]
  
  cmp word ptr [ecx+0x196],0x00
  jne LABELX
  
  ;#jump
  cmp word ptr [ecx+0x13C],0x06
  je LABELY
  cmp word ptr [ecx+0x13C],0x07
  je LABELY
  cmp word ptr [ecx+0x13C],0x08
  je LABELY
  
  ;#air
  cmp word ptr [ecx+0x13C],0x09
  je LABELY
  
  ;#airdash
  cmp word ptr [ecx+0x13C],0xCA
  je LABELY
  
  ;#air backdash
  cmp word ptr [ecx+0x13C],0xCB
  je LABELY
  
  ;#hj and dj
  cmp word ptr [ecx+0x13C],0xD0
  je LABELY
  cmp word ptr [ecx+0x13C],0xD1
  je LABELY
  cmp word ptr [ecx+0x13C],0xD2
  je LABELY
  cmp word ptr [ecx+0x13C],0xD3
  je LABELY
  cmp word ptr [ecx+0x13C],0xD4
  je LABELY
  
  ;#flight
  cmp word ptr [ecx+0x13C],0xD6
  je LABELY
  cmp word ptr [ecx+0x13C],0xD9
  je LABELY
  
  ;#BE
  cmp word ptr [ecx+0x13C],0xDC
  je LABELY
  cmp word ptr [ecx+0x13C],0xDD
  je LABELY
  cmp word ptr [ecx+0x13C],0xDE
  je LABELY
  
  ;#air BE
  cmp word ptr [ecx+0x13C],0xE1
  je LABELY
  cmp word ptr [ecx+0x13C],0xE2
  je LABELY
  
  ;#normals
  cmp word ptr [ecx+0x13C],0x12C
  jl short LABELV
  cmp word ptr [ecx+0x13C],0x1F4
  jge short LABELV
  jmp LABELY
  
  LABELV:
  jmp LABELX
  
  LABELY:
  
  
  ;#fcompp example
  ;#A (8.00)
  fld dword ptr [0x867810]
  ;fld1
  ;#B
  fld dword ptr [ecx+0xF0]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  
  ;#A (+228.00)
  fld dword ptr [ecx+0xEC]
  ;#B
  fld dword ptr [esi+0xEC]
  fadd qword ptr [0x85D660]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  ;#A (+228.00)
  fld dword ptr [esi+0xEC]
  fsub qword ptr [0x85D660]
  ;#B
  fld dword ptr [ecx+0xEC]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  ;# EFFECT
  fld dword ptr [ecx+0xF0]
  fmul qword ptr [0x85B978]
  fsub dword ptr [0x871538]
  fstp dword ptr [ecx+0xF0]
  
  LABELX:
  popad
  
  ;#SIZE
  pushad
  cmp dword ptr [esi+0x144],0x00
  jne SIZE3
  fldz
  fstp dword ptr [esi+0x11C]
  SIZE3:
  cmp dword ptr [esi+0x144],0xA
  jge SIZE1
  
  fld dword ptr [esi+0x11C]
  fadd dword ptr [0x85AD14]
  fstp dword ptr [esi+0x11C]
  jmp SIZE2
  
  SIZE1:
  fld1
  fstp dword ptr [esi+0x11C]
  SIZE2:
  popad

  ;#TRANSP
  pushad
  cmp dword ptr [esi+0x144],0x24E
  jl short LABELM
  mov eax,[esi+0x144]
  sub eax,0x24E
  mov ecx,0xA
  sub ecx,eax
  imul ecx,0x19
  mov [esi+0x113],cl
  mov [esi+0x112],cl
  mov [esi+0x111],cl
  mov [esi+0x110],cl
  jmp short LABELT
  LABELM:
  mov byte ptr [esi+0x113],0xFF
  mov byte ptr [esi+0x112],0xFF
  mov byte ptr [esi+0x111],0xFF
  mov byte ptr [esi+0x110],0xFF
  LABELT:
  popad
  
  cmp dword ptr [esi+0x144],0x258
  jge 0x60C3B5
  pushad
  mov ecx,[esi+0x398]
  cmp word ptr[ecx+0x13C],0x259
  je short LABEL1
  cmp word ptr[ecx+0x13C],0x25C
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  cmp word ptr [ecx+0x13E],0x00
  jne short LABEL2
  cmp word ptr [ecx+0x140],0x00
  jne short LABEL2
  cmp word ptr [ecx+0x142],0x00
  jne short LABEL2
  cmp dword ptr [ecx+0x144],0x00
  jne short LABEL2
  popad
  jmp 0x60C3B5
  LABEL2:
  popad
  jmp 0x612841
end
006127EB = murasaBERMUDA3_EFF

func murasaBERMUDA5_EFF

  pushad
  mov ecx,[esi+0x398]
  mov ecx,[ecx+0x170]
  
  cmp word ptr [ecx+0x196],0x00
  jne LABELX
  
  ;#jump
  cmp word ptr [ecx+0x13C],0x06
  je LABELY
  cmp word ptr [ecx+0x13C],0x07
  je LABELY
  cmp word ptr [ecx+0x13C],0x08
  je LABELY
  
  ;#air
  cmp word ptr [ecx+0x13C],0x09
  je LABELY
  
  ;#airdash
  cmp word ptr [ecx+0x13C],0xCA
  je LABELY
  
  ;#air backdash
  cmp word ptr [ecx+0x13C],0xCB
  je LABELY
  
  ;#hj and dj
  cmp word ptr [ecx+0x13C],0xD0
  je LABELY
  cmp word ptr [ecx+0x13C],0xD1
  je LABELY
  cmp word ptr [ecx+0x13C],0xD2
  je LABELY
  cmp word ptr [ecx+0x13C],0xD3
  je LABELY
  cmp word ptr [ecx+0x13C],0xD4
  je LABELY
  
  ;#flight
  cmp word ptr [ecx+0x13C],0xD6
  je LABELY
  cmp word ptr [ecx+0x13C],0xD9
  je LABELY
  
  ;#BE
  cmp word ptr [ecx+0x13C],0xDC
  je LABELY
  cmp word ptr [ecx+0x13C],0xDD
  je LABELY
  cmp word ptr [ecx+0x13C],0xDE
  je LABELY
  
  ;#air BE
  cmp word ptr [ecx+0x13C],0xE1
  je LABELY
  cmp word ptr [ecx+0x13C],0xE2
  je LABELY
  
  ;#normals
  cmp word ptr [ecx+0x13C],0x12C
  jl short LABELV
  cmp word ptr [ecx+0x13C],0x1F4
  jge short LABELV
  jmp LABELY
  
  LABELV:
  jmp LABELX
  
  LABELY:
  
  
  ;#A (8.00)
  fld dword ptr [0x867810]
  ;#B
  fld dword ptr [ecx+0xF0]
  ;#
  fcompp 
  fnstsw ax
  test ah,0x41
  ;#A greater than B
  jne LABELX
  
  ;# EFFECT
  fld dword ptr [ecx+0xF0]
  fmul qword ptr [0x85B978]
  fsub dword ptr [0x871538]
  fstp dword ptr [ecx+0xF0]
  
  LABELX:
  popad
  
  ;#SIZE
  pushad
  cmp dword ptr [esi+0x144],0x00
  jne SIZE3
  fldz
  fstp dword ptr [esi+0x11C]
  SIZE3:
  cmp dword ptr [esi+0x144],0xA
  jge SIZE1
  
  fld dword ptr [esi+0x11C]
  fadd dword ptr [0x85AD14]
  fstp dword ptr [esi+0x11C]
  jmp SIZE2
  
  SIZE1:
  fld1
  fstp dword ptr [esi+0x11C]
  SIZE2:
  popad

  ;#TRANSP
  pushad
  cmp dword ptr [esi+0x144],0x24E
  jl short LABELM
  mov eax,[esi+0x144]
  sub eax,0x24E
  mov ecx,0xA
  sub ecx,eax
  imul ecx,0x19
  mov [esi+0x113],cl
  mov [esi+0x112],cl
  mov [esi+0x111],cl
  mov [esi+0x110],cl
  jmp short LABELT
  LABELM:
  mov byte ptr [esi+0x113],0xFF
  mov byte ptr [esi+0x112],0xFF
  mov byte ptr [esi+0x111],0xFF
  mov byte ptr [esi+0x110],0xFF
  LABELT:
  popad
  
  cmp dword ptr [esi+0x144],0x258
  jge 0x60C3B5
  pushad
  mov ecx,[esi+0x398]
  cmp word ptr[ecx+0x13C],0x259
  je short LABEL1
  cmp word ptr[ecx+0x13C],0x25C
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  cmp word ptr [ecx+0x13E],0x00
  jne short LABEL2
  cmp word ptr [ecx+0x140],0x00
  jne short LABEL2
  cmp word ptr [ecx+0x142],0x00
  jne short LABEL2
  cmp dword ptr [ecx+0x144],0x00
  jne short LABEL2
  popad
  jmp 0x60C3B5
  LABEL2:
  popad
  jmp 0x612841
end
00612F1B = murasaBERMUDA5_EFF

func murasaBERMUDA5_1
  jmp 0x5FE931
end

func murasaBERMUDA3_1
  jmp 0x5FD870
end

func murasaBERMUDA5_2
  jmp 0x5FECBF
end

func murasaBERMUDA3_2
  jmp 0x5FDB86
end

func murasaBERMUDA5_3
  mov word ptr [esi+0x890],0x0000
end

func murasaBERMUDA5_4
  jmp 0x5FE8CD
end

func murasaBERMUDA3_4
  jmp 0x5FD80C
end

func murasaBERMUDA5_CENTER
  ;fstp st0
  fld dword ptr [0x8575A4]
end

005FE8DD = murasaBERMUDA5_1
005FEB1C = murasaBERMUDA5_2
005FEB9C = murasaBERMUDA5_2
005FEC8B = murasaBERMUDA5_3
005FE881 = murasaBERMUDA5_4
005FEB00 = murasaBERMUDA5_CENTER
005FE87B = murasaNOP
005FEAC8 = murasaNOP: 10
;005FE8E9 = murasaNOP

005FD815 = murasaBERMUDA3_1
005FDA5B = murasaBERMUDA3_2
005FD7C0 = murasaBERMUDA3_4
005FD7BA = murasaNOP
005FDA09 = murasaNOP: 10

func murasaBERMUDA5_SHAKE
  cmp word ptr [esi+0x13E],0x00
  je short LABEL2
  cmp word ptr [esi+0x142],0x00
  jne short LABEL2
  push 0x38
  mov ecx, esi
  call 0x464980
  LABEL2:
  cmp word ptr [esi+0x13E],0x00
  je short LABEL1
  cmp word ptr [esi+0x13E],0x03
  jge short LABEL1
  cmp word ptr [esi+0x142],0x00
  jne short LABEL1

  fld dword ptr [0x85C610]
  push 0x00
  mov ecx,esi
  fstp dword ptr [esp]
  call 0x439470
  
  LABEL1:
  cmp [esi+0x13E],di
end
005FE84B = murasaBERMUDA5_SHAKE

func murasaFLIGHT
  fld qword ptr [0x871520]
end
005EFE3E = murasaFLIGHT

func murasaA22_DUR
  fldz
  fstp dword ptr [esi+0xF8]
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  fld dword ptr [esi+0xF4]
  fdiv dword ptr [0x867860]
  fstp dword ptr [esi+0xF4]
  LABEL1:
  cmp dword ptr [esi+0x144],0x3C
end
0061058B = murasaA22_DUR

func murasaA623_DUR
  cmp dword ptr [esi+0x144],0x78
end
0060F6DC = murasaA623_DUR

func murasaA623_FLAG
  mov ecx,esi
  fstp st0
  call 0x487CA0
  mov dword ptr [esi+0x190],0x01
end
005F8C8E = murasaA623_FLAG
005F8F95 = murasaA623_FLAG

func murasaA236_POP
  fld dword ptr [0x85C8B0]
end
005F5D09 = muramasaNOP: 12
005F5D15 = murasaA236_POP

func murasaD623_EFF
  pushad
  cmp word ptr [esi+0x13E],0x00
  je LABEL0
  cmp word ptr [esi+0x13E],0x03
  je LABEL0
  cmp word ptr [esi+0x13E],0x04
  je LABEL0
  jmp LABEL1
  
  LABEL0:
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13C],0x208
  je LABEL2
  cmp word ptr [eax+0x13C],0x209
  je LABEL2
  jmp LABEL3
  
  LABEL2:
  cmp word ptr [eax+0x13E],0x03
  jne LABEL3
  
  fld dword ptr [0x87153C]
  fstp dword ptr [esi+0xF0]
  
  fld dword ptr [eax+0xEC]
  
  cmp byte ptr [eax+0x104],0x01
  je short LABEL4
  jmp short LABEL5
  LABEL4:
  fldz
  fsub dword ptr [0x85BC10]
  fstp dword ptr [esi+0x12C]
  fadd dword ptr [0x857DD4]
  jmp short LABEL6
  LABEL5:
  fldz
  fsub dword ptr [0x85BC10]
  fstp dword ptr [esi+0x12C]
  fsub dword ptr [0x857DD4]
  LABEL6:
  fstp dword ptr [esi+0xEC]
  
  fld dword ptr [0x85C110]
  fstp dword ptr [esi+0x11C]
  jmp short LABEL1
  
  LABEL3:
  popad
  add dword ptr [esi+0x34C],0xFFFFFFFF
  jmp 0x60D320
  LABEL1:
  popad

  cmp [esi+0x13E],di
end
0060CFB9 = murasaD623_EFF

func murasaD623B_HITS
  movzx eax,word ptr [esi+0x13E]
  cmp word ptr [esi+0x13C],0x208
  jne short LABEL1
  cmp word ptr [esi+0x13E],0x03
  jne short LABEL1
  cmp word ptr [esi+0x140],0x01
  je short LABEL2
  cmp word ptr [esi+0x140],0x03
  je short LABEL2
  cmp word ptr [esi+0x140],0x05
  je short LABEL2
  jne short LABEL1
  LABEL2:
  cmp word ptr [esi+0x142],0x02
  jne short LABEL1
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x194],0x01
  LABEL1:
end
005F7F05 = murasaD623B_HITS

func murasaD623C_HITS
  movzx eax,word ptr [esi+0x13E]
  cmp word ptr [esi+0x13C],0x209
  jne short LABEL1
  cmp word ptr [esi+0x13E],0x03
  jne short LABEL1
  cmp word ptr [esi+0x140],0x01
  je short LABEL2
  cmp word ptr [esi+0x140],0x03
  je short LABEL2
  cmp word ptr [esi+0x140],0x05
  je short LABEL2
  cmp word ptr [esi+0x140],0x07
  je short LABEL2
  cmp word ptr [esi+0x140],0x09
  je short LABEL2
  jne short LABEL1
  LABEL2:
  cmp word ptr [esi+0x142],0x02
  jne short LABEL1
  mov dword ptr [esi+0x190],0x00
  mov byte ptr [esi+0x194],0x01
  LABEL1:
end
005F825A = murasaD623C_HITS

func murasaD623_1B
  LABEL1:
  cmp word ptr [esi+0x13E],0x02
  jne short LABEL3
  cmp word ptr [esi+0x140],0x00
  jne short LABEL3
  cmp word ptr [esi+0x142],0x00
  jne short LABEL3
  jmp short LABEL2
  LABEL3:
  jmp 0x5F81E3
  LABEL2:
end

func murasaD623_1C
  LABEL1:
  cmp word ptr [esi+0x13E],0x02
  jne short LABEL3
  cmp word ptr [esi+0x140],0x00
  jne short LABEL3
  cmp word ptr [esi+0x142],0x00
  jne short LABEL3
  jmp short LABEL2
  LABEL3:
  jmp 0x5F8538
  LABEL2:
end

func murasaD623_2B
  jmp 0x5F7FCB
end

func murasaD623_2C
  jmp 0x5F8320
end

func murasaD623_3B
  jmp 0x5F81E3
end

func murasaD623_3C
  jmp 0x5F81E3
end

005F7F9A = murasaD623_1B
005F7FA9 = murasaD623_2B
005F7FCB = murasaNOP
005F7FD1 = murasaFLDZ
005F7FE6 = murasaFLDZ
005F7FF8 = murasaFLDZ
005F7F89 = murasaNOP
005F81D5 = murasaD623_3B

005F82EF = murasaD623_1C
005F82FE = murasaD623_2C
005F8320 = murasaNOP
005F8326 = murasaFLDZ
005F833B = murasaFLDZ
005F834D = murasaFLDZ
005F82DE = murasaNOP
005F852A = murasaD623_3C

func murasaD623_REMOVEAIR
  cmp byte ptr [esi+0x6AD],0x08
end
0060B1D7 = murasaD623_REMOVEAIR
0060B14F = murasaD623_REMOVEAIR

func murasaD623_REMOVEAIR_LV
  jmp 0x60B0AC
end
0060AF47 = murasaD623_REMOVEAIR_LV

;# B ver
005F8243 = murasaFLDZ
005F824F = murasaFLDZ
005F7F65 = murasaFLDZ
;# C ver
005F8592 = murasaFLDZ
005F859E = murasaFLDZ
005F82BA = murasaFLDZ
;# universal
005F85AA = murasaFLDZ
005F85ED = murasaFLDZ
005F85FD = murasaFLDZ

;# 2[c] remove
func murasaC2C_REMOVE
  cmp dword ptr [esi+0x140],0x25
end
005F2B03 = murasaC2C_REMOVE

func murasa5B_ONHIT
  push 0x03
  push 0x00
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  jne 0x60C5D2
  fld dword ptr [esi+0x11C]
end
0060C3CE = murasa5B_ONHIT

func murasa5B_NEW
  cmp word ptr [esi+0x13C],0x320
  jne short LABEL1
  cmp word ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp dword ptr [esi+0x190],0x04
  je short LABEL1
  cmp dword ptr [esi+0x190],0x08
  je short LABEL1
  cmp dword ptr [esi+0x144],0x25
  jg short LABEL1
  pushf
  pushad
  mov eax,[esi+0x398]
  movzx eax,word ptr [eax+0x13C]
  cmp ax,0x32
  jl short LABEL2
  cmp ax,0x96
  jge short LABEL2
  popad
  popf
  jmp short LABEL1
  
  LABEL2:
  popad
  popf
  jmp 0x60C3C4
  LABEL1:
  mov dword ptr [esi+0x34C],0x00
end
0060C3B5 = murasa5B_NEW

func murasa5B_NEW1
  cmp word ptr [esi+0x13C],0x320
  jne short LABEL1
  cmp word ptr [esi+0x13E],0x00
  jne short LABEL1
  
  pushad
  mov eax,[esi+0x144]
  mov edx,0x0
  mov ebx,0x3
  div ebx
  cmp edx,0x0
  popad

  jne 0x60C3B5
  jmp 0x60C31F
  LABEL1:
  cmp dword ptr [esi+0x190],0x00
end
0060C312 = murasa5B_NEW1
;#no grav
func murasa5B_NEW2
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  fld qword ptr [0x8581F8]
  jmp short LABEL2
  LABEL1:
  fld dword ptr [esi+0xF4]
  LABEL2:
  fdiv dword ptr [0x85C010]
  fstp dword ptr [esi+0xF4]
  fadd qword ptr [0x85E068]
end
0060C294 = murasa5B_NEW2

func murasa5B_KILLONHIT
  cmp word ptr [esi+0x13E],0x02
  jne short LABEL2
  fld dword ptr [esi+0xF8]
  fadd qword ptr [0x85E068]
  fstp dword ptr [esi+0xF8]
  cmp dword ptr [esi+0x190],0x00
  jne short LABELEND
  cmp byte ptr [esi+0x194],0x00
  je short LABELEND
  LABEL1:
  pushf
  pushad
  mov eax,[esi+0x398]
  movzx eax, word ptr [eax+0x13C]
  cmp ax,0x32
  jl short LABEL3
  cmp ax,0x96
  jge short LABEL3
  popad
  popf
  LABELEND:
  mov byte ptr [esi+0x194],0x00
  mov dword ptr [esi+0x34C],0x00
  jmp short LABEL2
  
  LABEL3:
  popad
  popf
  LABEL2:
  cmp [esi+0x190],edi
end
0060C24C = murasa5B_KILLONHIT

func murasa5B_COLOR
  cmp dword ptr [esi+0x144],0x1A
  jl 0x60C45C
  fld dword ptr [esi+0x11C]
end
0060C418 = murasa5B_COLOR

func murasa5B_CHARGE
  cmp word ptr [esi+0x140],0x05
end
005F2429 = murasa5B_CHARGE
005F2F95 = murasa5B_CHARGE

func murasaJ5B_FIX
  cmp word ptr [esi+0x140],0x0A
end
005F31D2 = murasaJ5B_FIX

;# j6a momentum removal
005F1AD7 = murasaNOP: 6
func murasaJ6A_0
  fld dword ptr [esi+0xF4]
end
005F1AEB = murasaJ6A_0
func murasaJ6A_1
  fld dword ptr [esi+0xF8]
  jmp 0x606110
end
005F1C7F = murasaJ6A_1

func murasa5C_ONHIT
  push 0x05
  push 0x03
  push 0x00
end
0060C835 = murasa5C_ONHIT

func murasa5C_SPLIT
  jne 0x60CA83
end
;0060C9DF = murasa5C_SPLIT

func murasa5C_SPLIT1
  pushf
  ;cmp word ptr [esi+0x13E],0x05
  ;je short LABEL0
  cmp word ptr [esi+0x13E],0x01
  je short LABEL0
  jne LABEL3
  
  LABEL0:
  cmp word ptr [esi+0x140],0x00
  jne LABEL1
  cmp word ptr [esi+0x142],0x01
  jne LABEL1
  cmp dword ptr [esi+0x144],0x01
  jne LABEL1
  cmp word ptr [esi+0x13E],0x01
  jne short LABEL3
  
  
  fld dword ptr [esi+0xF4]
  fmul dword ptr [esi+0xF4]
  fld dword ptr [esi+0xF8]
  fmul dword ptr [esi+0xF8]
  faddp st1
  fld dword ptr [0x859F00]
  fmul dword ptr [0x859F00]
  fcompp 
  fnstsw ax
  test ah,0x41
  je short LABELA1
  jmp short LABELA2
  
  
  LABELA2:
  fld dword ptr [esi+0xF4]
  fmul dword ptr [0x85AD04]
  fstp dword ptr [esi+0xF4]
  
  fld qword ptr [0x85BA28]
  fst dword ptr [esi+0xF8]
  
  popf
  jmp short LABEL2
  
  LABELA1:
  
  fld dword ptr [0x85BC78]
  fstp dword ptr [esi+0xF4]
  
  fld dword ptr [esi+0xF8]
  fmul dword ptr [0x85AD04]
  fadd dword ptr [0x85AD0C]
  fst dword ptr [esi+0xF8]
  
  popf
  jmp short LABEL2
  
  
  LABEL3:
  popf
  fld dword ptr [esi+0xF8]
  jmp short LABEL2
  LABEL1:
  popf
  fld dword ptr [esi+0xF8]
  fsub dword ptr [0x8677A8]
  fst dword ptr [esi+0xF8]
  LABEL2:
  nop
end
0060CB50 = murasa5C_SPLIT1

func murasa5C_SPLIT2
  jmp 0x60CA33
end
0060C9FA = murasa5C_SPLIT2

;# 5c explode timer
func murasa5C_TIMER
  pushf
  pushad
  cmp word ptr [esi+0x140],0x008B
  je LABELEND
  cmp word ptr [esi+0x140],0x0078
  jg LABEL1
  fld dword ptr [esi+0xF0]
  fldz ;# less than zero
  fcompp 
  fnstsw ax
  test ah,0x41
  je LABEL2
  
  
  fld dword ptr [esi+0xEC]
  fldz
  fcompp 
  fnstsw ax
  test ah,0x41
  je LABEL3
  
  fld dword ptr [0x85B8F4]
  fld dword ptr [esi+0xEC]
  fcompp 
  fnstsw ax
  test ah,0x41
  je LABEL4
  
  jmp short LABEL1
  
  LABEL2:
  popad
  popf
  mov word ptr [esi+0x140],0x0079
  mov word ptr [esi+0x142],0x00FF
  jmp 0x60C908
  
  
  LABEL3:
  fld qword ptr [0x85C540]
  fstp dword ptr [esi+0x12C]
  popad
  popf
  mov word ptr [esi+0x140],0x0079
  mov word ptr [esi+0x142],0x00FF
  jmp 0x60C908
  
  
  LABEL4:
  fld qword ptr [0x85C540]
  fstp dword ptr [esi+0x12C]
  popad
  popf
  mov word ptr [esi+0x140],0x0079
  mov word ptr [esi+0x142],0x00FF
  jmp 0x60C908
  
  LABELEND:
  popad
  popf
  jmp 0x60C9C8
  
  LABEL1:
  popad
  popf
  cmp dword ptr [esi+0x144],0x00FFFFFF
end
0060C8FB = murasa5C_TIMER

func murasa5C_GRAV2
  jmp 0x60C9D7
end
0060C902 = murasa5C_GRAV2

func murasa5C_GRAV
  pushf
  cmp word ptr [esi+0x140],0x00
  jne short LABEL1
  cmp word ptr [esi+0x142],0x00
  jne short LABEL1
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  ;fld dword ptr [0x85AE94]
  fld dword ptr [esi+0xF8]
  fmul dword ptr [0x85ABE4]
  popf
  jmp short LABEL2
  
  LABEL1:
  popf
  fld dword ptr [esi+0xF8]
  
  LABEL2:
  nop
end
0060C876 = murasa5C_GRAV

func murasa5C_GRAV1
  pushf
  cmp word ptr [esi+0x140],0x79
  jl short LABEL1
  
  popf
  fmul qword ptr [0x86812C]
  fldz
  fstp dword ptr [esi+0xF4]
  jmp short LABEL2
  
  LABEL1:
  popf
  fsub dword ptr [0x85B9C0]
  LABEL2:
  nop
end
0060C87C = murasa5C_GRAV1

func murasa5C_SWITCH
  pushf
  pushad
  fld dword ptr [esi+0xF0]
  fld1 ;# less than zero
  fcompp 
  fnstsw ax
  test ah,0x41
  je short LABEL2
  jmp short LABEL1
  
  LABEL2:
  fld1
  jmp short END
  
  LABEL1:
  fld1
  
  END:
  popad
  popf
  fstp dword ptr [esp+0x1EC]
  
end
;0060C941 = murasa5C_SWITCH

func murasa5C_SWITCH1
  pushf
  pushad
  fld dword ptr [esi+0xF0]
  fld1 ;# less than zero
  fcompp 
  fnstsw ax
  test ah,0x41
  je short LABEL2
  jmp short LABEL1
  
  LABEL2:
  popad
  popf
  fld dword ptr [0x85C894]
  jmp short END
  
  LABEL1:
  popad
  popf
  fld dword ptr [0x85B9D4]
  
  END:
  nop
end
0060C932 = murasa5C_SWITCH1

func murasa5C_802
  cmp word ptr [esi+0x13C],0x0322
  je short LABEL1
  jmp dword ptr [edx*0x4+0x61A138]
  LABEL1:
  je 0x60C81A
end
;0060C240 = murasa5C_802

func murasa5C_NEWSEQ
  cmp word ptr [esi+0x13E],0x04
end
;0061A693 = murasa5C_NEWSEQ

func murasa5C_NEW
  pushf
  cmp word ptr [esi+0x140],0x8B
  jl short LABEL1
  add dword ptr [esi+0x34C],0xFFFFFFFF
  LABEL1:
  popf
end
0060C9C8 = murasa5C_NEW

func murasa5C_SIDEVER
  cmp word ptr [esi+0x13E],0x05
  jne short LABEL1
  cmp word ptr [esi+0x13E],0x01
  jmp 0x60C9E5
  LABEL1:
  cmp word ptr [esi+0x13E],0x01
end
;0060C9D7 = murasa5C_SIDEVER

func murasa2C_Y
  ;fld dword ptr [0x85B824]
  fld dword ptr [0x85BDB8]
end
005F4134 = murasa2C_Y

func murasaJ5C_Y
  fld dword ptr [0x867860]
end
005F42DE = murasaJ5C_Y

func murasaJ6C_Y
  fld dword ptr [0x867860]
end
005F454B = murasaJ6C_Y

;# 6c wallbounce stuff
;#0060C84A

;# d236 disable armor
func murasaD236_ARMOR
  jmp 0x5EE772
end
005EE74A = murasaD236_ARMOR: 8

func murasaD236_ARMOR1
  mov [esi+0x190],ebx
  jmp 0x608B1B
end
00608B0D = murasaD236_ARMOR1

;# mpp
func murasaMPP_0
  mov word ptr [esi+0x892],0x02D0
end
005FFB95 = murasaMPP_0
;# walk speed
func murasaMPP_WALKX
  fld dword ptr [0x86782C]
end
005FF280 = murasaMPP_WALKX
;# jy
func murasaMPP_JY
  fld qword ptr [0x8581F8]
end
005FF908 = murasaMPP_JY
;# jgrav
func murasaMPP_GRAV
  fld1
end
005FF914 = murasaMPP_GRAV
;# jx
func murasaMPP_JX
  fmul dword ptr [0x86782C]
end
005FF926 = murasaMPP_JX

00602857 = murasaFLDZ
00602AED = murasaFLDZ
00602D62 = murasaFLDZ

func murasaCHAINS_0F
  xor ebx,ebx
  mov ecx,esi
  mov byte ptr [esi+0x00018C],0x02
  mov [esi+0x0007D0],bx
  mov byte ptr [esi+0x0007F4],0x01
  call 0x4636B0
  mov [esi+0x00049A],bl
  mov dword ptr [esi+0x000190],0x00000001
  pop esi
  pop ebx
  add esp,0x14
  ret 
end
00608CBB = murasaCHAINS_0F

func murasaCHAINS_C
  mov ebx,0x01
  mov ebp,0x00
  mov eax,0x02

  mov ecx,esi
  fstp st0
  
  cmp word ptr [esi+0x13E],0x00
  jne short A1LABELC7
  cmp word ptr [esi+0x140],0x02
  jne short A1LABELC7
  cmp word ptr [esi+0x142],0x00
  jne short A1LABELC7
  pushad 
  movzx eax,byte ptr [esi+0x6A6]
  imul eax,eax,0x02
  mov [esi+0x142],ax
  popad 
  A1LABELC7:
  cmp word ptr [esi+0x13C],0x021D
  jg short A1LABELC8
  cmp word ptr [esi+0x13E],0x03
  jmp short A1LABELC9
  A1LABELC8:
  movzx eax,word ptr [esi+0x13E]
  A1LABELC9:
  nop
  
  nop 
  nop 
  nop 
  jg LABEL1904F8
  
  mov ecx,esi
  call 0x487CA0
  LABEL1904F8:
  mov byte ptr [esi+0x18C],0x05 
  cmp [esi+0x764],ebp
  jne LABEL19050E
  
  mov byte ptr [esi+0x7F4],0x00 
  LABEL19050E:
  cmp word ptr [esi+0x13E],0x02 
  jne LABEL190525
  
  cmp [esi+0x7D0],bx
  je LABEL194AD6
  
  LABEL190525:
  mov ecx,esi
  call 0x438C60
  test al,al
  je LABEL19053B
  
  mov eax,[esi]
  mov edx,[eax+0x08]
  push 0x09 
  mov ecx,esi
  call edx
  LABEL19053B:
  cmp [esi+0x144],ebp
  jne LABEL199FB0
  
  cmp [esi+0x142],bp
  jne LABEL190712
  cmp [esi+0x140],bp
  jne LABEL190712
  cmp [esi+0x13E],bx
  jne LABEL190712
  
  mov eax,[esi+0x170]
  movsx ecx,byte ptr [esi+0x104]
  fld dword ptr [eax+0x000000EC]
  fsub dword ptr [esi+0x0EC]
  mov [esp+0x10],ecx
  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+0x000000F0]
  fsub dword ptr [esi+0x0F0]
  fstp dword ptr [esp+0x18]
  fld dword ptr [esp+0x18]
  fstp dword ptr [esp]
  call 0x409760
  fchs 
  add esp,0x08 
  fstp dword ptr [esp+0x10]
  fld dword ptr [esp+0x10]
  fst dword ptr [esi+0x7E4]
  
  
  cmp word ptr [esi+0x13C],0x021C
  je short A2LABEL1
  fld qword ptr [0x85BAF0]
  jmp short A2LABEL2
  A2LABEL1:
  ;fld dword ptr [0x85B908]
  fldz
  A2LABEL2:
  fstp dword ptr [esi+0x7E4]
  jmp LABEL190607
  
  ;cmp word ptr [esi+0x13C],0x021C
  ;je short A2LABEL1
  ;fld dword ptr [0x857DD8]
  ;jmp short A2LABEL2
  ;A2LABEL1:
  ;fldz
  ;A2LABEL2:
  ;fstp dword ptr [esi+0x7E4]
  ;jmp LABEL190B64
  
  nop 
  fnstsw ax
  test ah,0x05 
  jp LABEL1905E8
  
  fld dword ptr [0x85BB84] 
  fstp dword ptr [esi+0x7E4]
  LABEL1905E8:
  fld dword ptr [esi+0x7E4]
  fcomp qword ptr [0x867830] 
  fnstsw ax
  test ah,0x41 
  jne LABEL190607
  
  fld dword ptr [0x85BBE4] 
  fstp dword ptr [esi+0x7E4]
  LABEL190607:
  fld dword ptr [esi+0x7E4]
  push 0x04 
  fstp dword ptr [esp+0x000001C0]
  lea edx,[esp+0x000001C0]
  fldz 
  push edx
  fst dword ptr [esp+0x000001C8]
  push ebx
  fst dword ptr [esp+0x000001D0]
  mov ecx,esi
  fstp dword ptr [esp+0x000001D4]
  movzx eax,byte ptr [esi+0x104]
  fld dword ptr [esi+0x0F0]
  fadd qword ptr [0x857B20] 
  push eax
  movsx eax,al
  fstp dword ptr [esp+0x20]
  lea eax,[eax+eax*0x4]
  fld dword ptr [esp+0x20]
  add eax,eax
  sub esp,0x08 
  add eax,eax
  mov [esp+0x28],eax
  fstp dword ptr [esp+0x04]
  fild dword ptr [esp+0x28]
  fadd dword ptr [esi+0x0EC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x0000032C
  call 0x46EB30
  fld dword ptr [0x85B870] 
  fstp dword ptr [esp+0x000001C4]
  movzx eax,byte ptr [esi+0x104]
  fld dword ptr [esi+0x0F0]
  push 0x04 
  fadd qword ptr [0x857B20] 
  lea ecx,[esp+0x000001C0]
  push ecx
  push ebx
  push eax
  fstp dword ptr [esp+0x20]
  fld dword ptr [esp+0x20]
  movsx eax,al
  lea edx,[eax+eax*0x4]
  add edx,edx
  sub esp,0x08 
  add edx,edx
  mov [esp+0x28],edx
  fstp dword ptr [esp+0x04]
  mov ecx,esi
  fild dword ptr [esp+0x28]
  fadd dword ptr [esi+0x0EC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x0000032C
  call 0x46EB30
  push 0x10 
  mov ecx,esi
  call 0x464980
  push 0x78 
  push 0x000000C8 
  mov ecx,esi
  call 0x47A9E0
  push 0x32 
  mov ecx,esi
  call 0x487870
  LABEL190712:
  cmp [esi+0x144],ebp
  jne LABEL199FB0
  cmp [esi+0x142],bp
  jne LABEL199FB0
  cmp [esi+0x140],bp
  jne LABEL199FB0
  cmp word ptr [esi+0x13E],0x04 
  jne LABEL199FB0
  
  mov eax,[esi]
  mov edx,[eax+0x08]
  push ebp
  mov ecx,esi
  LABEL19074E:
  call edx
  jmp LABEL199FB0

  
  
  
  LABEL190B64:
  fld dword ptr [esi+0x7E4]
  push 0x04 
  fstp dword ptr [esp+0x000001A0]
  lea edx,[esp+0x000001A0]
  fldz 
  push edx
  fst dword ptr [esp+0x000001A8]
  push 0x01 
  fst dword ptr [esp+0x000001B0]
  mov ecx,esi
  fstp dword ptr [esp+0x000001B4]
  movzx eax,byte ptr [esi+0x104]
  fld dword ptr [esi+0x0F0]
  fadd qword ptr [0x857B20] 
  push eax
  movsx eax,al
  fstp dword ptr [esp+0x20]
  lea eax,[eax+eax*0x4]
  fld dword ptr [esp+0x20]
  add eax,eax
  sub esp,0x08 
  add eax,eax
  mov [esp+0x28],eax
  fstp dword ptr [esp+0x04]
  fild dword ptr [esp+0x28]
  fadd dword ptr [esi+0x0EC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x0000032C
  call 0x46EB30
  fld dword ptr [0x85B870] 
  fstp dword ptr [esp+0x000001A4]
  movzx eax,byte ptr [esi+0x104]
  fld dword ptr [esi+0x0F0]
  push 0x04 
  fadd qword ptr [0x857B20] 
  lea ecx,[esp+0x000001A0]
  push ecx
  push 0x01 
  push eax
  fstp dword ptr [esp+0x20]
  fld dword ptr [esp+0x20]
  movsx eax,al
  lea edx,[eax+eax*0x4]
  sub esp,0x08 
  add edx,edx
  add edx,edx
  fstp dword ptr [esp+0x04]
  mov [esp+0x28],edx
  fild dword ptr [esp+0x28]
  fadd dword ptr [esi+0x0EC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x0000032C
  mov ecx,esi
  call 0x46EB30
  push 0x10 
  mov ecx,esi
  call 0x464980
  push 0x78 
  push 0x000000C8 
  mov ecx,esi
  call 0x47A9E0
  push 0x32 
  mov ecx,esi
  call 0x487870
  LABEL190C71:
  LABEL199FB0:
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  
  LABEL1975E9:
  mov ecx,esi
  call 0x4636B0
  mov ecx,esi
  call 0x4397F0
  fstp dword ptr [esi+0x0F0]
  mov eax,[esi]
  mov edx,[eax+0x0C]
  push 0x07
  mov ecx,esi
  call edx
  jmp LABEL190C71
  
  LABEL194AD6:
  mov eax,[esi]
  mov edx,[eax+0x0C]
  push 0x04
  mov ecx,esi
  call edx
  jmp LABEL190C71
end
005F9530 = murasaCHAINS_C
005F96DD = murasaCHAINS_C

func murasaCHAINS_C_AIR
  mov ebx,0x01
  mov ebp,0x00
  mov eax,0x02
  
  mov ecx,esi
  fstp st0
  
  cmp word ptr [esi+0x13E],0x00
  jne short A3LABELC7
  cmp word ptr [esi+0x140],0x02
  jne short A3LABELC7
  cmp word ptr [esi+0x142],0x00
  jne short A3LABELC7
  pushad 
  movzx eax,byte ptr [esi+0x6A6]
  imul eax,eax,0x02
  mov [esi+0x142],ax
  popad 
  A3LABELC7:
  cmp word ptr [esi+0x13C],0x021D
  jg short A3LABELC8
  cmp word ptr [esi+0x13E],0x03
  jmp short A3LABELC9
  A3LABELC8:
  movzx eax,word ptr [esi+0x13E]
  A3LABELC9:
  nop
  
  nop 
  nop 
  cmp ax,0x0007 
  jne LABEL19099B
  
  mov ecx,esi
  call 0x487CA0
  jmp LABEL1909C2
  
  LABEL19099B:
  cmp ax,0x0003 
  jg LABEL1909C2
  
  fld dword ptr [esi+0x0F8]
  mov ecx,esi
  fsub dword ptr [esi+0x100]
  fstp dword ptr [esi+0x0F8]
  call 0x487EA0
  test al,al
  jne LABEL1975E9
  
  LABEL1909C2:
  mov ebx,0x00000005 
  mov [esi+0x18C],bl
  cmp [esi+0x764],ebp
  jne LABEL1909DC
  
  mov byte ptr [esi+0x7F4],0x00 
  LABEL1909DC:
  cmp word ptr [esi+0x13E],0x02 
  jne LABEL1909F4
  
  cmp word ptr [esi+0x7D0],0x01 
  je LABEL194AD6
  
  LABEL1909F4:
  mov ecx,esi
  call 0x438C60
  test al,al
  je LABEL190A09
  
  mov eax,[esi]
  mov edx,[eax+0x08]
  push ebp
  mov ecx,esi
  call edx
  LABEL190A09:
  cmp word ptr [esi+0x13E],0x03 
  jne LABEL190A31
  cmp [esi+0x142],bp
  jne LABEL190A31
  cmp [esi+0x140],bx
  jne LABEL190A31
  
  fld dword ptr [0x8677A8] 
  fstp dword ptr [esi+0x100]
  LABEL190A31:
  cmp [esi+0x144],ebp
  jne LABEL199FB0
  
  cmp [esi+0x142],bp
  jne LABEL190A64
  cmp [esi+0x140],bp
  jne LABEL190A64
  cmp word ptr [esi+0x13E],0x04 
  jne LABEL190A64
  
  mov eax,[esi]
  mov edx,[eax+0x08]
  push 0x09 
  mov ecx,esi
  call edx
  LABEL190A64:
  cmp [esi+0x144],ebp
  jne LABEL199FB0
  
  cmp [esi+0x142],bp
  jne LABEL190A97
  cmp [esi+0x140],bp
  jne LABEL190A97
  cmp word ptr [esi+0x13E],0x07 
  jne LABEL190A97
  
  mov eax,[esi]
  mov edx,[eax+0x08]
  push 0x09 
  mov ecx,esi
  call edx
  LABEL190A97:
  cmp [esi+0x144],ebp
  jne LABEL199FB0
  cmp [esi+0x142],bp
  jne LABEL199FB0
  cmp [esi+0x140],bp
  jne LABEL199FB0
  cmp word ptr [esi+0x13E],0x01 
  jne LABEL199FB0
  
  mov eax,[esi+0x170]
  movsx ecx,byte ptr [esi+0x104]
  fld dword ptr [eax+0x000000EC]
  fsub dword ptr [esi+0x0EC]
  mov [esp+0x10],ecx
  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+0x000000F0]
  fsub dword ptr [esi+0x0F0]
  fstp dword ptr [esp+0x18]
  fld dword ptr [esp+0x18]
  fstp dword ptr [esp]
  call 0x409760
  fchs 
  add esp,0x08 
  fstp dword ptr [esp+0x10]
  fld dword ptr [esp+0x10]
  fst dword ptr [esi+0x7E4]
  
  cmp word ptr [esi+0x13C],0x021E
  je short A4LABEL1
  fld dword ptr [0x85B98C]
  jmp short A4LABEL2
  A4LABEL1:
  fldz
  A4LABEL2:
  fstp dword ptr [esi+0x7E4]
  jmp LABEL190B64
  
  nop 
  fnstsw ax
  test ah,0x05 
  jp LABEL190B45
  
  fld dword ptr [0x85BB84] 
  fstp dword ptr [esi+0x7E4]
  LABEL190B45:
  fld dword ptr [esi+0x7E4]
  fcomp qword ptr [0x867830] 
  fnstsw ax
  test ah,0x41 
  jne LABEL190B64
  
  fld dword ptr [0x85BBE4] 
  fstp dword ptr [esi+0x7E4]
  
  LABEL190B64:
  fld dword ptr [esi+0x7E4]
  push 0x04 
  fstp dword ptr [esp+0x000001A0]
  lea edx,[esp+0x000001A0]
  fldz 
  push edx
  fst dword ptr [esp+0x000001A8]
  push 0x01 
  fst dword ptr [esp+0x000001B0]
  mov ecx,esi
  fstp dword ptr [esp+0x000001B4]
  movzx eax,byte ptr [esi+0x104]
  fld dword ptr [esi+0x0F0]
  fadd qword ptr [0x857B20] 
  push eax
  movsx eax,al
  fstp dword ptr [esp+0x20]
  lea eax,[eax+eax*0x4]
  fld dword ptr [esp+0x20]
  add eax,eax
  sub esp,0x08 
  add eax,eax
  mov [esp+0x28],eax
  fstp dword ptr [esp+0x04]
  fild dword ptr [esp+0x28]
  fadd dword ptr [esi+0x0EC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x0000032C
  call 0x46EB30
  fld dword ptr [0x85B870] 
  fstp dword ptr [esp+0x000001A4]
  movzx eax,byte ptr [esi+0x104]
  fld dword ptr [esi+0x0F0]
  push 0x04 
  fadd qword ptr [0x857B20] 
  lea ecx,[esp+0x000001A0]
  push ecx
  push 0x01 
  push eax
  fstp dword ptr [esp+0x20]
  fld dword ptr [esp+0x20]
  movsx eax,al
  lea edx,[eax+eax*4]
  sub esp,0x08 
  add edx,edx
  add edx,edx
  fstp dword ptr [esp+0x04]
  mov [esp+0x28],edx
  fild dword ptr [esp+0x28]
  fadd dword ptr [esi+0x0EC]
  fstp dword ptr [esp+0x28]
  fld dword ptr [esp+0x28]
  fstp dword ptr [esp]
  push 0x0000032C
  mov ecx,esi
  call 0x46EB30
  push 0x10 
  mov ecx,esi
  call 0x464980
  push 0x78 
  push 0x000000C8 
  mov ecx,esi
  call 0x47A9E0
  push 0x32 
  mov ecx,esi
  call 0x487870
  LABEL190C71:
  LABEL199FB0:
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  
  LABEL1975E9:
  mov ecx,esi
  call 0x4636B0
  mov ecx,esi
  call 0x4397F0
  fstp dword ptr [esi+0x0F0]
  mov eax,[esi]
  mov edx,[eax+0x0C]
  push 0x07
  mov ecx,esi
  call edx
  jmp LABEL190C71
  
  LABEL194AD6:
  mov eax,[esi]
  mov edx,[eax+0x0C]
  push 0x04
  mov ecx,esi
  call edx
  jmp LABEL190C71
end
005F987E = murasaCHAINS_C_AIR
005F9A69 = murasaCHAINS_C_AIR

func murasaCHAINS_BULLET
  mov ecx,esi

  cmp dword ptr [esi+0x0190],0x05 
  je LABEL19E2D8
  
  movsx eax,word ptr [esi+0x013E]
  cmp eax,0x07 
  ja LABEL19E2B8
  
  cmp eax,0x00
  je LABEL19ED0B
  cmp eax,0x01
  je LABEL19ED79
  cmp eax,0x02
  je LABEL19ED79
  cmp eax,0x03
  je LABEL19F1C3
  cmp eax,0x04
  je LABEL19F1F5
  cmp eax,0x05
  je LABEL19F22E
  cmp eax,0x06
  je LABEL19F22E
  cmp eax,0x07
  je LABEL19F1F5
  jmp LABEL19E2B8
  
  LABEL19ED0B:
  mov ecx,[esi+0x0398]
  movzx eax,word ptr [ecx+0x0000013C]
  cmp ax,0x021C 
  jl LABEL19ED2E
  cmp ax,0x0220
  jg LABEL19ED2E
  
  cmp word ptr [ecx+0x0000013E],0x03 
  jl LABEL19ED69
  
  LABEL19ED2E:
  fld dword ptr [esi+0x011C]
  fmul qword ptr [0x85B818] 
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  fst dword ptr [esi+0x011C]
  fstp dword ptr [esi+0x0120]
  LABEL19ED4E:
  mov al,[esi+0x0113]
  cmp al,0x1E 
  jb LABEL19E2D8
  
  sub al,0x1E 
  mov [esi+0x0113],al
  jmp LABEL19E2B8
  
  LABEL19ED69:
  push 0x64 
  push 0x14 
  mov ecx,esi
  call 0x48CF60
  jmp LABEL19E2B8
  
  LABEL19ED79:
  push 0x02 
  push 0x00 
  push 0x00 
  call 0x48CE90
  test al,al
  jne LABEL19E2D8
  
  fldz 
  mov ebp,0x00000001 
  cmp [esi+0x0144],ebp
  jne LABEL19F0FF
  
  mov eax,[esi+0x0398]
  movzx ecx,word ptr [eax+0x0000013C]
  cmp cx,0x021C
  jl LABEL19F0FF
  
  cmp cx,0x0220
  jg LABEL19F0FF
  
  movzx eax,word ptr [eax+0x0000013E]
  cmp ax,bp
  je LABEL19EDD8
  
  cmp ax,0x0002 
  jne LABEL19F0FF
  
  LABEL19EDD8:
  mov edx,[esi+0x035C]
  fstp st0
  fld dword ptr [edx]
  mov eax,[esi+0x0170]
  movsx ecx,byte ptr [esi+0x0104]
  fstp dword ptr [esi+0x0380]
  fld dword ptr [eax+0x000000EC]
  mov [esp+0x14],ecx
  fsub dword ptr [esi+0x00EC]
  sub esp,0x08 
  fild dword ptr [esp+0x1C]
  fmulp st1
  fstp dword ptr [esp+0x1C]
  fld dword ptr [esp+0x1C]
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax+0x000000F0]
  fadd qword ptr [0x857B20] 
  fsub dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x1C]
  fld dword ptr [esp+0x1C]
  fstp dword ptr [esp]
  call 0x409760
  mov ebx,[esi+0x035C]
  fchs 
  fstp dword ptr [esp+0x1C]
  add esp,0x08 
  fld dword ptr [esp+0x14]
  fld st0
  fsub dword ptr [ebx]
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  call 0x820230
  cdq 
  mov ecx,0x00000168 
  idiv ecx
  mov [esp+0x14],edx
  fild dword ptr [esp+0x14]
  fstp dword ptr [esp+0x14]
  fld dword ptr [0x87153C] 
  fld dword ptr [esp+0x14]
  fcom st1
  fnstsw ax
  fstp st1
  test ah,0x41 
  fld qword ptr [0x8581E8] 
  jne LABEL19EE9D
  
  fsub st1,st0
  fxch st1
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  fxch st1
  LABEL19EE9D:
  fld dword ptr [0x85BA18] 
  fcomp st2
  fnstsw ax
  test ah,0x41 
  jne LABEL19EEB8
  
  faddp 
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  jmp LABEL19EEBA
  
  LABEL19EEB8:
  fstp st0
  LABEL19EEBA:
  mov edx,[esi+0x0398]
  fld dword ptr [0x85AE94] 
  mov al,[edx+0x0006A6]
  fstp dword ptr [esp+0x14]
  cmp al,0x03 
  jl LABEL19EEDE
  
  fld dword ptr [0x85B830] 
  fstp dword ptr [esp+0x14]
  LABEL19EEDE:
  cmp al,0x04 
  jl LABEL19EEEC
  
  fld dword ptr [0x85BBE4] 
  fstp dword ptr [esp+0x14]
  LABEL19EEEC:
  fld st0
  fabs 
  fstp dword ptr [esp+0x18]
  fld dword ptr [esp+0x18]
  fld dword ptr [esp+0x14]
  fcom st1
  fnstsw ax
  fstp st1
  test ah,0x01 
  jne LABEL19EF15
  
  fstp st1
  fstp st0
  fstp dword ptr [esi+0x0380]
  fldz 
  jmp LABEL19EF55
  
  LABEL19EF15:
  fstp st2
  fldz 
  fcom st1
  fnstsw ax
  test ah,0x41 
  jne LABEL19EF36
  fstp st1
  fld dword ptr [esi+0x0380]
  fsubrp st2
  fxch st1
  fstp dword ptr [esi+0x0380]
  jmp LABEL19EF55
  
  LABEL19EF36:
  fcom st1
  fnstsw ax
  fstp st1
  test ah,0x05 
  jp LABEL19EF53
  
  fld dword ptr [esi+0x0380]
  faddp st2
  fxch st1
  fstp dword ptr [esi+0x0380]
  jmp LABEL19EF55
  
  LABEL19EF53:
  fstp st1
  LABEL19EF55:
  fld dword ptr [esi+0x0380]
  movzx ecx,byte ptr [esi+0x0104]
  mov edi,[esi]
  fstp dword ptr [esp+0x34]
  push 0x04 
  fstp dword ptr [esp+0x3C]
  lea eax,[esp+0x38]
  fld dword ptr [ebx+0x0C]
  push eax
  fadd qword ptr [0x8677C8] 
  push ebp
  add edi,0x44 
  cmp [esi+0x013E],bp
  push ecx
  fstp dword ptr [esp+0x50]
  push ecx
  jne LABEL19EFF6
  
  fld dword ptr [0x8589F0] 
  fstp dword ptr [esp+0x50]
  fld dword ptr [ebx]
  fchs 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov edx,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x2C]
  fld dword ptr [esp+0x2C]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [edx]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx eax,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov [esp+0x30],eax
  fild dword ptr [esp+0x30]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x30]
  fld dword ptr [esp+0x30]
  jmp LABEL19F057
  
  LABEL19EFF6:
  fld1 
  fstp dword ptr [esp+0x50]
  fld dword ptr [ebx]
  fchs 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov edx,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x2C]
  fld dword ptr [esp+0x2C]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [edx]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx eax,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov [esp+0x30],eax
  fild dword ptr [esp+0x30]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x30]
  fld dword ptr [esp+0x30]
  LABEL19F057:
  mov edx,[edi]
  fstp dword ptr [esp]
  push 0x0000032C
  mov ecx,esi
  call edx
  fld dword ptr [0x871538] 
  movzx ecx,byte ptr [esi+0x0104]
  fstp dword ptr [esp+0x3C]
  mov edx,[esi+0x035C]
  mov edi,[esi]
  push 0x04 
  fld dword ptr [edx]
  lea eax,[esp+0x38]
  push eax
  fchs 
  push ebp
  push ecx
  push ecx
  add edi,0x44 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov eax,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x2C]
  fld dword ptr [esp+0x2C]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [eax]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx ecx,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov edx,[edi]
  mov [esp+0x30],ecx
  mov ecx,esi
  fild dword ptr [esp+0x30]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x30]
  fld dword ptr [esp+0x30]
  fstp dword ptr [esp]
  push 0x0000032C
  call edx
  mov eax,[esi]
  mov edx,[eax+0x20]
  mov ecx,esi
  call edx
  fldz 
  LABEL19F0FF:
  cmp dword ptr [esi+0x0144],0x5A 
  jl LABEL19FC10
  
  movzx ecx,byte ptr [esi+0x0104]
  fst dword ptr [esp+0x34]
  mov edx,[esi+0x035C]
  fst dword ptr [esp+0x38]
  fld dword ptr [0x867860] 
  mov edi,[esi]
  push 0x04 
  fstp dword ptr [esp+0x40]
  lea eax,[esp+0x38]
  push eax
  fstp dword ptr [esp+0x48]
  fld dword ptr [edx]
  push ebp
  push ecx
  fchs 
  push ecx
  add edi,0x44 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov eax,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x2C]
  fld dword ptr [esp+0x2C]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [eax]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx ecx,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov [esp+0x30],ecx
  fild dword ptr [esp+0x30]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x30]
  fld dword ptr [esp+0x30]
  LABEL19F199:
  fstp dword ptr [esp]
  push 0x0000032C
  mov edx,[edi]
  mov ecx,esi
  call edx
  mov ecx,[esi+0x0398]
  push 0x11 
  call 0x464980
  add dword ptr [esi+0x034C],0xFFFFFFFF
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  
  LABEL19F1C3:
  cmp dword ptr [esi+0x0144],0x04 
  fld dword ptr [esi+0x011C]
  fmul qword ptr [0x85B818] 
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  fst dword ptr [esi+0x011C]
  fstp dword ptr [esi+0x0120]
  jl LABEL19E2B8
  
  jmp LABEL19ED4E
  
  LABEL19F1F5:
  cmp dword ptr [esi+0x0144],0x04 
  fld dword ptr [esi+0x011C]
  fmul qword ptr [0x85B818] 
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  fst dword ptr [esi+0x011C]
  fstp dword ptr [esi+0x0120]
  jl LABEL19E2B8
  
  mov byte ptr [esi+0x0194],0x00 
  jmp LABEL19ED4E
  
  LABEL19F22E:
  
  pushad 
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13C],0x021C
  jl short A5LABEL1
  cmp word ptr [eax+0x13C],0x0220
  jnl short A5LABEL1
  cmp word ptr [eax+0x13E],0x00
  jne short A5LABEL1
  cmp word ptr [eax+0x140],0x00
  jne short A5LABEL1
  cmp word ptr [eax+0x144],0x01
  jg short A5LABEL1
  jmp short A5LABEL2
  A5LABEL1:
  popad 
  mov ebx,0x00000002
  jmp short A5LABEL3
  A5LABEL2:
  add dword ptr [esi+0x34C],0xFFFFFFFF
  jmp short A5LABEL1
  A5LABEL3:
  nop
  
  push ebx
  push 0x00 
  push 0x00 
  call 0x48CE90
  test al,al
  jne LABEL19E2D8
  
  ;movzx edi,word ptr [esi+0x036C]
  ;test di,di
  ;lea ebp,[ebx-0x01]
  ;jne LABEL19F75E

  mov eax,[esi+0x190]

  pushad 
  mov ecx,[esi+0x398]
  cmp dword ptr [ecx+0x144],0x0F
  je short A6LABELC4
  popad
  
  cmp eax,0x00
  je short A6LABELC1
  cmp eax,0x01
  je short A6LABELC2
  cmp eax,0x02
  je short A6LABELC2B
  cmp eax,0x07
  je short A6LABELC2B
  A6LABELC1:
  jmp short A6LABELC3
  A6LABELC2:
  jmp LABEL19F266
  
  A6LABELC2B:
  mov dword ptr [esi+0x190],0x00000001
  jmp short A6LABELC2
  
  A6LABELC3:
  pushad 
  mov ecx,[esi+0x398]
  cmp dword ptr [ecx+0x144],0x0F
  je short A6LABELC4
  fld dword ptr [esi+0xF0]
  fldz 
  fcompp 
  fnstsw ax
  test ah,0x41
  je short A6LABELC4
  fld dword ptr [esi+0xEC]
  fldz 
  fcompp 
  fnstsw ax
  test ah,0x41
  je short A6LABELC4
  jmp A6LABELY
  
  A6LABELZ:
  fld dword ptr [0x85B8F4]
  fld dword ptr [esi+0xEC]
  fcompp 
  fnstsw ax
  test ah,0x41
  je short A6LABELC4
  A6LABELC6:
  popad 
  jmp LABEL19F282
  
  A6LABELC4:
  mov dword ptr [esi+0x190],0x00000001
  mov byte ptr [esi+0x194],0x00
  pushad 
  mov esi,[esi+0x398]
  cmp word ptr [esi+0x13C],0x021C
  jl short A6LABELC5
  cmp word ptr [esi+0x13C],0x0220
  jnl short A6LABELC5
  mov word ptr [esi+0x140],0x0003
  mov word ptr [esi+0x142],0x000A
  A6LABELC5:
  popad 
  jmp short A6LABELC6
  
  A6LABELY:
  fld dword ptr [0x85BD00]
  fld dword ptr [esi+0xF0]
  fcompp 
  fnstsw ax
  test ah,0x41
  je A6LABELC4
  jmp A6LABELZ
  
  nop 
  test eax,eax
  je LABEL19F282
  
  cmp eax,ebp
  jne LABEL19F282
  
  LABEL19F266:
  
  
  movzx edi,word ptr [esi+0x036C]
  test di,di
  lea ebp,[ebx-0x01]
  jne LABEL19F75E

  
  mov eax,[esi+0x0398]
  mov [eax+0x000007D0],bp
  LABEL19F273:
  mov [esi+0x036C],bx
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  LABEL19F282:
  
  
  movzx edi,word ptr [esi+0x036C]
  test di,di
  lea ebp,[ebx-0x01]
  jne LABEL19F75E

  
  mov ecx,[esi+0x0398]
  movzx edx,word ptr [ecx+0x0000013C]
  
  cmp dx,0x021C
  jl short A7LABELB1
  cmp dx,0x0220
  jmp short A7LABELB2
  A7LABELB1:
  cmp dx,0x0000
  jmp short A7LABELB2
  
  A7LABELB2:
  jl LABEL19F35E
  jmp LABEL19F2A5
  
  je LABEL19F35E
  
  cmp dx,0x021F
  je LABEL19F35E
  
  LABEL19F2A5:
  fldz 
  movzx edx,byte ptr [esi+0x0104]
  mov eax,[esi+0x035C]
  fst dword ptr [esp+0x34]
  mov edi,[esi]
  fst dword ptr [esp+0x38]
  fld dword ptr [0x85882C] 
  push 0x04 
  fstp dword ptr [esp+0x40]
  lea ecx,[esp+0x38]
  push ecx
  push ebp
  fstp dword ptr [esp+0x4C]
  push edx
  fld dword ptr [eax]
  push ecx
  fchs 
  add edi,0x44 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov ecx,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x2C]
  fld dword ptr [esp+0x2C]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [ecx]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx edx,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov eax,[edi]
  mov [esp+0x30],edx
  mov ecx,esi
  fild dword ptr [esp+0x30]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x30]
  fld dword ptr [esp+0x30]
  fstp dword ptr [esp]
  push 0x0000032C
  call eax
  mov ecx,[esi+0x0398]
  push 0x11 
  call 0x464980
  add dword ptr [esi+0x034C],0xFFFFFFFF
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  LABEL19F35E:
  movzx eax,word ptr [ecx+0x0000013E]
  cmp ax,0x0003 
  je LABEL19F55C
  
  cmp ax,0x0005 
  je LABEL19F273
  
  cmp word ptr [esi+0x0140],0x00 
  jne LABEL19F75E
  
  cmp [esi+0x0144],ebp
  jne LABEL19F75E
  
  cmp dx,0x021C
  jl LABEL19F75E
  
  cmp dx,0x0220
  jg LABEL19F75E
  
  cmp ax,bp
  je LABEL19F3B7
  
  cmp ax,bx
  jne LABEL19F75E
  
  LABEL19F3B7:
  mov edx,[esi+0x035C]
  fld dword ptr [edx]
  sub esp,0x08 
  fstp dword ptr [esi+0x0380]
  movsx eax,byte ptr [ecx+0x000006A6]
  movsx ecx,byte ptr [esi+0x0104]
  mov [esp+0x20],eax
  mov eax,[esi+0x0170]
  fild dword ptr [esp+0x20]
  mov [esp+0x20],ecx
  
  fstp dword ptr [esp+0x28]
  fldz
  jmp LABEL19F3F4
  
  nop 
  fadd qword ptr [0x8677C8] 
  LABEL19F3F4:
  fstp dword ptr [esp+0x28]
  fld dword ptr [eax+0x000000EC]
  fsub dword ptr [esi+0x00EC]
  fild dword ptr [esp+0x20]
  fmulp st1
  fstp dword ptr [esp+0x20]
  fld dword ptr [esp+0x20]
  fstp dword ptr [esp+0x04]
  fld dword ptr [eax+0x000000F0]
  fadd qword ptr [0x857B20] 
  fsub dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x20]
  fld dword ptr [esp+0x20]
  fstp dword ptr [esp]
  call 0x409760
  mov ebp,[esi+0x035C]
  fchs 
  fstp dword ptr [esp+0x20]
  add esp,0x08 
  fld dword ptr [esp+0x18]
  fld st0
  fsub dword ptr [ebp+00]
  fstp dword ptr [esp+0x18]
  fld dword ptr [esp+0x18]
  call 0x820230
  cdq 
  mov ecx,0x00000168 
  idiv ecx
  mov [esp+0x18],edx
  fild dword ptr [esp+0x18]
  fstp dword ptr [esp+0x14]
  fld dword ptr [0x87153C] 
  fld dword ptr [esp+0x14]
  fcom st1
  fnstsw ax
  fstp st1
  test ah,0x41 
  fld qword ptr [0x8581E8] 
  jne LABEL19F49A
  
  fsub st1,st0
  fxch st1
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  fxch st1
  LABEL19F49A:
  fld dword ptr [0x85BA18] 
  fcomp st2
  fnstsw ax
  test ah,0x41 
  jne LABEL19F4B5
  faddp 
  fstp dword ptr [esp+0x14]
  fld dword ptr [esp+0x14]
  jmp LABEL19F4B7
  
  LABEL19F4B5:
  fstp st0
  LABEL19F4B7:
  fld st0
  fabs 
  fstp dword ptr [esp+0x18]
  fld dword ptr [esp+0x18]
  fld dword ptr [esp+0x20]
  fcom st1
  fnstsw ax
  fstp st1
  test ah,0x01 
  fldz 
  jne LABEL19F4E2
  
  fstp st2
  fstp st0
  fxch st1
  fstp dword ptr [esi+0x0380]
  jmp LABEL19F518
  
  LABEL19F4E2:
  fstp st3
  fxch st1
  fcom st2
  fnstsw ax
  test ah,0x05 
  jp LABEL19F4FF
  fstp st0
  fsubr dword ptr [esi+0x0380]
  fstp dword ptr [esi+0x0380]
  jmp LABEL19F518
  
  LABEL19F4FF:
  fcomp st2
  fnstsw ax
  test ah,0x41 
  jne LABEL19F516
  fadd dword ptr [esi+0x0380]
  fstp dword ptr [esi+0x0380]
  jmp LABEL19F518
  
  LABEL19F516:
  fstp st0
  LABEL19F518:
  fld dword ptr [0x85AE94] 
  fcomp dword ptr [ebp+0x0C]
  fnstsw ax
  test ah,0x41 
  jnp LABEL19F531
  
  ;# hit test
  cmp byte ptr [esi+0x0194],0x00 
  jne LABEL19F56D
  
  LABEL19F531:
  mov ecx,[esi+0x0398]
  movzx eax,word ptr [ecx+0x0000013C]
  
  cmp ax,0x021C
  jl short A8LABELA1
  cmp ax,0x0220
  jmp short A8LABELA2
  A8LABELA1:
  cmp ax,0x0000
  jmp short A8LABELA2
  
  A8LABELA2:
  jl LABEL19F54A
  jmp LABEL19F56D
  
  nop 
  cmp ax,0x021F 
  jne LABEL19F56D
  
  LABEL19F54A:
  cmp [ecx+0x0000013E],bx
  jne LABEL19F56D
  
  mov edx,[ecx]
  fstp st0
  mov eax,[edx+0x14]
  call eax
  LABEL19F55C:
  mov word ptr [esi+0x036C],0x0003 
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  LABEL19F56D:
  fld dword ptr [esi+0x0380]
  movsx ecx,byte ptr [esi+0x0194]
  mov edi,[esi]
  fstp dword ptr [esp+0x34]
  mov [esp+0x20],ecx
  fstp dword ptr [esp+0x38]
  add edi,0x44 
  cmp word ptr [esi+0x013E],0x05 
  fld dword ptr [ebp+0x0C]
  fadd qword ptr [0x8677C8] 
  push 0x05 
  fstp dword ptr [esp+0x44]
  fild dword ptr [esp+0x24]
  fstp dword ptr [esp+0x48]
  jne LABEL19F639
  
  movzx eax,byte ptr [esi+0x0104]
  fld dword ptr [0x85BCA4] 
  lea edx,[esp+0x38]
  fstp dword ptr [esp+0x40]
  fld dword ptr [ebp+0x00]
  push edx
  push 0x01 
  fchs 
  push eax
  push ecx
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov ecx,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [ecx]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  fmul qword ptr [0x859EF8] 
  movsx edx,byte ptr [esi+0x0104]
  mov eax,[edi]
  mov [esp+0x38],edx
  mov ecx,esi
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  fstp dword ptr [esp]
  push 0x0000032C
  call eax
  jmp LABEL19F6BD
  
  LABEL19F639:
  movzx edx,byte ptr [esi+0x0104]
  fld dword ptr [0x85B870] 
  lea ecx,[esp+0x38]
  fstp dword ptr [esp+0x40]
  fld dword ptr [ebp+0x00]
  push ecx
  push 0x01 
  fchs 
  push edx
  push ecx
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov eax,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [eax]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx ecx,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov edx,[edi]
  mov [esp+0x38],ecx
  mov ecx,esi
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  fstp dword ptr [esp]
  push 0x0000032C
  call edx
  LABEL19F6BD:
  movzx ecx,byte ptr [esi+0x0104]
  fld dword ptr [0x871538] 
  mov edx,[esi+0x035C]
  fstp dword ptr [esp+0x3C]
  mov edi,[esi]
  push 0x05 
  fld dword ptr [edx]
  lea eax,[esp+0x38]
  push eax
  fchs 
  push 0x01 
  push ecx
  push ecx
  add edi,0x44 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov eax,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [eax]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx ecx,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov edx,[edi]
  mov [esp+0x38],ecx
  mov ecx,esi
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  fstp dword ptr [esp]
  push 0x0000032C
  call edx
  mov eax,[esi]
  mov edx,[eax+0x20]
  mov ecx,esi
  call edx
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  LABEL19F75E:
  cmp di,bp
  fld1 
  jne LABEL19F823
  
  mov ecx,[esi+0x035C]
  fld dword ptr [esi+0x0378]
  fld dword ptr [ecx+0x0C]
  fcompp 
  fnstsw ax
  test ah,0x41 
  jp LABEL19F815
  
  movzx edx,byte ptr [esi+0x0104]
  fstp st0
  fldz 
  mov edi,[esi]
  fst dword ptr [esp+0x34]
  push 0x04 
  fst dword ptr [esp+0x3C]
  lea eax,[esp+0x38]
  fld dword ptr [0x85882C] 
  push eax
  fstp dword ptr [esp+0x44]
  push ebp
  push edx
  push ecx
  fstp dword ptr [esp+0x54]
  add edi,0x44 
  fld dword ptr [ecx]
  fchs 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov eax,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [eax]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  fmul qword ptr [0x859EF8] 
  movsx ecx,byte ptr [esi+0x0104]
  mov [esp+0x38],ecx
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  jmp LABEL19F199
  
  LABEL19F815:
  fld dword ptr [esi+0x0378]
  fadd st0,st1
  fstp dword ptr [esi+0x0378]
  LABEL19F823:
  cmp di,bx
  jne LABEL19FA92
  mov ecx,[esi+0x0398]
  movzx eax,word ptr [ecx+0x0000013C]
  
  cmp ax,0x021C
  jl short A9LABELA1
  cmp ax,0x0220
  jmp short A9LABELA2
  A9LABELA1:
  cmp ax,0x0000
  jmp short A9LABELA2
  
  A9LABELA2:
  jl LABEL19F8FB
  jmp LABEL19F84D
  
  nop 
  nop 
  nop 
  nop 
  nop 
  cmp ax,0x021F
  je LABEL19F8FB
  
  LABEL19F84D:
  movzx ecx,byte ptr [esi+0x0104]
  fstp st0
  fldz 
  mov edx,[esi+0x035C]
  mov edi,[esi]
  fst dword ptr [esp+0x34]
  fst dword ptr [esp+0x38]
  push 0x04 
  fld dword ptr [0x85882C] 
  lea eax,[esp+0x38]
  fstp dword ptr [esp+0x40]
  push eax
  push ebp
  push ecx
  fstp dword ptr [esp+0x50]
  push ecx
  fld dword ptr [edx]
  add edi,0x44 
  fchs 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov eax,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [eax]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  movsx ecx,byte ptr [esi+0x0104]
  fmul qword ptr [0x859EF8] 
  mov edx,[edi]
  mov [esp+0x38],ecx
  mov ecx,esi
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  fstp dword ptr [esp]
  push 0x0000032C
  call edx
  add dword ptr [esi+0x034C],0xFFFFFFFF 
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  LABEL19F8FB:
  cmp word ptr [ecx+0x0000013E],0x05 
  jne LABEL19FA92
  
  mov eax,[esi+0x035C]
  fld dword ptr [esi+0x0378]
  fld dword ptr [eax+0x0C]
  fcompp 
  fnstsw ax
  test ah,0x41 
  jp LABEL19FA84
  
  fstp st0
  fld dword ptr [esi+0x00EC]
  fstp dword ptr [ecx+0x000000EC]
  mov ecx,[esi+0x0398]
  fld dword ptr [esi+0x00F0]
  fsub qword ptr [0x857B20] 
  fstp dword ptr [esp+0x20]
  fld dword ptr [esp+0x20]
  fstp dword ptr [ecx+0x000000F0]
  cmp word ptr [esi+0x140],0x00
  jmp LABEL19F95D
  
  nop 
  nop 
  nop 
  jne LABEL19F9D8
  
  LABEL19F95D:
  mov edx,[esi+0x035C]
  fld dword ptr [edx]
  push ecx
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  
  fmul qword ptr [0x8579B0]
  
  nop 
  mov eax,[esi+0x0398]
  fstp dword ptr [esp+0x24]
  fld dword ptr [esp+0x24]
  fstp dword ptr [eax+0x000000F4]
  mov ecx,[esi+0x035C]
  fld dword ptr [ecx]
  fchs 
  fstp dword ptr [esp]
  call 0x409580
  
  fmul qword ptr [0x8579B0]
  
  nop 
  mov edx,[esi+0x0398]
  add esp,0x04 
  fstp dword ptr [esp+0x20]
  fld dword ptr [esp+0x20]
  fstp dword ptr [edx+0x0000F8]
  mov eax,[esi+0x0398]
  fld dword ptr [0x8677A8] 
  fstp dword ptr [eax+0x00000100]
  mov ecx,[esi+0x0398]
  mov edx,[ecx]
  mov eax,[edx+0x14]
  call eax
  LABEL19F9D8:
  fldz 
  movzx edx,byte ptr [esi+0x0104]
  mov eax,[esi+0x035C]
  fst dword ptr [esp+0x34]
  mov edi,[esi]
  fst dword ptr [esp+0x38]
  fld dword ptr [0x85882C] 
  push 0x04 
  fstp dword ptr [esp+0x40]
  lea ecx,[esp+0x38]
  push ecx
  push ebp
  fstp dword ptr [esp+0x4C]
  push edx
  fld dword ptr [eax]
  push ecx
  fchs 
  add edi,0x44 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov ecx,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [ecx]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  fmul qword ptr [0x859EF8] 
  movsx edx,byte ptr [esi+0x0104]
  mov eax,[edi]
  mov [esp+0x38],edx
  mov ecx,esi
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  fstp dword ptr [esp]
  push 0x0000032C
  call eax
  add dword ptr [esi+0x034C],0xFFFFFFFF
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
  LABEL19FA84:
  fld dword ptr [esi+0x0378]
  fadd st0,st1
  fstp dword ptr [esi+0x0378]
  LABEL19FA92:
  cmp di,0x03 
  jne LABEL19FC10
  
  mov ecx,[esi+0x0398]
  movzx eax,word ptr [ecx+0x0000013C]
  
  cmp ax,0x021C
  jl short AALABELA1
  cmp ax,0x0220
  jmp short AALABELA2
  AALABELA1:
  cmp ax,0x0000
  jmp short AALABELA2
  
  AALABELA2:
  jl LABEL19FB53
  jmp LABEL19FABD
  
  nop 
  nop 
  nop 
  nop 
  nop 
  cmp ax,0x021F
  je LABEL19FB53
  
  LABEL19FABD:
  movzx eax,byte ptr [esi+0x0104]
  fstp st0
  fldz 
  mov ecx,[esi+0x035C]
  mov edi,[esi]
  fst dword ptr [esp+0x34]
  fst dword ptr [esp+0x38]
  push 0x04 
  fld dword ptr [0x85882C] 
  lea edx,[esp+0x38]
  fstp dword ptr [esp+0x40]
  push edx
  push ebp
  push eax
  fstp dword ptr [esp+0x50]
  push ecx
  fld dword ptr [ecx]
  add edi,0x44 
  fchs 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov edx,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [edx]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  fmul qword ptr [0x859EF8] 
  movsx eax,byte ptr [esi+0x0104]
  mov [esp+0x38],eax
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  jmp LABEL19F199
  
  LABEL19FB53:
  mov ecx,[esi+0x035C]
  fld dword ptr [esi+0x0378]
  fld dword ptr [ecx+0x0C]
  fcompp 
  fnstsw ax
  test ah,0x41 
  jp LABEL19FBFF
  
  movzx edx,byte ptr [esi+0x0104]
  fstp st0
  fldz 
  mov edi,[esi]
  fst dword ptr [esp+0x34]
  push 0x04 
  fst dword ptr [esp+0x3C]
  lea eax,[esp+0x38]
  fld dword ptr [0x85882C] 
  push eax
  fstp dword ptr [esp+0x44]
  push ebp
  push edx
  push ecx
  fstp dword ptr [esp+0x54]
  add edi,0x44 
  fld dword ptr [ecx]
  fchs 
  fstp dword ptr [esp]
  call 0x409580
  fmul qword ptr [0x859EF8] 
  mov eax,[esi+0x035C]
  fadd dword ptr [esi+0x00F0]
  fstp dword ptr [esp+0x34]
  fld dword ptr [esp+0x34]
  fstp dword ptr [esp]
  push ecx
  fld dword ptr [eax]
  fchs 
  fstp dword ptr [esp]
  call 0x4095F0
  fmul qword ptr [0x859EF8] 
  movsx ecx,byte ptr [esi+0x0104]
  mov [esp+0x38],ecx
  fild dword ptr [esp+0x38]
  fmulp st1
  fadd dword ptr [esi+0x00EC]
  fstp dword ptr [esp+0x38]
  fld dword ptr [esp+0x38]
  jmp LABEL19F199
  
  LABEL19FBFF:
  fadd dword ptr [esi+0x0378]
  fstp dword ptr [esi+0x0378]
  jmp LABEL19E2B8
  
  LABEL19FC10:
  fstp st0
  jmp LABEL19E2B8
  
  LABEL19E2B8:
  mov ecx,esi
  call 0x438C60
  test al,al
  je LABEL19E2DF

  LABEL19E2D8:
  add dword ptr [esi+0x34C],0xFFFFFFFF
  LABEL19E2DF:
  pop edi
  pop esi
  pop ebp
  pop ebx
  mov esp,ebp
  pop ebp
  ret 
end
0060D328 = murasaCHAINS_BULLET

func murasaCHAINS_BULLET_0F
  mov eax,[esi+0x035C]
  fstp st0
  fld dword ptr [eax]
  mov edi,[esi]
  fstp dword ptr [esi+0x012C]
  mov byte ptr [esi+0x018C],0x02
  fld dword ptr [eax+0x08]
  call 0x820230
  mov ecx,esi
  push eax
  mov eax,[edi+0x0C]
  call eax
  movzx eax,word ptr [esi+0x013E]
  cmp ax,0x0004 
  mov ebx,0x00000001 
  jg LABEL1A4011
  mov [esi+0x0194],bl
  LABEL1A4011:
  cmp ax,0x0005 
  je LABEL1A4021
  cmp ax,0x0006 
  jne LABEL1A5191
  LABEL1A4021:
  fldz 
  mov ecx,[esi+0x035C]
  fcomp dword ptr [ecx+0x10]
  fnstsw ax
  test ah,0x44 
  jnp LABEL1A5191
  mov [esi+0x0194],bl
  LABEL1A5191:
  pop edi
  pop esi
  pop ebp
  pop ebx
  add esp,0x14 
  ret 
end
0061AA71 = murasaCHAINS_BULLET_0F

;#