; ; sub_52D1C from 0x52d1c to 0x52fdc (704 bytes) ; ; 1 xrefs: ; > @ 0x10c238 ; ; 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, #0xC0 ; +0x0, 0x52d1c STP X29, X30, [SP,#0xB0+var_s0] ; +0x4, 0x52d20 ADD X29, SP, #0xB0 ; +0x8, 0x52d24 STP X22, X21, [SP,#0xB0+var_20] ; +0xc, 0x52d28 STP X20, X19, [SP,#0xB0+var_10] ; +0x10, 0x52d2c STUR XZR, [X29,#var_30] ; +0x14, 0x52d30 CBZ X1, loc_52F40 ; +0x18, 0x52d34 LDR X8, [X0,#8] ; +0x1c, 0x52d38 MOV W9, #0x110E0 ; +0x20, 0x52d3c MOV X19, X0 ; +0x28, 0x52d44 LDR X0, [X8,X9] ; +0x2c, 0x52d48 LDR X8, [X19,#0x18] ; +0x30, 0x52d4c MOV X20, X1 ; +0x34, 0x52d50 SUB X2, X29, #-var_28 ; +0x38, 0x52d54 LDR X9, [X0] ; +0x3c, 0x52d58 LDR X21, [X8,#0x68] ; +0x40, 0x52d5c MOV W1, WZR ; +0x44, 0x52d60 LDR X8, [X9,#0x120] ; +0x48, 0x52d64 BLR X8 ; +0x4c, 0x52d68 CBNZ W0, loc_52F44 ; +0x50, 0x52d6c LDUR X8, [X29,#var_28] ; +0x54, 0x52d70 CMP X8, X20 ; +0x58, 0x52d74 B.EQ loc_52F58 ; +0x5c, 0x52d78 MOV X0, X19 ; +0x60, 0x52d7c BL loc_524E4 ; +0x64, 0x52d80 CBNZ W0, loc_52F44 ; +0x68, 0x52d84 STR XZR, [X19,#0x2E8] ; +0x6c, 0x52d88 LDR X8, [X20,#0x128] ; +0x70, 0x52d8c CBZ X8, loc_52E24 ; +0x74, 0x52d90 MOVI V0.2D, #0 ; +0x78, 0x52d94 SUB X9, X29, #-(var_38+4) ; +0x7c, 0x52d98 SUB X10, X29, #-var_38 ; +0x80, 0x52d9c STP Q0, Q0, [SP,#0xB0+var_B0] ; +0x84, 0x52da0 STP X10, X9, [SP,#0xB0+var_B0+8] ; +0x88, 0x52da4 SUB X9, X29, #-(var_40+4) ; +0x8c, 0x52da8 MOV W22, #1 ; +0x90, 0x52dac STP Q0, Q0, [SP,#0xB0+var_70] ; +0x94, 0x52db0 STR X9, [SP,#0xB0+var_60] ; +0x98, 0x52db4 SUB X9, X29, #-var_40 ; +0x9c, 0x52db8 ADD X0, X20, #0xB0 ; +0xa0, 0x52dbc MOV X2, SP ; +0xa4, 0x52dc0 ADD X3, SP, #0xB0+var_70 ; +0xa8, 0x52dc4 MOV W5, #1 ; +0xac, 0x52dc8 MOV W1, WZR ; +0xb0, 0x52dcc MOV W4, WZR ; +0xb4, 0x52dd0 STUR XZR, [X29,#var_38] ; +0xb8, 0x52dd4 STR XZR, [SP,#0xB0+var_90] ; +0xbc, 0x52dd8 STUR XZR, [X29,#var_40] ; +0xc0, 0x52ddc STR XZR, [SP,#0xB0+var_50] ; +0xc4, 0x52de0 STR X9, [SP,#0xB0+var_70+8] ; +0xc8, 0x52de4 STR W22, [SP,#0xB0+var_70] ; +0xcc, 0x52de8 STR X20, [X20,#0xB0] ; +0xd0, 0x52dec BLR X8 ; +0xd4, 0x52df0 CMP W0, #0xB ; +0xd8, 0x52df4 MOV W8, WZR ; +0xdc, 0x52df8 B.HI loc_52E20 ; +0xe0, 0x52dfc LSL W9, W22, W0 ; +0xe4, 0x52e00 MOV W10, #0x841 ; +0xe8, 0x52e04 TST W9, W10 ; +0xec, 0x52e08 B.EQ loc_52E20 ; +0xf0, 0x52e0c LDUR W8, [X29,#var_40] ; +0xf4, 0x52e10 MOV W0, WZR ; +0xf8, 0x52e14 STRH W8, [X20,#0x118] ; +0xfc, 0x52e18 MOV W8, #1 ; +0x100, 0x52e1c CBZ W8, loc_52F44 ; +0x104, 0x52e20 LDRH W8, [X20,#0x118] ; +0x108, 0x52e24 CBNZ W8, loc_52E34 ; +0x10c, 0x52e28 MOV W8, #1 ; +0x110, 0x52e2c STRH W8, [X20,#0x118] ; +0x114, 0x52e30 BL sub_BDCB4 ; +0x118, 0x52e34 LDP Q0, Q1, [X0] ; +0x11c, 0x52e38 LDP Q2, Q3, [X0,#0x20] ; +0x120, 0x52e3c MOV W8, #1 ; +0x124, 0x52e40 STR WZR, [SP,#0xB0+var_70] ; +0x128, 0x52e44 STRB W8, [SP,#0xB0+var_70+0xC] ; +0x12c, 0x52e48 STP Q0, Q1, [SP,#0xB0+var_B0] ; +0x130, 0x52e4c STP Q2, Q3, [SP,#0xB0+var_90] ; +0x134, 0x52e50 LDRH W8, [X20,#0x118] ; +0x138, 0x52e54 ADD X9, SP, #0xB0+var_70 ; +0x13c, 0x52e58 STR X9, [SP,#0xB0+var_90] ; +0x140, 0x52e5c MOV X1, SP ; +0x144, 0x52e60 STP W8, WZR, [SP,#0xB0+var_70+4] ; +0x148, 0x52e64 STRH W8, [SP,#0xB0+var_80] ; +0x14c, 0x52e68 LDR X0, [X19,#8] ; +0x150, 0x52e6c SUB X3, X29, #-var_30 ; +0x154, 0x52e70 MOV W4, #1 ; +0x158, 0x52e74 MOV X2, XZR ; +0x15c, 0x52e78 BL sub_77040 ; +0x160, 0x52e7c CBNZ W0, loc_52F44 ; +0x164, 0x52e80 LDUR X0, [X29,#var_30] ; +0x168, 0x52e84 MOV X1, X19 ; +0x16c, 0x52e88 STR X0, [X19,#0x2E0] ; +0x170, 0x52e8c BL sub_CC7C4 ; +0x174, 0x52e90 CBNZ W0, loc_52F44 ; +0x178, 0x52e94 LDR X8, [X19,#8] ; +0x17c, 0x52e98 LDR S0, [X8,#0x6D0] ; +0x180, 0x52e9c LDR X8, [X19,#0x2E0] ; +0x184, 0x52ea0 SCVTF S0, S0 ; +0x188, 0x52ea4 STR S0, [X8,#0x238] ; +0x18c, 0x52ea8 LDR X0, [X19,#0x2F0] ; +0x190, 0x52eac STR WZR, [X19,#0x68] ; +0x194, 0x52eb0 CBZ X0, loc_52EC0 ; +0x198, 0x52eb4 BL sub_53D58 ; +0x19c, 0x52eb8 CBNZ W0, loc_52F44 ; +0x1a0, 0x52ebc LDR X0, [X19,#0x2F8] ; +0x1a4, 0x52ec0 CBZ X0, loc_52ED0 ; +0x1a8, 0x52ec4 BL sub_53D58 ; +0x1ac, 0x52ec8 CBNZ W0, loc_52F44 ; +0x1b0, 0x52ecc LDR X8, [X19,#0x298] ; +0x1b4, 0x52ed0 ADD X22, X19, #0x70 ; 'p' ; +0x1b8, 0x52ed4 CBZ X8, loc_52EEC ; +0x1bc, 0x52ed8 MOV W3, #4 ; +0x1c0, 0x52edc MOV X0, X22 ; +0x1c4, 0x52ee0 BL sub_53D68 ; +0x1c8, 0x52ee4 CBNZ W0, loc_52F44 ; +0x1cc, 0x52ee8 MOV X0, X22 ; +0x1d0, 0x52eec BL sub_C7404 ; +0x1d4, 0x52ef0 LDR X1, [X19,#0x2E0] ; +0x1d8, 0x52ef4 LDR X8, [X19,#0x18] ; +0x1dc, 0x52ef8 MOV X0, X21 ; +0x1e0, 0x52efc BL sub_53D88 ; +0x1e4, 0x52f00 CBNZ W0, loc_52F44 ; +0x1e8, 0x52f04 LDRB W8, [X19,#0x3E] ; +0x1ec, 0x52f08 TBNZ W8, #0, loc_52F64 ; +0x1f0, 0x52f0c BL sub_53DAC ; +0x1f4, 0x52f10 CBNZ W0, loc_52F44 ; +0x1f8, 0x52f14 MOV W21, WZR ; +0x1fc, 0x52f18 CMP W21, #4 ; +0x200, 0x52f1c B.EQ loc_52F64 ; +0x204, 0x52f20 LDR X1, [X19,#0x300] ; +0x208, 0x52f24 MOV X0, X19 ; +0x20c, 0x52f28 MOV W2, W21 ; +0x210, 0x52f2c BL sub_52C8C ; +0x214, 0x52f30 ADD W21, W21, #1 ; +0x218, 0x52f34 CBZ W0, loc_52F1C ; +0x21c, 0x52f38 B loc_52F44 ; +0x220, 0x52f3c MOV W0, #0x1F ; +0x224, 0x52f40 LDP X29, X30, [SP,#0xB0+var_s0] ; +0x228, 0x52f44 LDP X20, X19, [SP,#0xB0+var_10] ; +0x22c, 0x52f48 LDP X22, X21, [SP,#0xB0+var_20] ; +0x230, 0x52f4c ADD SP, SP, #0xC0 ; +0x234, 0x52f50 RET ; +0x238, 0x52f54 STR XZR, [X19,#0x30] ; +0x23c, 0x52f58 MOV W0, #5 ; +0x240, 0x52f5c B loc_52F44 ; +0x244, 0x52f60 LDR X0, [X19,#0x2E0] ; +0x248, 0x52f64 ADD X8, X20, #8 ; +0x24c, 0x52f68 MOV W1, WZR ; +0x250, 0x52f6c MOV W2, WZR ; +0x254, 0x52f70 STR X8, [X0,#0x2A8] ; +0x258, 0x52f74 LDR W8, [X19,#0x60] ; +0x25c, 0x52f78 ADD X9, X0, #0x2CC ; +0x260, 0x52f7c MOV W3, WZR ; +0x264, 0x52f80 STR W8, [X0,#0x2C0] ; +0x268, 0x52f84 LDR W8, [X19,#0x54] ; +0x26c, 0x52f88 STR W8, [X0,#0x260] ; +0x270, 0x52f8c LDR X8, [X19,#0x58] ; +0x274, 0x52f90 STR X8, [X9] ; +0x278, 0x52f94 LDR W8, [X19,#0x38] ; +0x27c, 0x52f98 MOV W9, #0xFFFFFFFE ; +0x280, 0x52f9c STR W9, [X0,#0x264] ; +0x284, 0x52fa0 STR W8, [X0,#0x2C8] ; +0x288, 0x52fa4 LDR W8, [X20,#0xC4] ; +0x28c, 0x52fa8 STR W8, [X0,#0xC4] ; +0x290, 0x52fac STRH WZR, [X20,#0x58] ; +0x294, 0x52fb0 LDR W8, [X0,#0x288] ; +0x298, 0x52fb4 STRH W8, [X20,#0x5A] ; +0x29c, 0x52fb8 LDR X8, [X0] ; +0x2a0, 0x52fbc LDR X8, [X8,#0x28] ; +0x2a4, 0x52fc0 BLR X8 ; +0x2a8, 0x52fc4 LDR X0, [X19,#0x2E0] ; +0x2ac, 0x52fc8 BL sub_53D7C ; +0x2b0, 0x52fcc BL sub_53E14 ; +0x2b4, 0x52fd0 BL sub_53DDC ; +0x2b8, 0x52fd4 B loc_52F44 ; +0x2bc, 0x52fd8