func kaguyaFLDZ
  fldz
end
func kaguyaNOP
  nop
end


func kaguyaID_FIX
  mov dword ptr [esi+0x34C],0x0000001B
  ;mov dword ptr [esi+0x34C],0x0000002C
  cmp [esi+0x196],di
end
00541ECE = kaguyaID_FIX




func kaguyaA623TIME_LV
  cmp byte ptr [eax+0x6AB],0x07
end
0055D982 = kaguyaA623TIME_LV
0055DA0B = kaguyaA623TIME_LV


func kaguyaD22B_DIST
  fstp st0
  cmp byte ptr [esi+0x104],0x00
  jge short LABEL1
  fld dword ptr [esi+0xEC]
  fsub dword ptr [0x857F70]
  jmp short LABEL2
  LABEL1:
  fld dword ptr [esi+0xEC]
  fadd dword ptr [0x857F70]
  LABEL2:
  fstp dword ptr [esp+0x18]
  jmp 0x54B19C
end

func kaguyaD22C_DIST
  fstp st0
  cmp byte ptr [esi+0x104],0x00
  jge short LABEL1
  fld dword ptr [esi+0xEC]
  fsub dword ptr [0x858978]
  jmp short LABEL2
  LABEL1:
  fld dword ptr [esi+0xEC]
  fadd dword ptr [0x858978]
  LABEL2:
  fstp dword ptr [esp+0x18]
  jmp 0x54B30A
end
func kaguyaD22C_DISTB
  fldz
  fsub dword ptr [0x858EE0]
end
0054B160 = kaguyaD22B_DIST
0054B2A0 = kaguyaD22C_DIST

func kaguyaELIXIR_GRAVITY
  fld dword ptr [0x85C078]
end
func kaguyaELIXIR_Y
  fld dword ptr [0x85B930]
end
00550D92 = kaguyaELIXIR_GRAVITY
00550D81 = kaguyaELIXIR_Y

;# elixir X
00550D6D = kaguyaFLDZ

func kaguya2C_ONHIT
  pushad
  push 0x05
  push 0x03
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  popad
  jne 0x5595F2
  
  mov eax,[esi+0x144]
end
00559BFC = kaguya2C_ONHIT

func kaguyaD236_ORBFREQ
  mov ecx,0x00000003
end
0055A000 = kaguyaD236_ORBFREQ

func kaguyaD236_ORBSTARTUP
  jne 0x55A0EC
  cmp word ptr [esi+0x144],0x09
  jl 0x55A0EC
end
0055A009 = kaguyaD236_ORBSTARTUP

func kaguyaD236_ONHIT
  cmp word ptr [esi+0x13E],0x04
  jne short LABELX
  cmp word ptr [esi+0x140],0x09
  jne short LABELX
  jmp 0x55A2E1
  LABELX:
  
  cmp word ptr [esi+0x13E],0x05
  jne short LABELY
  pushad
  push 0x03
  push 0x00
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  popad
  jne 0x55A2E1
  LABELY:
  
  pushad
  mov eax,[esi+0x398]
  mov ax, word ptr [eax+0x13C]
  cmp ax,0x32
  jl short LABEL1
  cmp ax,0x96
  jge short LABEL1
  mov byte ptr [esi+0x194],0x00
  LABEL1:
  popad
  mov ebp,0x05
  cmp dword ptr [esi+0x190],ebp
end
00559FC8 = kaguyaD236_ONHIT

func kaguya2C_NEW
  pushf
  cmp dword ptr [esi+0x144],0x1F
  jl short LABEL1
  fldz
  jmp short LABEL2
  LABEL1:
  fld dword ptr [esi+0xF4]
  fmul qword ptr [0x85BA10]
  LABEL2:
  popf
  fstp dword ptr [esi+0xF4]
  fld1
end
00559C76 = kaguya2C_NEW

func kaguya5AA_1HIT
  mov byte ptr [esi+0x194],0x01
