; ; sub_5D078 from 0x5d078 to 0x5d1cc (340 bytes) ; ; 1 xrefs: ; > sub_54DB0 @ 0x54ed8 ; ; 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, #0x50 ; +0x0, 0x5d078 STR X21, [SP,#0x40+var_20] ; +0x4, 0x5d07c STP X29, X30, [SP,#0x40+var_s0] ; +0x8, 0x5d080 ADD X29, SP, #0x40 ; +0xc, 0x5d084 MOV X21, X1 ; +0x10, 0x5d088 STP X20, X19, [SP,#0x40+var_10] ; +0x14, 0x5d08c MOV X20, X2 ; +0x18, 0x5d090 MOV X19, X0 ; +0x1c, 0x5d094 SUB X1, X29, #-var_18 ; +0x20, 0x5d098 MOV X0, X21 ; +0x24, 0x5d09c MOV X2, XZR ; +0x28, 0x5d0a0 STUR XZR, [X29,#var_18] ; +0x2c, 0x5d0a4 BL ._ZN4FMOD8ChannelI8validateEPNS_7ChannelEPPS0_PNS_15SystemLockScopeE; FMOD::ChannelI::validate(FMOD::Channel *,FMOD::ChannelI**,FMOD::SystemLockScope *) ; +0x30, 0x5d0a8 CBZ W0, loc_5D134 ; +0x34, 0x5d0ac ADD X1, SP, #0x40+var_38 ; +0x38, 0x5d0b0 MOV X0, X21 ; +0x3c, 0x5d0b4 MOV X2, XZR ; +0x40, 0x5d0b8 BL sub_579DC ; +0x44, 0x5d0bc CBNZ W0, loc_5D1B8 ; +0x48, 0x5d0c0 BL sub_5D4C8 ; +0x4c, 0x5d0c4 LDR X8, [SP,#0x40+var_38] ; +0x50, 0x5d0c8 MOV W9, #1 ; +0x54, 0x5d0cc STRB W9, [SP,#0x40+var_28] ; +0x58, 0x5d0d0 LDR W9, [X8,#0x220] ; +0x5c, 0x5d0d4 CMP W9, #1 ; +0x60, 0x5d0d8 B.EQ loc_5D1B0 ; +0x64, 0x5d0dc STR WZR, [X8,#0x220] ; +0x68, 0x5d0e0 STR X21, [X8,#0x228] ; +0x6c, 0x5d0e4 LDR X9, [X20] ; +0x70, 0x5d0e8 LDR X10, [X8,#0x208] ; +0x74, 0x5d0ec STR X9, [X8,#0x230] ; +0x78, 0x5d0f0 LDR W11, [X20,#8] ; +0x7c, 0x5d0f4 ADD X9, X8, #0x208 ; +0x80, 0x5d0f8 CMP X10, X9 ; +0x84, 0x5d0fc STR W11, [X8,#0x238] ; +0x88, 0x5d100 B.NE loc_5D1B0 ; +0x8c, 0x5d104 LDR X10, [X8,#0x210] ; +0x90, 0x5d108 CMP X10, X9 ; +0x94, 0x5d10c B.NE loc_5D1B0 ; +0x98, 0x5d110 LDR X10, [X19,#0x160] ; +0x9c, 0x5d114 ADD X11, X19, #0x158 ; +0xa0, 0x5d118 STR X11, [X8,#0x208] ; +0xa4, 0x5d11c STR X10, [X8,#0x210] ; +0xa8, 0x5d120 STR X9, [X19,#0x160] ; +0xac, 0x5d124 LDR X8, [X8,#0x210] ; +0xb0, 0x5d128 STR X9, [X8] ; +0xb4, 0x5d12c B loc_5D1B0 ; +0xb8, 0x5d130 BL sub_5D4C8 ; +0xbc, 0x5d134 LDUR X8, [X29,#var_18] ; +0xc0, 0x5d138 MOV W9, #1 ; +0xc4, 0x5d13c STRB W9, [SP,#0x40+var_28] ; +0xc8, 0x5d140 LDR X9, [X19,#0x150] ; +0xcc, 0x5d144 LDRSW X10, [X8,#qword_1D0] ; +0xd0, 0x5d148 ADD X8, X9, X10,LSL#6 ; +0xd4, 0x5d14c MOV X11, X8 ; +0xd8, 0x5d150 LDR W12, [X11,#0x18]! ; +0xdc, 0x5d154 CMP W12, #1 ; +0xe0, 0x5d158 B.EQ loc_5D1B0 ; +0xe4, 0x5d15c STR WZR, [X11] ; +0xe8, 0x5d160 STR X21, [X8,#0x20] ; +0xec, 0x5d164 LDR X11, [X20] ; +0xf0, 0x5d168 STR X11, [X8,#0x28] ; +0xf4, 0x5d16c LDR X11, [X8] ; +0xf8, 0x5d170 LDR W12, [X20,#8] ; +0xfc, 0x5d174 CMP X11, X8 ; +0x100, 0x5d178 STR W12, [X8,#0x30] ; +0x104, 0x5d17c B.NE loc_5D1B0 ; +0x108, 0x5d180 ADD X9, X9, X10,LSL#6 ; +0x10c, 0x5d184 LDR X10, [X9,#8]! ; +0x110, 0x5d188 CMP X10, X8 ; +0x114, 0x5d18c B.NE loc_5D1B0 ; +0x118, 0x5d190 LDR X10, [X19,#0x160] ; +0x11c, 0x5d194 ADD X11, X19, #0x158 ; +0x120, 0x5d198 STR X10, [X9] ; +0x124, 0x5d19c STR X11, [X8] ; +0x128, 0x5d1a0 STR X8, [X19,#0x160] ; +0x12c, 0x5d1a4 LDR X9, [X9] ; +0x130, 0x5d1a8 STR X8, [X9] ; +0x134, 0x5d1ac ADD X0, SP, #0x40+var_30 ; +0x138, 0x5d1b0 BL sub_52090 ; +0x13c, 0x5d1b4 LDP X29, X30, [SP,#0x40+var_s0] ; +0x140, 0x5d1b8 LDP X20, X19, [SP,#0x40+var_10] ; +0x144, 0x5d1bc LDR X21, [SP,#0x40+var_20] ; +0x148, 0x5d1c0 ADD SP, SP, #0x50 ; 'P' ; +0x14c, 0x5d1c4 RET ; +0x150, 0x5d1c8