; ; sub_529D8 from 0x529d8 to 0x52c8c (692 bytes) ; ; 1 xrefs: ; > @ 0x10c230 ; ; 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, 0x529d8 STP X20, X19, [SP,#0x30+var_10] ; +0x4, 0x529dc STP X29, X30, [SP,#0x30+var_s0] ; +0x8, 0x529e0 LDR X8, [X0,#0x18] ; +0xc, 0x529e4 STR X21, [SP,#0x30+var_20] ; +0x10, 0x529e8 ADD X29, SP, #0x30 ; +0x14, 0x529ec MOV X19, X0 ; +0x18, 0x529f0 LDR X20, [X8,#0x68] ; +0x1c, 0x529f4 BL loc_524E4 ; +0x20, 0x529f8 CBZ W0, loc_52A14 ; +0x24, 0x529fc LDP X29, X30, [SP,#0x30+var_s0] ; +0x28, 0x52a00 LDP X20, X19, [SP,#0x30+var_10] ; +0x2c, 0x52a04 LDR X21, [SP,#0x30+var_20] ; +0x30, 0x52a08 ADD SP, SP, #0x40 ; '@' ; +0x34, 0x52a0c RET ; +0x38, 0x52a10 LDRB W8, [X19,#0x39] ; +0x3c, 0x52a14 TBNZ W8, #1, loc_52B08 ; +0x40, 0x52a18 LDRB W8, [X19,#0x3E] ; +0x44, 0x52a1c STR XZR, [X19,#0x2E8] ; +0x48, 0x52a20 TBZ W8, #0, loc_52A3C ; +0x4c, 0x52a24 ADD X8, X19, #0xD4 ; +0x50, 0x52a28 LDAXR W9, [X8] ; +0x54, 0x52a2c ORR W9, W9, #0x100 ; +0x58, 0x52a30 STLXR W10, W9, [X8] ; +0x5c, 0x52a34 CBNZ W10, loc_52A2C ; +0x60, 0x52a38 LDR X0, [X19,#0x2F0] ; +0x64, 0x52a3c CBZ X0, loc_52A4C ; +0x68, 0x52a40 BL sub_53D58 ; +0x6c, 0x52a44 CBNZ W0, loc_52A00 ; +0x70, 0x52a48 LDR X0, [X19,#0x2F8] ; +0x74, 0x52a4c CBZ X0, loc_52A5C ; +0x78, 0x52a50 BL sub_53D58 ; +0x7c, 0x52a54 CBNZ W0, loc_52A00 ; +0x80, 0x52a58 ADD X21, X19, #0x70 ; 'p' ; +0x84, 0x52a5c MOV W3, #4 ; +0x88, 0x52a60 MOV X0, X21 ; +0x8c, 0x52a64 BL sub_53D68 ; +0x90, 0x52a68 CBNZ W0, loc_52A00 ; +0x94, 0x52a6c LDR X8, [X19,#0x28] ; +0x98, 0x52a70 LDR X9, [X19] ; +0x9c, 0x52a74 MOV X0, X19 ; +0xa0, 0x52a78 LDP W1, W2, [X8,#0x4C] ; +0xa4, 0x52a7c LDR X8, [X9,#0x90] ; +0xa8, 0x52a80 BLR X8 ; +0xac, 0x52a84 CBNZ W0, loc_52A00 ; +0xb0, 0x52a88 LDR S0, [X19,#0x64] ; +0xb4, 0x52a8c LDR X1, [X19,#0x28] ; +0xb8, 0x52a90 MOV X0, X21 ; +0xbc, 0x52a94 MOV X2, X19 ; +0xc0, 0x52a98 FNEG S0, S0 ; +0xc4, 0x52a9c STR S0, [X19,#0x68] ; +0xc8, 0x52aa0 BL sub_85D08 ; +0xcc, 0x52aa4 LDR X0, [X19,#0x2F0] ; +0xd0, 0x52aa8 CBZ X0, loc_52AB4 ; +0xd4, 0x52aac BL sub_53D7C ; +0xd8, 0x52ab0 LDR X0, [X19,#0x2F8] ; +0xdc, 0x52ab4 CBZ X0, loc_52AC0 ; +0xe0, 0x52ab8 BL sub_53D7C ; +0xe4, 0x52abc LDR X1, [X19,#0x2F0] ; +0xe8, 0x52ac0 LDR X8, [X19,#0x18] ; +0xec, 0x52ac4 CBZ X1, loc_52BFC ; +0xf0, 0x52ac8 MOV X0, X20 ; +0xf4, 0x52acc BL sub_53D88 ; +0xf8, 0x52ad0 CBNZ W0, loc_52A00 ; +0xfc, 0x52ad4 LDR X1, [X19,#0x2F8] ; +0x100, 0x52ad8 LDR X8, [X19,#0x18] ; +0x104, 0x52adc CBZ X1, loc_52C08 ; +0x108, 0x52ae0 STR X8, [X1,#0x200] ; +0x10c, 0x52ae4 LDR X0, [X19,#0x2F0] ; +0x110, 0x52ae8 MOV X2, XZR ; +0x114, 0x52aec MOV W3, WZR ; +0x118, 0x52af0 BL sub_53DFC ; +0x11c, 0x52af4 CBNZ W0, loc_52A00 ; +0x120, 0x52af8 LDR X8, [X19,#0x18] ; +0x124, 0x52afc LDR X0, [X19,#0x2F8] ; +0x128, 0x52b00 B loc_52C0C ; +0x12c, 0x52b04 LDR X0, [X19,#0x2F0] ; +0x130, 0x52b08 CBZ X0, loc_52B18 ; +0x134, 0x52b0c BL sub_53D58 ; +0x138, 0x52b10 CBNZ W0, loc_52A00 ; +0x13c, 0x52b14 LDR X0, [X19,#0x2F8] ; +0x140, 0x52b18 CBZ X0, loc_52B28 ; +0x144, 0x52b1c BL sub_53D58 ; +0x148, 0x52b20 CBNZ W0, loc_52A00 ; +0x14c, 0x52b24 LDR X8, [X19,#0x298] ; +0x150, 0x52b28 CBZ X8, loc_52B3C ; +0x154, 0x52b2c ADD X0, X19, #0x70 ; 'p' ; +0x158, 0x52b30 BL sub_53D58 ; +0x15c, 0x52b34 CBNZ W0, loc_52A00 ; +0x160, 0x52b38 LDR X8, [X19,#0x28] ; +0x164, 0x52b3c LDR X0, [X19,#8] ; +0x168, 0x52b40 ADD X2, SP, #0x30+var_18 ; +0x16c, 0x52b44 LDR X8, [X8,#0x60] ; +0x170, 0x52b48 LDR W1, [X8,#0xA4] ; +0x174, 0x52b4c BL sub_77B68 ; +0x178, 0x52b50 CBNZ W0, loc_52A00 ; +0x17c, 0x52b54 LDR X0, [SP,#0x30+var_18] ; +0x180, 0x52b58 ADD X1, SP, #0x30+var_28 ; +0x184, 0x52b5c BL sub_A7BD0 ; +0x188, 0x52b60 CBNZ W0, loc_52A00 ; +0x18c, 0x52b64 LDR X0, [SP,#0x30+var_28] ; +0x190, 0x52b68 LDR X1, [X19,#0x28] ; +0x194, 0x52b6c MOV X2, X19 ; +0x198, 0x52b70 STR X0, [X19,#0x2E8] ; +0x19c, 0x52b74 LDR X8, [X0] ; +0x1a0, 0x52b78 LDR X8, [X8,#0x20] ; +0x1a4, 0x52b7c BLR X8 ; +0x1a8, 0x52b80 CBNZ W0, loc_52A00 ; +0x1ac, 0x52b84 ADRP X8, #off_10F7D0@PAGE ; +0x1b0, 0x52b88 LDR S1, [X19,#0x68] ; +0x1b4, 0x52b8c LDR X8, [X8,#off_10F7D0@PAGEOFF]; dword_2EED8 ; +0x1b8, 0x52b90 LDR S0, [X8] ; +0x1bc, 0x52b94 FCMP S1, S0 ; +0x1c0, 0x52b98 B.GE loc_52BA4 ; +0x1c4, 0x52b9c STR S0, [X19,#0x68] ; +0x1c8, 0x52ba0 LDR X1, [X19,#0x2F0] ; +0x1cc, 0x52ba4 CBZ X1, loc_52C64 ; +0x1d0, 0x52ba8 LDR X8, [X19,#0x18] ; +0x1d4, 0x52bac MOV X0, X20 ; +0x1d8, 0x52bb0 BL sub_53D88 ; +0x1dc, 0x52bb4 CBNZ W0, loc_52A00 ; +0x1e0, 0x52bb8 LDR X1, [X19,#0x2F8] ; +0x1e4, 0x52bbc CBZ X1, loc_52C78 ; +0x1e8, 0x52bc0 LDR X8, [X19,#0x18] ; +0x1ec, 0x52bc4 MOV X2, XZR ; +0x1f0, 0x52bc8 MOV W3, WZR ; +0x1f4, 0x52bcc MOV W4, WZR ; +0x1f8, 0x52bd0 STR X8, [X1,#0x200] ; +0x1fc, 0x52bd4 LDR X0, [X19,#0x2F0] ; +0x200, 0x52bd8 MOV X5, XZR ; +0x204, 0x52bdc BL sub_CB148 ; +0x208, 0x52be0 CBNZ W0, loc_52A00 ; +0x20c, 0x52be4 LDR X1, [X19,#0x2E8] ; +0x210, 0x52be8 LDR X8, [X19,#0x18] ; +0x214, 0x52bec STR X8, [X1,#0x200] ; +0x218, 0x52bf0 LDR X0, [X19,#0x2F8] ; +0x21c, 0x52bf4 B loc_52C14 ; +0x220, 0x52bf8 STR X8, [X19,#0x270] ; +0x224, 0x52bfc MOV X0, X20 ; +0x228, 0x52c00 B loc_52C10 ; +0x22c, 0x52c04 LDR X0, [X19,#0x2F0] ; +0x230, 0x52c08 STR X8, [X19,#0x270] ; +0x234, 0x52c0c MOV X1, X21 ; +0x238, 0x52c10 MOV X2, XZR ; +0x23c, 0x52c14 MOV W3, WZR ; +0x240, 0x52c18 BL sub_53DFC ; +0x244, 0x52c1c CBNZ W0, loc_52A00 ; +0x248, 0x52c20 LDRB W8, [X19,#0x3E] ; +0x24c, 0x52c24 TBNZ W8, #0, loc_52C5C ; +0x250, 0x52c28 BL sub_53DAC ; +0x254, 0x52c2c CBNZ W0, loc_52A00 ; +0x258, 0x52c30 MOV W20, WZR ; +0x25c, 0x52c34 CMP W20, #4 ; +0x260, 0x52c38 B.EQ loc_52C5C ; +0x264, 0x52c3c LDR X1, [X19,#0x300] ; +0x268, 0x52c40 MOV X0, X19 ; +0x26c, 0x52c44 MOV W2, W20 ; +0x270, 0x52c48 BL sub_52C8C ; +0x274, 0x52c4c ADD W20, W20, #1 ; +0x278, 0x52c50 CBZ W0, loc_52C38 ; +0x27c, 0x52c54 B loc_52A00 ; +0x280, 0x52c58 BL sub_53DDC ; +0x284, 0x52c5c B loc_52A00 ; +0x288, 0x52c60 LDR X1, [X19,#0x2E8] ; +0x28c, 0x52c64 LDR X8, [X19,#0x18] ; +0x290, 0x52c68 MOV X0, X20 ; +0x294, 0x52c6c STR X8, [X1,#0x200] ; +0x298, 0x52c70 B loc_52C14 ; +0x29c, 0x52c74 LDR X1, [X19,#0x2E8] ; +0x2a0, 0x52c78 LDR X8, [X19,#0x18] ; +0x2a4, 0x52c7c STR X8, [X1,#0x200] ; +0x2a8, 0x52c80 LDR X0, [X19,#0x2F0] ; +0x2ac, 0x52c84 B loc_52C14 ; +0x2b0, 0x52c88