;# fld dword ptr [0085BC78] -4.5

;#test
;#006C3575 = 68 94010000
;#006C3590 = 68 94010000
;#006C351D = 68 94010000
;#006C3538 = 68 94010000

func shouFLDZ
  fldz
end
func shouNOP
  nop
end

func shouID_FIX
  mov dword ptr [esi+0x34C],0x0000001E
  ;mov dword ptr [esi+0x34C],0x00000036
  cmp [esi+0x196],di
end
006AB6EB = shouID_FIX

;# walk spd init
func shouWALK
  fld dword ptr [0x85BCA4]
end
006BFB2D = shouWALK
;# walk spd final
006AB9D4 = shouWALK

;# walk back? spd
;#006BFB1B

;#hj8 y
func shouHJ8Y
  fld qword ptr [0x85BBA0]
end
006ACDEE = shouHJ8Y
;#hj9 y
func shouHJ9Y
  fld dword ptr [0x85AE94]
end
006ACF34 = shouHJ9Y
;#006ACF34 = D9 05 28 88 85 00
;#hj8 grav
func shouHJ8GRAV
  fld dword ptr [0x85ACEC]
end
006ACDFA = shouHJ8GRAV
;#hj8 max fall spd
func shouHJMAXFALL
  fld dword ptr [0x85BB84]
end
006ACD60 = shouHJMAXFALL
;#hj9 max fall
006ACEA2 = shouHJMAXFALL

;#BE max fall
;#006ACFA4 = D9 05 84BB8500

;#flight spd stuff
;#006AD48E

;#flight spd initial
func shouFLIGHT_INIT
  fld qword ptr [0x858990]
end
006BFB9A = shouFLIGHT_INIT
;#flight spd accel
func shouFLIGHT_ACC
  fsub dword ptr [0x85BCA4]
end
006AD48E = shouFLIGHT_ACC
;#flight spd final
func shouFLIGHT_FIN
  fld dword ptr [0x85BCA4]
end
006AD4A2 = shouFLIGHT_FIN
;#test flight stuff
func shouFLIGHT_ETC
  test ah,0x05
  jnp 0x6AD4BB
end
006AD4AE = shouFLIGHT_ETC

;#grounddash spd
func shouGROUNDDASH_SPD
  fld qword ptr [0x858990]
end
006AC560 = shouGROUNDDASH_SPD
;#grounddash accel
func shouGROUNDDASH_ACC
  fsub dword ptr [0x85BCA4]
end
006ACC80 = shouGROUNDDASH_ACC
;#grounddash duration
func shouGROUNDDASH_DUR
  cmp ax,0x0001
  jle 0x6AC539
end
006AC51D = shouGROUNDDASH_DUR

;#backdash spd
func shouBACKDASH_SPD
  fld dword ptr [0x85BB84]
end
006AC7B1 = shouBACKDASH_SPD
;#backdash accel
func shouBACKDASH_ACC
  fadd dword ptr [0x867860]
end
006AC634 = shouBACKDASH_ACC
;#backdash Y
func shouBACKDASH_Y
  fld dword ptr [0x85F65C]
end
006AC7C2 = shouBACKDASH_Y

;#6a momentum
func shou6A_X
  fld qword ptr [0x859B00]
end
006AEB0F = shou6A_X
func shou6A_X1
  fsub dword ptr [0x8589F0]
end
006AEAD2 = shou6A_X1
;#6a charge
func shouC6A_X
  fld qword ptr [0x859B00]
end
006AEBA1 = shouC6A_X
func shouC6A_X1
  fsub qword ptr [0x8581B8]
end
006AEB5B = shouC6A_X1
;#006AEB5B = D8 25 F0898500
;#6a charge point
func shouC6A_POINT
  cmp word ptr [esi+0x140],0x04
end
006AEA49 = shouC6A_POINT

;#66a momentum
func shou66A_X
  fld dword ptr [0x859F00]
end
006BFC12 = shou66A_X
func shou66A_1
  cmp dword ptr [esi+0x140],0x03
end
;# dword what?
006AEE91 = shou66A_1

;#66b momentum
func shou66B
  cmp word ptr [esi+0x13E],0x00
  je 0x6B08C5
end
006B08A9 = shou66B: 10

;#66c momentum
func shou66C_X
  fld qword ptr [0x859B00]
end
006C0048 = shou66C_X
func shou66C_ACC
  fsub dword ptr [0x8589F0]
end
006B1343 = shou66C_ACC
func shou66C_1
  cmp word ptr [esi+0x140],0x01
end
006B1333 = shou66C_1

;#3a momentum
func shou3A_X
  fld dword ptr [0x858830]
end
006AED51 = shou3A_X
func shou3A_X1
  fsub dword ptr [0x8677A8]
end
006AEC98 = shou3A_X1
;#3a charge disable
func shouC3A_DISABLE
  cmp word ptr [esi+0x140],0x22
end
006AED66 = shouC3A_DISABLE

;#j6A recov gravity
func shouJ6A_RECOVGRAV
  fld dword ptr [0x85BB84]
end
006AF030 = shouJ6A_RECOVGRAV
;#sound
func shouJ6A_SOUND
  mov ecx,0x000000FF
end
006AF009 = shouJ6A_SOUND

;#j8A launch frame
func shouJ8A_KEY
  cmp word ptr [esi+0x140],0x05
end
006AF3D6 = shouJ8A_KEY

;#5b spd
;#006AF7A2
;#5b angle 1
func shou5B_ANG1
  fcomp dword ptr [0x85BA18]
end
func shou5B_ANG2
  fld dword ptr [0x85BA18]
end
func shou5B_ANG3
  fcomp dword ptr [0x87153C]
end
func shou5B_ANG4
  fld dword ptr [0x87153C]
end
func shou5B_PROJSPD
  fld dword ptr [0x858830]
end
006AF754 = shou5B_ANG1
006AF761 = shou5B_ANG2
;#5b angle 2
006AF773 = shou5B_ANG3
006AF780 = shou5B_ANG4
;#5b proj speed
006AF7A2 = shou5B_PROJSPD

;#2b bullet type
func shou2B_BULLETTYPE
  fld dword ptr [0x85BCA4]
end
006AFCFF = shou2B_BULLETTYPE

;#6b spd
func shou6B_SPD
  fld qword ptr [0x858990]
end
func shou6B_SPD1
  fadd dword ptr [0x86782C]
end
006C3C91 = shou6B_SPD
006C3EC4 = shou6B_SPD
006C3EB3 = shou6B_SPD1
006C3C80 = shou6B_SPD1
;#6b angle 1
006AF9B9 = shouFLDZ
006AF9D4 = shouFLDZ
;#6[b]
006AFB2D = shouFLDZ
006AFB48 = shouFLDZ
;#j6b angle
006B01D8 = shouFLDZ
006B01F3 = shouFLDZ
006B0367 = shouFLDZ
006B0382 = shouFLDZ

;#j2b spd
func shouJ2B_SPD
  fld dword ptr [0x858830]
end
006B06AA = shouJ2B_SPD
;#j2b angle
;#006B066A = D9EE 90 90 90 90
func shouJ2B_ANG1
  fld dword ptr [0x87153C]
end
func shouJ2B_ANG2
  fcomp dword ptr [0x87153C]
end
006B0689 = shouJ2B_ANG1
006B067C = shouJ2B_ANG2
;#006B0653 = D9EE 90 90
;#projectile change
func shouJ2B_BULLETTYPE
  fld dword ptr [0x85BCA4]
end
006B06B9 = shouJ2B_BULLETTYPE
;#equalize gravity with jb
func shouJ2B_GRAVPOINT
  cmp word ptr [esi+0x140],0x0D
