; ; sub_103A80 from 0x103a80 to 0x103c94 (532 bytes) ; ; 1 xrefs: ; > @ 0x11f740 ; ; 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, #0xB0 ; +0x0, 0x103a80 STP X24, X23, [SP,#0xA0+var_30] ; +0x4, 0x103a84 STP X22, X21, [SP,#0xA0+var_20] ; +0x8, 0x103a88 STP X20, X19, [SP,#0xA0+var_10] ; +0xc, 0x103a8c STP X29, X30, [SP,#0xA0+var_s0] ; +0x10, 0x103a90 LDRB W9, [X0,#0x64] ; +0x14, 0x103a94 STR X25, [SP,#0xA0+var_40] ; +0x18, 0x103a98 ADD X29, SP, #0xA0 ; +0x1c, 0x103a9c CMP W9, #7 ; +0x20, 0x103aa0 B.HI loc_103C74 ; +0x24, 0x103aa4 LDR Q0, [X0] ; +0x28, 0x103aa8 LDRB W8, [X0,#0x66] ; +0x2c, 0x103aac MOV W10, #1 ; +0x30, 0x103ab0 LSL W9, W10, W9 ; +0x34, 0x103ab4 STR Q0, [SP,#0xA0+var_50] ; +0x38, 0x103ab8 LDR Q0, [X0,#0x10] ; +0x3c, 0x103abc MOV X19, X2 ; +0x40, 0x103ac0 MOV X20, X0 ; +0x44, 0x103ac4 MOV X21, X1 ; +0x48, 0x103ac8 STR Q0, [SP,#0xA0+var_60] ; +0x4c, 0x103acc LDR Q0, [X0,#0x20] ; +0x50, 0x103ad0 TST W9, #0xF0 ; +0x54, 0x103ad4 ASR W23, W3, #2 ; +0x58, 0x103ad8 STR Q0, [SP,#0xA0+var_70] ; +0x5c, 0x103adc B.EQ loc_103BC8 ; +0x60, 0x103ae0 NEG W10, W8 ; +0x64, 0x103ae4 MOV W9, #4 ; +0x68, 0x103ae8 NEG W11, W8,LSL#1 ; +0x6c, 0x103aec DUP V0.8H, W10 ; +0x70, 0x103af0 SUB W8, W8, W8,LSL#2 ; +0x74, 0x103af4 SDIV W9, W23, W9 ; +0x78, 0x103af8 STR Q0, [SP,#0xA0+var_80] ; +0x7c, 0x103afc DUP V0.8H, W11 ; +0x80, 0x103b00 STR Q0, [SP,#0xA0+var_90] ; +0x84, 0x103b04 DUP V0.8H, W8 ; +0x88, 0x103b08 SXTW X23, W9 ; +0x8c, 0x103b0c LSL W8, W9, #1 ; +0x90, 0x103b10 ADD W9, W9, W9,LSL#1 ; +0x94, 0x103b14 ASR W22, W3, #4 ; +0x98, 0x103b18 SXTW X24, W8 ; +0x9c, 0x103b1c SXTW X25, W9 ; +0xa0, 0x103b20 STR Q0, [SP,#0xA0+var_A0] ; +0xa4, 0x103b24 CBZ W22, loc_103C74 ; +0xa8, 0x103b28 BL sub_104768 ; +0xac, 0x103b2c LDP Q6, Q5, [SP,#0xA0+var_60] ; +0xb0, 0x103b30 LDP Q1, Q7, [SP,#0xA0+var_80] ; +0xb4, 0x103b34 LDR Q4, [X21] ; +0xb8, 0x103b38 SUB W22, W22, #1 ; +0xbc, 0x103b3c AND V2.16B, V0.16B, V5.16B ; +0xc0, 0x103b40 MOV V3.16B, V6.16B ; +0xc4, 0x103b44 UCVTF V2.4S, V2.4S ; +0xc8, 0x103b48 FMLA V3.4S, V2.4S, V7.4S ; +0xcc, 0x103b4c FADD V3.4S, V3.4S, V4.4S ; +0xd0, 0x103b50 LDP Q16, Q2, [SP,#0xA0+var_A0] ; +0xd4, 0x103b54 STR Q3, [X21] ; +0xd8, 0x103b58 SSHL V1.8H, V0.8H, V1.8H ; +0xdc, 0x103b5c LDR Q3, [X21,X23,LSL#4] ; +0xe0, 0x103b60 AND V1.16B, V5.16B, V1.16B ; +0xe4, 0x103b64 MOV V4.16B, V6.16B ; +0xe8, 0x103b68 UCVTF V1.4S, V1.4S ; +0xec, 0x103b6c FMLA V4.4S, V1.4S, V7.4S ; +0xf0, 0x103b70 FADD V3.4S, V4.4S, V3.4S ; +0xf4, 0x103b74 STR Q3, [X21,X23,LSL#4] ; +0xf8, 0x103b78 SSHL V2.8H, V0.8H, V2.8H ; +0xfc, 0x103b7c LDR Q3, [X21,X24,LSL#4] ; +0x100, 0x103b80 AND V2.16B, V5.16B, V2.16B ; +0x104, 0x103b84 MOV V1.16B, V6.16B ; +0x108, 0x103b88 UCVTF V2.4S, V2.4S ; +0x10c, 0x103b8c FMLA V1.4S, V2.4S, V7.4S ; +0x110, 0x103b90 FADD V1.4S, V1.4S, V3.4S ; +0x114, 0x103b94 STR Q1, [X21,X24,LSL#4] ; +0x118, 0x103b98 SSHL V0.8H, V0.8H, V16.8H ; +0x11c, 0x103b9c LDR Q1, [X21,X25,LSL#4] ; +0x120, 0x103ba0 AND V0.16B, V5.16B, V0.16B ; +0x124, 0x103ba4 MOV V4.16B, V6.16B ; +0x128, 0x103ba8 UCVTF V0.4S, V0.4S ; +0x12c, 0x103bac FMLA V4.4S, V0.4S, V7.4S ; +0x130, 0x103bb0 FADD V0.4S, V4.4S, V1.4S ; +0x134, 0x103bb4 STR Q0, [X21,X25,LSL#4] ; +0x138, 0x103bb8 ADD X21, X21, #0x10 ; +0x13c, 0x103bbc CBNZ W22, loc_103B2C ; +0x140, 0x103bc0 B loc_103C74 ; +0x144, 0x103bc4 TST W9, #3 ; +0x148, 0x103bc8 B.EQ loc_103C10 ; +0x14c, 0x103bcc CBZ W23, loc_103C74 ; +0x150, 0x103bd0 BL sub_104768 ; +0x154, 0x103bd4 MOV X8, X21 ; +0x158, 0x103bd8 LDR Q1, [X8],#0x10 ; +0x15c, 0x103bdc LDR Q2, [SP,#0xA0+var_50] ; +0x160, 0x103be0 SUB W23, W23, #1 ; +0x164, 0x103be4 AND V0.16B, V0.16B, V2.16B ; +0x168, 0x103be8 LDR Q2, [SP,#0xA0+var_60] ; +0x16c, 0x103bec UCVTF V0.4S, V0.4S ; +0x170, 0x103bf0 FADD V1.4S, V1.4S, V2.4S ; +0x174, 0x103bf4 LDR Q2, [SP,#0xA0+var_70] ; +0x178, 0x103bf8 FMLA V1.4S, V0.4S, V2.4S ; +0x17c, 0x103bfc STR Q1, [X21] ; +0x180, 0x103c00 MOV X21, X8 ; +0x184, 0x103c04 CBNZ W23, loc_103BD4 ; +0x188, 0x103c08 B loc_103C74 ; +0x18c, 0x103c0c MOV W9, #2 ; +0x190, 0x103c10 NEG W8, W8 ; +0x194, 0x103c14 SDIV W9, W23, W9 ; +0x198, 0x103c18 ASR W22, W3, #3 ; +0x19c, 0x103c1c DUP V0.8H, W8 ; +0x1a0, 0x103c20 SXTW X23, W9 ; +0x1a4, 0x103c24 STR Q0, [SP,#0xA0+var_80] ; +0x1a8, 0x103c28 CBZ W22, loc_103C74 ; +0x1ac, 0x103c2c BL sub_104768 ; +0x1b0, 0x103c30 LDP Q4, Q3, [SP,#0xA0+var_60] ; +0x1b4, 0x103c34 LDR Q1, [X21] ; +0x1b8, 0x103c38 LDR Q5, [SP,#0xA0+var_70] ; +0x1bc, 0x103c3c SUB W22, W22, #1 ; +0x1c0, 0x103c40 BL sub_104804 ; +0x1c4, 0x103c44 LDR Q2, [SP,#0xA0+var_80] ; +0x1c8, 0x103c48 STR Q1, [X21] ; +0x1cc, 0x103c4c LDR Q1, [X21,X23,LSL#4] ; +0x1d0, 0x103c50 SSHL V0.8H, V0.8H, V2.8H ; +0x1d4, 0x103c54 AND V0.16B, V3.16B, V0.16B ; +0x1d8, 0x103c58 UCVTF V0.4S, V0.4S ; +0x1dc, 0x103c5c FADD V1.4S, V1.4S, V4.4S ; +0x1e0, 0x103c60 FMLA V1.4S, V0.4S, V5.4S ; +0x1e4, 0x103c64 STR Q1, [X21,X23,LSL#4] ; +0x1e8, 0x103c68 ADD X21, X21, #0x10 ; +0x1ec, 0x103c6c CBNZ W22, loc_103C30 ; +0x1f0, 0x103c70 LDP X29, X30, [SP,#0xA0+var_s0] ; +0x1f4, 0x103c74 LDP X20, X19, [SP,#0xA0+var_10] ; +0x1f8, 0x103c78 LDP X22, X21, [SP,#0xA0+var_20] ; +0x1fc, 0x103c7c LDP X24, X23, [SP,#0xA0+var_30] ; +0x200, 0x103c80 LDR X25, [SP,#0xA0+var_40] ; +0x204, 0x103c84 MOV X0, XZR ; +0x208, 0x103c88 ADD SP, SP, #0xB0 ; +0x20c, 0x103c8c RET ; +0x210, 0x103c90