end
00554F8D = kaguya5AA_1HIT
;# j5a
00554EAF = kaguya5AA_1HIT
;# 5aa particle
func kaguya5AA_PARTICLE
  jmp 0x5608A5
end
00560935 = kaguya5AA_PARTICLE

func kaguyaD214_ALWAYSHOME
  cmp [esi+0x194],al
  jmp 0x55E6AB
end
func kaguyaD214_ALWAYSHOME1
  jmp 0x55E8BA
end
func kaguyaD214_ALWAYSHOME2
  pushf
  cmp word ptr [esi+0x144],0x78
  je short LABEL1
  cmp dword ptr [esi+0x190],0x00
  jne short LABEL1
  jmp short LABEL2
  LABEL1:
  mov byte ptr [esi+0x194],0x00
  fld dword ptr [0x85E2E0]
  fstp dword ptr [esi+0xF0]
  LABEL2:
  popf
  
  cmp word ptr [esi+0x140],0x01
  jne short LABEL3
  pushf
  pushad
  mov eax,[esi+0x398]
  mov eax,[eax+0x170]
  mov ax,[eax+0x13C]
  cmp ax,0x61
  jl short LABEL4
  cmp ax,0x64
  jg short LABEL4
  jmp short LABEL5
  LABEL4:
  cmp ax,0xC5
  jl short LABEL6
  cmp ax,0xC7
  jg short LABEL6
  jmp short LABEL5
  LABEL6:
  popad
  popf
  jmp 0x55EA0B
  LABEL5:
  popad
  popf
  LABEL3:
  cmp word ptr [esi+0x140],bp
end
func kaguyaD214_ALWAYSHOME3
  cmp eax,ebx
  jmp 0x55E7DC
end
func kaguyaD214_ALWAYSHOME4
  mov ecx,[esi+0x398]
end
0055EA8A = kaguyaD214_ALWAYSHOME1
0055E89A = kaguyaD214_ALWAYSHOME2
;0055E7CE = kaguyaD214_ALWAYSHOME3
;0055E801 = kaguyaD214_ALWAYSHOME4
;0055E6A3 = kaguyaD214_ALWAYSHOME

func kaguyaD214_SPDX
  fmul dword ptr [esi+0xF4]
  fmul dword ptr [0x8677A8]
end
func kaguyaD214_SPDY
  fld dword ptr [esi+0xF8]
  fmul dword ptr [0x8677A8]
end
func kaguyaD214_SPDIDK
  fld dword ptr [0x8596B8]
end
0055EA78 = kaguyaD214_SPDIDK
0055E954 = kaguyaD214_SPDX
0055E966 = kaguyaD214_SPDY

func kaguyaD214_FAN0
  fmul dword ptr [0x85AE94]
end
0054DC30 = kaguyaD214_FAN0
0054DF08 = kaguyaD214_FAN0
func kaguyaD214_FAN1
  fmul dword ptr [0x85B9E0]
end
0054DCDC = kaguyaD214_FAN1
0054DFC5 = kaguyaD214_FAN1

func kaguya4B_DENSHIT
  pushf
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  mov byte ptr [esi+0x194],0x01
  LABEL1:
  popf
  fld dword ptr [esi+0x12C]
end
func kaguya4B_DENSHIT2
  mov byte ptr [esi+0x194],0x01
end
;00559224 = kaguya4B_DENSHIT
00568B11 = kaguya4B_DENSHIT2

func kaguya4B_SPD
  fld dword ptr [0x85BCA4]
end
00559250 = kaguya4B_SPD

func kaguya4B_DUR
  cmp dword ptr [esi+0x144],0x1B4
end
00559331 = kaguya4B_DUR

func kaguya4B_QUANTITY
  fadd dword ptr [0x8677A8]
end
00547A07 = kaguya4B_QUANTITY
00547ABE = kaguya4B_QUANTITY
00547FD8 = kaguya4B_QUANTITY
0054808B = kaguya4B_QUANTITY