end
006B0747 = shouJ2B_GRAVPOINT
;#j2[b]
;#006B07F9 = D9EE 90 90 90 90
;#006B0818 = D9EE 90 90 90 90
;#006B07E2 = D9EE 90 90
;#charge frame
func shouJC2B_KEY
  cmp word ptr [esi+0x140],0x33
end
006B0566 = shouJC2B_KEY

;#j5b angle 1
006AFEEF = shou5B_ANG1
006AFEFC = shou5B_ANG2
;#j5b angle 2
006AFF0E = shou5B_ANG3
006AFF1B = shou5B_ANG4
;#j5b proj speed
006AFF3D = shou5B_PROJSPD

;#2c spd
006B0C53 = shouFLDZ
;#j2c spd
006B118C = shouFLDZ
;#5c stuff
;#006C4591
;#5c base spd
006C45CE = shouFLDZ
;#5c cone
func shou5C_CONE
  cmp word ptr [esi+0x13C],0x0335
  jne short LABEL1
  cmp word ptr [esi+0x13E],0x03
  je short LABEL2
  cmp word ptr [esi+0x13E],0x0B
  je short LABEL2
  jmp short LABEL1
  LABEL2:
  fmul dword ptr [0x85B960]
  jmp short LABEL3
  LABEL1:
  fmul dword ptr [0x858830]
  LABEL3:
  nop
end
;006C45AD = shou5C_CONE
;#5c mult
func shou5C_MUL
  fmul dword ptr [0x858830]
end
006C458A = shou5C_MUL
;#5c skip death anim
func shou5C_SKIPDEATH
  fld qword ptr [0x857F80]
end
006C42CF = shou5C_SKIPDEATH

;#j2A momentum
func shouj2A_MOMENTUM
  fld dword ptr [0x85BB30]
  fstp dword ptr [esi+0xF4]
end
006AF369 = shouj2A_MOMENTUM

;#d236
func shouD236_1
  fld dword ptr [0x85BA68]
end
006C9077 = shouD236_1
;#d236 rotate period
006C908E = shouFLDZ
;#d236 angle
006C923C = shouNOP
;#d236 lv+
;#006C911F
;#d236 lv+ rotate period
006C90A1 = shouFLDZ
;#stuff
006C9193 = shouNOP
006C9209 = shouNOP
006C91DC = shouNOP
func shouD236_2
  fstp dword ptr [esp+0x14]
  fldz
end
006C9242 = shouD236_2
006C9166 = shouNOP
006C912C = shouFLDZ
006C911F = shouFLDZ
func shouD236_3
  fstp dword ptr [esp+0xA4]
  fldz
end
006C9100 = shouD236_3: 9
;#color
006C8C49 = shouNOP

func shouD236_COLOR_UNUSED
  mov byte ptr [esi+0x110],0x00
  mov al,[esi+0x113]
  cmp al,0x14
  jb 0x6C3E6F
  sub al,0x14
  mov [esi+0x113],al
  jmp 0x6CB1E5
end
func shouD236_COLOR1
  fstp dword ptr [esi+0x120]
  jmp 0x6C8EE4
end
func shouD236_COLOR2
  jne 0x6CB1E5
  jmp 0x6C8E21
end
006C8EB9 = shouD236_COLOR1
006C8DF9 = shouD236_COLOR2
;#remove on hit (uses spaces from color)
func shouD236_ONHIT
  pushad 
  mov eax,[esi+0x398]
  mov eax,[eax+0x13C]
  cmp ax,0x021C
  jl short LABEL2
  cmp ax,0x0220
  jnl short LABEL2
  
  LABEL1:
  popad 
  jmp short LABELX
  LABEL2:
  mov dword ptr [esi+0x190],0x00000004
  jmp short LABEL1
  
  LABELX:
  cmp dword ptr [esi+0x39C],0x00
  jmp 0x6C8D29
end
006C8D22 = shouD236_ONHIT

;#d623
;#remember theres a B C button check here
;#b
;#momentum start
func shouD623_KEY
  cmp word ptr [esi+0x140],0x17
end
006B4428 = shouD623_KEY
;#free real estate
;#006B44BE - 006B4572
;#jmp 006B4577
func shouD623
  cmp word ptr [esi+0x13E],0x00
  jne short LABEL1
  cmp word ptr [esi+0x140],0x0003
  jl short LABEL1
  jmp short LABEL2
  LABEL3:
  cmp dword ptr [esi+0x760],0x00000000
  jne short LABEL1
  cmp dword ptr [esi+0x764],0x00000000
  jne short LABEL1
  
  LABEL4:
  pushad 
  mov ax,[esi+0x140]
  movzx ecx, byte ptr [esi+0x6A7]
  add cl,cl
  movzx cx,cl
  add ax,cx
  add ax,0x0006
  fld qword ptr [0x8581B8]
  push ax
  fild word ptr [esp]
  fmulp st1
  fstp dword ptr [esi+0xF4]
  mov word ptr [esi+0x140],0x0016
  mov word ptr [esi+0x142],0x0001
  pop ax
  popad 
  jmp short LABEL1
  
  LABEL2:
  cmp word ptr [esi+0x140],0x0015
  jl short LABEL3
  je short LABEL4
  jg 0x6B4611
  
  LABEL1:
  jmp 0x6B4611
  
end
006B44B0 = shouD623
;#skip re-speed
func shouD623_SKIP1
  jmp 0x6B447E
end
func shouD623_SKIP2
  jmp 0x6B48DE
end
006B4449 = shouD623_SKIP1
;#deceleration
func shouD623_DECEL
  fsub dword ptr [0x85BCA4]
end
006B4357 = shouD623_DECEL

;#c
;#momentum start
006B4885 = shouD623_KEY
;#free real estate
006B4917 = shouD623
;#006B4A2C
;#skip re-speed
006B48A9 = shouD623_SKIP2
;#deceleration
006B47C4 =  shouD623_DECEL


;#5c graze res
func shou5C_GRAZERES
  push 0x01
  mov ecx,esi
  call 0x48CDE0
  
  ;#density
  push 0x03
  mov ecx,esi
  call 0x48CE30
end
006C4268 = shou5C_GRAZERES

;#2c angle stuff
func shou2C_ANG1
  fmul dword ptr [0x85B98C]
end
func shou2C_ANG2
  fadd dword ptr [0x85BB30]
end
func shou2C_ANG3
  fld dword ptr [0x867810]
end
006B0C24 = shou2C_ANG1
006B0C31 = shou2C_ANG2
006B0D7A = shou2C_ANG3
;#j2c
006B1157 = shou2C_ANG1
006B1167 = shou2C_ANG2
006B12BC = shou2C_ANG3

;#d22
;#006C59D8
;#b level req
func shouD22_LV
  cmp byte ptr [eax+0x6A5],0x06
end
006C5A78 = shouD22_LV
;#temporary: y zero
func shouD22_1
  fldz 
  fstp dword ptr [esi+0xF0]
  pushad 
  mov eax,[esi+0x144]
  mov ecx,[esi+0x398]
  movzx ecx,byte ptr [ecx+0x6A5]
  add ecx,0x02
  imul ecx,ecx,0x60
  cmp eax,ecx
  popad 
  jg 0x6C5A53
  jmp 0x6C5D28
end

