; ; sub_5470C from 0x5470c to 0x54a54 (840 bytes) ; ; 1 xrefs: ; > @ 0x10c3d8 ; ; 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, #0x60 ; +0x0, 0x5470c STP X24, X23, [SP,#0x50+var_30] ; +0x4, 0x54710 STP X22, X21, [SP,#0x50+var_20] ; +0x8, 0x54714 STP X20, X19, [SP,#0x50+var_10] ; +0xc, 0x54718 STP X29, X30, [SP,#0x50+var_s0] ; +0x10, 0x5471c LDRB W8, [X0,#0x3C] ; +0x14, 0x54720 STR X25, [SP,#0x50+var_40] ; +0x18, 0x54724 ADD X29, SP, #0x50 ; +0x1c, 0x54728 TBNZ W8, #7, loc_54764 ; +0x20, 0x5472c LDR X21, [X0,#0x28] ; +0x24, 0x54730 MOV X19, X0 ; +0x28, 0x54734 CBZ X21, loc_5476C ; +0x2c, 0x54738 ADD X8, X21, #0x110 ; +0x30, 0x5473c LDAR W8, [X8] ; +0x34, 0x54740 MOV W23, W3 ; +0x38, 0x54744 MOV W22, W2 ; +0x3c, 0x54748 MOV W20, W1 ; +0x40, 0x5474c CMP W8, #7 ; +0x44, 0x54750 B.NE loc_54774 ; +0x48, 0x54754 TBNZ W23, #0, loc_54774 ; +0x4c, 0x54758 MOV W24, #0x2E ; '.' ; +0x50, 0x5475c B loc_54938 ; +0x54, 0x54760 MOV W24, #0x1E ; +0x58, 0x54764 B loc_54938 ; +0x5c, 0x54768 MOV W24, #0x1F ; +0x60, 0x5476c B loc_54938 ; +0x64, 0x54770 BL sub_54C9C ; +0x68, 0x54774 LDR X8, [X19,#0x18] ; +0x6c, 0x54778 CBZ X8, loc_54788 ; +0x70, 0x5477c LDR W25, [X8,#0x48] ; +0x74, 0x54780 B loc_5478C ; +0x78, 0x54784 MOV W25, WZR ; +0x7c, 0x54788 BL sub_54CB8 ; +0x80, 0x5478c LDR X8, [X19,#0x18] ; +0x84, 0x54790 CBZ X8, loc_54934 ; +0x88, 0x54794 TBZ W25, #0x12, loc_54804 ; +0x8c, 0x54798 CMP W22, #2 ; +0x90, 0x5479c B.NE loc_54804 ; +0x94, 0x547a0 CBZ W20, loc_54804 ; +0x98, 0x547a4 TBNZ W25, #0x15, loc_54804 ; +0x9c, 0x547a8 LDR X8, [X21,#0x180] ; +0xa0, 0x547ac LDR W9, [X21,#0x40] ; +0xa4, 0x547b0 LDR W8, [X8,#0x44] ; +0xa8, 0x547b4 SUB W24, W9, W8 ; +0xac, 0x547b8 CMP W24, W20 ; +0xb0, 0x547bc B.HI loc_54838 ; +0xb4, 0x547c0 LDR W8, [X21,#0x18C] ; +0xb8, 0x547c4 ADD W8, W8, W24 ; +0xbc, 0x547c8 CMP W8, W20 ; +0xc0, 0x547cc B.LS loc_54838 ; +0xc4, 0x547d0 BL sub_54C9C ; +0xc8, 0x547d4 LDR X0, [X19,#0xC0] ; +0xcc, 0x547d8 SUB W21, W20, W24 ; +0xd0, 0x547dc CBZ X0, loc_547F0 ; +0xd4, 0x547e0 LDR X8, [X0] ; +0xd8, 0x547e4 LSL X1, X21, #0x20 ; ' ' ; +0xdc, 0x547e8 BL sub_54D00 ; +0xe0, 0x547ec BL sub_54CB8 ; +0xe4, 0x547f0 MOV W24, WZR ; +0xe8, 0x547f4 STP WZR, W21, [X19,#0x90] ; +0xec, 0x547f8 STP WZR, W20, [X19,#0x48] ; +0xf0, 0x547fc B loc_54938 ; +0xf4, 0x54800 CMP W22, #0x10 ; +0xf8, 0x54804 B.NE loc_54838 ; +0xfc, 0x54808 BL sub_54C9C ; +0x100, 0x5480c LDR X0, [X19,#0xC0] ; +0x104, 0x54810 CBZ X0, loc_54830 ; +0x108, 0x54814 LDR X8, [X0] ; +0x10c, 0x54818 MOV W2, #0x10 ; +0x110, 0x5481c MOV W1, W20 ; +0x114, 0x54820 MOV W3, WZR ; +0x118, 0x54824 LDR X8, [X8,#0xD8] ; +0x11c, 0x54828 BLR X8 ; +0x120, 0x5482c BL sub_54CB8 ; +0x124, 0x54830 B loc_54934 ; +0x128, 0x54834 ADD X8, X21, #0x58 ; 'X' ; +0x12c, 0x54838 LDAR W8, [X8] ; +0x130, 0x5483c TBNZ W8, #7, loc_54958 ; +0x134, 0x54840 CMP W22, #2 ; +0x138, 0x54844 B.NE loc_5487C ; +0x13c, 0x54848 LDR X8, [X21,#0x60] ; +0x140, 0x5484c LDR W9, [X21,#0xC0] ; +0x144, 0x54850 LDR W8, [X8,#0x11C] ; +0x148, 0x54854 CMP W9, W8 ; +0x14c, 0x54858 B.NE loc_5487C ; +0x150, 0x5485c ADD X8, X21, #0x58 ; 'X' ; +0x154, 0x54860 LDAR W8, [X8] ; +0x158, 0x54864 TBNZ W8, #4, loc_5487C ; +0x15c, 0x54868 MOV W24, WZR ; +0x160, 0x5486c TBNZ W25, #0x10, loc_54938 ; +0x164, 0x54870 LDR W8, [X19,#0x3C] ; +0x168, 0x54874 TBZ W8, #6, loc_54938 ; +0x16c, 0x54878 LDRB W8, [X21,#0x2E] ; +0x170, 0x5487c TBZ W8, #0, loc_5498C ; +0x174, 0x54880 TBNZ W23, #0, loc_5498C ; +0x178, 0x54884 BL sub_54C9C ; +0x17c, 0x54888 LDR W8, [X19,#0x3C] ; +0x180, 0x5488c LDR X0, [X19,#8] ; +0x184, 0x54890 MOV W1, #8 ; +0x188, 0x54894 ORR W8, W8, #0x4000 ; +0x18c, 0x54898 STR W8, [X19,#0x3C] ; +0x190, 0x5489c BL sub_7B9F0 ; +0x194, 0x548a0 LDR X0, [X19,#0xC0] ; +0x198, 0x548a4 CBZ X0, loc_548B0 ; +0x19c, 0x548a8 BL sub_54CA8 ; +0x1a0, 0x548ac LDR X0, [X21,#0x180] ; +0x1a4, 0x548b0 MOV W1, WZR ; +0x1a8, 0x548b4 LDR W2, [X0,#0x44] ; +0x1ac, 0x548b8 BL sub_67F54 ; +0x1b0, 0x548bc LDR X8, [X21,#0x108] ; +0x1b4, 0x548c0 LDR X19, [X8,#0x10] ; +0x1b8, 0x548c4 LDR X0, [X19,#0x168] ; +0x1bc, 0x548c8 STR X0, [SP,#0x50+var_50] ; +0x1c0, 0x548cc BL .FMOD_OS_CriticalSection_Enter ; +0x1c4, 0x548d0 MOV W9, #1 ; +0x1c8, 0x548d4 ADD X10, X21, #0x110 ; +0x1cc, 0x548d8 MOV W8, #7 ; +0x1d0, 0x548dc STRB W9, [SP,#0x50+var_48] ; +0x1d4, 0x548e0 STLR W8, [X10] ; +0x1d8, 0x548e4 LDR X9, [X21,#0xB8] ; +0x1dc, 0x548e8 CBZ X9, loc_548F8 ; +0x1e0, 0x548ec ADD X9, X9, #0x110 ; +0x1e4, 0x548f0 STLR W8, [X9] ; +0x1e8, 0x548f4 LDR X8, [X21,#0x108] ; +0x1ec, 0x548f8 ADD X10, X19, #0x150 ; +0x1f0, 0x548fc MOV X0, SP ; +0x1f4, 0x54900 STR W20, [X8,#0x11C] ; +0x1f8, 0x54904 STR W22, [X8,#0x120] ; +0x1fc, 0x54908 STR X21, [X8,#0x28] ; +0x200, 0x5490c LDR X9, [X19,#0x158] ; +0x204, 0x54910 STR X10, [X8,#0x18]! ; +0x208, 0x54914 STR X9, [X8,#8] ; +0x20c, 0x54918 STR X8, [X19,#0x158] ; +0x210, 0x5491c LDR X9, [X8,#8] ; +0x214, 0x54920 STR X8, [X9] ; +0x218, 0x54924 BL sub_52090 ; +0x21c, 0x54928 MOV X0, X19 ; +0x220, 0x5492c BL sub_54C8C ; +0x224, 0x54930 MOV W24, WZR ; +0x228, 0x54934 MOV W0, W24 ; +0x22c, 0x54938 LDP X29, X30, [SP,#0x50+var_s0] ; +0x230, 0x5493c LDP X20, X19, [SP,#0x50+var_10] ; +0x234, 0x54940 LDP X22, X21, [SP,#0x50+var_20] ; +0x238, 0x54944 LDP X24, X23, [SP,#0x50+var_30] ; +0x23c, 0x54948 LDR X25, [SP,#0x50+var_40] ; +0x240, 0x5494c ADD SP, SP, #0x60 ; '`' ; +0x244, 0x54950 RET ; +0x248, 0x54954 LDR X0, [X19,#0xC0] ; +0x24c, 0x54958 CBZ X0, loc_54974 ; +0x250, 0x5495c LDR X8, [X0] ; +0x254, 0x54960 LSL X1, X20, #0x20 ; ' ' ; +0x258, 0x54964 BL sub_54D00 ; +0x25c, 0x54968 MOV W24, W0 ; +0x260, 0x5496c CBNZ W0, loc_54938 ; +0x264, 0x54970 MOV W24, WZR ; +0x268, 0x54974 STP WZR, W20, [X19,#0x48] ; +0x26c, 0x54978 STP WZR, W20, [X19,#0x90] ; +0x270, 0x5497c STR WZR, [X19,#0xA0] ; +0x274, 0x54980 STR XZR, [X19,#0x98] ; +0x278, 0x54984 B loc_54938 ; +0x27c, 0x54988 STRB WZR, [SP,#0x50+var_50] ; +0x280, 0x5498c TBZ W23, #0, loc_549EC ; +0x284, 0x54990 MOV X0, X21 ; +0x288, 0x54994 MOV W1, W20 ; +0x28c, 0x54998 MOV W2, W22 ; +0x290, 0x5499c BL sub_66E18 ; +0x294, 0x549a0 MOV W24, W0 ; +0x298, 0x549a4 CBNZ W0, loc_54A30 ; +0x29c, 0x549a8 BL sub_54C9C ; +0x2a0, 0x549ac LDR X0, [X19,#0xC0] ; +0x2a4, 0x549b0 CBZ X0, loc_549C4 ; +0x2a8, 0x549b4 LDR X8, [X0] ; +0x2ac, 0x549b8 MOV X1, XZR ; +0x2b0, 0x549bc BL sub_54D00 ; +0x2b4, 0x549c0 BL sub_54CB8 ; +0x2b8, 0x549c4 CMP W22, #2 ; +0x2bc, 0x549c8 STP XZR, XZR, [X19,#0x90] ; +0x2c0, 0x549cc STR WZR, [X19,#0xA0] ; +0x2c4, 0x549d0 B.EQ loc_54A20 ; +0x2c8, 0x549d4 LDR X0, [X21,#0x60] ; +0x2cc, 0x549d8 ADD X1, X19, #0x4C ; 'L' ; +0x2d0, 0x549dc MOV W2, #2 ; +0x2d4, 0x549e0 BL sub_D2CC8 ; +0x2d8, 0x549e4 B loc_54A24 ; +0x2dc, 0x549e8 BL sub_54CE8 ; +0x2e0, 0x549ec LDR X0, [X19,#0xC0] ; +0x2e4, 0x549f0 MOV X1, SP ; +0x2e8, 0x549f4 LDR X8, [X0] ; +0x2ec, 0x549f8 LDR X8, [X8,#0x60] ; +0x2f0, 0x549fc BLR X8 ; +0x2f4, 0x54a00 CBZ W0, loc_54A10 ; +0x2f8, 0x54a04 MOV W24, W0 ; +0x2fc, 0x54a08 B loc_54A4C ; +0x300, 0x54a0c LDR X0, [X19,#0xC0] ; +0x304, 0x54a10 CBZ X0, loc_54994 ; +0x308, 0x54a14 BL sub_54CA8 ; +0x30c, 0x54a18 B loc_54994 ; +0x310, 0x54a1c STR W20, [X19,#0x4C] ; +0x314, 0x54a20 MOV X0, X21 ; +0x318, 0x54a24 BL sub_66D84 ; +0x31c, 0x54a28 MOV W24, W0 ; +0x320, 0x54a2c TBNZ W23, #0, loc_54938 ; +0x324, 0x54a30 LDR X0, [X19,#0xC0] ; +0x328, 0x54a34 CBZ X0, loc_54A4C ; +0x32c, 0x54a38 LDR X8, [X0] ; +0x330, 0x54a3c LDRB W1, [SP,#0x50+var_50] ; +0x334, 0x54a40 LDR X8, [X8,#0x58] ; +0x338, 0x54a44 BLR X8 ; +0x33c, 0x54a48 BL sub_54CF4 ; +0x340, 0x54a4c B loc_54938 ; +0x344, 0x54a50