; ; sub_597E0 from 0x597e0 to 0x5999c (444 bytes) ; ; 5 xrefs: ; > sub_5B538 @ 0x5b590 ; > sub_5BB4C @ 0x5bb5c ; > sub_5C64C @ 0x5c654 ; > sub_6E15C @ 0x6e2c0 ; > sub_6E374 @ 0x6e438 ; ; 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 ; STR D8, [SP,#-0x10+var_30]! ; +0x0, 0x597e0 STP X22, X21, [SP,#0x30+var_20] ; +0x4, 0x597e4 STP X20, X19, [SP,#0x30+var_10] ; +0x8, 0x597e8 STP X29, X30, [SP,#0x30+var_s0] ; +0xc, 0x597ec LDRB W8, [X0,#0x4A] ; +0x10, 0x597f0 ADD X29, SP, #0x30 ; +0x14, 0x597f4 TBNZ W8, #2, loc_59958 ; +0x18, 0x597f8 LDR X8, [X0,#0x1D8] ; +0x1c, 0x597fc MOV X19, X0 ; +0x20, 0x59800 CBZ X8, loc_59960 ; +0x24, 0x59804 LDR X9, [X19,#0x20] ; +0x28, 0x59808 CBZ X9, loc_59960 ; +0x2c, 0x5980c LDRB W9, [X8,#0x3E] ; +0x30, 0x59810 TBNZ W9, #0, loc_59958 ; +0x34, 0x59814 LDR X21, [X8,#0x28] ; +0x38, 0x59818 ADD X1, SP, #0x30+var_24 ; +0x3c, 0x5981c MOV X0, X19 ; +0x40, 0x59820 MOV W2, WZR ; +0x44, 0x59824 BL sub_5999C ; +0x48, 0x59828 LDR S0, [SP,#0x30+var_24] ; +0x4c, 0x5982c LDR X9, [X19,#8] ; +0x50, 0x59830 LDR S1, [X19,#0x218] ; +0x54, 0x59834 MOV W10, #0x11040 ; +0x58, 0x59838 LDP S4, S5, [X19,#0xC0] ; +0x60, 0x59840 LDR S3, [X9,X10] ; +0x64, 0x59844 LDR X10, [X19,#0x20] ; +0x68, 0x59848 FMUL S8, S1, S0 ; +0x6c, 0x5984c LDP S0, S1, [X19,#0xD0] ; +0x70, 0x59850 FMOV S2, #1.0 ; +0x74, 0x59854 FSUB S4, S2, S4 ; +0x78, 0x59858 FSUB S2, S2, S5 ; +0x7c, 0x5985c LDR S5, [X10,#0x1F0] ; +0x80, 0x59860 FMSUB S0, S0, S4, S4 ; +0x84, 0x59864 LDR S4, [X10,#0x1F4] ; +0x88, 0x59868 FMSUB S2, S1, S2, S2 ; +0x8c, 0x5986c MOV W8, WZR ; +0x90, 0x59870 FMUL S1, S0, S5 ; +0x94, 0x59874 FCMP S8, S3 ; +0x98, 0x59878 FMUL S0, S2, S4 ; +0x9c, 0x5987c B.GT loc_5988C ; +0xa0, 0x59880 LDRB W8, [X9,#0x7A] ; +0xa4, 0x59884 UBFX W8, W8, #1, #1 ; +0xa8, 0x59888 LDR W9, [X19,#0x1E0] ; +0xac, 0x5988c FCMP S1, #0.0 ; +0xb0, 0x59890 CSET W10, NE ; +0xb4, 0x59894 FCMP S0, #0.0 ; +0xb8, 0x59898 CSET W11, LE ; +0xbc, 0x5989c ORR W10, W10, W11 ; +0xc0, 0x598a0 CMP W9, #0 ; +0xc4, 0x598a4 AND W8, W10, W8 ; +0xc8, 0x598a8 CSET W9, NE ; +0xcc, 0x598ac AND W1, W8, W9 ; +0xd0, 0x598b0 MOV X0, X19 ; +0xd4, 0x598b4 BL sub_59AE8 ; +0xd8, 0x598b8 LDR W9, [X19,#0x1E0] ; +0xdc, 0x598bc MOV W11, #0x447A0000 ; +0xe0, 0x598c0 FMOV S0, W11 ; +0xe4, 0x598c4 MOV W10, #0x2711 ; +0xe8, 0x598c8 FMUL S0, S8, S0 ; +0xec, 0x598cc FCVTZS W11, S0 ; +0xf0, 0x598d0 MUL W9, W9, W10 ; +0xf4, 0x598d4 MOV W12, #0x2710 ; +0xf8, 0x598d8 SUB W10, W9, W11 ; +0xfc, 0x598dc ADD W10, W10, W12 ; +0x100, 0x598e0 LDR W8, [X19,#0x1E4] ; +0x104, 0x598e4 ADRP X13, #dword_2EFE0@PAGE ; +0x108, 0x598e8 STR W10, [X19,#0x1E4] ; +0x10c, 0x598ec LDR S1, [X13,#dword_2EFE0@PAGEOFF] ; +0x110, 0x598f0 LDR S0, [SP,#0x30+var_24] ; +0x114, 0x598f4 LDR W22, [X19,#0x1E8] ; +0x118, 0x598f8 CMP W10, W8 ; +0x11c, 0x598fc FMUL S0, S0, S1 ; +0x120, 0x59900 FCVTZS W11, S0 ; +0x124, 0x59904 SUB W9, W9, W11 ; +0x128, 0x59908 ADD W9, W9, W12 ; +0x12c, 0x5990c STR W9, [X19,#0x1E8] ; +0x130, 0x59910 B.EQ loc_59940 ; +0x134, 0x59914 ADD X20, X19, #0x190 ; +0x138, 0x59918 MOV X0, X20 ; +0x13c, 0x5991c BL sub_59598 ; +0x140, 0x59920 LDR X8, [X19,#8] ; +0x144, 0x59924 LDR W3, [X19,#0x1E4] ; +0x148, 0x59928 MOV X0, X20 ; +0x14c, 0x5992c ADD X1, X8, #0x650 ; +0x150, 0x59930 MOV X2, X1 ; +0x154, 0x59934 BL sub_59C90 ; +0x158, 0x59938 STR X19, [X19,#0x1A0] ; +0x15c, 0x5993c CBZ X21, loc_59958 ; +0x160, 0x59940 LDR X8, [X21,#0x118] ; +0x164, 0x59944 CBZ X8, loc_59958 ; +0x168, 0x59948 LDR W8, [X19,#0x1E8] ; +0x16c, 0x5994c CMP W8, W22 ; +0x170, 0x59950 B.NE loc_5996C ; +0x174, 0x59954 MOV W0, WZR ; +0x178, 0x59958 B loc_59964 ; +0x17c, 0x5995c MOV W0, #0x1E ; +0x180, 0x59960 LDP X29, X30, [SP,#0x30+var_s0] ; +0x184, 0x59964 B loc_5C5CC ; +0x188, 0x59968 ADD X20, X19, #0x1B0 ; +0x18c, 0x5996c MOV X0, X20 ; +0x190, 0x59970 BL sub_59598 ; +0x194, 0x59974 LDR X8, [X21,#0x118] ; +0x198, 0x59978 LDR W3, [X19,#0x1E8] ; +0x19c, 0x5997c MOV X0, X20 ; +0x1a0, 0x59980 ADD X1, X8, #0x40 ; '@' ; +0x1a4, 0x59984 MOV X2, X1 ; +0x1a8, 0x59988 BL sub_59C90 ; +0x1ac, 0x5998c MOV W0, WZR ; +0x1b0, 0x59990 STR X19, [X19,#0x1C0] ; +0x1b4, 0x59994 B loc_59964 ; +0x1b8, 0x59998