006C5A23 = shouD22_1
;#free real estate
;#006C5D28 = 66 9C 60 8B 86 98 03 00 00 D9 80 F0 00 00 00 D9 E8 DE D9 90 90 90 90 90 90 77 3E D9 80 EC 00 00 00 D9 86 EC 00 00 00 DC 05 30 78 86 00 D8 D9 77 28 90 90 90 90 D9 86 EC 00 00 00 DC 25 30 78 86 00 DE D9 72 14 90 66 C7 80 E4 05 00 00 F4 01 90 90 61 66 9D E9 D2 FC FF FF 61 66 9D E9 0B FE FF FF 90
func shouD22_2
  pushf 
  pushad 
  mov ebx,[esi+0x398]
  fld dword ptr [ebx+0xF0]
  fld1 
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  fld dword ptr [ebx+0xEC]
  fld dword ptr [esi+0xEC]
  fadd qword ptr [0x867830]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  fld dword ptr [esi+0xEC]
  fld dword ptr [ebx+0xEC]
  fadd qword ptr [0x867830]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  mov word ptr [ebx+0x5E4],0x01F4
  popad
  popf
  jmp 0x6C5A53
  LABEL1:
  popad 
  popf 
  jmp 0x6C5B94
end
006C5D28 = shouD22_2
;#real estate from 006C5E39 to seq 11


;#b cast
;#rock back
func shouD22_BROCKBACK
  imul edx,edx,0x00000280
end
func shouD22_CCAST
  imul edx,edx,0x00000920
end
func shouD22_CCASTIDK
  imul edx,edx,0x000000FA
end
006B25BB = shouD22_BROCKBACK
;#rock face
006B260C = shouD22_BROCKBACK
;#c cast
006B2702 = shouD22_CCAST
006B2753 = shouD22_CCASTIDK
;#b air
006B2852 = shouD22_BROCKBACK
006B28A2 = shouD22_BROCKBACK
;#c air
006B2A31 = shouD22_CCAST
006B2A81 = shouD22_CCASTIDK
;#c into b
006B26E3 = shouFLDZ
;#c into b air ver
006B2A12 = shouFLDZ

;#d214
;#dur
func shouD214_DUR
  cmp dword ptr [esi+0x144],0x3C
end
006C4EEA = shouD214_DUR
;#base ang
func shouD214_ANG
  fsub dword ptr [0x85B984]
end
006C4AAD = shouD214_ANG
;#period
func shouD214_PERIOD
  mov ecx,0x0000000A
end
006C4A82 = shouD214_PERIOD
;#dur, each lv
;#006C4A5E
func shouD214_DURLV
  cmp dword ptr [esi+0x144],0x00000000
  je 0x6C4D41
  push 0x14
  call 0x4099F0
  
  add esp,0x04
  test eax,eax
  mov [esp+0x10],eax
  fldz 
  jmp 0x6C4AA5
end
006C4A91 = shouD214_DURLV
;#lv
func shouD214_LV1
  mov ecx,0x00000019
end
func shouD214_LV2
  mov ecx,0x00000023
end
006C4A65 = shouD214_LV1
006C4A6E = shouD214_LV2

;#a214 boomerang
;#006C5610
;#start of 0,0
func shouA214BOOM_SKIP1
  jmp 0x6C5951
end
006C56ED = shouA214BOOM_SKIP1
;#box create
func shouA214BOOM_BOX
  cmp word ptr [esi+0x140],0x0000
  jne short LABEL1
  cmp dword ptr [esi+0x144],0x00000001
  jne short LABEL1
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  LABEL1:
  cmp [esi+0x144],edi
end
;#b
006B1FBE = shouA214BOOM_BOX
;#c
006B21F5 = shouA214BOOM_BOX

;#3sc weather
func shou3SCWEATHER_1
  fild word ptr [esi+0x144]
  fmul st0,st0
  fld qword ptr [0x85EB70]
  fmul st0,st0
  fmul st1,st0
  fmulp st1
  fmulp st1
  fadd dword ptr [esi+0xEC]
  fstp dword ptr [esi+0xEC]
  fld dword ptr [esi+0xF0]
  fst dword ptr [esp+0x18]
  jmp 0x6CD928
end
006CD8FC = shou3SCWEATHER_1
;#006CD90E = D9 EE 90 90 90 90
;#insert
;#006C5732 = D9 86 2C 01 00 00 D8 05 A4 BC 85 00 D9 9E 2C 01 00 00 D9 E8 D9 96 1C 01 00 00 D9 9E 20 01 00 00 C3 90
;#006C5732 = D9 86 2C 01 00 00 D8 05 A4 BC 85 00 D9 9E 2C 01 00 00 D9 E8 D9 96 1C 01 00 00 D9 9E 20 01 00 00 66 9C 60 8B 86 44 01 00 00 BA 00 00 00 00 BB 04 00 00 00 F7 F3 81 FA 00 00 00 00 75 28 81 BE 90 01 00 00 00 00 00 00 74 1C 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 C7 86 90 01 00 00 00 00 00 00 EB 16 81 BE 44 01 00 00 01 00 00 00 75 0A 66 C7 86 94 01 00 00 23 00 90 61 66 9D 83 BE 94 01 00 00 00 C3 90
func shou3SCWEATHER_2
  fld dword ptr [esi+0x12C]
  fsub dword ptr [0x85BC78]
  fstp dword ptr [esi+0x12C]
  fld1 
  fst dword ptr [esi+0x11C]
  fstp dword ptr [esi+0x120]
  pushf 
  pushad 
  mov eax,[esi+0x144]
  mov edx,0x00000000
  mov ebx,0x00000004
  div ebx
  cmp edx,0x00000000
  jne short LABEL1
  cmp dword ptr [esi+0x190],0x00000000
  je short LABEL1
  
  mov dword ptr [esi+0x190],0x00000000
  jmp short LABEL2
  LABEL1:
  cmp dword ptr [esi+0x144],0x00000001
  jne short LABEL2
  mov byte ptr [esi+0x194],0x1E
  
  LABEL2:
  popad 
  popf
  cmp word ptr [esi+0x140],0x0167
  jl short LABEL3
  mov word ptr [esi+0x140],0x0077
  LABEL3:
  cmp byte ptr [esi+0x194],0x00
end
;#609
func shou3SCWEATHER_3
  cmp word ptr [esi+0x142],0x0001
end
006B8384 = shou3SCWEATHER_3: 12
;#659
006B8635 = shou3SCWEATHER_3: 12
;#indestructible
;#006CD80B = E9 9E 00 00 00 90
006CD804 = shou3SCWEATHER_2
;#crystal on hit
func shou3SCWEATHER_ONHIT
  jmp 0x6CD7CC
end
006CD745 = shou3SCWEATHER_ONHIT
func shou3SCWEATHER_BLOCK
  jmp 0x6CD804
end
006CD7D7 = shou3SCWEATHER_BLOCK

func shou3SCWEATHER_4
  jne 0x6CD8AE
end
006CD80B = shou3SCWEATHER_4

