; ; sub_5AD18 from 0x5ad18 to 0x5af2c (532 bytes) ; ; 1 xrefs: ; > sub_59FEC @ 0x5a0a4 ; ; 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, 0x5ad18 STP X22, X21, [SP,#0x30+var_20] ; +0x4, 0x5ad1c STP X20, X19, [SP,#0x30+var_10] ; +0x8, 0x5ad20 MOV W21, W2 ; +0xc, 0x5ad24 MOV X19, X1 ; +0x10, 0x5ad28 MOV X20, X0 ; +0x14, 0x5ad2c STP X29, X30, [SP,#0x30+var_s0] ; +0x18, 0x5ad30 ADD X29, SP, #0x30 ; +0x1c, 0x5ad34 TBZ W2, #0, loc_5AE1C ; +0x20, 0x5ad38 LDR X10, [X20,#0x1D8] ; +0x24, 0x5ad3c MOV W8, #1 ; +0x28, 0x5ad40 STR XZR, [X20,#0x1F0] ; +0x2c, 0x5ad44 STR W8, [X20,#0x18] ; +0x30, 0x5ad48 STR XZR, [X20,#0x10] ; +0x34, 0x5ad4c STR XZR, [X20,#0x28] ; +0x38, 0x5ad50 LDR X9, [X20,#8] ; +0x3c, 0x5ad54 LDRB W8, [X10,#0x3E] ; +0x40, 0x5ad58 MOV W10, #0x11050 ; +0x44, 0x5ad5c ADD X10, X9, X10 ; +0x4c, 0x5ad64 TBNZ W8, #0, loc_5AD74 ; +0x50, 0x5ad68 LDR W8, [X10,#0x2EC] ; +0x54, 0x5ad6c STR W8, [X20,#0x224] ; +0x58, 0x5ad70 LDR W11, [X20,#0x48] ; +0x5c, 0x5ad74 MOV W12, #0xFEEDFFD8 ; +0x60, 0x5ad78 MOV W8, #0x3F800000 ; +0x68, 0x5ad80 FMOV V0.2S, #1.0 ; +0x6c, 0x5ad84 AND W11, W11, W12 ; +0x70, 0x5ad88 STR WZR, [X20,#0x228] ; +0x74, 0x5ad8c STR WZR, [X20,#0xC0] ; +0x78, 0x5ad90 STR W8, [X20,#0x220] ; +0x7c, 0x5ad94 STR W8, [X20,#0x34] ; +0x80, 0x5ad98 STR W8, [X20,#0xA4] ; +0x84, 0x5ad9c STR D0, [X20,#0x78] ; +0x88, 0x5ada0 STR W11, [X20,#0x48] ; +0x8c, 0x5ada4 LDR X11, [X19,#0x78] ; +0x90, 0x5ada8 STR WZR, [X20,#0x98] ; +0x94, 0x5adac ADRP X12, #qword_2EB58@PAGE ; +0x98, 0x5adb0 STUR X11, [X20,#0x9C] ; +0x9c, 0x5adb4 LDR X11, [X19,#0x80] ; +0xa0, 0x5adb8 STR X11, [X20,#0xA8] ; +0xa4, 0x5adbc LDR W11, [X19,#0x88] ; +0xa8, 0x5adc0 STP WZR, W8, [X20,#0xB8] ; +0xac, 0x5adc4 STP W11, WZR, [X20,#0xB0] ; +0xb0, 0x5adc8 LDR X11, [X19,#0x90] ; +0xb4, 0x5adcc STR X11, [X20,#0xE0] ; +0xb8, 0x5add0 LDR W11, [X19,#0x98] ; +0xbc, 0x5add4 STR D0, [X20,#0xF0] ; +0xc0, 0x5add8 STR WZR, [X20,#0x100] ; +0xc4, 0x5addc STR WZR, [X20,#0xF8] ; +0xc8, 0x5ade0 STR W11, [X20,#0xE8] ; +0xcc, 0x5ade4 LDR W10, [X10] ; +0xd0, 0x5ade8 LDR D0, [X12,#qword_2EB58@PAGEOFF] ; +0xd4, 0x5adec STR W10, [X20,#0xFC] ; +0xd8, 0x5adf0 STR D0, [X20,#0x58] ; +0xdc, 0x5adf4 CBZ X9, loc_5AE14 ; +0xe0, 0x5adf8 MOV X9, XZR ; +0xe4, 0x5adfc ADD X10, X20, #0x13C ; +0xe8, 0x5ae00 CMP X9, #4 ; +0xec, 0x5ae04 B.EQ loc_5AE14 ; +0xf0, 0x5ae08 BL sub_5C6F0 ; +0xf4, 0x5ae0c B loc_5AE04 ; +0xf8, 0x5ae10 STP XZR, XZR, [X20,#0x128] ; +0xfc, 0x5ae14 STRB WZR, [X20,#0x138] ; +0x100, 0x5ae18 LDR X8, [X20,#0x1D8] ; +0x104, 0x5ae1c CBZ X8, loc_5AF18 ; +0x108, 0x5ae20 STP X19, XZR, [X8,#0x28] ; +0x10c, 0x5ae24 LDR W9, [X19,#0x2C] ; +0x110, 0x5ae28 ADD X22, X19, #0x58 ; 'X' ; +0x114, 0x5ae2c STR W9, [X8,#0x38] ; +0x118, 0x5ae30 LDUR X9, [X19,#0x4C] ; +0x11c, 0x5ae34 STR X9, [X8,#0x58] ; +0x120, 0x5ae38 LDR W9, [X19,#0x54] ; +0x124, 0x5ae3c STR W9, [X8,#0x54] ; +0x128, 0x5ae40 LDR W9, [X19,#0x44] ; +0x12c, 0x5ae44 STR X20, [X8,#0x18] ; +0x130, 0x5ae48 STR W9, [X8,#0x60] ; +0x134, 0x5ae4c LDAXR W8, [X22] ; +0x138, 0x5ae50 AND W8, W8, #0xFFFFF7FF ; +0x13c, 0x5ae54 STLXR W9, W8, [X22] ; +0x140, 0x5ae58 CBNZ W9, loc_5AE50 ; +0x144, 0x5ae5c LDR X0, [X20,#0x60] ; +0x148, 0x5ae60 BL sub_5C500 ; +0x14c, 0x5ae64 CBNZ W0, loc_5AF1C ; +0x150, 0x5ae68 TBZ W21, #0, loc_5AED0 ; +0x154, 0x5ae6c LDR X8, [X20,#0x1D8] ; +0x158, 0x5ae70 LDRB W8, [X8,#0x3E] ; +0x15c, 0x5ae74 TBZ W8, #0, loc_5AE94 ; +0x160, 0x5ae78 LDR X8, [X20,#0x60] ; +0x164, 0x5ae7c ADD X8, X8, #0x64 ; 'd' ; +0x168, 0x5ae80 LDAXR W9, [X8] ; +0x16c, 0x5ae84 ORR W9, W9, #0x100 ; +0x170, 0x5ae88 STLXR W10, W9, [X8] ; +0x174, 0x5ae8c CBNZ W10, loc_5AE84 ; +0x178, 0x5ae90 BL sub_5C638 ; +0x17c, 0x5ae94 CBNZ W0, loc_5AF1C ; +0x180, 0x5ae98 LDR X0, [X20,#0x70] ; +0x184, 0x5ae9c BL sub_AFE50 ; +0x188, 0x5aea0 CBNZ W0, loc_5AF1C ; +0x18c, 0x5aea4 LDR X0, [X20,#0x20] ; +0x190, 0x5aea8 ADD X2, SP, #0x30+var_28 ; +0x194, 0x5aeac MOV W1, #0xFFFFFFFD ; +0x198, 0x5aeb0 LDR X8, [X0] ; +0x19c, 0x5aeb4 BL sub_5C50C ; +0x1a0, 0x5aeb8 CBNZ W0, loc_5AF1C ; +0x1a4, 0x5aebc LDR X0, [SP,#0x30+var_28] ; +0x1a8, 0x5aec0 LDR X1, [X20,#0x60] ; +0x1ac, 0x5aec4 BL sub_5C538 ; +0x1b0, 0x5aec8 CBNZ W0, loc_5AF1C ; +0x1b4, 0x5aecc LDR X0, [X20,#0x1D8] ; +0x1b8, 0x5aed0 LDR X8, [X0] ; +0x1bc, 0x5aed4 LDR X8, [X8,#0x28] ; +0x1c0, 0x5aed8 BLR X8 ; +0x1c4, 0x5aedc CBNZ W0, loc_5AF1C ; +0x1c8, 0x5aee0 LDAXR W8, [X22] ; +0x1cc, 0x5aee4 ORR W8, W8, #4 ; +0x1d0, 0x5aee8 STLXR W9, W8, [X22] ; +0x1d4, 0x5aeec CBNZ W9, loc_5AEE4 ; +0x1d8, 0x5aef0 LDR X8, [X19,#0xB8] ; +0x1dc, 0x5aef4 CBZ X8, loc_5AF24 ; +0x1e0, 0x5aef8 ADD X8, X8, #0x58 ; 'X' ; +0x1e4, 0x5aefc MOV W0, WZR ; +0x1e8, 0x5af00 LDAXR W9, [X8] ; +0x1ec, 0x5af04 ORR W9, W9, #4 ; +0x1f0, 0x5af08 STLXR W10, W9, [X8] ; +0x1f4, 0x5af0c CBNZ W10, loc_5AF04 ; +0x1f8, 0x5af10 B loc_5AF1C ; +0x1fc, 0x5af14 MOV W0, #0x1E ; +0x200, 0x5af18 LDP X29, X30, [SP,#0x30+var_s0] ; +0x204, 0x5af1c B loc_5C6A4 ; +0x208, 0x5af20 MOV W0, WZR ; +0x20c, 0x5af24 B loc_5AF1C ; +0x210, 0x5af28