; ; sub_5B538 from 0x5b538 to 0x5b6a8 (368 bytes) ; ; 2 xrefs: ; > sub_92AE0 @ 0x931a0 ; > @ 0x10c630 ; ; 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, #0x30 ; +0x0, 0x5b538 STP X20, X19, [SP,#0x30+var_20] ; +0x4, 0x5b53c STP X29, X30, [SP,#0x30+var_10] ; +0x8, 0x5b540 BL sub_5C6DC ; +0xc, 0x5b544 CBZ X8, loc_5B69C ; +0x10, 0x5b548 BL sub_5C688 ; +0x14, 0x5b54c CBZ X9, loc_5B69C ; +0x18, 0x5b550 LDR W8, [X19,#0x48] ; +0x1c, 0x5b554 TST W1, #1 ; +0x20, 0x5b558 AND W10, W8, #0xFFFFFFFE ; +0x24, 0x5b55c ORR W8, W8, #1 ; +0x28, 0x5b560 CSEL W8, W8, W10, NE ; +0x2c, 0x5b564 STR W8, [X19,#0x48] ; +0x30, 0x5b568 LDRB W9, [X9,#0x48] ; +0x34, 0x5b56c AND W9, W9, #0x10 ; +0x38, 0x5b570 ORR W20, W1, W9,LSR#4 ; +0x3c, 0x5b574 TBZ W8, #0x12, loc_5B5D0 ; +0x40, 0x5b578 TBNZ W20, #0, loc_5B5D0 ; +0x44, 0x5b57c AND W8, W8, #0xFFFBFFFF ; +0x48, 0x5b580 MOV X0, X19 ; +0x4c, 0x5b584 STR WZR, [SP,#0x30+var_28] ; +0x50, 0x5b588 STR W8, [X19,#0x48] ; +0x54, 0x5b58c BL sub_597E0 ; +0x58, 0x5b590 LDR X8, [X19] ; +0x5c, 0x5b594 ADD X1, SP, #0x30+var_28 ; +0x60, 0x5b598 BL sub_5C658 ; +0x64, 0x5b59c LDRB W8, [SP,#0x30+var_28] ; +0x68, 0x5b5a0 TBZ W8, #4, loc_5B5D0 ; +0x6c, 0x5b5a4 LDR W8, [X19,#0x48] ; +0x70, 0x5b5a8 MOV W2, #1 ; +0x74, 0x5b5ac MOV X0, X19 ; +0x78, 0x5b5b0 MOV W1, WZR ; +0x7c, 0x5b5b4 ORR W8, W8, #0x80000 ; +0x80, 0x5b5b8 STR W8, [X19,#0x48] ; +0x84, 0x5b5bc BL sub_5B3B0 ; +0x88, 0x5b5c0 LDR W8, [X19,#0x48] ; +0x8c, 0x5b5c4 AND W8, W8, #0xFFF7FFFF ; +0x90, 0x5b5c8 STR W8, [X19,#0x48] ; +0x94, 0x5b5cc LDR X8, [X19] ; +0x98, 0x5b5d0 ADD X1, SP, #0x30+var_24 ; +0x9c, 0x5b5d4 BL sub_5C6C4 ; +0xa0, 0x5b5d8 CBNZ W0, loc_5B6A0 ; +0xa4, 0x5b5dc LDR X8, [X19,#0x20] ; +0xa8, 0x5b5e0 LDRB W9, [SP,#0x30+var_24] ; +0xac, 0x5b5e4 LDRB W8, [X8,#0x48] ; +0xb0, 0x5b5e8 TST W8, #0x10 ; +0xb4, 0x5b5ec CSET W8, EQ ; +0xb8, 0x5b5f0 CBNZ W9, loc_5B624 ; +0xbc, 0x5b5f4 AND W8, W20, W8 ; +0xc0, 0x5b5f8 CBZ W8, loc_5B624 ; +0xc4, 0x5b5fc LDR X0, [X19,#0x60] ; +0xc8, 0x5b600 BL sub_5C500 ; +0xcc, 0x5b604 CBNZ W0, loc_5B6A0 ; +0xd0, 0x5b608 LDR X0, [X19,#0x70] ; +0xd4, 0x5b60c LDR X8, [X19,#0x60] ; +0xd8, 0x5b610 CMP X0, X8 ; +0xdc, 0x5b614 B.EQ loc_5B624 ; +0xe0, 0x5b618 BL sub_5C500 ; +0xe4, 0x5b61c CBNZ W0, loc_5B6A0 ; +0xe8, 0x5b620 LDR X0, [X19,#0x1D8] ; +0xec, 0x5b624 AND W1, W20, #1 ; +0xf0, 0x5b628 LDR X8, [X0] ; +0xf4, 0x5b62c LDR X8, [X8,#0x58] ; +0xf8, 0x5b630 BLR X8 ; +0xfc, 0x5b634 CBNZ W0, loc_5B6A0 ; +0x100, 0x5b638 LDRB W8, [SP,#0x30+var_24] ; +0x104, 0x5b63c CBNZ W8, loc_5B67C ; +0x108, 0x5b640 LDR X8, [X19,#0x20] ; +0x10c, 0x5b644 LDRB W8, [X8,#0x48] ; +0x110, 0x5b648 AND W8, W8, #0x10 ; +0x114, 0x5b64c ORR W8, W20, W8,LSR#4 ; +0x118, 0x5b650 TBNZ W8, #0, loc_5B67C ; +0x11c, 0x5b654 LDR X0, [X19,#0x70] ; +0x120, 0x5b658 LDR X8, [X19,#0x60] ; +0x124, 0x5b65c CMP X0, X8 ; +0x128, 0x5b660 B.EQ loc_5B674 ; +0x12c, 0x5b664 BL sub_5C710 ; +0x130, 0x5b668 CBNZ W0, loc_5B6A0 ; +0x134, 0x5b66c LDR X0, [X19,#0x60] ; +0x138, 0x5b670 BL sub_5C710 ; +0x13c, 0x5b674 CBNZ W0, loc_5B6A0 ; +0x140, 0x5b678 TBNZ W20, #0, loc_5B694 ; +0x144, 0x5b67c LDR W8, [X19,#0x48] ; +0x148, 0x5b680 TBZ W8, #0x17, loc_5B694 ; +0x14c, 0x5b684 AND W8, W8, #0xFF3FFFFF ; +0x150, 0x5b688 BL sub_5C64C ; +0x154, 0x5b68c CBNZ W0, loc_5B6A0 ; +0x158, 0x5b690 MOV W0, WZR ; +0x15c, 0x5b694 B loc_5B6A0 ; +0x160, 0x5b698 MOV W0, #0x1E ; +0x164, 0x5b69c LDP X29, X30, [SP,#0x30+var_10] ; +0x168, 0x5b6a0 B loc_5C60C ; +0x16c, 0x5b6a4