func kaguya5B_NEW
  pushf
  pushad
  cmp dword ptr [esi+0x144],0x00
  jne LABEL1
  cmp word ptr [esi+0x142],0x00
  jne LABEL1
  cmp word ptr [esi+0x140],0x00
  jne LABEL1
  mov eax,[esi+0x398]
  mov ax,[eax+0x7D2]
  cmp ax,0x01
  jne short LABEL2
  mov dword ptr [esi+0x110],0xFF3333FF
  jmp short LABEL1
  LABEL2:
  cmp ax,0x02
  jne short LABEL3
  mov dword ptr [esi+0x110],0xFF33FF33
  jmp short LABEL1
  LABEL3:
  cmp ax,0x03
  jne short LABEL4
  mov dword ptr [esi+0x110],0xFFFF3333
  jmp short LABEL1
  LABEL4:
  cmp ax,0x04
  jne short LABEL5
  mov dword ptr [esi+0x110],0xFF33FFFF
  jmp short LABEL1
  LABEL5:
  cmp ax,0x05
  jne short LABEL6
  mov dword ptr [esi+0x110],0xFFFF33FF
  jmp short LABEL1
  LABEL6:
  cmp ax,0x06
  jne short LABEL7
  mov dword ptr [esi+0x110],0xFFFFFF33
  jmp short LABEL1
  LABEL7:
  mov dword ptr [esi+0x110],0xFFFFFFFF
  LABEL1:
  popad
  popf
  fld dword ptr [0x85BAB8]
end
00558E27 = kaguya5B_NEW

func kaguya5B_NEWA
  cmp word ptr [esi+0x7D2],0x05
end
func kaguya5B_NEWACHARGE
  cmp word ptr [esi+0x7D2],0x07
end
func kaguya5B_FIREFREQ
  mov ecx,0x00000002
end

00546329 = kaguya5B_FIREFREQ
00546345 = kaguya5B_NEWA
005463FD = kaguya5B_NEWACHARGE
;#6b
00546758 = kaguya5B_FIREFREQ
00546774 = kaguya5B_NEWA
00546828 = kaguya5B_NEWACHARGE
;#2b
00546B80 = kaguya5B_FIREFREQ
00546B9C = kaguya5B_NEWA
00546C50 = kaguya5B_NEWACHARGE
;#jb
00546FD0 = kaguya5B_FIREFREQ
00546FDF = kaguya5B_NEWA
005470C8 = kaguya5B_NEWACHARGE
;#j2b
005475A7 = kaguya5B_FIREFREQ
005474CD = kaguya5B_NEWA
005475B6 = kaguya5B_NEWACHARGE

00558F1A = kaguyaFLDZ

func kaguya5C_METER
  push 0x10
  mov ecx,esi
  mov dword ptr [esi+0x190],0x01
end
005483D9 = kaguya5C_METER
func kaguyaJ5C_METER
  push 0x10
  mov ecx,esi
  call 0x487870
end
00548B16 = kaguyaJ5C_METER

func kaguya5C_NEW
  cmp word ptr [esi+0x140],0x08
  je 0x5483D9
  cmp word ptr [esi+0x140],0x07
  je 0x5483D9
  cmp word ptr [esi+0x140],0x05
end
func kaguya5C_NEWJ
  cmp word ptr [esi+0x140],0x08
  je short LABEL1
  cmp word ptr [esi+0x140],0x07
  je short LABEL1
  cmp word ptr [esi+0x140],0x05
  jmp 0x548AFC
  LABEL1:
  mov [esi+0x190],ebx
  jmp 0x548B16
end
005483CB = kaguya5C_NEW
00548AF4 = kaguya5C_NEWJ

func kaguya5C_NEW1
  pushf
  cmp word ptr [esi+0x140],0x05
  jne short LABEL1
  popf
  push 0x30
  push 0x000000C8
  mov ecx,esi
  fldz 
  fstp dword ptr [esp+0x204]
  call 0x47A9E0
  fldz 
  fstp dword ptr [esp+0x1FC]
  jmp short LABEL2
  LABEL1:
  popf
  fldz 
  fstp dword ptr [esp+0x1FC]
  LABEL2:
  jmp 0x548419
