; ; sub_59AE8 from 0x59ae8 to 0x59c90 (424 bytes) ; ; 1 xrefs: ; > sub_597E0 @ 0x598b8 ; ; 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, #0x70 ; +0x0, 0x59ae8 STP X20, X19, [SP,#0x60+var_10] ; +0x4, 0x59aec MOV X19, X0 ; +0x8, 0x59af0 STR X23, [SP,#0x60+var_30] ; +0xc, 0x59af4 STP X22, X21, [SP,#0x60+var_20] ; +0x10, 0x59af8 STP X29, X30, [SP,#0x60+var_s0] ; +0x14, 0x59afc ADD X29, SP, #0x60 ; +0x18, 0x59b00 TBZ W1, #0, loc_59BEC ; +0x1c, 0x59b04 LDRB W8, [X19,#0x4A] ; +0x20, 0x59b08 TBNZ W8, #5, loc_59C18 ; +0x24, 0x59b0c LDR X8, [X19] ; +0x28, 0x59b10 SUB X1, X29, #-var_28 ; +0x2c, 0x59b14 MOV X0, X19 ; +0x30, 0x59b18 LDR X8, [X8,#0xA8] ; +0x34, 0x59b1c BLR X8 ; +0x38, 0x59b20 CBNZ W0, loc_59C1C ; +0x3c, 0x59b24 LDR W8, [X19,#0x48] ; +0x40, 0x59b28 TBNZ W8, #0x11, loc_59C18 ; +0x44, 0x59b2c LDURB W9, [X29,#var_28] ; +0x48, 0x59b30 CBZ W9, loc_59C18 ; +0x4c, 0x59b34 LDR X9, [X19,#8] ; +0x50, 0x59b38 LDR W10, [X19,#0x228] ; +0x54, 0x59b3c LDR W9, [X9,#0x6E0] ; +0x58, 0x59b40 CBZ W10, loc_59C0C ; +0x5c, 0x59b44 ADD W11, W10, #1 ; +0x60, 0x59b48 CMP W10, W9 ; +0x64, 0x59b4c CCMP W11, W9, #4, NE ; +0x68, 0x59b50 B.EQ loc_59C10 ; +0x6c, 0x59b54 LDR X8, [X19] ; +0x70, 0x59b58 SUB X1, X29, #-var_24 ; +0x74, 0x59b5c BL sub_5C6C4 ; +0x78, 0x59b60 CBNZ W0, loc_59C1C ; +0x7c, 0x59b64 LDR W23, [X19,#0x48] ; +0x80, 0x59b68 STR WZR, [X19,#0x228] ; +0x84, 0x59b6c ORR W8, W23, #0x20000 ; +0x88, 0x59b70 STR W8, [X19,#0x48] ; +0x8c, 0x59b74 LDURB W8, [X29,#var_24] ; +0x90, 0x59b78 CBNZ W8, loc_59C18 ; +0x94, 0x59b7c LDR X8, [X19,#0x1D8] ; +0x98, 0x59b80 CBZ X8, loc_59C18 ; +0x9c, 0x59b84 LDR X9, [X19,#8] ; +0xa0, 0x59b88 LDP X21, X20, [X8,#0x28] ; +0xa4, 0x59b8c ADD X1, SP, #0x60+var_58 ; +0xa8, 0x59b90 MOV W2, WZR ; +0xac, 0x59b94 LDR X0, [X9,#0x6B0] ; +0xb0, 0x59b98 BL sub_D7340 ; +0xb4, 0x59b9c CBNZ W0, loc_59C1C ; +0xb8, 0x59ba0 LDR X22, [X19,#0x20] ; +0xbc, 0x59ba4 ADD X1, SP, #0x60+var_50 ; +0xc0, 0x59ba8 MOV X0, X19 ; +0xc4, 0x59bac BL sub_59CF0 ; +0xc8, 0x59bb0 MOV W1, #4 ; +0xcc, 0x59bb4 MOV X0, X19 ; +0xd0, 0x59bb8 BL sub_59D94 ; +0xd4, 0x59bbc LDR X8, [SP,#0x60+var_58] ; +0xd8, 0x59bc0 STR X8, [X19,#0x1D8] ; +0xdc, 0x59bc4 CBZ X21, loc_59C34 ; +0xe0, 0x59bc8 MOV W3, #1 ; +0xe4, 0x59bcc MOV X0, X19 ; +0xe8, 0x59bd0 MOV X1, X21 ; +0xec, 0x59bd4 MOV X2, X22 ; +0xf0, 0x59bd8 MOV W4, WZR ; +0xf4, 0x59bdc MOV W5, WZR ; +0xf8, 0x59be0 BL sub_59FEC ; +0xfc, 0x59be4 B loc_59C54 ; +0x100, 0x59be8 LDR W8, [X19,#0x48] ; +0x104, 0x59bec MOV W0, WZR ; +0x108, 0x59bf0 STR WZR, [X19,#0x228] ; +0x10c, 0x59bf4 TBZ W8, #0x11, loc_59C1C ; +0x110, 0x59bf8 MOV W0, WZR ; +0x114, 0x59bfc AND W8, W8, #0xFFFDFFFF ; +0x118, 0x59c00 STR W8, [X19,#0x48] ; +0x11c, 0x59c04 B loc_59C1C ; +0x120, 0x59c08 STR W9, [X19,#0x228] ; +0x124, 0x59c0c ORR W8, W8, #0x1000000 ; +0x128, 0x59c10 STR W8, [X19,#0x48] ; +0x12c, 0x59c14 MOV W0, WZR ; +0x130, 0x59c18 LDP X29, X30, [SP,#0x60+var_s0] ; +0x134, 0x59c1c LDP X20, X19, [SP,#0x60+var_10] ; +0x138, 0x59c20 LDP X22, X21, [SP,#0x60+var_20] ; +0x13c, 0x59c24 LDR X23, [SP,#0x60+var_30] ; +0x140, 0x59c28 ADD SP, SP, #0x70 ; 'p' ; +0x144, 0x59c2c RET ; +0x148, 0x59c30 CBZ X20, loc_59C80 ; +0x14c, 0x59c34 MOV W3, #1 ; +0x150, 0x59c38 MOV X0, X19 ; +0x154, 0x59c3c MOV X1, X20 ; +0x158, 0x59c40 MOV X2, X22 ; +0x15c, 0x59c44 MOV W4, WZR ; +0x160, 0x59c48 MOV W5, WZR ; +0x164, 0x59c4c BL sub_5A364 ; +0x168, 0x59c50 ADD X1, SP, #0x60+var_50 ; +0x16c, 0x59c54 MOV X0, X19 ; +0x170, 0x59c58 BL sub_5A244 ; +0x174, 0x59c5c LDR W8, [X19,#0x48] ; +0x178, 0x59c60 LDR X9, [X19] ; +0x17c, 0x59c64 MOV X0, X19 ; +0x180, 0x59c68 AND W8, W8, #0xFFFBFFFF ; +0x184, 0x59c6c STR W8, [X19,#0x48] ; +0x188, 0x59c70 LDRB W1, [SP,#0x60+var_34] ; +0x18c, 0x59c74 LDR X8, [X9,#0x10] ; +0x190, 0x59c78 BLR X8 ; +0x194, 0x59c7c TBZ W23, #0x12, loc_59C18 ; +0x198, 0x59c80 LDR W8, [X19,#0x48] ; +0x19c, 0x59c84 ORR W8, W8, #0x10000 ; +0x1a0, 0x59c88 B loc_59C14 ; +0x1a4, 0x59c8c