; ; sub_53590 from 0x53590 to 0x5379c (524 bytes) ; ; 1 xrefs: ; > sub_537A4 @ 0x537c8 ; ; 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 D11, D10, [SP,#-0x10+var_30]! ; +0x0, 0x53590 STP D9, D8, [SP,#0x30+var_20] ; +0x4, 0x53594 STP X20, X19, [SP,#0x30+var_10] ; +0x8, 0x53598 STP X29, X30, [SP,#0x30+var_s0] ; +0xc, 0x5359c LDR X8, [X0,#0x18] ; +0x10, 0x535a0 FMOV S1, WZR ; +0x14, 0x535a4 FMOV S9, #1.0 ; +0x18, 0x535a8 LDR X10, [X0,#0x28] ; +0x1c, 0x535ac LDR W9, [X8,#0x48] ; +0x20, 0x535b0 LDR S3, [X8,#0xF0] ; +0x24, 0x535b4 LDR S4, [X8,#0x78] ; +0x28, 0x535b8 LDR S2, [X8,#0x218] ; +0x2c, 0x535bc LDR S5, [X8,#0xA4] ; +0x30, 0x535c0 TST W9, #2 ; +0x34, 0x535c4 FCSEL S0, S0, S1, EQ ; +0x38, 0x535c8 FSUB S1, S9, S3 ; +0x3c, 0x535cc FMADD S4, S4, S3, S1 ; +0x40, 0x535d0 LDR X20, [X8,#0x70] ; +0x44, 0x535d4 FMUL S2, S2, S4 ; +0x48, 0x535d8 FMADD S1, S5, S3, S1 ; +0x4c, 0x535dc FMUL S1, S2, S1 ; +0x50, 0x535e0 MOV X19, X0 ; +0x54, 0x535e4 FMUL S8, S0, S1 ; +0x58, 0x535e8 ADD X29, SP, #0x30 ; +0x5c, 0x535ec CBZ X10, loc_53604 ; +0x60, 0x535f0 LDR X10, [X10,#0x118] ; +0x64, 0x535f4 CBZ X10, loc_53604 ; +0x68, 0x535f8 LDR S0, [X10,#0x78] ; +0x6c, 0x535fc FMUL S8, S0, S8 ; +0x70, 0x53600 LDR S0, [X8,#0xC0] ; +0x74, 0x53604 LDR S1, [X8,#0xD0] ; +0x78, 0x53608 LDR X10, [X19,#0x2F0] ; +0x7c, 0x5360c FSUB S0, S9, S0 ; +0x80, 0x53610 FMSUB S0, S1, S0, S0 ; +0x84, 0x53614 CBZ X10, loc_53670 ; +0x88, 0x53618 LDR X10, [X19,#8] ; +0x8c, 0x5361c LDR S1, [X8,#0x220] ; +0x90, 0x53620 FMOV S11, WZR ; +0x94, 0x53624 LDRB W10, [X10,#0x79] ; +0x98, 0x53628 FMUL S10, S1, S0 ; +0x9c, 0x5362c TBZ W10, #1, loc_536C4 ; +0xa0, 0x53630 LDR X0, [X19,#0x2F8] ; +0xa4, 0x53634 CBZ X0, loc_536C4 ; +0xa8, 0x53638 TBNZ W9, #0x14, loc_53678 ; +0xac, 0x5363c LDR S0, [X8,#0x98] ; +0xb0, 0x53640 LDR S1, [X8,#0xA0] ; +0xb4, 0x53644 FCMP S0, S1 ; +0xb8, 0x53648 B.GT loc_53684 ; +0xbc, 0x5364c LDR S2, [X8,#0x9C] ; +0xc0, 0x53650 FMOV S9, WZR ; +0xc4, 0x53654 FCMP S0, S2 ; +0xc8, 0x53658 B.LE loc_536B8 ; +0xcc, 0x5365c FSUB S0, S0, S2 ; +0xd0, 0x53660 FSUB S1, S1, S2 ; +0xd4, 0x53664 FDIV S9, S0, S1 ; +0xd8, 0x53668 B loc_5367C ; +0xdc, 0x5366c FMUL S8, S0, S8 ; +0xe0, 0x53670 B loc_53728 ; +0xe4, 0x53674 LDR S9, [X8,#0xF8] ; +0xe8, 0x53678 FCMP S9, #0.0 ; +0xec, 0x5367c B.LE loc_536B8 ; +0xf0, 0x53680 MOV W1, WZR ; +0xf4, 0x53684 BL sub_C7DE0 ; +0xf8, 0x53688 LDR X8, [X19,#0x18] ; +0xfc, 0x5368c LDR X0, [X19,#0x2F8] ; +0x100, 0x53690 FMOV S2, #-10.0 ; +0x104, 0x53694 FMUL S1, S9, S9 ; +0x108, 0x53698 LDR S0, [X8,#0xFC] ; +0x10c, 0x5369c MOV W1, WZR ; +0x110, 0x536a0 FADD S0, S0, S2 ; +0x114, 0x536a4 FMOV S2, #10.0 ; +0x118, 0x536a8 FMADD S0, S1, S0, S2 ; +0x11c, 0x536ac BL sub_CBD5C ; +0x120, 0x536b0 B loc_536C0 ; +0x124, 0x536b4 MOV W1, #1 ; +0x128, 0x536b8 BL sub_C7DE0 ; +0x12c, 0x536bc MOV V11.16B, V9.16B ; +0x130, 0x536c0 LDR X0, [X19,#0x2F0] ; +0x134, 0x536c4 FMOV S9, #1.0 ; +0x138, 0x536c8 FCMP S10, S9 ; +0x13c, 0x536cc B.LT loc_536E8 ; +0x140, 0x536d0 FCMP S11, #0.0 ; +0x144, 0x536d4 B.GT loc_536E8 ; +0x148, 0x536d8 MOV W1, #1 ; +0x14c, 0x536dc BL sub_C7DE0 ; +0x150, 0x536e0 B loc_53728 ; +0x154, 0x536e4 MOV W1, WZR ; +0x158, 0x536e8 BL sub_C7DE0 ; +0x15c, 0x536ec LDR X9, [X19,#0x18] ; +0x160, 0x536f0 ADRP X8, #dword_2F040@PAGE ; +0x164, 0x536f4 LDR S0, [X8,#dword_2F040@PAGEOFF] ; +0x168, 0x536f8 FMUL S1, S10, S10 ; +0x16c, 0x536fc LDR S2, [X9,#0xFC] ; +0x170, 0x53700 FSUB S3, S9, S11 ; +0x174, 0x53704 LDR X0, [X19,#0x2F0] ; +0x178, 0x53708 FMUL S1, S1, S0 ; +0x17c, 0x5370c FMUL S3, S3, S3 ; +0x180, 0x53710 FSUB S0, S0, S2 ; +0x184, 0x53714 FMADD S0, S3, S0, S2 ; +0x188, 0x53718 FMINNM S0, S0, S1 ; +0x18c, 0x5371c MOV W1, WZR ; +0x190, 0x53720 BL sub_CBD5C ; +0x194, 0x53724 LDR X9, [X19,#0x18] ; +0x198, 0x53728 LDR W8, [X9,#0x48] ; +0x19c, 0x5372c TBNZ W8, #0x15, loc_53760 ; +0x1a0, 0x53730 LDR X9, [X9,#0x20] ; +0x1a4, 0x53734 CBZ X9, loc_53744 ; +0x1a8, 0x53738 LDRB W9, [X9,#0x48] ; +0x1ac, 0x5373c TBNZ W9, #4, loc_5376C ; +0x1b0, 0x53740 MOV W9, #0xC0020 ; +0x1b4, 0x53744 TST W8, W9 ; +0x1bc, 0x5374c CSET W8, EQ ; +0x1c0, 0x53750 MOV W3, WZR ; +0x1c4, 0x53754 LSL W1, W8, #6 ; +0x1c8, 0x53758 B loc_53774 ; +0x1cc, 0x5375c MOV W3, #1 ; +0x1d0, 0x53760 MOV W1, #0x40 ; '@' ; +0x1d4, 0x53764 B loc_53774 ; +0x1d8, 0x53768 MOV W1, WZR ; +0x1dc, 0x5376c MOV W3, WZR ; +0x1e0, 0x53770 LDR W8, [X19,#0x3C] ; +0x1e4, 0x53774 MOV X0, X20 ; +0x1e8, 0x53778 MOV V0.16B, V8.16B ; +0x1ec, 0x5377c LDP X29, X30, [SP,#0x30+var_s0] ; +0x1f0, 0x53780 LDP X20, X19, [SP,#0x30+var_10] ; +0x1f4, 0x53784 LDP D9, D8, [SP,#0x30+var_20] ; +0x1f8, 0x53788 TST W8, #0x10000 ; +0x1fc, 0x5378c CSET W2, EQ ; +0x200, 0x53790 LDP D11, D10, [SP+0x30+var_30],#0x40 ; +0x204, 0x53794 B sub_B0C10 ; +0x208, 0x53798