end
00548402 = kaguya5C_NEW1

func kaguya5C_COUNT
  add edi,0x2D
  cmp edi,0x0000010E
end
00548484 = kaguya5C_COUNT
00548BA9 = kaguya5C_COUNT

func kaguya5C_ANG
  xor edi,edi
  add edi,0x87
  mov [esp+0x18],edi
end
func kaguya5C_ANGJ
  xor edi,edi
  fldz
  add edi,0x87
  mov [esp+0x18],edi
end
00548419 = kaguya5C_ANG
00548B35 = kaguya5C_ANGJ

;#5c initial speed
func kaguya5C_SPD
  ;fld dword ptr [0x85C8AC]
  fld dword ptr [0x85B960]
end
005483F5 = kaguya5C_SPD
00548B28 = kaguya5C_SPD

func kaguya5C_GRAZERES
  push 0x01
  mov ecx,esi
  call 0x48CDE0
end
0055951C = kaguya5C_GRAZERES

func kaguya5C_DENSITY
  push 0x01
  mov ecx,esi
  call 0x48CE30
end
00559525 = kaguya5C_DENSITY

func kaguya5C_OFFSCREEN1
  fld dword ptr [0x85BAB8]
  fsub dword ptr [0x867814]
  fsub dword ptr [0x867814]
end
0055942E = kaguya5C_OFFSCREEN1

func kaguya5C_OFFSCREEN2
  fld dword ptr [0x85BAC0]
  fadd dword ptr [0x867814]
  fadd dword ptr [0x867814]
end
0055944B = kaguya5C_OFFSCREEN2

;# 5c curvature
;#005594D5 = DD 05 C8778600
func kaguya5C_CURVE
  pushf
  pushad 
  cmp dword ptr [esi+0x144],0x00000029
  je short LABEL1
  fldz 
  jmp short LABEL2
  LABEL1:
  fld dword ptr [0x87153C]
  LABEL2:
  popad 
  popf 
end
005594D5 = kaguya5C_CURVE
;# 5c graze res
;#0055951C = 6A 01
;# 5c hp
;#00559525 = 6A 01

;#f5a reception distance
func kaguyaF5A_DIST
  fcomp dword ptr [0x85AD00]
end
0055840E = kaguyaF5A_DIST

;#6c initial speed
func kaguya6C_SPD
  fld dword ptr [0x85B870]
end

func kaguya6C_OFFSET
  imul edx,edx,0x55
  add edx,eax
  sub esp,0x08
end
func kaguyaJ6C_OFFSET
  imul edx,edx,0x55
  fstp dword ptr [esp+0x1C]
end
005485B7 = kaguya6C_SPD
0054871E = kaguya6C_SPD
00548D2A = kaguya6C_SPD
00548E88 = kaguya6C_SPD
005485F2 = kaguya6C_OFFSET
00548759 = kaguya6C_OFFSET
00548D5A = kaguyaJ6C_OFFSET
00548EB8 = kaguyaJ6C_OFFSET

;#j2c initial speed
func kaguyaJ2C_SPD
  ;fld1
  ;fld1
  ;faddp
  fld dword ptr [0x85B960]
end
005491E8 = kaguyaJ2C_SPD

func kaguyaJ2C_ANG1
  mov edi,0x000000CD
end
005491F5 = kaguyaJ2C_ANG1

func kaguyaJ2C_ANG2
  add edi,0x0F
  cmp edi,0x118
end
00549276 = kaguyaJ2C_ANG2

func kaguyaJ2C_TO5C
  jmp 0x5594A1
end
005596C7 = kaguyaJ2C_TO5C

;#j236b angle
func kaguyaJ236B_ANG
  fld dword ptr [0x85B984]
end
00549BF7 = kaguyaJ236B_ANG