;#a236 rekka
func shouA236REKKA
  jmp LABEL0

  LABELS:
  cmp word ptr [esi+0x13C],0x0226
  jne short LABEL1
  cmp word ptr [esi+0x140],0x0000
  LABEL2:
  jne 0x6B3CDE
  cmp dword ptr [esi+0x144],0x00000000
  jne short LABEL2
  LABEL8:
  mov edx,[esi]
  jmp 0x6B3CD6
  LABEL1:
  cmp word ptr [esi+0x13C],0x0227
  jne short LABEL3
  cmp word ptr [esi+0x140],0x0000
  LABEL4:
  jne 0x6B4017
  cmp dword ptr [esi+0x144],0x00000000
  jne short LABEL4
  jmp short LABEL5
  LABEL10:
  cmp word ptr [esi+0x140],0x0009
  jl short LABEL6
  cmp word ptr [esi+0x13E],0x0002
  jnl short LABEL6
  jmp short LABEL7
  LABEL3:
  test al,al
  je 0x6B3CDE
  jmp short LABEL8
  LABEL5:
  mov edx,[esi]
  jmp 0x6B400F
  LABELX:
  mov byte ptr [esi+0x7F4],0x01
  cmp word ptr [esi+0x13C],0x0226
  je 0x6B3CDE
  jmp 0x6B4017
  LABEL6:
  jmp LABELS
  LABEL0:
  cmp word ptr [esi+0x140],0x0000
  jne short LABEL9
  cmp dword ptr [esi+0x144],0x00000001
  jne short LABEL9
  mov byte ptr [esi+0x7F4],0x01
  LABEL9:
  jmp LABEL10
  
  LABEL7:
  cmp dword ptr [esi+0x760],0x0000000A
  jg short LABEL11
  cmp dword ptr [esi+0x760],0x00000000
  LABEL14:
  jg short LABEL12
  LABEL11:
  cmp dword ptr [esi+0x780],0x0000000A
  jg short LABEL13
  cmp dword ptr [esi+0x780],0x00000000
  jg short LABEL14
  LABEL13:
  cmp dword ptr [esi+0x764],0x0000000A
  jg short LABEL15
  cmp dword ptr [esi+0x764],0x00000000
  jg short LABEL16
  LABEL15:
  cmp dword ptr [esi+0x784],0x0000000A
  jg short LABEL17
  cmp dword ptr [esi+0x784],0x00000000
  jg short LABEL16
  LABEL17:
  jmp LABEL6
  
  LABEL12:
  mov word ptr [esi+0x13C],0x0226
  jmp short LABEL18
  LABEL16:
  mov word ptr [esi+0x13C],0x0227
  jmp short LABEL18
  
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x8589F0]
  fst dword ptr [esi+0xF4]
  fldz 
  pushf 
  pushad 
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL19
  fldz 
  fstp dword ptr [esi+0xF4]
  LABEL19:
  popad 
  popf 
  jmp short LABEL20
  LABEL18:
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  jmp short LABEL21
  LABEL20:
  cmp [esi+0x142],di
  jne short LABEL22
  cmp word ptr [esi+0x140],0x0001
  jne short LABEL23
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  LABEL23:
  cmp [esi+0x142],di
  LABEL22:
  ret 
  
  LABEL21:
  mov eax,[esi]
  mov edx,[eax+0x04]
  mov ecx,[esi+0x13E]
  inc ecx
  mov [esi+0x13E],ecx
  push dword ptr [esi+0x13E]
  push dword ptr [esi+0x13C]
  mov ecx,esi
  call edx
  mov word ptr [esi+0x140],0x0001
  jmp LABELX
end

func shouA236REKKA_LUL
  call LABELZZ
  ;# theres no esp stuff, looks ok?
  jmp LABELEND

  LABELX:
  mov byte ptr [esi+0x7F4],0x01
  cmp word ptr [esi+0x13C],0x0226
  je 0x6B3CDE
  jmp 0x6B4017
  
  LABELZZ:
  fld dword ptr [esi+0xF4]
  fsub dword ptr [0x8589F0]
  fst dword ptr [esi+0xF4]
  fldz 
  pushf 
  pushad 
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL19
  fldz 
  fstp dword ptr [esi+0xF4]
  LABEL19:
  popad 
  popf 
  jmp short LABEL20
  LABEL18:
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  jmp short LABEL21
  LABEL20:
  cmp [esi+0x142],di
  jne short LABEL22
  cmp word ptr [esi+0x140],0x0001
  jne short LABEL23
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  LABEL23:
  cmp [esi+0x142],di
  LABEL22:
  ret 
  
  LABEL21:
  mov eax,[esi]
  mov edx,[eax+0x04]
  mov ecx,[esi+0x13E]
  inc ecx
  mov [esi+0x13E],ecx
  push dword ptr [esi+0x13E]
  push dword ptr [esi+0x13C]
  mov ecx,esi
  call edx
  mov word ptr [esi+0x140],0x0001
  jmp LABELX
  
  LABELEND:
  nop
end

;#frame leaps
;#006B3CCB
006B3CD0 = shouA236REKKA
;#c
func shouA236REKKA_LETSNOT
  jmp 0x6B3CD0
end
006B4009 = shouA236REKKA_LETSNOT

;#006C5F85 = 66 C7 86 3C 01 00 00 26 02 90 E9 32 FF FF FF 66 C7 86 3C 01 00 00 27 02 E9 24 FF FF FF 90

;#b leap
func shouA236REKKA_AREYOUKIDDINGME1
  
  
  jne 0x6BA7FF
  cmp word ptr [esi+0x140],0x02
  jne 0x6B3DA2
  fld dword ptr [0x85AE94]
  fstp dword ptr [esi+0xF4]
  cmp word ptr [esi+0x13E],0x0000
  jne short LABEL1
  push 0x78
  push 0x000000C8
  mov ecx,esi
  call 0x47A9E0
  push 0x32
  mov ecx,esi
  call 0x487870
  push 0x1D
  mov ecx,esi
  call 0x439490
  LABEL1:
  jmp 0x6B3D32
end

func shouA236REKKA_AREYOUKIDDINGME2
  
  
  jne 0x6BA7FF
  cmp word ptr [esi+0x140],0x02
  jne 0x6B40DB
  fld qword ptr [0x859B00]
  fstp dword ptr [esi+0xF4]
  cmp word ptr [esi+0x13E],0x0000
  jne short LABEL1
  push 0x78
  push 0x000000C8
  mov ecx,esi
  call 0x47A9E0
  push 0x32
  mov ecx,esi
  call 0x487870
  push 0x1D
  mov ecx,esi
  call 0x439490
  LABEL1:
  jmp 0x6B406B
end

006B3CDE = shouA236REKKA_LUL
006B3CEB = shouA236REKKA_AREYOUKIDDINGME1
006B4017 = shouA236REKKA_LUL
006B4024 = shouA236REKKA_AREYOUKIDDINGME2
;#006C5FD4 = C7 86 90 01 00 00 00 00 00 00 C6 86 94 01 00 00 01 E9 DC FE FF FF 90


;#0056F9AB

;#unlock hits b
;#006B3D28 = 90 90 90 90 90 90 90 90 90 90
006B3E2F = shouNOP: 10
;#c
;#006B4061 = 90 90 90 90 90 90 90 90 90 90
006B4168 = shouNOP: 10
;#6BECD6
;#4B400F

;#sfx

func shouA236REKKA_EFFECTS
  cmp word ptr [esi+0x140],0x04
end
006B3E1F = shouA236REKKA_EFFECTS
006B4158 = shouA236REKKA_EFFECTS

func shouA236REKKA_EFFECTS2
  push 0x01
  mov ecx,esi
  call 0x464980
end
006B3FE3 = shouA236REKKA_EFFECTS2
006B4315 = shouA236REKKA_EFFECTS2

func shouA236REKKA_SFX
  jmp 0x6CA3C6
end
006C9F56 = shouA236REKKA_SFX

;#free here 006C9F98 - 006CA1CD maybe


;#a623 slashy
;#c
;#2nd box
;#006B4F72 = 66 83 BE 40 01 00 00 07 
func shouA623SLASHY1
  mov ebx,0x00000008
end
006B4E5E = shouA623SLASHY1
;#momentum
006B4F52 = shouNOP: 12


;#whats this
;#006B50C7 = EB 61
;#006B50C7 = 90 90
;#rebox
func shouIDK0
  jmp 0x6B5289
end
006B513B = shouIDK0
;#lv2+ jump
;#006B529E = E9 5C 55 00 00 90
func shouIDK1
  jmp 0x6BA7FF
end
006B52AB = shouIDK1




;#a22
;#immediately enter 5
006C70FA = shouNOP
;#discard 1st time seq 10
func shouA22_1
  fld dword ptr [0x85BCA4]
end
006C71FC = shouA22_1

;#lock phases
006C7601 = shouNOP
;#destruction never/skip
func shouA22_IDK1
  jmp 0x6C7805
