; ; sub_588B4 from 0x588b4 to 0x58970 (188 bytes) ; ; 1 xrefs: ; > @ 0x10c4a0 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; SUB SP, SP, #0x40 ; +0x0, 0x588b4 STP X22, X21, [SP,#0x30+var_20] ; +0x4, 0x588b8 STP X20, X19, [SP,#0x30+var_10] ; +0x8, 0x588bc STP X29, X30, [SP,#0x30+var_s0] ; +0xc, 0x588c0 STRB WZR, [X1] ; +0x10, 0x588c4 LDR W22, [X0,#0x1DC] ; +0x14, 0x588c8 MOV X19, X1 ; +0x18, 0x588cc MOV X20, X0 ; +0x1c, 0x588d0 MOV W21, WZR ; +0x20, 0x588d4 ADD X29, SP, #0x30 ; +0x24, 0x588d8 CMP W21, W22 ; +0x28, 0x588dc B.GE loc_58914 ; +0x2c, 0x588e0 ADD X2, SP, #0x30+var_28 ; +0x30, 0x588e4 MOV X0, X20 ; +0x34, 0x588e8 MOV W1, W21 ; +0x38, 0x588ec BL sub_58984 ; +0x3c, 0x588f0 CBNZ W0, loc_58968 ; +0x40, 0x588f4 LDR X0, [SP,#0x30+var_28]; this ; +0x44, 0x588f8 MOV X1, X19; bool * ; +0x48, 0x588fc BL ._ZN4FMOD14ChannelControl9isPlayingEPb; FMOD::ChannelControl::isPlaying(bool *) ; +0x4c, 0x58900 LDRB W8, [X19] ; +0x50, 0x58904 ADD W21, W21, #1 ; +0x54, 0x58908 CBZ W8, loc_588DC ; +0x58, 0x5890c B loc_58964 ; +0x5c, 0x58910 ADD X0, X20, #0x190 ; +0x60, 0x58914 BL sub_59188 ; +0x64, 0x58918 MOV W21, W0 ; +0x68, 0x5891c MOV W22, WZR ; +0x6c, 0x58920 CMP W22, W21 ; +0x70, 0x58924 B.GE loc_58964 ; +0x74, 0x58928 ADD X2, SP, #0x30+var_28 ; +0x78, 0x5892c MOV X0, X20 ; +0x7c, 0x58930 MOV W1, W22 ; +0x80, 0x58934 BL sub_589FC ; +0x84, 0x58938 CBNZ W0, loc_58968 ; +0x88, 0x5893c LDR X0, [SP,#0x30+var_28] ; +0x8c, 0x58940 MOV X1, X19 ; +0x90, 0x58944 LDR X8, [X0] ; +0x94, 0x58948 LDR X8, [X8,#0xA8] ; +0x98, 0x5894c BLR X8 ; +0x9c, 0x58950 CBNZ W0, loc_58968 ; +0xa0, 0x58954 LDRB W8, [X19] ; +0xa4, 0x58958 ADD W22, W22, #1 ; +0xa8, 0x5895c CBZ W8, loc_58924 ; +0xac, 0x58960 MOV W0, WZR ; +0xb0, 0x58964 LDP X29, X30, [SP,#0x30+var_s0] ; +0xb4, 0x58968 B loc_593C0 ; +0xb8, 0x5896c