;#j236c angle
00549F3F = kaguyaFLDZ

;#a22 bubble pop lv
func kaguyaA22_LV
  cmp byte ptr [eax+0x6AA],0x00
end
0055B848 = kaguyaA22_LV

;#d214 stuff
func kaguyaD214
  mov eax,[esi+0x398]
  cmp [eax+0x6A7],bl
  jmp 0x55E7EA
end
0055E7DC = kaguyaD214

;#static green inv lv
func kaguyaSTATIC_INVLV
  cmp byte ptr [esi+0x6B0],0x05
end
0054CF14 = kaguyaSTATIC_INVLV
0054D5D7 = kaguyaSTATIC_INVLV

00555496 = kaguyaNOP

func kaguya66B
  movzx eax,word ptr [esi+0x7D0]
  cmp ax,0x0004
end
00547DC7 = kaguya66B

;#a214 fall slasher?
func kaguyaFALL_0
  cmp dword ptr [esi+0x144],0x06
end
0054E9FD = kaguyaFALL_0
0054EC40 = kaguyaFALL_0

;#6c angle
;#005488D5 = 66 83 BE 3E 01 00 00 01 90 90 90 75 14
func kaguya6C_ANG_1A
  fsub dword ptr [0x86782C]
end
func kaguya6C_ANG_1B
  fsub dword ptr [0x85B3B0]
end
func kaguya6C_COUNTA
  cmp word ptr [esi+0x7D2],0x08
end
func kaguya6C_COUNTB
  cmp word ptr [esi+0x7D2],0x10
end
func kaguya6C_0A
  push 0x14
  call 0x4099F0
end
func kaguya6C_0B
  push 0x1E
  call 0x4099F0
end
0054857B = kaguya6C_0A: 7
00548597 = kaguya6C_ANG_1A
0054855E = kaguya6C_COUNTA
005486E2 = kaguya6C_0B: 7
005486FE = kaguya6C_ANG_1B
005486C5 = kaguya6C_COUNTB
00548CEE = kaguya6C_0A: 7
00548D0A = kaguya6C_ANG_1A
00548CD1 = kaguya6C_COUNTA
00548E4C = kaguya6C_0B: 7
00548E68 = kaguya6C_ANG_1B
00548E2F = kaguya6C_COUNTB

;# 6[A] momentum
;#005450B2 = D9 05 94AE8500
func kaguyaC6A_X
  fld qword ptr [0x867830]
end
005450B2 = kaguyaC6A_X
;# 6[A] decel
func kaguyaC6A_DEC
  fsub qword ptr [0x8677C8]
end
00544F72 = kaguyaC6A_DEC

;# 3[A] momentum
func kaguyaC3A_X
  fld dword ptr [0x85BB30]
end
005453EF = kaguyaC3A_X

;#dial pushback
;#005461CA

;# 2sc Firework speed
func kaguya2SCFWORK_SPD
  fld dword ptr [0x858830]
end
005504B9 = kaguya2SCFWORK_SPD
00550560 = kaguya2SCFWORK_SPD
0055081C = kaguya2SCFWORK_SPD
005508BE = kaguya2SCFWORK_SPD

;# 3sc Timestop flash duration
func kaguya3SCSTOP_FLASH
  jne 0x5502CB
  push 0x50
  jmp 0x550251
end
00550249 = kaguya3SCSTOP_FLASH

;# d623 things

func kaguyaD623_LV
  cmp word ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp word ptr [esi+0x140],0x01
  jne short LABEL1
  cmp word ptr [esi+0x142],0x00
  jne short LABEL1
  movzx eax, byte ptr [esi+0x6A6]
  cmp al,0x00
  je short LABEL1
  cmp al,0x01
  je short LABELV1
  cmp al,0x02
  je short LABELV2
  cmp al,0x03
  je short LABELV3
  jmp short LABELV4
  LABELV1:
  mov word ptr [esi+0x142],0x02
  jmp short LABEL1
  LABELV2:
  mov word ptr [esi+0x142],0x04
  jmp short LABEL1
  LABELV3:
  mov word ptr [esi+0x142],0x05
  jmp short LABEL1
  LABELV4:
  mov word ptr [esi+0x142],0x06
  jmp short LABEL1
  LABEL1:
  movzx eax, word ptr [esi+0x13E]
