; ; sub_5A918 from 0x5a918 to 0x5aa6c (340 bytes) ; ; 6 xrefs: ; > sub_59FEC @ 0x5a120 ; > sub_5A244 @ 0x5a2b8 ; > sub_5A364 @ 0x5a430 ; > sub_60458 @ 0x60574 ; > sub_8D6F8 @ 0x8eee8 ; > FMOD::Channel::setPosition @ 0xceaa0 ; ; 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, 0x5a918 STP X20, X19, [SP,#0x30+var_10] ; +0x4, 0x5a91c STP X29, X30, [SP,#0x30+var_s0] ; +0x8, 0x5a920 LDR X8, [X0,#0x1D8] ; +0xc, 0x5a924 STR X21, [SP,#0x30+var_20] ; +0x10, 0x5a928 ADD X29, SP, #0x30 ; +0x14, 0x5a92c CBZ X8, loc_5AA24 ; +0x18, 0x5a930 BL sub_5C688 ; +0x1c, 0x5a934 CBZ X9, loc_5AA24 ; +0x20, 0x5a938 MOV W21, W2 ; +0x24, 0x5a93c TST W2, #0x600 ; +0x28, 0x5a940 B.EQ loc_5A950 ; +0x2c, 0x5a944 MOV W0, #0x44 ; 'D' ; +0x30, 0x5a948 B loc_5AA28 ; +0x34, 0x5a94c MOV W20, W1 ; +0x38, 0x5a950 TBNZ W21, #4, loc_5A984 ; +0x3c, 0x5a954 LDR X0, [X8,#0x28] ; +0x40, 0x5a958 CBZ X0, loc_5A984 ; +0x44, 0x5a95c LDR X8, [X0] ; +0x48, 0x5a960 SUB X1, X29, #-var_14 ; +0x4c, 0x5a964 MOV W2, W21 ; +0x50, 0x5a968 LDR X8, [X8,#0x98] ; +0x54, 0x5a96c BLR X8 ; +0x58, 0x5a970 CBNZ W0, loc_5AA28 ; +0x5c, 0x5a974 LDUR W8, [X29,#var_14] ; +0x60, 0x5a978 CMP W8, W20 ; +0x64, 0x5a97c B.LS loc_5AA30 ; +0x68, 0x5a980 TST W21, #7 ; +0x6c, 0x5a984 B.EQ loc_5A9D4 ; +0x70, 0x5a988 LDR X0, [X19,#0x1D8] ; +0x74, 0x5a98c LDR X8, [X0,#0x28] ; +0x78, 0x5a990 CBZ X8, loc_5A9F8 ; +0x7c, 0x5a994 LDR W2, [X8,#0x68] ; +0x80, 0x5a998 LDR W3, [X8,#0x28] ; +0x84, 0x5a99c LDR S0, [X8,#0x6C] ; +0x88, 0x5a9a0 TBNZ W21, #1, loc_5AA18 ; +0x8c, 0x5a9a4 TBNZ W21, #2, loc_5AA38 ; +0x90, 0x5a9a8 TBZ W21, #0, loc_5AA50 ; +0x94, 0x5a9ac ADRP X8, #dword_2F10C@PAGE ; +0x98, 0x5a9b0 LDR S1, [X8,#dword_2F10C@PAGEOFF] ; +0x9c, 0x5a9b4 UCVTF S2, W20 ; +0xa0, 0x5a9b8 FMOV S3, #0.5 ; +0xa4, 0x5a9bc FMUL S1, S2, S1 ; +0xa8, 0x5a9c0 FMADD S0, S1, S0, S3 ; +0xac, 0x5a9c4 FCVTZU W8, S0 ; +0xb0, 0x5a9c8 STR W8, [SP,#0x30+var_28+4] ; +0xb4, 0x5a9cc B loc_5AA1C ; +0xb8, 0x5a9d0 LDR X0, [X19,#0x1D8] ; +0xbc, 0x5a9d4 MOV W1, W20 ; +0xc0, 0x5a9d8 MOV W2, W21 ; +0xc4, 0x5a9dc MOV W3, WZR ; +0xc8, 0x5a9e0 LDR X8, [X0] ; +0xcc, 0x5a9e4 LDR X8, [X8,#0xD8] ; +0xd0, 0x5a9e8 BLR X8 ; +0xd4, 0x5a9ec CBNZ W0, loc_5AA28 ; +0xd8, 0x5a9f0 B loc_5AA64 ; +0xdc, 0x5a9f4 LDR X8, [X0,#0x30] ; +0xe0, 0x5a9f8 CBZ X8, loc_5AA24 ; +0xe4, 0x5a9fc LDR X9, [X19,#8] ; +0xe8, 0x5aa00 LDRH W2, [X8,#0x118] ; +0xec, 0x5aa04 MOV W3, #5 ; +0xf0, 0x5aa08 LDR S0, [X9,#0x6D0] ; +0xf4, 0x5aa0c SCVTF S0, S0 ; +0xf8, 0x5aa10 TBZ W21, #1, loc_5A9A8 ; +0xfc, 0x5aa14 STR W20, [SP,#0x30+var_28+4] ; +0x100, 0x5aa18 STR WZR, [SP,#0x30+var_28] ; +0x104, 0x5aa1c B loc_5AA50 ; +0x108, 0x5aa20 MOV W0, #0x1E ; +0x10c, 0x5aa24 LDP X29, X30, [SP,#0x30+var_s0] ; +0x110, 0x5aa28 B loc_5C5BC ; +0x114, 0x5aa2c MOV W0, #0x20 ; ' ' ; +0x118, 0x5aa30 B loc_5AA28 ; +0x11c, 0x5aa34 ADD X8, SP, #0x30+var_28 ; +0x120, 0x5aa38 ORR X1, X8, #4 ; +0x124, 0x5aa3c MOV W0, W20 ; +0x128, 0x5aa40 BL sub_5C214 ; +0x12c, 0x5aa44 STR WZR, [SP,#0x30+var_28] ; +0x130, 0x5aa48 LDR X0, [X19,#0x1D8] ; +0x134, 0x5aa4c LDR X8, [X0] ; +0x138, 0x5aa50 LDR X1, [SP,#0x30+var_28] ; +0x13c, 0x5aa54 LDR X8, [X8,#0x80] ; +0x140, 0x5aa58 BLR X8 ; +0x144, 0x5aa5c CBNZ W0, loc_5AA28 ; +0x148, 0x5aa60 BL sub_5C71C ; +0x14c, 0x5aa64 B loc_5AA28 ; +0x150, 0x5aa68