; ; sub_5614C from 0x5614c to 0x562a4 (344 bytes) ; ; 2 xrefs: ; > sub_58B74 @ 0x58bac ; > sub_5BA6C @ 0x5baa0 ; ; 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 X25, [SP,#-0x10+var_40]! ; +0x0, 0x5614c STP X24, X23, [SP,#0x40+var_30] ; +0x4, 0x56150 STP X22, X21, [SP,#0x40+var_20] ; +0x8, 0x56154 STP X20, X19, [SP,#0x40+var_10] ; +0xc, 0x56158 STP X29, X30, [SP,#0x40+var_s0] ; +0x10, 0x5615c ADD X29, SP, #0x40 ; +0x14, 0x56160 TBZ W5, #0, loc_561F8 ; +0x18, 0x56164 MOV X23, X1 ; +0x1c, 0x56168 MOV X19, X0 ; +0x20, 0x5616c CBZ X1, loc_561DC ; +0x24, 0x56170 CMP W4, #0 ; +0x28, 0x56174 MOV W21, W3 ; +0x2c, 0x56178 MOV W22, W2 ; +0x30, 0x5617c CSEL W11, W3, W4, EQ ; +0x34, 0x56180 MOV W20, W4 ; +0x38, 0x56184 MOV X8, XZR ; +0x3c, 0x56188 SXTW X9, W21 ; +0x40, 0x5618c SXTW X10, W22 ; +0x44, 0x56190 SBFIZ X11, X11, #2, #0x20 ; ' ' ; +0x48, 0x56194 MOV X12, X23 ; +0x4c, 0x56198 CMP X8, X10 ; +0x50, 0x5619c B.GE loc_56214 ; +0x54, 0x561a0 MOV X13, XZR ; +0x58, 0x561a4 CMP X13, X9 ; +0x5c, 0x561a8 B.GE loc_561C8 ; +0x60, 0x561ac LDR W14, [X12,X13,LSL#2] ; +0x64, 0x561b0 ADD X13, X13, #1 ; +0x68, 0x561b4 MVN W14, W14 ; +0x6c, 0x561b8 TST W14, #0x7F800000 ; +0x70, 0x561bc B.NE loc_561A8 ; +0x74, 0x561c0 B loc_561D4 ; +0x78, 0x561c4 ADD X8, X8, #1 ; +0x7c, 0x561c8 ADD X12, X12, X11 ; +0x80, 0x561cc B loc_5619C ; +0x84, 0x561d0 MOV W0, #0x1D ; +0x88, 0x561d4 B loc_561FC ; +0x8c, 0x561d8 LDR X1, [X19,#0x40] ; +0x90, 0x561dc CBZ X1, loc_561F8 ; +0x94, 0x561e0 LDR X8, [X19,#8] ; +0x98, 0x561e4 MOV W9, #0x8C8 ; +0x9c, 0x561e8 BL loc_577E4 ; +0xa0, 0x561ec STR WZR, [X19,#0x38] ; +0xa4, 0x561f0 STR XZR, [X19,#0x40] ; +0xa8, 0x561f4 MOV W0, WZR ; +0xac, 0x561f8 LDP X29, X30, [SP,#0x40+var_s0] ; +0xb0, 0x561fc LDP X20, X19, [SP,#0x40+var_10] ; +0xb4, 0x56200 LDP X22, X21, [SP,#0x40+var_20] ; +0xb8, 0x56204 LDP X24, X23, [SP,#0x40+var_30] ; +0xbc, 0x56208 LDR X25, [SP+0x40+var_40],#0x50 ; +0xc0, 0x5620c RET ; +0xc4, 0x56210 LDR X1, [X19,#0x40] ; +0xc8, 0x56214 ADD X24, X19, #0x38 ; '8' ; +0xcc, 0x56218 CBZ X1, loc_56244 ; +0xd0, 0x5621c LDRSH W8, [X24] ; +0xd4, 0x56220 CMP W8, W21 ; +0xd8, 0x56224 B.LT loc_56238 ; +0xdc, 0x56228 LDRSH W8, [X19,#0x3A] ; +0xe0, 0x5622c CMP W8, W22 ; +0xe4, 0x56230 B.GE loc_5627C ; +0xe8, 0x56234 LDR X8, [X19,#8] ; +0xec, 0x56238 MOV W9, #0x8C8 ; +0xf0, 0x5623c BL loc_577E4 ; +0xf4, 0x56240 LDR X8, [X19,#8] ; +0xf8, 0x56244 CMP W21, W22 ; +0xfc, 0x56248 MOV W9, #0x8C8 ; +0x100, 0x5624c CSEL W25, W21, W22, GT ; +0x104, 0x56250 MOVK W9, #1,LSL#16 ; +0x108, 0x56254 MUL W10, W22, W25 ; +0x10c, 0x56258 ADRP X2, #0x2D000 ; +0x110, 0x5625c ADD X0, X8, X9 ; +0x114, 0x56260 LSL W1, W10, #2 ; +0x118, 0x56264 BL loc_57858 ; +0x11c, 0x56268 CBZ X0, loc_5629C ; +0x120, 0x5626c STRH W25, [X19,#0x38] ; +0x124, 0x56270 STRH W22, [X19,#0x3A] ; +0x128, 0x56274 STR X0, [X19,#0x40] ; +0x12c, 0x56278 MOV X0, X24 ; +0x130, 0x5627c MOV X1, X23 ; +0x134, 0x56280 MOV W2, W22 ; +0x138, 0x56284 MOV W3, W21 ; +0x13c, 0x56288 MOV W4, W20 ; +0x140, 0x5628c BL sub_B7BB4 ; +0x144, 0x56290 CBNZ W0, loc_561FC ; +0x148, 0x56294 B loc_561F8 ; +0x14c, 0x56298 MOV W0, #0x26 ; '&' ; +0x150, 0x5629c B loc_561FC ; +0x154, 0x562a0