end
0054BFC6 = kaguyaD623_LV
0054C28C = kaguyaD623_LV

;# d623b call hitbox - esi 84A is not set. I hope this is ok
func kaguyaD623_0
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  jmp 0x54C284
end
func kaguyaD623_1
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  jmp 0x54C550
end
0054C278 = kaguyaD623_0
;# d623c call hitbox
0054C544 = kaguyaD623_1
;# call hitbox insert in rotation and scaling of 623 sprite
func kaguyaD623_SKIP
  fld dword ptr [esi+0x11C]
  jmp 0x55D11E
end
0055D107 = kaguyaD623_SKIP
;# d623 rot
;#0055D10D = 90 90 90 90 90 90
;# d623 scal
;#0055D11F = 90 90 90 90 90 90
;# d623 angle thing
;#0056948C
func kaguyaD623_A1
  push 0x01
  call 0x4099F0
end
func kaguyaD623_A2
  push 0x01
  fstp dword ptr [esi+0x124]
end
func kaguyaD623_B
  push 0x00000001
end
005694AA = kaguyaNOP: 6
005694E3 = kaguyaD623_A1: 7
005694FC = kaguyaNOP: 6
00569502 = kaguyaD623_A2: 8
00569521 = kaguyaNOP: 6
00569527 = kaguyaD623_B

;# Kaguya real estate in royal flare (pt2)
;#0056AE0F = E9 E6 10 00 00 66 9C 60 81 BE 44 01 00 00 3A 00 00 00 7C 04 D9 EE EB 06 D9 05 F0 89 85 00 61 66 9D C3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90

func kaguya0
  cmp word ptr [esi+0x13E],0x06
  jmp 0x56BEFA
end
0056AE05 = kaguya0
;#00562DF5

;#philo
;#immediate explosion & check status
func kaguyaPHILO
  pushad 
  mov eax,[esi+0x398]
  cmp word ptr [eax+0x13C],0x025D
  je short LABEL1
  mov word ptr [eax+0x890],0x0000
  LABEL1:
  popad 
  jmp 0x5630C8
end
00563038 = kaguyaPHILO
;#fire freq
func kaguyaPHILO_0
  movzx eax,word ptr [esi+0x36E]
  cmp ax,0x001E
  jmp 0x5632BF
end
005632B4 = kaguyaPHILO_0
;#spd
func kaguyaPHILO_SPD
  fld dword ptr [0x858830]
end
005638AD = kaguyaPHILO_SPD: 9
;#duration
func kaguyaPHILO_DUR
  mov word ptr [esi+0x890],0x00F0
end
00551442 = kaguyaPHILO_DUR
;#casting dur
func kaguyaFLD1
  fld1
end
00551427 = kaguyaFLD1
;#don't end on round end
005417B9 = kaguyaNOP: 7


;#d22
;#idk
func kaguyaD22_0
  cmp dword ptr [esi+0x144],0x14
  jl short LABEL1
  mov byte ptr [esi+0x194],0x00
  LABEL1:
  jmp 0x55B085
end
0055B06D = kaguyaD22_0
func kaguyaD22_COLORS0
  mov al,[esi+0x113]
  cmp al,0x04
end
func kaguyaD22_COLORS1
  sub al,0x04
  mov [esi+0x113],al
end
0055B08B = kaguyaD22_COLORS0: 8
0055B099 = kaguyaD22_COLORS1: 8

;#b ver delay
func kaguyaD22B_BDELAY
  fld dword ptr [0x86782C]
end
func kaguyaD22C_BDELAY
  fld dword ptr [0x86782C]
