; ; sub_53EB0 from 0x53eb0 to 0x54100 (592 bytes) ; ; 1 xrefs: ; > @ 0x10c328 ; ; 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, 0x53eb0 STP X20, X19, [SP,#0x20+var_10] ; +0x4, 0x53eb4 STP X29, X30, [SP,#0x20+var_s0] ; +0x8, 0x53eb8 MOV X19, X0 ; +0xc, 0x53ebc LDR X21, [X0,#0x28] ; +0x10, 0x53ec0 LDR X0, [X0,#8] ; +0x14, 0x53ec4 MOV W1, #8 ; +0x18, 0x53ec8 ADD X29, SP, #0x20 ; +0x1c, 0x53ecc BL sub_7B9D0 ; +0x20, 0x53ed0 LDR W8, [X19,#0x3C] ; +0x24, 0x53ed4 LDR X0, [X19,#8] ; +0x28, 0x53ed8 MOV W1, #8 ; +0x2c, 0x53edc AND W8, W8, #0xFFFFFF7F ; +0x30, 0x53ee0 STR W8, [X19,#0x3C] ; +0x34, 0x53ee4 BL sub_7B9F0 ; +0x38, 0x53ee8 LDR X8, [X21,#0xD8] ; +0x3c, 0x53eec STR X8, [X19,#8] ; +0x40, 0x53ef0 ADD X8, X21, #0x58 ; 'X' ; +0x44, 0x53ef4 STRB WZR, [X19,#0x88] ; +0x48, 0x53ef8 STR XZR, [X19,#0x90] ; +0x4c, 0x53efc STR WZR, [X19,#0x98] ; +0x50, 0x53f00 LDAXR W9, [X8] ; +0x54, 0x53f04 AND W9, W9, #0xFFFFFFBF ; +0x58, 0x53f08 STLXR W10, W9, [X8] ; +0x5c, 0x53f0c CBNZ W10, loc_53F04 ; +0x60, 0x53f10 LDAXR W9, [X8] ; +0x64, 0x53f14 ORR W9, W9, #0x800 ; +0x68, 0x53f18 STLXR W10, W9, [X8] ; +0x6c, 0x53f1c CBNZ W10, loc_53F14 ; +0x70, 0x53f20 LDR X9, [X19,#0x48] ; +0x74, 0x53f24 CBZ X9, loc_53F3C ; +0x78, 0x53f28 LDAXR W9, [X8] ; +0x7c, 0x53f2c ORR W9, W9, #0x10 ; +0x80, 0x53f30 STLXR W10, W9, [X8] ; +0x84, 0x53f34 CBNZ W10, loc_53F2C ; +0x88, 0x53f38 LDR X9, [X21,#0xB8] ; +0x8c, 0x53f3c MOV X10, X21 ; +0x90, 0x53f40 CBZ X9, loc_53F60 ; +0x94, 0x53f44 ADD X10, X9, #0x58 ; 'X' ; +0x98, 0x53f48 LDAXR W11, [X10] ; +0x9c, 0x53f4c AND W11, W11, #0xFFFFFFBF ; +0xa0, 0x53f50 STLXR W12, W11, [X10] ; +0xa4, 0x53f54 CBNZ W12, loc_53F4C ; +0xa8, 0x53f58 MOV X10, X9 ; +0xac, 0x53f5c LDR W9, [X10,#0x194] ; +0xb0, 0x53f60 LDR X0, [X19,#0xC0] ; +0xb4, 0x53f64 STP WZR, WZR, [X19,#0x9C] ; +0xb8, 0x53f68 STR W9, [X19,#0x4C] ; +0xbc, 0x53f6c LDR S0, [X0,#0x68] ; +0xc0, 0x53f70 MOV W9, #0x42C80000 ; +0xc4, 0x53f74 FMOV S1, W9 ; +0xc8, 0x53f78 FMAXNM S0, S0, S1 ; +0xcc, 0x53f7c STR S0, [X19,#0x68] ; +0xd0, 0x53f80 LDR W9, [X0,#0x64] ; +0xd4, 0x53f84 STR W9, [X19,#0x64] ; +0xd8, 0x53f88 LDR X20, [X21,#0x180] ; +0xdc, 0x53f8c CBZ X20, loc_54028 ; +0xe0, 0x53f90 LDRB W9, [X21,#0x2D] ; +0xe4, 0x53f94 TBNZ W9, #2, loc_53FC0 ; +0xe8, 0x53f98 LDR W9, [X21,#0x24] ; +0xec, 0x53f9c CMP W9, #0x10 ; +0xf0, 0x53fa0 B.HI loc_54098 ; +0xf4, 0x53fa4 MOV W10, #1 ; +0xf8, 0x53fa8 LSL W9, W10, W9 ; +0xfc, 0x53fac MOV W10, #0x121C0 ; +0x100, 0x53fb0 TST W9, W10 ; +0x108, 0x53fb8 B.EQ loc_54098 ; +0x10c, 0x53fbc LDAXR W9, [X8] ; +0x110, 0x53fc0 AND W9, W9, #0xFFFFFF7F ; +0x114, 0x53fc4 STLXR W10, W9, [X8] ; +0x118, 0x53fc8 CBNZ W10, loc_53FC0 ; +0x11c, 0x53fcc LDR X8, [X20] ; +0x120, 0x53fd0 MOV W1, #2 ; +0x124, 0x53fd4 MOV X0, X20 ; +0x128, 0x53fd8 LDR X8, [X8,#0x118] ; +0x12c, 0x53fdc BLR X8 ; +0x130, 0x53fe0 LDR X8, [X20] ; +0x134, 0x53fe4 LDR W9, [X20,#0x44] ; +0x138, 0x53fe8 MOV W2, #2 ; +0x13c, 0x53fec MOV W4, #2 ; +0x140, 0x53ff0 LDR X8, [X8,#0x138] ; +0x144, 0x53ff4 SUB W3, W9, #1 ; +0x148, 0x53ff8 MOV X0, X20 ; +0x14c, 0x53ffc MOV W1, WZR ; +0x150, 0x54000 BLR X8 ; +0x154, 0x54004 STR X21, [X20,#0xB8] ; +0x158, 0x54008 LDR W8, [X20,#0x2C] ; +0x15c, 0x5400c LDR X0, [X19,#0xC0] ; +0x160, 0x54010 STR W8, [X0,#0x38] ; +0x164, 0x54014 LDUR X8, [X20,#0x4C] ; +0x168, 0x54018 STR X8, [X0,#0x58] ; +0x16c, 0x5401c LDR W8, [X20,#0x44] ; +0x170, 0x54020 STR W8, [X0,#0x60] ; +0x174, 0x54024 MOV W8, #0xFFFFFFFF ; +0x178, 0x54028 STP X20, XZR, [X0,#0x28] ; +0x17c, 0x5402c STR W8, [X0,#0x54] ; +0x180, 0x54030 LDR X8, [X19,#0x18] ; +0x184, 0x54034 LDR X9, [X0] ; +0x188, 0x54038 STR X8, [X0,#0x18] ; +0x18c, 0x5403c LDR X8, [X9,#0x28] ; +0x190, 0x54040 BLR X8 ; +0x194, 0x54044 MOV W20, W0 ; +0x198, 0x54048 CBNZ W0, loc_54088 ; +0x19c, 0x5404c BL sub_54CDC ; +0x1a0, 0x54050 LDR X0, [X19,#8] ; +0x1a4, 0x54054 MOV W8, #0x11BE0 ; +0x1a8, 0x54058 STR X19, [X19,#0xB8] ; +0x1b0, 0x54060 ADD X8, X0, X8 ; +0x1b4, 0x54064 LDR X9, [X8,#8] ; +0x1b8, 0x54068 STR X8, [X19,#0xA8]! ; +0x1bc, 0x5406c MOV W1, #0xA ; +0x1c0, 0x54070 STR X9, [X19,#8] ; +0x1c4, 0x54074 STR X19, [X8,#8] ; +0x1c8, 0x54078 LDR X8, [X19,#8] ; +0x1cc, 0x5407c STR X19, [X8] ; +0x1d0, 0x54080 BL sub_7B9F0 ; +0x1d4, 0x54084 MOV W0, W20 ; +0x1d8, 0x54088 LDP X29, X30, [SP,#0x20+var_s0] ; +0x1dc, 0x5408c LDP X20, X19, [SP,#0x20+var_10] ; +0x1e0, 0x54090 B loc_54D08 ; +0x1e4, 0x54094 LDR W9, [X21,#0x44] ; +0x1e8, 0x54098 LDR W10, [X20,#0x44] ; +0x1ec, 0x5409c CMP W9, W10 ; +0x1f0, 0x540a0 B.HI loc_53FC0 ; +0x1f4, 0x540a4 MOV W9, #0x88 ; +0x1f8, 0x540a8 LDAXR W10, [X8] ; +0x1fc, 0x540ac ORR W10, W10, W9 ; +0x200, 0x540b0 STLXR W11, W10, [X8] ; +0x204, 0x540b4 CBNZ W11, loc_540AC ; +0x208, 0x540b8 LDR X8, [X20] ; +0x20c, 0x540bc LDR W9, [X19,#0x38] ; +0x210, 0x540c0 MOV X0, X20 ; +0x214, 0x540c4 LDR X8, [X8,#0x118] ; +0x218, 0x540c8 TST W9, #6 ; +0x21c, 0x540cc MOV W9, #1 ; +0x220, 0x540d0 CINC W1, W9, NE ; +0x224, 0x540d4 BLR X8 ; +0x228, 0x540d8 LDR X8, [X20] ; +0x22c, 0x540dc LDP W1, W9, [X21,#0x4C] ; +0x230, 0x540e0 MOV W2, #2 ; +0x234, 0x540e4 MOV W4, #2 ; +0x238, 0x540e8 LDR X8, [X8,#0x138] ; +0x23c, 0x540ec ADD W9, W1, W9 ; +0x240, 0x540f0 SUB W3, W9, #1 ; +0x244, 0x540f4 MOV X0, X20 ; +0x248, 0x540f8 B loc_54004 ; +0x24c, 0x540fc