; ; sub_5C88C from 0x5c88c to 0x5c9b4 (296 bytes) ; ; 2 xrefs: ; > sub_92AE0 @ 0x93138 ; > sub_D7340 @ 0xd7354 ; ; 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, 0x5c88c STP X24, X23, [SP,#0x40+var_30] ; +0x4, 0x5c890 STP X22, X21, [SP,#0x40+var_20] ; +0x8, 0x5c894 STP X20, X19, [SP,#0x40+var_10] ; +0xc, 0x5c898 STP X29, X30, [SP,#0x40+var_s0] ; +0x10, 0x5c89c ADD X29, SP, #0x40 ; +0x14, 0x5c8a0 CBZ X1, loc_5C8F0 ; +0x18, 0x5c8a4 MOV X19, X1 ; +0x1c, 0x5c8a8 MOV X20, X0 ; +0x20, 0x5c8ac CMN W2, #1 ; +0x24, 0x5c8b0 B.EQ loc_5C8F8 ; +0x28, 0x5c8b4 TBNZ W2, #0x1F, loc_5C958 ; +0x2c, 0x5c8b8 LDR W8, [X20] ; +0x30, 0x5c8bc CMP W8, W2 ; +0x34, 0x5c8c0 B.LE loc_5C958 ; +0x38, 0x5c8c4 LDR X8, [X20,#0x18] ; +0x3c, 0x5c8c8 MOV W10, #0x110 ; +0x40, 0x5c8cc MOV W0, WZR ; +0x44, 0x5c8d0 LDR X8, [X8,W2,SXTW#3] ; +0x48, 0x5c8d4 LDR W9, [X8,#0x3C] ; +0x4c, 0x5c8d8 AND W9, W9, #0xFFFFFE7F ; +0x50, 0x5c8dc ORR W9, W9, W10 ; +0x54, 0x5c8e0 STR W9, [X8,#0x3C] ; +0x58, 0x5c8e4 STR X8, [X19] ; +0x5c, 0x5c8e8 B loc_5C978 ; +0x60, 0x5c8ec MOV W0, #0x1F ; +0x64, 0x5c8f0 B loc_5C978 ; +0x68, 0x5c8f4 MOV W21, W3 ; +0x6c, 0x5c8f8 MOV X23, XZR ; +0x70, 0x5c8fc MOV W24, #0x8110 ; +0x74, 0x5c900 LDRSW X8, [X20] ; +0x78, 0x5c904 CMP X23, X8 ; +0x7c, 0x5c908 B.GE loc_5C958 ; +0x80, 0x5c90c LDR X8, [X20,#0x18] ; +0x84, 0x5c910 LDR X22, [X8,X23,LSL#3] ; +0x88, 0x5c914 LDR W8, [X22,#0x3C] ; +0x8c, 0x5c918 TST W8, W24 ; +0x90, 0x5c91c B.NE loc_5C950 ; +0x94, 0x5c920 TBZ W8, #0xC, loc_5C92C ; +0x98, 0x5c924 TBZ W21, #0, loc_5C950 ; +0x9c, 0x5c928 LDR X8, [X22] ; +0xa0, 0x5c92c ADD X1, SP, #0x40+var_34 ; +0xa4, 0x5c930 MOV W2, #1 ; +0xa8, 0x5c934 MOV X0, X22 ; +0xac, 0x5c938 LDR X8, [X8,#0xB8] ; +0xb0, 0x5c93c BLR X8 ; +0xb4, 0x5c940 CBNZ W0, loc_5C950 ; +0xb8, 0x5c944 LDRB W8, [SP,#0x40+var_34] ; +0xbc, 0x5c948 CBZ W8, loc_5C990 ; +0xc0, 0x5c94c ADD X23, X23, #1 ; +0xc4, 0x5c950 B loc_5C904 ; +0xc8, 0x5c954 LDR X8, [X19] ; +0xcc, 0x5c958 CBZ X8, loc_5C974 ; +0xd0, 0x5c95c LDR W9, [X8,#0x3C] ; +0xd4, 0x5c960 MOV W10, #0xFFFFFE6F ; +0xd8, 0x5c964 AND W9, W9, W10 ; +0xdc, 0x5c968 ORR W9, W9, #0x80 ; +0xe0, 0x5c96c STR W9, [X8,#0x3C] ; +0xe4, 0x5c970 MOV W0, #2 ; +0xe8, 0x5c974 LDP X29, X30, [SP,#0x40+var_s0] ; +0xec, 0x5c978 LDP X20, X19, [SP,#0x40+var_10] ; +0xf0, 0x5c97c LDP X22, X21, [SP,#0x40+var_20] ; +0xf4, 0x5c980 LDP X24, X23, [SP,#0x40+var_30] ; +0xf8, 0x5c984 ADD SP, SP, #0x50 ; 'P' ; +0xfc, 0x5c988 RET ; +0x100, 0x5c98c LDR W8, [X22,#0x3C] ; +0x104, 0x5c990 MOV W9, #0xFFFFEE6F ; +0x108, 0x5c994 MOV W10, #0x110 ; +0x10c, 0x5c998 MOV W0, WZR ; +0x110, 0x5c99c AND W8, W8, W9 ; +0x114, 0x5c9a0 ORR W8, W8, W10 ; +0x118, 0x5c9a4 STR W8, [X22,#0x3C] ; +0x11c, 0x5c9a8 STR X22, [X19] ; +0x120, 0x5c9ac B loc_5C978 ; +0x124, 0x5c9b0