; ; sub_103E84 from 0x103e84 to 0x10430c (1160 bytes) ; ; 1 xrefs: ; > @ 0x11f738 ; ; 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, #0x100 ; +0x0, 0x103e84 STP X22, X21, [SP,#0xF0+var_20] ; +0x4, 0x103e88 STP X20, X19, [SP,#0xF0+var_10] ; +0x8, 0x103e8c STP X29, X30, [SP,#0xF0+var_s0] ; +0xc, 0x103e90 LDRB W9, [X0,#0x64] ; +0x10, 0x103e94 STR X23, [SP,#0xF0+var_30] ; +0x14, 0x103e98 ADD X29, SP, #0xF0 ; +0x18, 0x103e9c CMP W9, #8; switch 9 cases ; +0x1c, 0x103ea0 B.HI def_103EEC; jumptable 0000000000103EEC default case ; +0x20, 0x103ea4 LDR Q0, [X0] ; +0x24, 0x103ea8 LDRB W8, [X0,#0x66] ; +0x28, 0x103eac ADRL X10, jpt_103EEC ; +0x2c, 0x103eb0 STUR Q0, [X29,#var_60] ; +0x34, 0x103eb8 LDR Q0, [X0,#0x10] ; +0x38, 0x103ebc MOV W22, W3 ; +0x3c, 0x103ec0 MOV X19, X2 ; +0x40, 0x103ec4 MOV X20, X0 ; +0x44, 0x103ec8 STUR Q0, [X29,#var_70] ; +0x48, 0x103ecc LDR Q0, [X0,#0x20] ; +0x4c, 0x103ed0 MOV X21, X1 ; +0x50, 0x103ed4 ASR W23, W3, #2 ; +0x54, 0x103ed8 STR Q0, [SP,#0xF0+var_80] ; +0x58, 0x103edc ADR X11, loc_103EF0; jumptable 0000000000103EEC cases 4-7 ; +0x5c, 0x103ee0 LDRB W12, [X10,X9] ; +0x60, 0x103ee4 ADD X11, X11, X12,LSL#2 ; +0x64, 0x103ee8 BR X11; switch jump ; +0x68, 0x103eec BL sub_104780; jumptable 0000000000103EEC cases 4-7 ; +0x6c, 0x103ef0 ASR W23, W22, #4 ; +0x70, 0x103ef4 BL sub_1047CC ; +0x74, 0x103ef8 CBZ W23, loc_103FB8 ; +0x78, 0x103efc LDR Q0, [X21] ; +0x7c, 0x103f00 BL sub_104774 ; +0x80, 0x103f04 STR Q0, [SP,#0xF0+var_C0] ; +0x84, 0x103f08 LDR Q0, [X21,#0x10] ; +0x88, 0x103f0c STR Q0, [SP,#0xF0+var_B0] ; +0x8c, 0x103f10 LDR Q0, [X21,#0x20] ; +0x90, 0x103f14 STR Q0, [SP,#0xF0+var_A0] ; +0x94, 0x103f18 LDR Q0, [X21,#0x30] ; +0x98, 0x103f1c STR Q0, [SP,#0xF0+var_90] ; +0x9c, 0x103f20 BL sub_103C94 ; +0xa0, 0x103f24 LDP Q2, Q1, [SP,#0xF0+var_E0] ; +0xa4, 0x103f28 LDR Q3, [SP,#0xF0+var_F0] ; +0xa8, 0x103f2c LDP Q7, Q16, [X29,#var_70] ; +0xac, 0x103f30 LDP Q4, Q5, [SP,#0xF0+var_C0] ; +0xb0, 0x103f34 SSHL V1.8H, V0.8H, V1.8H ; +0xb4, 0x103f38 SSHL V2.8H, V0.8H, V2.8H ; +0xb8, 0x103f3c SSHL V3.8H, V0.8H, V3.8H ; +0xbc, 0x103f40 AND V0.16B, V0.16B, V16.16B ; +0xc0, 0x103f44 AND V1.16B, V16.16B, V1.16B ; +0xc4, 0x103f48 AND V2.16B, V16.16B, V2.16B ; +0xc8, 0x103f4c AND V3.16B, V16.16B, V3.16B ; +0xcc, 0x103f50 EXT V16.16B, V1.16B, V0.16B, #8 ; +0xd0, 0x103f54 EXT V16.16B, V0.16B, V16.16B, #8 ; +0xd4, 0x103f58 BL sub_1047F0 ; +0xd8, 0x103f5c LDP Q6, Q17, [SP,#0xF0+var_A0] ; +0xdc, 0x103f60 UZP1 V3.4S, V16.4S, V1.4S ; +0xe0, 0x103f64 UZP2 V1.4S, V16.4S, V1.4S ; +0xe4, 0x103f68 UZP1 V16.4S, V0.4S, V2.4S ; +0xe8, 0x103f6c UZP2 V0.4S, V0.4S, V2.4S ; +0xec, 0x103f70 UCVTF V2.4S, V3.4S ; +0xf0, 0x103f74 UCVTF V3.4S, V16.4S ; +0xf4, 0x103f78 LDR Q16, [SP,#0xF0+var_80] ; +0xf8, 0x103f7c FADD V4.4S, V4.4S, V7.4S ; +0xfc, 0x103f80 FADD V5.4S, V5.4S, V7.4S ; +0x100, 0x103f84 FADD V6.4S, V6.4S, V7.4S ; +0x104, 0x103f88 FADD V7.4S, V17.4S, V7.4S ; +0x108, 0x103f8c UCVTF V1.4S, V1.4S ; +0x10c, 0x103f90 UCVTF V0.4S, V0.4S ; +0x110, 0x103f94 FMLA V6.4S, V2.4S, V16.4S ; +0x114, 0x103f98 FMLA V7.4S, V1.4S, V16.4S ; +0x118, 0x103f9c FMLA V4.4S, V3.4S, V16.4S ; +0x11c, 0x103fa0 FMLA V5.4S, V0.4S, V16.4S ; +0x120, 0x103fa4 STP Q6, Q7, [X21,#0x20] ; +0x124, 0x103fa8 STP Q4, Q5, [X21],#0x40 ; +0x128, 0x103fac SUB W23, W23, #1 ; +0x12c, 0x103fb0 CBNZ W23, loc_103F00 ; +0x130, 0x103fb4 MOV X23, XZR ; +0x134, 0x103fb8 UBFX X22, X22, #2, #2 ; +0x138, 0x103fbc CMP W22, W23 ; +0x13c, 0x103fc0 B.EQ def_103EEC; jumptable 0000000000103EEC default case ; +0x140, 0x103fc4 BL sub_104774 ; +0x144, 0x103fc8 BL sub_10430C ; +0x148, 0x103fcc LDUR Q2, [X29,#var_60] ; +0x14c, 0x103fd0 LDR Q1, [X21,X23,LSL#4] ; +0x150, 0x103fd4 BL sub_10479C ; +0x154, 0x103fd8 STR Q1, [X21,X23,LSL#4] ; +0x158, 0x103fdc ADD X23, X23, #1 ; +0x15c, 0x103fe0 B loc_103FC0 ; +0x160, 0x103fe4 BL sub_104768 ; +0x164, 0x103fe8 MOV X8, X21 ; +0x168, 0x103fec LDR Q1, [X8],#0x10 ; +0x16c, 0x103ff0 LDUR Q2, [X29,#var_60] ; +0x170, 0x103ff4 SUB W23, W23, #1 ; +0x174, 0x103ff8 BL sub_10479C ; +0x178, 0x103ffc STR Q1, [X21] ; +0x17c, 0x104000 MOV X21, X8 ; +0x180, 0x104004 CBNZ W23, loc_103FE8; jumptable 0000000000103EEC cases 0,1 ; +0x184, 0x104008 B def_103EEC; jumptable 0000000000103EEC default case ; +0x188, 0x10400c NEG W8, W8; jumptable 0000000000103EEC cases 2,3 ; +0x18c, 0x104010 ASR W23, W22, #3 ; +0x190, 0x104014 DUP V0.8H, W8 ; +0x194, 0x104018 STR Q0, [SP,#0xF0+var_B0] ; +0x198, 0x10401c CBZ W23, loc_104094 ; +0x19c, 0x104020 LDR Q0, [X21] ; +0x1a0, 0x104024 MOV X0, X20 ; +0x1a4, 0x104028 MOV X1, X19 ; +0x1a8, 0x10402c STR Q0, [SP,#0xF0+var_A0] ; +0x1ac, 0x104030 LDR Q0, [X21,#0x10] ; +0x1b0, 0x104034 STR Q0, [SP,#0xF0+var_90] ; +0x1b4, 0x104038 BL sub_103C94 ; +0x1b8, 0x10403c LDR Q1, [SP,#0xF0+var_B0] ; +0x1bc, 0x104040 LDP Q4, Q3, [X29,#var_70] ; +0x1c0, 0x104044 LDR Q5, [SP,#0xF0+var_80] ; +0x1c4, 0x104048 SUB W23, W23, #1 ; +0x1c8, 0x10404c SSHL V1.8H, V0.8H, V1.8H ; +0x1cc, 0x104050 AND V0.16B, V0.16B, V3.16B ; +0x1d0, 0x104054 MOV V2.16B, V4.16B ; +0x1d4, 0x104058 UCVTF V0.4S, V0.4S ; +0x1d8, 0x10405c AND V1.16B, V3.16B, V1.16B ; +0x1dc, 0x104060 FMLA V2.4S, V0.4S, V5.4S ; +0x1e0, 0x104064 MOV V0.16B, V4.16B ; +0x1e4, 0x104068 UCVTF V1.4S, V1.4S ; +0x1e8, 0x10406c FMLA V0.4S, V1.4S, V5.4S ; +0x1ec, 0x104070 ZIP1 V1.4S, V2.4S, V0.4S ; +0x1f0, 0x104074 ZIP2 V0.4S, V2.4S, V0.4S ; +0x1f4, 0x104078 LDR Q2, [SP,#0xF0+var_A0] ; +0x1f8, 0x10407c FADD V1.4S, V1.4S, V2.4S ; +0x1fc, 0x104080 LDR Q2, [SP,#0xF0+var_90] ; +0x200, 0x104084 FADD V0.4S, V0.4S, V2.4S ; +0x204, 0x104088 STP Q1, Q0, [X21],#0x20 ; +0x208, 0x10408c CBNZ W23, loc_104024 ; +0x20c, 0x104090 MOV X23, XZR ; +0x210, 0x104094 UBFX X22, X22, #2, #1 ; +0x214, 0x104098 CMP W22, W23 ; +0x218, 0x10409c B.EQ def_103EEC; jumptable 0000000000103EEC default case ; +0x21c, 0x1040a0 LDR Q0, [X21,X23,LSL#4] ; +0x220, 0x1040a4 BL sub_104774 ; +0x224, 0x1040a8 STR Q0, [SP,#0xF0+var_90] ; +0x228, 0x1040ac BL sub_10430C ; +0x22c, 0x1040b0 MOV X0, X20 ; +0x230, 0x1040b4 MOV X1, X19 ; +0x234, 0x1040b8 STR Q0, [SP,#0xF0+var_A0] ; +0x238, 0x1040bc BL sub_10430C ; +0x23c, 0x1040c0 LDP Q3, Q2, [X29,#var_70] ; +0x240, 0x1040c4 LDR Q1, [SP,#0xF0+var_A0] ; +0x244, 0x1040c8 LDR Q4, [SP,#0xF0+var_80] ; +0x248, 0x1040cc AND V0.16B, V0.16B, V2.16B ; +0x24c, 0x1040d0 UCVTF V0.4S, V0.4S ; +0x250, 0x1040d4 AND V1.16B, V1.16B, V2.16B ; +0x254, 0x1040d8 MOV V2.16B, V3.16B ; +0x258, 0x1040dc FMLA V3.4S, V0.4S, V4.4S ; +0x25c, 0x1040e0 LDR Q0, [SP,#0xF0+var_90] ; +0x260, 0x1040e4 UCVTF V1.4S, V1.4S ; +0x264, 0x1040e8 FMLA V2.4S, V1.4S, V4.4S ; +0x268, 0x1040ec INS V2.D[1], V3.D[0] ; +0x26c, 0x1040f0 FADD V0.4S, V2.4S, V0.4S ; +0x270, 0x1040f4 STR Q0, [X21,X23,LSL#4] ; +0x274, 0x1040f8 ADD X23, X23, #1 ; +0x278, 0x1040fc B loc_10409C ; +0x27c, 0x104100 NEG W9, W8; jumptable 0000000000103EEC case 8 ; +0x280, 0x104104 DUP V0.8H, W9 ; +0x284, 0x104108 NEG W9, W8,LSL#1 ; +0x288, 0x10410c STR Q0, [SP,#0xF0+var_90] ; +0x28c, 0x104110 DUP V0.8H, W9 ; +0x290, 0x104114 SUB W9, W8, W8,LSL#2 ; +0x294, 0x104118 STR Q0, [SP,#0xF0+var_A0] ; +0x298, 0x10411c DUP V0.8H, W9 ; +0x29c, 0x104120 NEG W9, W8,LSL#2 ; +0x2a0, 0x104124 STR Q0, [SP,#0xF0+var_B0] ; +0x2a4, 0x104128 DUP V0.8H, W9 ; +0x2a8, 0x10412c ADD W9, W8, W8,LSL#2 ; +0x2ac, 0x104130 NEG W9, W9 ; +0x2b0, 0x104134 STR Q0, [SP,#0xF0+var_C0] ; +0x2b4, 0x104138 DUP V0.8H, W9 ; +0x2b8, 0x10413c MOV W9, #0xFFFFFFFA ; +0x2bc, 0x104140 MUL W9, W8, W9 ; +0x2c0, 0x104144 STR Q0, [SP,#0xF0+var_D0] ; +0x2c4, 0x104148 SUB W8, W8, W8,LSL#3 ; +0x2c8, 0x10414c DUP V0.8H, W9 ; +0x2cc, 0x104150 ASR W22, W22, #5 ; +0x2d0, 0x104154 BL sub_1047CC ; +0x2d4, 0x104158 CBZ W22, loc_1042A0 ; +0x2d8, 0x10415c BL sub_104768 ; +0x2dc, 0x104160 LDP Q2, Q1, [SP,#0xF0+var_A0] ; +0x2e0, 0x104164 LDP Q4, Q3, [SP,#0xF0+var_C0] ; +0x2e4, 0x104168 LDP Q6, Q5, [SP,#0xF0+var_E0] ; +0x2e8, 0x10416c LDR Q7, [SP,#0xF0+var_F0] ; +0x2ec, 0x104170 LDP Q20, Q19, [X29,#var_70] ; +0x2f0, 0x104174 SSHL V1.8H, V0.8H, V1.8H ; +0x2f4, 0x104178 SSHL V2.8H, V0.8H, V2.8H ; +0x2f8, 0x10417c SSHL V3.8H, V0.8H, V3.8H ; +0x2fc, 0x104180 SSHL V4.8H, V0.8H, V4.8H ; +0x300, 0x104184 SSHL V5.8H, V0.8H, V5.8H ; +0x304, 0x104188 SSHL V6.8H, V0.8H, V6.8H ; +0x308, 0x10418c SSHL V7.8H, V0.8H, V7.8H ; +0x30c, 0x104190 AND V0.16B, V0.16B, V19.16B ; +0x310, 0x104194 AND V1.16B, V19.16B, V1.16B ; +0x314, 0x104198 AND V2.16B, V19.16B, V2.16B ; +0x318, 0x10419c AND V3.16B, V19.16B, V3.16B ; +0x31c, 0x1041a0 AND V4.16B, V19.16B, V4.16B ; +0x320, 0x1041a4 AND V5.16B, V19.16B, V5.16B ; +0x324, 0x1041a8 AND V6.16B, V19.16B, V6.16B ; +0x328, 0x1041ac AND V7.16B, V19.16B, V7.16B ; +0x32c, 0x1041b0 EXT V19.16B, V1.16B, V0.16B, #8 ; +0x330, 0x1041b4 EXT V19.16B, V0.16B, V19.16B, #8 ; +0x334, 0x1041b8 BL sub_1047F0 ; +0x338, 0x1041bc UZP1 V3.4S, V19.4S, V1.4S ; +0x33c, 0x1041c0 UZP2 V1.4S, V19.4S, V1.4S ; +0x340, 0x1041c4 EXT V19.16B, V5.16B, V4.16B, #8 ; +0x344, 0x1041c8 EXT V19.16B, V4.16B, V19.16B, #8 ; +0x348, 0x1041cc INS V4.D[1], V5.D[0] ; +0x34c, 0x1041d0 EXT V5.16B, V7.16B, V6.16B, #8 ; +0x350, 0x1041d4 LDR Q21, [SP,#0xF0+var_80] ; +0x354, 0x1041d8 EXT V5.16B, V6.16B, V5.16B, #8 ; +0x358, 0x1041dc INS V6.D[1], V7.D[0] ; +0x35c, 0x1041e0 UZP1 V7.4S, V19.4S, V5.4S ; +0x360, 0x1041e4 MOV V18.16B, V20.16B ; +0x364, 0x1041e8 UZP2 V5.4S, V19.4S, V5.4S ; +0x368, 0x1041ec UZP1 V19.4S, V0.4S, V2.4S ; +0x36c, 0x1041f0 UZP2 V0.4S, V0.4S, V2.4S ; +0x370, 0x1041f4 UZP1 V2.4S, V4.4S, V6.4S ; +0x374, 0x1041f8 UZP2 V4.4S, V4.4S, V6.4S ; +0x378, 0x1041fc MOV V6.16B, V20.16B ; +0x37c, 0x104200 UCVTF V3.4S, V3.4S ; +0x380, 0x104204 UCVTF V7.4S, V7.4S ; +0x384, 0x104208 FMLA V18.4S, V3.4S, V21.4S ; +0x388, 0x10420c MOV V3.16B, V20.16B ; +0x38c, 0x104210 FMLA V6.4S, V7.4S, V21.4S ; +0x390, 0x104214 MOV V7.16B, V20.16B ; +0x394, 0x104218 UCVTF V1.4S, V1.4S ; +0x398, 0x10421c UCVTF V5.4S, V5.4S ; +0x39c, 0x104220 FMLA V3.4S, V1.4S, V21.4S ; +0x3a0, 0x104224 FMLA V7.4S, V5.4S, V21.4S ; +0x3a4, 0x104228 LDP Q1, Q5, [X21] ; +0x3a8, 0x10422c MOV V16.16B, V20.16B ; +0x3ac, 0x104230 MOV V17.16B, V20.16B ; +0x3b0, 0x104234 UCVTF V0.4S, V0.4S ; +0x3b4, 0x104238 UCVTF V4.4S, V4.4S ; +0x3b8, 0x10423c FADD V1.4S, V1.4S, V20.4S ; +0x3bc, 0x104240 FADD V5.4S, V5.4S, V20.4S ; +0x3c0, 0x104244 UCVTF V19.4S, V19.4S ; +0x3c4, 0x104248 UCVTF V2.4S, V2.4S ; +0x3c8, 0x10424c FMLA V16.4S, V0.4S, V21.4S ; +0x3cc, 0x104250 FMLA V17.4S, V4.4S, V21.4S ; +0x3d0, 0x104254 LDP Q0, Q4, [X21,#0x40] ; +0x3d4, 0x104258 FMLA V1.4S, V19.4S, V21.4S ; +0x3d8, 0x10425c FMLA V5.4S, V2.4S, V21.4S ; +0x3dc, 0x104260 LDP Q2, Q19, [X21,#0x60] ; +0x3e0, 0x104264 FADD V4.4S, V6.4S, V4.4S ; +0x3e4, 0x104268 FADD V0.4S, V18.4S, V0.4S ; +0x3e8, 0x10426c STP Q1, Q5, [X21] ; +0x3ec, 0x104270 FADD V2.4S, V3.4S, V2.4S ; +0x3f0, 0x104274 FADD V3.4S, V7.4S, V19.4S ; +0x3f4, 0x104278 LDP Q6, Q7, [X21,#0x20] ; +0x3f8, 0x10427c STP Q0, Q4, [X21,#0x40] ; +0x3fc, 0x104280 STP Q2, Q3, [X21,#0x60] ; +0x400, 0x104284 SUB W22, W22, #1 ; +0x404, 0x104288 FADD V1.4S, V16.4S, V6.4S ; +0x408, 0x10428c FADD V5.4S, V17.4S, V7.4S ; +0x40c, 0x104290 STP Q1, Q5, [X21,#0x20] ; +0x410, 0x104294 ADD X21, X21, #0x80 ; +0x414, 0x104298 CBNZ W22, loc_104160 ; +0x418, 0x10429c UBFX W22, W23, #1, #2 ; +0x41c, 0x1042a0 CBZ W22, def_103EEC; jumptable 0000000000103EEC default case ; +0x420, 0x1042a4 BL sub_1047B8 ; +0x424, 0x1042a8 LDP Q1, Q0, [X29,#var_50] ; +0x428, 0x1042ac LDP Q3, Q4, [X29,#var_70] ; +0x42c, 0x1042b0 LDR Q5, [SP,#0xF0+var_80] ; +0x430, 0x1042b4 SUB W22, W22, #1 ; +0x434, 0x1042b8 AND V0.16B, V0.16B, V4.16B ; +0x438, 0x1042bc AND V1.16B, V1.16B, V4.16B ; +0x43c, 0x1042c0 MOV V2.16B, V3.16B ; +0x440, 0x1042c4 STP Q1, Q0, [X29,#var_50] ; +0x444, 0x1042c8 UCVTF V0.4S, V0.4S ; +0x448, 0x1042cc FMLA V2.4S, V0.4S, V5.4S ; +0x44c, 0x1042d0 LDP Q4, Q0, [X21] ; +0x450, 0x1042d4 UCVTF V1.4S, V1.4S ; +0x454, 0x1042d8 FMLA V3.4S, V1.4S, V5.4S ; +0x458, 0x1042dc FADD V1.4S, V2.4S, V4.4S ; +0x45c, 0x1042e0 FADD V0.4S, V3.4S, V0.4S ; +0x460, 0x1042e4 STP Q1, Q0, [X21],#0x20 ; +0x464, 0x1042e8 CBNZ W22, loc_1042A8 ; +0x468, 0x1042ec LDP X29, X30, [SP,#0xF0+var_s0]; jumptable 0000000000103EEC default case ; +0x46c, 0x1042f0 LDP X20, X19, [SP,#0xF0+var_10] ; +0x470, 0x1042f4 LDP X22, X21, [SP,#0xF0+var_20] ; +0x474, 0x1042f8 LDR X23, [SP,#0xF0+var_30] ; +0x478, 0x1042fc MOV X0, XZR ; +0x47c, 0x104300 ADD SP, SP, #0x100 ; +0x480, 0x104304 RET ; +0x484, 0x104308