end
0054B12A = kaguyaD22B_BDELAY
0054B26A = kaguyaD22B_BDELAY
;#b max distance

;#synth
;#skip effects
;#lots of free space here
func kaguyaSYNTH
  add esp,0x04
  cmp dword ptr [esi+0x190],0x06
  jne short LABEL1
  inc byte ptr [esi+0x194]
  jmp short LABEL2
  LABEL1:
  cmp dword ptr [esi+0x190],0x01
  je short LABEL3
  cmp dword ptr [esi+0x190],0x02
  jne short LABEL4
  LABEL3:
  cmp byte ptr [esi+0x194],0x00
  jle short LABEL4
  LABEL2:
  mov dword ptr [esi+0x190],0x00000000
  LABEL4:
  cmp dword ptr [esi+0x144],0x0000012C
  jne short LABEL5
  pushad 
  push 0x03
  mov ecx,[esi+0x398]
  call 0x464980
  popad 
  mov byte ptr [esi+0x194],0x0A
  LABEL5:
  fcomp dword ptr [0x867860]
  fnstsw ax
  mov ecx,[esi+0x170]
  jmp 0x5652DF
end

00565276 = kaguyaSYNTH
;#spd
func kaguyaSYNTH_SPD
  fld dword ptr [0x867860]
end
005652EF = kaguyaSYNTH_SPD
;#home opp
;#005652D9 = 8B 8E 70 01 00 00
;#start from center
func kaguyaSYNTH_0
  fld dword ptr [0x8575A4]
end
00551BFA = kaguyaSYNTH_0

;#a623 moon invul c
0054D5E0 = kaguyaNOP: 9

func kaguyaA22ROCK_ONHIT
  push 0x02
  push 0x02
  push 0x00
  call 0x48CE90
  test al,al
  jne 0x6365F7
  mov ecx,[esi+0x398] 
end
;0055B4E1 = kaguyaA22ROCK_ONHIT

;#a22 gacha stones disappear on hit
func kaguyaA22ROCK_0
  pushad 
  mov eax,[esi+0x398]
  ;cmp dword ptr [eax+0x144],0x00
  ;jne short LABELX
  cmp word ptr [eax+0x13E],0x00
  jne short LABELX
  cmp word ptr [eax+0x140],0x00
  jne short LABELX
  cmp word ptr [eax+0x13C],0x20D
  jl short LABELX
  cmp word ptr [eax+0x13C],0x210
  jg short LABELX
  mov dword ptr [esi+0x34C],0x00
  LABELX:
  
  
  push 0x02
  push 0x02
  push 0x00
  mov ecx,esi
  call 0x48CE90
  test al,al
  popad 
  jne 0x6365F7
  
  
  mov ecx,[esi+0x398]
end
0055B4E1 = kaguyaA22ROCK_0
0055BB4C = kaguyaA22ROCK_0

func kaguyaA22ROCK_Z
  mov dword ptr [esi+0x34C],0x00
end
0055B96B = kaguyaA22ROCK_Z

func kaguyaA22ROCK_1
  mov dword ptr [esi+0x34C],0x00
end
0055B60B = kaguyaA22ROCK_1
0055BC6F = kaguyaA22ROCK_1

;# hangeki effect
00560403 = kaguyaNOP
;# hangeki momentum
func kaguyaHANGEKI_MOMENTUM
  cmp word ptr [esi+0x140],0x04
  jne short LABEL1
  cmp word ptr [esi+0x142],0x00
  jne short LABEL1
  fld dword ptr [0x86782C]
  fstp dword ptr [esi+0xF4]
  LABEL1:
  jl short LABEL2
  cmp word ptr [esi+0x140],0x07
  jl short LABEL3
  fldz
  fstp dword ptr [esi+0xF4]
  jmp short LABEL2
  LABEL3:
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x867828]
  fstp dword ptr [esi+0xF4]
  LABEL2:
  cmp byte ptr [esi+0x49A],0x00
end
005527E5 = kaguyaHANGEKI_MOMENTUM

;#