end
006C7615 = shouA22_IDK1
;#creation skip
;#006C780B = E9 2701 0000 90
func shouA22
  pushf 
  pushad 
  mov eax,[esi+0x190]
  cmp eax,0x04
  je short LABEL1
  cmp eax,0x08
  je short LABEL1
  popad 
  popf 
  fldz 
  fstp dword ptr [esi+0x12C]
  jmp 0x6C7937
  LABEL1:
  mov word ptr [esi+0x140],0x00FF
  mov dword ptr [esi+0x144],0x000000FF
  popad 
  popf 
  jmp 0x6C7811
end
006C7805 = shouA22
;#creation total
func shouA22_TOTAL
  fld dword ptr [0x85AE94]
end
006C7A63 = shouA22_TOTAL

;#free real estate 006C7615 - 006C7805
;#006C7937 if not
;#006C7811 if destroy
;#jmp 006C7937

;#seq 10
func shouIDK1A
  cmp word ptr [esi+0x140],0x0000
  jne short LABEL1
  cmp dword ptr [esi+0x144],0x00000000
  jne short LABEL1
  mov dword ptr [esi+0x190],0x00000000
  mov word ptr [esi+0x194],0x0001
  fld1 
  fstp dword ptr [esi+0x11C]
  fld1 
  fstp dword ptr [esi+0x120]
  LABEL1:
  fld dword ptr [esi+0x11C]
  jmp 0x6C8A92
end
006C8A86 = shouIDK1A

006C8A8C = shouNOP
;#duration
func shouIDK1_DUR
  cmp dword ptr [esi+0x144],0x00000076
  jg 0x6C3E6F
  
  pushad 
  mov eax,[esi+0x190]
  cmp eax,0x04
  je short LABEL1
  cmp eax,0x08
  je short LABEL1
  cmp eax,0x01
  je short LABEL1
  cmp eax,0x02
  je short LABEL1
  cmp eax,0x06
  je short LABEL1
  cmp eax,0x07
  je short LABEL1
  popad 
  jmp 0x6C8ABC
  LABEL1:
  popad 
  jmp 0x6C3E6F
end
006C8AA6 = shouIDK1_DUR
;#spd
;#006C8ADF = 90 90 90 90 90 90
func shouIDK1_SPD
  jmp 0x6C8AEB
end
006C8ABC = shouIDK1_SPD

;#destruction
;#uses damage detection hit state 190


;#positioning
func shouIDK1_POS
  fadd dword ptr [eax+0xEC]
  cmp byte ptr [esi+0x104],0xFF
  je short LABEL1
  fadd dword ptr [0x8575A8]
  jmp short LABEL2
  LABEL1:
  fsub dword ptr [0x8575A8]
  LABEL2:
  jmp 0x6C6D19
end
006C6D13 = shouIDK1_POS

;#position 5
;#006C7114
;#006C711A
;#006C76FD = D8 05 A8 75 85 00 90 90 90 D9 96 F0 00 00 00 90 90 90 E9 06 FA FF FF 90 90 90
func shouIDK1_IDK
  fstp dword ptr [esi+0xF8]
end
006C7107 = shouIDK1_IDK

;#sometimes things can be 1 frame late
;#I guess it's the next frame that deals with it?
;#in case of this move, the flag doesn't persist, because it checks whether its being attacked on that frame

;#006B2EA1


;#a623 charge
;#b
;#x
func shouA623CHARGE_BX
  fld qword ptr [0x859B00]
end
func shouA623CHARGE_BY
  fld dword ptr [0x86782C]
end
func shouA623CHARGE_DEC1
  fld qword ptr [0x8581B8]
end
func shouA623CHARGE_DEC2
  fsub dword ptr [0x867860]
end
006B5784 = shouA623CHARGE_BX
;#y
006B579D = shouA623CHARGE_BY
;#decel
006B56A7 = shouA623CHARGE_DEC1
006B56B9 = shouA623CHARGE_DEC2

;#c
006B5A0A = shouA623CHARGE_BX
006B5A23 = shouA623CHARGE_BY
006B592D = shouA623CHARGE_DEC1
006B593F = shouA623CHARGE_DEC2

;#bair
006B5C59 = shouA623CHARGE_BX
006B5C79 = shouA623CHARGE_BY
006B5B8C = shouA623CHARGE_DEC1
006B5B9E = shouA623CHARGE_DEC2

;#cair
006B5EB4 = shouA623CHARGE_BX
006B5ED4 = shouA623CHARGE_BY
006B5DE7 = shouA623CHARGE_DEC1
006B5DF9 = shouA623CHARGE_DEC2

;#3sccharge
func shou3SCCHARGE_1
  fld qword ptr [0x857958]
end
func shou3SCCHARGE_2
  fld dword ptr [0x858830]
end
006B6B2B = shou3SCCHARGE_1
006B6B3B = shou3SCCHARGE_2
006B68DD = shouA623CHARGE_DEC1

;#5sccharge
;#velocity
func shou5SCCHARGE_X
  fld dword ptr [0x857DD8]
end
func shou5SCCHARGE_Y
  fld dword ptr [0x85AE94]
end
006B78D0 = shou5SCCHARGE_X
006B78E0 = shou5SCCHARGE_Y
;#nullifyheight
006B74E1 = shouNOP
006B751F = shouNOP
;#aim x
func shou5SCCHARGE
  LABELS:
  pushad 
  mov ecx,[esi+0x170]
  fld dword ptr [ecx+0xEC]
  fld dword ptr [0x8596B8]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  fld dword ptr [0x8596B8]
  jmp short LABEL2
  LABEL1:
  fld dword ptr [0x85A25C]
  fld dword ptr [ecx+0xEC]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL3
  
  fld dword ptr [0x85A25C]
  jmp short LABEL2
  LABEL3:
  fld dword ptr [ecx+0xEC]
  LABEL2:
  fstp dword ptr [esi+0xEC]
  popad 
  LABEL4:
  cmp dword ptr [esi+0x144],0x1E
  fld dword ptr [0x87154C]
  fstp dword ptr [esi+0xF0]
  fldz 
  fstp dword ptr [esi+0xF4]
  jmp 0x6B7438
  
  cmp dword ptr [esi+0x144],0x1E
  jne short LABEL4
  jmp LABELS
  nop
end
006B7431 = shou5SCCHARGE


;#2sc quake

;#spd
func shou2SCQUAKE_SPD
  fld qword ptr [0x867830]
end
006B6296 = shou2SCQUAKE_SPD
;#dur and insert
;#006CB16F = 83 BE 44 01 00 00 78
func shou2SCQUAKE
  jmp LABELS

  LABELS1:
  pushad
  mov ebx,[esi+0x398]
  fld dword ptr [ebx+0xF0]
  fld1 
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABELS2
  fld dword ptr [ebx+0xEC]
  fld dword ptr [esi+0xEC]
  fadd qword ptr [0x867830]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABELS2
  fld dword ptr [esi+0xEC]
  fld dword ptr [ebx+0xEC]
  fadd qword ptr [0x867830]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABELS2
  mov word ptr [esi+0x140],0x0078
  mov word ptr [esi+0x142],0x0009
  jmp short LABELS3
  
  LABELS2:
  popad 
  jmp 0x6CB189
  
  LABELS:
  cmp word ptr [esi+0x140],0x0078
  jl LABELS1
  cmp word ptr [esi+0x140],0x0082
  jl 0x6CB189
  jmp 0x6CB178
  LABELS3:
  mov ecx,[ebx+0x5E4]
  add cx,0x00FA
  cmp cx,0x01F4
  jl short LABEL1
  mov cx,0x01F4
  LABEL1:
  mov [ebx+0x5E4],cx
  popad
  jmp 0x6CB189
  
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL3
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  LABEL3:
  mov eax,[esi+0x35C]
  
