; ; sub_5B13C from 0x5b13c to 0x5b3b0 (628 bytes) ; ; 2 xrefs: ; > sub_5C6D0 @ 0x5c6d8 ; > sub_5C71C @ 0x5c724 ; ; 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, 0x5b13c STP X22, X21, [SP,#0x30+var_20] ; +0x4, 0x5b140 STP X20, X19, [SP,#0x30+var_10] ; +0x8, 0x5b144 STP X29, X30, [SP,#0x30+var_s0] ; +0xc, 0x5b148 LDR X8, [X0,#0x1D8] ; +0x10, 0x5b14c ADD X29, SP, #0x30 ; +0x14, 0x5b150 LDR X21, [X8,#0x28] ; +0x18, 0x5b154 CBZ X21, loc_5B1B0 ; +0x1c, 0x5b158 LDR X8, [X21,#0xF0] ; +0x20, 0x5b15c MOV X19, X0 ; +0x24, 0x5b160 MOV W20, W1 ; +0x28, 0x5b164 CBZ X8, loc_5B184 ; +0x2c, 0x5b168 LDR W9, [X21,#0xE4] ; +0x30, 0x5b16c CBZ W9, loc_5B184 ; +0x34, 0x5b170 LDR X9, [X19,#0x1F0] ; +0x38, 0x5b174 CBNZ X9, loc_5B184 ; +0x3c, 0x5b178 LDR X8, [X8] ; +0x40, 0x5b17c STR X8, [X19,#0x1F0] ; +0x44, 0x5b180 LDR X8, [X19,#0x1F0] ; +0x48, 0x5b184 CBZ X8, loc_5B1B0 ; +0x4c, 0x5b188 ADD X1, SP, #0x30+var_24 ; +0x50, 0x5b18c MOV W2, #2 ; +0x54, 0x5b190 MOV X0, X19 ; +0x58, 0x5b194 BL sub_5A4DC ; +0x5c, 0x5b198 CBZ W0, loc_5B1BC ; +0x60, 0x5b19c LDR W8, [SP,#0x30+var_24] ; +0x64, 0x5b1a0 MOV W0, WZR ; +0x68, 0x5b1a4 STR W8, [X19,#0x1F8] ; +0x6c, 0x5b1a8 B loc_5B1B4 ; +0x70, 0x5b1ac MOV W0, WZR ; +0x74, 0x5b1b0 LDP X29, X30, [SP,#0x30+var_s0] ; +0x78, 0x5b1b4 B loc_5C6A4 ; +0x7c, 0x5b1b8 LDR S0, [X19,#0x22C] ; +0x80, 0x5b1bc FCMP S0, #0.0 ; +0x84, 0x5b1c0 TBZ W20, #0, loc_5B1D4 ; +0x88, 0x5b1c4 B.LE loc_5B330 ; +0x8c, 0x5b1c8 LDR X8, [X21,#0xF0] ; +0x90, 0x5b1cc B loc_5B338 ; +0x94, 0x5b1d0 B.LE loc_5B1E8 ; +0x98, 0x5b1d4 LDR W8, [SP,#0x30+var_24] ; +0x9c, 0x5b1d8 LDR W9, [X19,#0x1F8] ; +0xa0, 0x5b1dc CMP W8, W9 ; +0xa4, 0x5b1e0 B.CC loc_5B200 ; +0xa8, 0x5b1e4 FCMP S0, #0.0 ; +0xac, 0x5b1e8 B.GE loc_5B208 ; +0xb0, 0x5b1ec LDR W8, [SP,#0x30+var_24] ; +0xb4, 0x5b1f0 LDR W9, [X19,#0x1F8] ; +0xb8, 0x5b1f4 CMP W8, W9 ; +0xbc, 0x5b1f8 B.LS loc_5B208 ; +0xc0, 0x5b1fc MOV W20, #1 ; +0xc4, 0x5b200 B loc_5B20C ; +0xc8, 0x5b204 MOV W20, WZR ; +0xcc, 0x5b208 FCMP S0, #0.0 ; +0xd0, 0x5b20c B.LE loc_5B224 ; +0xd4, 0x5b210 LDR X8, [X19,#0x1F0] ; +0xd8, 0x5b214 LDR W9, [SP,#0x30+var_24] ; +0xdc, 0x5b218 BL sub_5C704 ; +0xe0, 0x5b21c B.HI loc_5B258 ; +0xe4, 0x5b220 FCMP S0, #0.0 ; +0xe8, 0x5b224 B.GE loc_5B248 ; +0xec, 0x5b228 LDR X8, [X19,#0x1F0] ; +0xf0, 0x5b22c LDR W9, [SP,#0x30+var_24] ; +0xf4, 0x5b230 BL sub_5C704 ; +0xf8, 0x5b234 CSET W9, CC ; +0xfc, 0x5b238 ORR W9, W20, W9 ; +0x100, 0x5b23c TBNZ W9, #0, loc_5B250 ; +0x104, 0x5b240 B loc_5B1A0 ; +0x108, 0x5b244 TBZ W20, #0, loc_5B1A0 ; +0x10c, 0x5b248 LDR X8, [X19,#0x1F0] ; +0x110, 0x5b24c FCMP S0, #0.0 ; +0x114, 0x5b250 B.LE loc_5B2B8 ; +0x118, 0x5b254 LDR X9, [X21,#0xF8] ; +0x11c, 0x5b258 CMP X8, X9 ; +0x120, 0x5b25c B.EQ loc_5B298 ; +0x124, 0x5b260 LDR X9, [X21,#0xA8] ; +0x128, 0x5b264 LDR X22, [X8] ; +0x12c, 0x5b268 CBZ X9, loc_5B280 ; +0x130, 0x5b26c LDRH W9, [X8,#0x30] ; +0x134, 0x5b270 LDR W10, [X21,#0xC0] ; +0x138, 0x5b274 CMP W10, W9 ; +0x13c, 0x5b278 B.NE loc_5B290 ; +0x140, 0x5b27c LDR X9, [X19,#0x170] ; +0x144, 0x5b280 CBZ X9, loc_5B290 ; +0x148, 0x5b284 BL sub_5C594 ; +0x14c, 0x5b288 CBNZ W0, loc_5B1B4 ; +0x150, 0x5b28c MOV X8, X22 ; +0x154, 0x5b290 STR X22, [X19,#0x1F0] ; +0x158, 0x5b294 TBZ W20, #0, loc_5B310 ; +0x15c, 0x5b298 LDR X9, [X21,#0xF8] ; +0x160, 0x5b29c CMP X8, X9 ; +0x164, 0x5b2a0 B.NE loc_5B308 ; +0x168, 0x5b2a4 LDR X8, [X21,#0xF0] ; +0x16c, 0x5b2a8 MOV W20, WZR ; +0x170, 0x5b2ac LDR X8, [X8] ; +0x174, 0x5b2b0 B loc_5B324 ; +0x178, 0x5b2b4 LDR X9, [X21,#0xF0] ; +0x17c, 0x5b2b8 CMP X8, X9 ; +0x180, 0x5b2bc B.EQ loc_5B2F8 ; +0x184, 0x5b2c0 LDR X9, [X21,#0xA8] ; +0x188, 0x5b2c4 LDR X22, [X8,#8] ; +0x18c, 0x5b2c8 CBZ X9, loc_5B2E0 ; +0x190, 0x5b2cc LDRH W9, [X8,#0x30] ; +0x194, 0x5b2d0 LDR W10, [X21,#0xC0] ; +0x198, 0x5b2d4 CMP W10, W9 ; +0x19c, 0x5b2d8 B.NE loc_5B2F0 ; +0x1a0, 0x5b2dc LDR X9, [X19,#0x170] ; +0x1a4, 0x5b2e0 CBZ X9, loc_5B2F0 ; +0x1a8, 0x5b2e4 BL sub_5C594 ; +0x1ac, 0x5b2e8 CBNZ W0, loc_5B1B4 ; +0x1b0, 0x5b2ec MOV X8, X22 ; +0x1b4, 0x5b2f0 STR X22, [X19,#0x1F0] ; +0x1b8, 0x5b2f4 TBZ W20, #0, loc_5B310 ; +0x1bc, 0x5b2f8 LDR X9, [X21,#0xF0] ; +0x1c0, 0x5b2fc CMP X8, X9 ; +0x1c4, 0x5b300 B.EQ loc_5B318 ; +0x1c8, 0x5b304 MOV W20, #1 ; +0x1cc, 0x5b308 B loc_5B328 ; +0x1d0, 0x5b30c MOV W20, WZR ; +0x1d4, 0x5b310 B loc_5B328 ; +0x1d8, 0x5b314 LDR X8, [X21,#0xF8] ; +0x1dc, 0x5b318 MOV W20, WZR ; +0x1e0, 0x5b31c LDR X8, [X8,#8] ; +0x1e4, 0x5b320 STR X8, [X19,#0x1F0] ; +0x1e8, 0x5b324 LDR S0, [X19,#0x22C] ; +0x1ec, 0x5b328 B loc_5B20C ; +0x1f0, 0x5b32c LDR X8, [X21,#0xF8] ; +0x1f4, 0x5b330 ADD X8, X8, #8 ; +0x1f8, 0x5b334 LDR X8, [X8] ; +0x1fc, 0x5b338 STR X8, [X19,#0x1F0] ; +0x200, 0x5b33c LDR W9, [SP,#0x30+var_24] ; +0x204, 0x5b340 FCMP S0, #0.0 ; +0x208, 0x5b344 B.LE loc_5B35C ; +0x20c, 0x5b348 BL sub_5C704 ; +0x210, 0x5b34c B.LS loc_5B35C ; +0x214, 0x5b350 LDR W10, [X8,#0x2C] ; +0x218, 0x5b354 B loc_5B378 ; +0x21c, 0x5b358 FCMP S0, #0.0 ; +0x220, 0x5b35c B.GE loc_5B1A0 ; +0x224, 0x5b360 BL sub_5C704 ; +0x228, 0x5b364 B.CS loc_5B1A0 ; +0x22c, 0x5b368 LDR W10, [X8,#0x2C] ; +0x230, 0x5b36c FCMP S0, #0.0 ; +0x234, 0x5b370 B.LE loc_5B390 ; +0x238, 0x5b374 CMP W10, W9 ; +0x23c, 0x5b378 B.CS loc_5B1A0 ; +0x240, 0x5b37c LDR X8, [X8] ; +0x244, 0x5b380 STR X8, [X19,#0x1F0] ; +0x248, 0x5b384 LDR X10, [X21,#0xF8] ; +0x24c, 0x5b388 B loc_5B3A4 ; +0x250, 0x5b38c CMP W10, W9 ; +0x254, 0x5b390 B.LS loc_5B1A0 ; +0x258, 0x5b394 LDR X8, [X8,#8] ; +0x25c, 0x5b398 STR X8, [X19,#0x1F0] ; +0x260, 0x5b39c LDR X10, [X21,#0xF0] ; +0x264, 0x5b3a0 CMP X10, X8 ; +0x268, 0x5b3a4 B.NE loc_5B344 ; +0x26c, 0x5b3a8 B loc_5B1A0 ; +0x270, 0x5b3ac