; ; sub_5B3B0 from 0x5b3b0 to 0x5b530 (384 bytes) ; ; 3 xrefs: ; > sub_5B538 @ 0x5b5c0 ; > sub_5BCF8 @ 0x5bd68 ; > sub_7C19C @ 0x7c21c ; ; 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 ; STR X21, [SP,#-0x10+var_20]! ; +0x0, 0x5b3b0 MOV W21, W2 ; +0x4, 0x5b3b4 AND W2, W2, #1 ; +0x8, 0x5b3b8 MOV W3, WZR ; +0xc, 0x5b3bc STP X20, X19, [SP,#0x20+var_10] ; +0x10, 0x5b3c0 STP X29, X30, [SP,#0x20+var_s0] ; +0x14, 0x5b3c4 ADD X29, SP, #0x20 ; +0x18, 0x5b3c8 MOV W20, W1 ; +0x1c, 0x5b3cc MOV X19, X0 ; +0x20, 0x5b3d0 BL sub_55DCC ; +0x24, 0x5b3d4 CBZ W0, loc_5B3E4 ; +0x28, 0x5b3d8 LDP X29, X30, [SP,#0x20+var_s0] ; +0x2c, 0x5b3dc B loc_5C56C ; +0x30, 0x5b3e0 LDR X8, [X19,#0x1D8] ; +0x34, 0x5b3e4 CBZ X8, loc_5B424 ; +0x38, 0x5b3e8 LDR X8, [X19] ; +0x3c, 0x5b3ec ADD X1, SP, #0x20+var_18 ; +0x40, 0x5b3f0 MOV X0, X19 ; +0x44, 0x5b3f4 LDR X8, [X8,#0x18] ; +0x48, 0x5b3f8 BLR X8 ; +0x4c, 0x5b3fc CBNZ W0, loc_5B3DC ; +0x50, 0x5b400 LDRB W8, [SP,#0x20+var_18] ; +0x54, 0x5b404 CBZ W8, loc_5B42C ; +0x58, 0x5b408 LDR W8, [X19,#0x48] ; +0x5c, 0x5b40c TBNZ W8, #0x16, loc_5B45C ; +0x60, 0x5b410 ORR W8, W8, #0x400000 ; +0x64, 0x5b414 STR W8, [X19,#0x48] ; +0x68, 0x5b418 TBZ W8, #0x12, loc_5B478 ; +0x6c, 0x5b41c B loc_5B528 ; +0x70, 0x5b420 MOV W0, #0x1E ; +0x74, 0x5b424 B loc_5B3DC ; +0x78, 0x5b428 LDR X0, [X19,#0x1D8] ; +0x7c, 0x5b42c ADD X1, SP, #0x20+var_18 ; +0x80, 0x5b430 LDR X8, [X0] ; +0x84, 0x5b434 LDR X8, [X8,#0x60] ; +0x88, 0x5b438 BLR X8 ; +0x8c, 0x5b43c CBNZ W0, loc_5B3DC ; +0x90, 0x5b440 LDRB W8, [SP,#0x20+var_18] ; +0x94, 0x5b444 CBNZ W8, loc_5B40C ; +0x98, 0x5b448 LDR W8, [X19,#0x48] ; +0x9c, 0x5b44c TBNZ W8, #0x12, loc_5B40C ; +0xa0, 0x5b450 AND W8, W8, #0xFF3FFFFF ; +0xa4, 0x5b454 B loc_5B418 ; +0xa8, 0x5b458 TBNZ W8, #0x11, loc_5B474 ; +0xac, 0x5b45c AND W8, W8, #0xFFFBFFFF ; +0xb0, 0x5b460 ORR W8, W8, #0x800000 ; +0xb4, 0x5b464 BL sub_5C64C ; +0xb8, 0x5b468 CBNZ W0, loc_5B3DC ; +0xbc, 0x5b46c LDR W8, [X19,#0x48] ; +0xc0, 0x5b470 TBNZ W8, #0x12, loc_5B528 ; +0xc4, 0x5b474 LDR X8, [X19] ; +0xc8, 0x5b478 ADD X1, SP, #0x20+var_14 ; +0xcc, 0x5b47c BL sub_5C658 ; +0xd0, 0x5b480 CBNZ W0, loc_5B3DC ; +0xd4, 0x5b484 LDRB W8, [SP,#0x20+var_14] ; +0xd8, 0x5b488 TBNZ W8, #3, loc_5B4C0 ; +0xdc, 0x5b48c TBZ W21, #0, loc_5B49C ; +0xe0, 0x5b490 MOV W2, #1 ; +0xe4, 0x5b494 B loc_5B4B0 ; +0xe8, 0x5b498 LDR X8, [X19,#0x1D8] ; +0xec, 0x5b49c MOV W9, #0x60 ; '`' ; +0xf0, 0x5b4a0 LDR W8, [X8,#0x3C] ; +0xf4, 0x5b4a4 BICS WZR, W9, W8 ; +0xf8, 0x5b4a8 CSET W2, EQ ; +0xfc, 0x5b4ac MOV X0, X19 ; +0x100, 0x5b4b0 MOV W1, W20 ; +0x104, 0x5b4b4 BL sub_54DB0 ; +0x108, 0x5b4b8 CBNZ W0, loc_5B3DC ; +0x10c, 0x5b4bc LDR X0, [X19,#0x1D8] ; +0x110, 0x5b4c0 MOV W1, W20 ; +0x114, 0x5b4c4 LDR X8, [X0] ; +0x118, 0x5b4c8 LDR X8, [X8,#0x40] ; +0x11c, 0x5b4cc BLR X8 ; +0x120, 0x5b4d0 CBNZ W0, loc_5B3DC ; +0x124, 0x5b4d4 BL sub_5C6D0 ; +0x128, 0x5b4d8 CBNZ W0, loc_5B3DC ; +0x12c, 0x5b4dc LDR X8, [X19,#0x1D8] ; +0x130, 0x5b4e0 CBZ X8, loc_5B4F0 ; +0x134, 0x5b4e4 LDRB W8, [X8,#0x3C] ; +0x138, 0x5b4e8 TBNZ W8, #7, loc_5B528 ; +0x13c, 0x5b4ec LDR W8, [X19,#0x48] ; +0x140, 0x5b4f0 MOV W9, #0x1000004 ; +0x144, 0x5b4f4 TST W8, W9 ; +0x14c, 0x5b4fc B.NE loc_5B514 ; +0x150, 0x5b500 LDR X0, [X19,#8] ; +0x154, 0x5b504 BL sub_55C5C ; +0x158, 0x5b508 TBZ W0, #0, loc_5B528 ; +0x15c, 0x5b50c LDR W8, [X19,#0x48] ; +0x160, 0x5b510 MOV W9, #0xFEFFFFFB ; +0x164, 0x5b514 AND W8, W8, W9 ; +0x16c, 0x5b51c BL sub_5C64C ; +0x170, 0x5b520 CBNZ W0, loc_5B3DC ; +0x174, 0x5b524 MOV W0, WZR ; +0x178, 0x5b528 B loc_5B3DC ; +0x17c, 0x5b52c