end
006CB16F = shou2SCQUAKE
;#angles
func shou2SCQUAKE_ANG
  mov [esp+0x10],eax
  fldz
end
006CAC3F = shou2SCQUAKE_ANG
func shou2SCQUAKE_ANG1
  fsub dword ptr [0x85B984]
end
006CAC4F = shou2SCQUAKE_ANG1

;#spawnrates
func shou2SCQUAKE_SPAWNRATE
  mov ecx,0x00000006
end
006CAC25 = shou2SCQUAKE_SPAWNRATE

;#006CB178
;#006CB189

;#box grant
func shou2SCQUAKE_BOX
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  LABEL1:
  mov eax,[esi+0x35C]
end
006CABF8 = shou2SCQUAKE_BOX

;#bounds
func shou2SCQUAKE_BOUNDS
  fld dword ptr [0x85E7C0]
end
func shou2SCQUAKE_BOUNDS1
  fld dword ptr [0x85BB80]
end
006CAF28 = shou2SCQUAKE_BOUNDS
006CAF45 = shou2SCQUAKE_BOUNDS1

;#space creation
;#006C7931 = 90 90 90 90 90 90
func shouSPACE2
  jmp 0x6C7937
end
006C7842 = shouSPACE2
;#006C7811
;#free until 006C7936
;#jmp 006C7937

;#006C779C = 81 BE 44 01 00 00 00 00 00 00 0F 84 3C 37 00 00 51 90 E8 3D 22 D4 FF E9 81 34 00 00 90
;#006CAC34 = E9 63 CB FF FF 90



;#3sc weather part 2 offscreen
;#006CD928 = D9 05 40 C1 85 00
;#006CD945 = D8 1D F0 AF 85 00
func shou3SCWEATHER_OFFSCREEN
  jnp short LABEL1
  jmp short LABEL2
  LABEL1:
  fstp st0
  mov byte ptr [esi+0x194],0x00
  jmp 0x6CD972
  LABEL2:
end
func shou3SCWEATHER_OFFSCREEN2
  je short LABEL1
  jmp short LABEL2
  LABEL1:
  fstp st0
  mov byte ptr [esi+0x194],0x00
  jmp 0x6CD972
  LABEL2:
end
006CD939 = shou3SCWEATHER_OFFSCREEN
006CD950 = shou3SCWEATHER_OFFSCREEN
006CD961 = shou3SCWEATHER_OFFSCREEN2
;#006CD972

;# random notes Shou
;# dword ptr [00867860] 4.00
;# dword ptr [0085BCA4] 6.00
;# qword ptr [00858990] 40.00
;# qword ptr [00857990] 50.00
;# qword ptr [008581B8] 1.50
;# qword ptr [00867830] 30.00
;# dword ptr [0085BB84] -30.00
;# dword ptr [0085AE94] 20.00
;# dword ptr [0085BB30] 22.50
;# qword ptr [00859B00] 25.00
;# qword ptr [008677C8] 1.0



;# non character
;# q 85BB98 29.00
;# q 85BBA0 26.00
;# q 85BBA8 27.00
;# d 85B9DC 1.30
;# d 85B94C 1.25
;# d 85ACEC 1.20
;# d 85882C 7.00
;# d 0085B3B3 0 //whatever
;# dd 85BA18 -180
;# dd 87153C 180


;#5sc weather
;#ground dur
func shou5SCWEATHER_DUR
  cmp dword ptr [esi+0x144],0x1F
end
006B7C52 = shou5SCWEATHER_DUR
;#ang
006B7CD8 = shouFLDZ
;#air dur
006B7E26 = shou5SCWEATHER_DUR
;#ang
006B7EFE = shouFLDZ

;#4sc weather
;#always small
006B6FCF = shouNOP
;#spd
006B6FE7 = shouFLDZ
;#charged spd
;#006B707C
;#x scale
;#006CC2E8 = 90 90 90 90 90 90
func shou4SCWEATHER_IDK
  push 0x0A
  mov ecx,esi
  mov byte ptr [esi+0x194],0x02
  jmp 0x6CC2F8
end
006CC2E2 = shou4SCWEATHER_IDK
;#y add
func shou4SCWEATHER_Y
  fadd dword ptr [0x85CBBC]
end
006B700D = shou4SCWEATHER_Y

;#3sc slashy
;#x spd
func shou3SCSLASHY_X
  fld dword ptr [0x871540]
end
func shou3SCSLASHY_ACC
  fsub dword ptr [0x8589F0]
end
006B82D7 = shou3SCSLASHY_X
;#x decel
006B8345 = shou3SCSLASHY_ACC


;#using a214 boomerang space
;#006C57CD to 006C5979

;#4sc armor
;#dur
func shou4SCARMOR_DUR
  mov dword ptr [esi+0x924],0x0000012C
end
006B7C15 = shou4SCARMOR_DUR
;#flash frame
func shou4SCARMOR_FLASH
  cmp word ptr [esi+0x140],0x06
end
006B7B81 = shou4SCARMOR_FLASH
;#hold anim dur
func shou4SCARMOR_IDK
  cmp dword ptr [esi+0x144],0x02
end
006B7971 = shou4SCARMOR_IDK
;#insert
func shou4SCARMOR
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  cmp word ptr [esi+0x13E],0x0000
  jne short LABEL1
  mov dword ptr [esi+0x190],0x00000000
  mov byte ptr [esi+0x194],0x01
  LABEL1:
  mov ebx,0x00000001
end
006B7963 = shou4SCARMOR


;#2sc slash
;#creat 851 instead of 848
func shou2SCSLASH_TARG
  push 0x00000353
end
006B6620 = shou2SCSLASH_TARG

;#leap point
func shou2SCSLASH_MOVE
  jmp 0x6B642B
end
006B6392 = shou2SCSLASH_MOVE

;#to 848 3
func shou2SCSLASH_IDK
  cmp word ptr [esi+0x142],0x01
  jne short LABEL1
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00000000
  LABEL1:
  cmp word ptr [esi+0x140],0x4F
  jg short LABEL2
  mov al,0xFF
  mov [esi+0x113],al
  LABEL2:
  fld1 
  fstp dword ptr [esi+0x11C]
  fld1 
  fstp dword ptr [esi+0x120]
  jmp 0x6CA7D8
end
006CB4FA = shou2SCSLASH_IDK
;#006CA7D8

;#graze resistance stuff for these a214 codes
;#006C3CCB
;#call 0048CDE0

;#a214 quake
func shouA214QUAKE
  jmp LABELS

  LABELY:
  cmp dword ptr [esi+0x144],0x00
  jne short LABEL1
  mov byte ptr [esi+0x194],0x08
  LABEL1:
  mov eax,[esi+0x190]
  cmp eax,0x00
  je short LABEL2
  cmp eax,0x04
  jne short LABEL3
  mov byte ptr [esi+0x194],0x00
  LABEL3:
  push 0x0F
  mov ecx,esi
  call 0x48CDE0
  cmp dword ptr [esi+0x190],0x06
  jne short LABEL4
  mov byte ptr [esi+0x194],0x00
  LABEL4:
  cmp byte ptr [esi+0x194],0x00
  jle short LABEL5
  cmp word ptr [esi+0x36C],0x0005
  jne short LABEL6
  mov word ptr [esi+0x36C],0x0000
  mov dword ptr [esi+0x190],0x00000000
  LABEL6:
  add word ptr [esi+0x36C],0x01
  LABEL2:
  cmp dword ptr [esi+0x140],0x78
  jmp 0x6C5133
  LABEL5:
  cmp dword ptr [esi+0x140],0x6D
  jnl short LABEL2
  mov dword ptr [esi+0x140],0x0000006E
  jmp short LABEL2
  
  LABELS:
  cmp word ptr [esi+0x13C],0x032B
  jne short LABELX
  mov eax,[esi+0x398]
  mov ax,[eax+0x13C]
  cmp ax,0x0032
  jl short LABELZ
  cmp ax,0x0060
  jg short LABELZ
  mov dword ptr [esi+0x140],0x00000078
  LABELZ:
  jmp LABELY
  LABELX:
  fldz 
  fstp dword ptr [esi+0x12C]
  jmp short LABELZ
