; ; sub_59D94 from 0x59d94 to 0x59fec (600 bytes) ; ; 20 xrefs: ; > sub_59AE8 @ 0x59bbc ; > sub_5B0C4 @ 0x5b0d8 ; > sub_5B530 @ 0x5b534 ; > sub_5FD88 @ 0x5fe2c ; > sub_5FF9C @ 0x5ffdc ; > sub_601E4 @ 0x60230 ; > sub_60858 @ 0x60860 ; > sub_6E15C @ 0x6e290 ; > sub_6E374 @ 0x6e410 ; > sub_75F9C @ 0x76168 ; > sub_76178 @ 0x762a0 ; > sub_7A768 @ 0x7a914 ; > sub_7C19C @ 0x7c244 ; > sub_7C19C @ 0x7c41c ; > sub_7C19C @ 0x7c524 ; > sub_8D6F8 @ 0x8f180 ; > sub_92230 @ 0x92248 ; > sub_9663C @ 0x96644 ; > sub_A1204 @ 0xa120c ; > sub_A3828 @ 0xa38bc ; ; 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 ; STP X22, X21, [SP,#var_30]! ; +0x0, 0x59d94 STP X20, X19, [SP,#0x30+var_20] ; +0x4, 0x59d98 STP X29, X30, [SP,#0x30+var_10] ; +0x8, 0x59d9c BL sub_5C6DC ; +0xc, 0x59da0 CBZ X8, loc_59E24 ; +0x10, 0x59da4 LDRB W8, [X8,#0x3C] ; +0x14, 0x59da8 TBNZ W8, #7, loc_59FAC ; +0x18, 0x59dac MOV X19, X0 ; +0x1c, 0x59db0 MOV W20, W1 ; +0x20, 0x59db4 TBZ W1, #6, loc_59DC0 ; +0x24, 0x59db8 BL sub_5C6D0 ; +0x28, 0x59dbc TBZ W20, #2, loc_59E2C ; +0x2c, 0x59dc0 LDR X0, [X19,#0x1D8] ; +0x30, 0x59dc4 LDR X8, [X0] ; +0x34, 0x59dc8 LDR X8, [X8,#0x50] ; +0x38, 0x59dcc BLR X8 ; +0x3c, 0x59dd0 CBNZ W0, loc_59FB0 ; +0x40, 0x59dd4 TBZ W20, #4, loc_59DE8 ; +0x44, 0x59dd8 BL sub_5C66C ; +0x48, 0x59ddc BL sub_5C618 ; +0x4c, 0x59de0 CBNZ W0, loc_59FB0 ; +0x50, 0x59de4 LDR X21, [X19,#0x1D8] ; +0x54, 0x59de8 LDR X8, [X21,#0x28] ; +0x58, 0x59dec CBZ X8, loc_59E18 ; +0x5c, 0x59df0 LDR W9, [X8,#0x138] ; +0x60, 0x59df4 SUBS W9, W9, #1 ; +0x64, 0x59df8 STR W9, [X8,#0x138] ; +0x68, 0x59dfc B.NE loc_59E18 ; +0x6c, 0x59e00 LDR X9, [X19,#8] ; +0x70, 0x59e04 MOV W10, #0x110E8 ; +0x74, 0x59e08 LDR W9, [X9,X10] ; +0x7c, 0x59e10 STR W9, [X8,#0x140] ; +0x80, 0x59e14 TBNZ W20, #1, loc_59E90 ; +0x84, 0x59e18 LDR W8, [X19,#0x48] ; +0x88, 0x59e1c B loc_59EB4 ; +0x8c, 0x59e20 MOV W0, #0x1E ; +0x90, 0x59e24 B loc_59FB0 ; +0x94, 0x59e28 LDR X8, [X19] ; +0x98, 0x59e2c BL sub_5C66C ; +0x9c, 0x59e30 MOV X2, XZR ; +0xa0, 0x59e34 LDR X8, [X8,#0xE0] ; +0xa4, 0x59e38 MOV W3, WZR ; +0xa8, 0x59e3c BLR X8 ; +0xac, 0x59e40 LDR X8, [X19] ; +0xb0, 0x59e44 MOV X2, #0xFFFFFFFFFFF00000 ; +0xb4, 0x59e48 BL sub_5C66C ; +0xb8, 0x59e4c LDR X8, [X8,#0x100] ; +0xbc, 0x59e50 BLR X8 ; +0xc0, 0x59e54 CBNZ W0, loc_59FB0 ; +0xc4, 0x59e58 LDR X8, [X19] ; +0xc8, 0x59e5c BL sub_5C66C ; +0xcc, 0x59e60 LDR X8, [X8,#0x118] ; +0xd0, 0x59e64 BLR X8 ; +0xd4, 0x59e68 CBNZ W0, loc_59FB0 ; +0xd8, 0x59e6c LDR X0, [X19,#0x60] ; +0xdc, 0x59e70 CBZ X0, loc_59DC4 ; +0xe0, 0x59e74 BL sub_5C500 ; +0xe4, 0x59e78 LDR X0, [X19,#0x60] ; +0xe8, 0x59e7c MOV W2, #1 ; +0xec, 0x59e80 MOV W1, WZR ; +0xf0, 0x59e84 BL sub_CBB14 ; +0xf4, 0x59e88 B loc_59DC4 ; +0xf8, 0x59e8c MOV X0, X19 ; +0xfc, 0x59e90 BL sub_59520 ; +0x100, 0x59e94 CBNZ W0, loc_59FB0 ; +0x104, 0x59e98 LDR W8, [X19,#0x48] ; +0x108, 0x59e9c LDR X21, [X19,#0x1D8] ; +0x10c, 0x59ea0 MOV W9, #0xFFFFFFFF ; +0x110, 0x59ea4 STR W9, [X19,#0x1E4] ; +0x114, 0x59ea8 AND W8, W8, #0xFFFEFFFF ; +0x118, 0x59eac STR W8, [X19,#0x48] ; +0x11c, 0x59eb0 AND W8, W8, #0xFFFBFFFF ; +0x120, 0x59eb4 STR W8, [X19,#0x48] ; +0x124, 0x59eb8 MOV X8, X21 ; +0x128, 0x59ebc TBZ W20, #3, loc_59EF4 ; +0x12c, 0x59ec0 LDR X9, [X19,#0x170] ; +0x130, 0x59ec4 MOV X8, X21 ; +0x134, 0x59ec8 CBZ X9, loc_59EF4 ; +0x138, 0x59ecc LDR X1, [X19,#0x50] ; +0x13c, 0x59ed0 MOV X0, X19 ; +0x140, 0x59ed4 MOV W2, WZR ; +0x144, 0x59ed8 MOV W3, WZR ; +0x148, 0x59edc MOV X4, XZR ; +0x14c, 0x59ee0 MOV X5, XZR ; +0x150, 0x59ee4 BL sub_55C9C ; +0x154, 0x59ee8 CBNZ W0, loc_59FB0 ; +0x158, 0x59eec LDR X8, [X19,#0x1D8] ; +0x15c, 0x59ef0 CMP X21, X8 ; +0x160, 0x59ef4 B.NE loc_59F04 ; +0x164, 0x59ef8 LDR W8, [X8,#0x3C] ; +0x168, 0x59efc TBNZ W8, #6, loc_59F50 ; +0x16c, 0x59f00 MOV X22, X21 ; +0x170, 0x59f04 LDR X0, [X22,#0x28]! ; +0x174, 0x59f08 CBZ X0, loc_59F48 ; +0x178, 0x59f0c LDR X8, [X0] ; +0x17c, 0x59f10 LDR X8, [X8] ; +0x180, 0x59f14 BLR X8 ; +0x184, 0x59f18 TBZ W0, #0, loc_59F48 ; +0x188, 0x59f1c LDR X0, [X19,#8] ; +0x18c, 0x59f20 MOV W1, #8 ; +0x190, 0x59f24 BL sub_7B9D0 ; +0x194, 0x59f28 STR XZR, [X21,#0x18] ; +0x198, 0x59f2c STP XZR, XZR, [X22] ; +0x19c, 0x59f30 LDR X0, [X19,#8] ; +0x1a0, 0x59f34 MOV W1, #8 ; +0x1a4, 0x59f38 BL sub_7B9F0 ; +0x1a8, 0x59f3c TBZ W20, #2, loc_59F54 ; +0x1ac, 0x59f40 B loc_59F8C ; +0x1b0, 0x59f44 STR XZR, [X21,#0x18] ; +0x1b4, 0x59f48 STP XZR, XZR, [X22] ; +0x1b8, 0x59f4c TBNZ W20, #2, loc_59F8C ; +0x1bc, 0x59f50 LDR X8, [X19,#0x70] ; +0x1c0, 0x59f54 LDR X1, [X19,#0x40] ; +0x1c4, 0x59f58 STP X8, X8, [X19,#0x60] ; +0x1c8, 0x59f5c CBZ X1, loc_59F74 ; +0x1cc, 0x59f60 LDR X8, [X19,#8] ; +0x1d0, 0x59f64 MOV W9, #0x8C8 ; +0x1d4, 0x59f68 BL sub_5C578 ; +0x1d8, 0x59f6c STR XZR, [X19,#0x40] ; +0x1dc, 0x59f70 LDR X1, [X19,#0x10] ; +0x1e0, 0x59f74 CBZ X1, loc_59F8C ; +0x1e4, 0x59f78 LDR X8, [X19,#8] ; +0x1e8, 0x59f7c MOV W9, #0x848 ; +0x1ec, 0x59f80 BL sub_5C578 ; +0x1f0, 0x59f84 STR XZR, [X19,#0x10] ; +0x1f4, 0x59f88 LDR W8, [X19,#0x1E4] ; +0x1f8, 0x59f8c CMN W8, #1 ; +0x1fc, 0x59f90 B.NE loc_59FAC ; +0x200, 0x59f94 LDR W8, [X19,#0x48] ; +0x204, 0x59f98 AND W9, W20, #0x80 ; +0x208, 0x59f9c AND W8, W8, #0x40000 ; +0x20c, 0x59fa0 ORR W8, W8, W9 ; +0x210, 0x59fa4 CBZ W8, loc_59FC0 ; +0x214, 0x59fa8 MOV W0, WZR ; +0x218, 0x59fac LDP X29, X30, [SP,#0x30+var_10] ; +0x21c, 0x59fb0 LDP X20, X19, [SP,#0x30+var_20] ; +0x220, 0x59fb4 LDP X22, X21, [SP+0x30+var_30],#0x30 ; +0x224, 0x59fb8 RET ; +0x228, 0x59fbc STR XZR, [X19,#0x1D8] ; +0x22c, 0x59fc0 TBNZ W20, #2, loc_59FD8 ; +0x230, 0x59fc4 BL sub_5C66C ; +0x234, 0x59fc8 BL sub_560D4 ; +0x238, 0x59fcc CBNZ W0, loc_59FB0 ; +0x23c, 0x59fd0 STR XZR, [X19,#0x1F0] ; +0x240, 0x59fd4 TBZ W20, #0, loc_59FAC ; +0x244, 0x59fd8 MOV X0, X19 ; +0x248, 0x59fdc MOV W1, WZR ; +0x24c, 0x59fe0 BL sub_59774 ; +0x250, 0x59fe4 B loc_59FAC ; +0x254, 0x59fe8