end
006C512C = shouA214QUAKE
;#006C5133

;#leap point b
func shouA214QUAKE_LEAP
  test ah,0x01
end
006B1A03 = shouA214QUAKE_LEAP
;#006B19EE = D9 EE 90 90 90 90
;#b pos
func shouA214QUAKE_BPOS
  fldz
  fstp dword ptr [esp+0x04]
  fld dword ptr [esi+0xEC]
  jmp 0x6B1A48
end
006B1A38 = shouA214QUAKE_BPOS
;#leap point c
006C51B0 = shouA214QUAKE_LEAP
;#c pos
006C51E0 = shouFLDZ
func shouA214QUAKE_CPOS
  fld dword ptr [0x8575A4]
end
006C51F2 = shouA214QUAKE_CPOS
;#c 0f startup
func shouA214QUAKE_CSTART
  cmp dword ptr [esi+0x144],0x00
end
006C5186 = shouA214QUAKE_CSTART

;#5sc quake
006CC194 = shouA214QUAKE

;#dur stuff
func shou5SCQUAKE_DUR1
  cmp dword ptr [esi+0x144],0x01
end
func shou5SCQUAKE_DUR2
  cmp dword ptr [esi+0x144],0x02
end
func shou5SCQUAKE_DUR3
  mov ebx,0x00000003
end
func shou5SCQUAKE_DUR4
  cmp ebx,0x00000078
end
func shou5SCQUAKE_DUR5
  cmp dword ptr [esi+0x144],0x00000078
end
006CB7E5 = shou5SCQUAKE_DUR1
006CB7FD = shou5SCQUAKE_DUR2
006CB82B = shou5SCQUAKE_DUR3
006CBCFE = shou5SCQUAKE_DUR4
006CBD0A = shou5SCQUAKE_DUR5

;#quantity
;#006CBBC1 = D9 05 60 78 86 00
;#006CC044 = D8 05 2C 78 86 00
;#quantity yellow
;#006CBAB8 = DC 05 807F8500
;#006CBF44 = DC 05 807F8500
;#period
func shou5SCQUAKE_PERIOD
  add ebx,0x1A
  add ebp,0x01
end
006CBCF8 = shou5SCQUAKE_PERIOD
;#loc period
func shou5SCQUAKE_LOCPERIOD1
  fmul qword ptr [0x85BB10]
end
func shou5SCQUAKE_LOCPERIOD2
  fmul dword ptr [0x85F184]
end
006CBA98 = shou5SCQUAKE_LOCPERIOD1
006CBC97 = shou5SCQUAKE_LOCPERIOD2
006CBF24 = shou5SCQUAKE_LOCPERIOD1
006CC124 = shou5SCQUAKE_LOCPERIOD2

;#first part all green
;#006CBAD1 = 90 90 90 90 90 90
;#first part all yellow
;#006CBCD0 = 90 90 90 90 90 90
;#2nd part all green
;#006CBF5D = 90 90 90 90 90 90
;#2nd part all yellow
;#006CC15D = 90 90 90 90 90 90

;#jmp first part color
;#006CB9B8 = E9 F6 01 00 00 90
;#006CBF40 = E9 FB 01 00 00 90

;#whatever man
func shouIDK4
  jmp 0x6CBAD7
end
006CB9DB = shouIDK4
;#006CBAD7
func shouIDK5
  jmp 0x6CC163
end
006CC063 = shouIDK5
;#006CC063


;#a236 borgar
;#5c stone stuff
006C4503 = shouA236BORGAR_1
;#send command
func shouA236BORGAR_SKIP
  jmp 0x6C44E4
end
006C9819 = shouA236BORGAR_SKIP

func shouA236BORGAR_1
  cmp ax,0x019A
  LABEL1:
  je 0x6C451F
  cmp ax,0x019B
  je short LABEL1
  cmp ax,0x019E
  je short LABEL1
  cmp ax,0x019F
  je short LABEL1
  cmp ax,0x0221
  je short LABEL1
  cmp ax,0x0222
  je short LABEL1
  cmp ax,0x0223
  je short LABEL1
  cmp ax,0x0224
  jne 0x6C90C5
  jmp short LABEL1
  
end

func shouA236BORGAR_2
  cmp ax,0x019A
  LABEL1:
  je 0x6C451F
  cmp ax,0x019B
  je short LABEL1
  cmp ax,0x019E
  je short LABEL1
  cmp ax,0x019F
  je short LABEL1
  cmp ax,0x0221
  je short LABEL1
  cmp ax,0x0222
  je short LABEL1
  cmp ax,0x0223
  je short LABEL1
  cmp ax,0x0224
  jmp 0x6C4930
  
end

func shouA236BORGAR_3
  cmp ax,0x019A
  LABEL1:
  je 0x6C4994
  cmp ax,0x019B
  je short LABEL1
  cmp ax,0x019E
  je short LABEL1
  cmp ax,0x019F
  je short LABEL1
  cmp ax,0x0221
  je short LABEL1
  cmp ax,0x0222
  je short LABEL1
  cmp ax,0x0223
  je short LABEL1
  cmp ax,0x0224
  jne 0x6C49A5
  jmp short LABEL1
  
end

func shouA236BORGAR_4A
  cmp word ptr [esi+0x13C],0x0321
  jne short LABEL1
  push 0x00000321
  jmp short LABEL2
  LABEL1:
  push 0x00000335
  LABEL2:
  jmp 0x6C4691
end
  
func shouA236BORGAR_4B
  cmp word ptr [esi+0x13C],0x0321
  jne short LABEL1
  push 0x00000321
  jmp short LABEL2
  LABEL1:
  push 0x00000335
  LABEL2:
  jmp 0x6C4716
end
  
func shouA236BORGAR_5
  cmp word ptr [esi+0x13E],0x0000
  je short LABEL1
  jmp short LABEL2
  
  LABEL8:
  cmp dword ptr [esi+0x190],0x05
  jmp 0x6C9450
  LABEL1:
  cmp dword ptr [esi+0x144],0x00
  jne LABELEND
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00000000
  jmp LABEL3
  
  LABEL2:
  cmp word ptr [esi+0x13E],0x0002
  LABEL4:
  je 0x6C44E4
  cmp word ptr [esi+0x13E],0x0003
  je short LABEL4
  jmp short LABEL5
  
  cmp dword ptr [esi+0x190],0x00
  jne 0x6C3E6F
  jmp short LABEL6
  
  LABEL3:
  jmp short LABEL7
  jnl 0x6C3E6F
  LABEL13:
  push 0x04
  push 0x01
  push 0x00
  jmp 0x6C39B5
  LABEL5:
  cmp word ptr [esi+0x13E],0x000A
  je short LABEL4
  cmp word ptr [esi+0x13E],0x000B
  je short LABEL4
  jmp LABEL8
  
  
  LABEL6:
  cmp word ptr [esi+0x140],0x00C7
  LABEL12:
  je 0x6C3E6F
  cmp word ptr [esi+0x140],0x0199
  je short LABEL12
  jmp short LABEL13
  
  
  LABEL7:
  pushad 
  mov ecx,[esi+0x35C]
  fld dword ptr [ecx]
  fldz 
  fcompp 
  fnstsw ax
  test ah,0x41
  popad 
  jne short LABELEND
  mov word ptr [esi+0x140],0x00D2
  LABELEND:
  jmp 0x6C39AF
end

func shouA236BORGAR_5A

  jmp LABELEX
  
  cmp word ptr [esi+0x13E],0x0000
  je short LABEL1
  jmp short LABEL2
  
  LABEL8:
  cmp dword ptr [esi+0x190],0x05
  jmp 0x6C9450
  LABEL1:
  cmp dword ptr [esi+0x144],0x00
  jne LABELEND
  mov byte ptr [esi+0x194],0x01
  mov dword ptr [esi+0x190],0x00000000
  jmp LABEL3
  
  LABEL2:
  cmp word ptr [esi+0x13E],0x0002
  LABEL4:
  je 0x6C44E4
  cmp word ptr [esi+0x13E],0x0003
  je short LABEL4
  jmp short LABEL5
  
  LABELEX:
  cmp dword ptr [esi+0x190],0x00
  jne 0x6C3E6F
  jmp short LABEL6
  
  LABEL3:
  jmp short LABEL7
  jnl 0x6C3E6F
  LABEL13:
  push 0x04
  push 0x01
  push 0x00
  jmp 0x6C39B5
  LABEL5:
  cmp word ptr [esi+0x13E],0x000A
  je short LABEL4
  cmp word ptr [esi+0x13E],0x000B
  je short LABEL4
  jmp LABEL8
  
  
  LABEL6:
  cmp word ptr [esi+0x140],0x00C7
  LABEL12:
  je 0x6C3E6F
  cmp word ptr [esi+0x140],0x0199
  je short LABEL12
  jmp short LABEL13
  
  
  LABEL7:
  pushad 
  mov ecx,[esi+0x35C]
  fld dword ptr [ecx]
  fldz 
  fcompp 
  fnstsw ax
  test ah,0x41
  popad 
  jne short LABELEND
  mov word ptr [esi+0x140],0x00D2
  LABELEND:
  jmp 0x6C39AF
end

006C4914 = shouA236BORGAR_2
006C4978 = shouA236BORGAR_3
;#first 5c
;#006C468C
;#006C4711
006C468C = shouA236BORGAR_4A
006C4711 = shouA236BORGAR_4B
;#006C4691
;#006C4716
006C9449 = shouA236BORGAR_5

006C39AF = shouA236BORGAR_5A

func shouA236BORGAR_6
  
  cmp word ptr [esi+0x13C],0x0335
  jne short LABEL9
  cmp word ptr [esi+0x13E],0x03
  je short LABEL10
  cmp word ptr [esi+0x13E],0x0B
  je short LABEL10
  jmp short LABEL9
  LABEL10:
  fmul dword ptr [0x85B960]
  jmp short LABEL11
  LABEL9:
  fmul dword ptr [0x858830]
  LABEL11:
  nop
end
006C45AD = shouA236BORGAR_6


;#b ver closer 1
;#006B363D = D9 94 24 C4 01 00 00 D9 E8
;#006C9A27 = D9 EE D9 9C 24 C4 01 00 00 D9 E8 D9 9C 24 C8 01 00 00 E9 0F 9C FE FF 90
func shouA236BORGAR_IDK1
  fld qword ptr [0x858990]
end
func shouA236BORGAR_IDK2
  fld dword ptr [0x8950D0]
end
006C94B9 = shouA236BORGAR_IDK1
006B36AD = shouA236BORGAR_IDK2
006B3837 = shouA236BORGAR_IDK2
006B3A27 = shouA236BORGAR_IDK2
006B3C1D = shouA236BORGAR_IDK2


;#d236 startup thing
func shouD236STARTUP_IDK
  fadd qword ptr [0x85CE10]
end
006C8D6E = shouD236STARTUP_IDK

;#a22 guard
;#b ground 
;#006B2AA6
;#cmd
;#006B2E91
;#dur
;#006C6105
;#disable air versions
func shouA22GUARD_DISABLEAIR1
  jmp 0x6C2CD0
end
func shouA22GUARD_DISABLEAIR2
  jmp 0x6C2DC0
end
006C2C5B = shouA22GUARD_DISABLEAIR1
006C2D4B = shouA22GUARD_DISABLEAIR2
;#spawn spot
func shouA22GUARD_SPOT
  fld dword ptr [0x8575A8]
end
006B2B1A = shouA22GUARD_SPOT
;#movement
func shouA22GUARD_MOVE1
  fcomp st1
end
func shouA22GUARD_MOVE2
  fcomp st1
  fldz 
  fstp dword ptr [esi+0xF0]
  jmp 0x6C61F8
end
006C61B6 = shouA22GUARD_MOVE1
006C61EC = shouA22GUARD_MOVE2
;#summon 3
func shouA22GUARD_COUNT
  fld dword ptr [0x871538]
end
006B2BC5 = shouA22GUARD_COUNT
;#bullet behavior
func shouA22GUARD_IDKTBH0
  ja short LABELY
  add al,0x0A
  mov [esi+0x113],al
  LABELY:
  cmp [esi+0x190],ebp
  je short LABELZ
  mov word ptr [esi+0x140],0x0096
  mov [esi+0x190],ebp
  
  
  LABELZ:
  cmp word ptr [esi+0x140],0x0095
  jg LABEL2
  pushad 
  mov ebx,[esi+0x398]
  mov ebx,[ebx+0x170]
  fld dword ptr [ebx+0xF0]
  fld qword ptr [0x857B20]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  fld dword ptr [ebx+0xEC]
  fld dword ptr [esi+0xEC]
  fadd qword ptr [0x867830]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  fld dword ptr [esi+0xEC]
  fld dword ptr [ebx+0xEC]
  fadd qword ptr [0x867830]
  fcompp 
  fnstsw ax
  test ah,0x41
  jne short LABEL1
  mov word ptr [esi+0x140],0x0096
  mov word ptr [esi+0x142],0x0009
  
  
  mov cx,[ebx+0x49E]
  mov eax,[esi+0x398]
  mov al,[eax+0x6A9]
  add al,0x03
  movzx eax,al
  imul eax,eax,0x4B
  cmp cx,ax
  jg short LABEL3
  mov cx,0x0000
  jmp LABEL4
  LABEL3:
  sub cx,ax
  LABEL4:
  mov [ebx+0x49E],cx
  
  LABEL1:
  popad 
  LABEL2:
  jmp 0x6C6181
end
006C6159 = shouA22GUARD_IDKTBH0
;#insert

;#disable aircast lvl up
func shouA22GUARD_DISABLEAIRLV
  jmp 0x6C27BE
end
006C26F4 = shouA22GUARD_DISABLEAIRLV

;#redirect
func shouA22GUARD_REDIR
  jmp 0x6B2AA6
end
006B2C44 = shouA22GUARD_REDIR
006B2CB6 = shouA22GUARD_REDIR
;#duration
func shouA22GUARD_DUR
  imul cx,cx,0x28
  add cx,0x0096
end
006B2C2C = shouA22GUARD_DUR
;#multicast
func shouA22GUARD_MULTI
  mov ecx,[esi+0x398]
  cmp word ptr [ecx+0x13C],0x020D
  jl short LABEL1
  cmp word ptr [ecx+0x13C],0x0211
  jg short LABEL1
  cmp dword ptr [ecx+0x144],0x00
  jne short LABEL1
  mov word ptr [esi+0x140],0x0096
  mov word ptr [esi+0x142],0x0009
  LABEL1:
  nop
end
006C60FD = shouA22GUARD_MULTI
;#draw order
006C620F = shouNOP

;# do we need to double check if this is too much memlocs?
