; ; sub_10449C from 0x10449c to 0x104768 (716 bytes) ; ; 1 xrefs: ; > @ 0x11f748 ; ; 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, #0xE0 ; +0x0, 0x10449c STP X22, X21, [SP,#0xD0+var_20] ; +0x4, 0x1044a0 STP X20, X19, [SP,#0xD0+var_10] ; +0x8, 0x1044a4 STP X29, X30, [SP,#0xD0+var_s0] ; +0xc, 0x1044a8 LDRB W9, [X0,#0x64] ; +0x10, 0x1044ac STR X23, [SP,#0xD0+var_30] ; +0x14, 0x1044b0 ADD X29, SP, #0xD0 ; +0x18, 0x1044b4 CMP W9, #8; switch 9 cases ; +0x1c, 0x1044b8 B.HI def_104508; jumptable 0000000000104508 default case ; +0x20, 0x1044bc LDR Q0, [X0] ; +0x24, 0x1044c0 LDP X10, X11, [X1] ; +0x28, 0x1044c4 LDRB W8, [X0,#0x66] ; +0x2c, 0x1044c8 ADRP X12, #jpt_104508@PAGE ; +0x30, 0x1044cc STR Q0, [SP,#0xD0+var_80] ; +0x34, 0x1044d0 LDR Q0, [X0,#0x10] ; +0x38, 0x1044d4 ADD X12, X12, #jpt_104508@PAGEOFF ; +0x3c, 0x1044d8 MOV X19, X4 ; +0x40, 0x1044dc MOV X20, X0 ; +0x44, 0x1044e0 STR Q0, [SP,#0xD0+var_90] ; +0x48, 0x1044e4 LDR Q0, [X0,#0x20] ; +0x4c, 0x1044e8 ADD X22, X10, X2,LSL#2 ; +0x50, 0x1044ec ADD X21, X11, X2,LSL#2 ; +0x54, 0x1044f0 ASR W23, W5, #2 ; +0x58, 0x1044f4 STR Q0, [SP,#0xD0+var_A0] ; +0x5c, 0x1044f8 ADR X13, loc_10450C; jumptable 0000000000104508 cases 4-7 ; +0x60, 0x1044fc LDRB W14, [X12,X9] ; +0x64, 0x104500 ADD X13, X13, X14,LSL#2 ; +0x68, 0x104504 BR X13; switch jump ; +0x6c, 0x104508 BL sub_104780; jumptable 0000000000104508 cases 4-7 ; +0x70, 0x10450c ASR W23, W5, #3 ; +0x74, 0x104510 BL sub_1047CC ; +0x78, 0x104514 CBZ W23, def_104508; jumptable 0000000000104508 default case ; +0x7c, 0x104518 BL sub_104768 ; +0x80, 0x10451c LDP Q2, Q1, [SP,#0xD0+var_C0] ; +0x84, 0x104520 LDP Q7, Q6, [SP,#0xD0+var_90] ; +0x88, 0x104524 LDR Q3, [SP,#0xD0+var_D0] ; +0x8c, 0x104528 LDR Q16, [SP,#0xD0+var_A0] ; +0x90, 0x10452c SSHL V1.8H, V0.8H, V1.8H ; +0x94, 0x104530 AND V1.16B, V6.16B, V1.16B ; +0x98, 0x104534 SSHL V2.8H, V0.8H, V2.8H ; +0x9c, 0x104538 SSHL V3.8H, V0.8H, V3.8H ; +0xa0, 0x10453c AND V0.16B, V0.16B, V6.16B ; +0xa4, 0x104540 MOV V5.16B, V7.16B ; +0xa8, 0x104544 UCVTF V1.4S, V1.4S ; +0xac, 0x104548 MOV V4.16B, V7.16B ; +0xb0, 0x10454c UCVTF V0.4S, V0.4S ; +0xb4, 0x104550 FMLA V5.4S, V1.4S, V16.4S ; +0xb8, 0x104554 LDR Q1, [X22] ; +0xbc, 0x104558 AND V2.16B, V6.16B, V2.16B ; +0xc0, 0x10455c FMLA V4.4S, V0.4S, V16.4S ; +0xc4, 0x104560 MOV V0.16B, V7.16B ; +0xc8, 0x104564 UCVTF V2.4S, V2.4S ; +0xcc, 0x104568 FMLA V0.4S, V2.4S, V16.4S ; +0xd0, 0x10456c ZIP1 V2.4S, V4.4S, V0.4S ; +0xd4, 0x104570 FADD V1.4S, V2.4S, V1.4S ; +0xd8, 0x104574 STR Q1, [X22] ; +0xdc, 0x104578 AND V3.16B, V6.16B, V3.16B ; +0xe0, 0x10457c LDR Q1, [X21] ; +0xe4, 0x104580 MOV V2.16B, V7.16B ; +0xe8, 0x104584 UCVTF V3.4S, V3.4S ; +0xec, 0x104588 FMLA V2.4S, V3.4S, V16.4S ; +0xf0, 0x10458c ZIP1 V3.4S, V5.4S, V2.4S ; +0xf4, 0x104590 FADD V1.4S, V3.4S, V1.4S ; +0xf8, 0x104594 STR Q1, [X21] ; +0xfc, 0x104598 LDR Q1, [X22,#0x10] ; +0x100, 0x10459c ZIP2 V0.4S, V4.4S, V0.4S ; +0x104, 0x1045a0 SUB W23, W23, #1 ; +0x108, 0x1045a4 FADD V0.4S, V0.4S, V1.4S ; +0x10c, 0x1045a8 STR Q0, [X22,#0x10] ; +0x110, 0x1045ac LDR Q0, [X21,#0x10] ; +0x114, 0x1045b0 ZIP2 V1.4S, V5.4S, V2.4S ; +0x118, 0x1045b4 ADD X22, X22, #0x20 ; ' ' ; +0x11c, 0x1045b8 FADD V0.4S, V0.4S, V1.4S ; +0x120, 0x1045bc STR Q0, [X21,#0x10] ; +0x124, 0x1045c0 ADD X21, X21, #0x20 ; ' ' ; +0x128, 0x1045c4 CBNZ W23, loc_10451C ; +0x12c, 0x1045c8 B def_104508; jumptable 0000000000104508 default case ; +0x130, 0x1045cc BL sub_104768 ; +0x134, 0x1045d0 BL sub_104774 ; +0x138, 0x1045d4 STR Q0, [SP,#0xD0+var_B0] ; +0x13c, 0x1045d8 BL sub_103C94 ; +0x140, 0x1045dc LDP Q3, Q2, [SP,#0xD0+var_90] ; +0x144, 0x1045e0 LDP Q1, Q4, [SP,#0xD0+var_B0] ; +0x148, 0x1045e4 MOV X8, X22 ; +0x14c, 0x1045e8 MOV X9, X21 ; +0x150, 0x1045ec AND V0.16B, V0.16B, V2.16B ; +0x154, 0x1045f0 AND V1.16B, V1.16B, V2.16B ; +0x158, 0x1045f4 MOV V2.16B, V3.16B ; +0x15c, 0x1045f8 UCVTF V1.4S, V1.4S ; +0x160, 0x1045fc FMLA V2.4S, V1.4S, V4.4S ; +0x164, 0x104600 LDR Q1, [X8],#0x10 ; +0x168, 0x104604 UCVTF V0.4S, V0.4S ; +0x16c, 0x104608 FMLA V3.4S, V0.4S, V4.4S ; +0x170, 0x10460c UZP1 V0.4S, V2.4S, V3.4S ; +0x174, 0x104610 FADD V0.4S, V0.4S, V1.4S ; +0x178, 0x104614 STR Q0, [X22] ; +0x17c, 0x104618 LDR Q0, [X9],#0x10 ; +0x180, 0x10461c UZP2 V1.4S, V2.4S, V3.4S ; +0x184, 0x104620 SUB W23, W23, #1 ; +0x188, 0x104624 MOV X22, X8 ; +0x18c, 0x104628 FADD V0.4S, V1.4S, V0.4S ; +0x190, 0x10462c STR Q0, [X21] ; +0x194, 0x104630 MOV X21, X9 ; +0x198, 0x104634 CBNZ W23, loc_1045D0; jumptable 0000000000104508 cases 0,1 ; +0x19c, 0x104638 B def_104508; jumptable 0000000000104508 default case ; +0x1a0, 0x10463c NEG W8, W8; jumptable 0000000000104508 cases 2,3 ; +0x1a4, 0x104640 DUP V0.8H, W8 ; +0x1a8, 0x104644 STR Q0, [SP,#0xD0+var_B0] ; +0x1ac, 0x104648 CBZ W23, def_104508; jumptable 0000000000104508 default case ; +0x1b0, 0x10464c BL sub_104768 ; +0x1b4, 0x104650 MOV X8, X22 ; +0x1b8, 0x104654 LDR Q1, [X8],#0x10 ; +0x1bc, 0x104658 LDP Q4, Q3, [SP,#0xD0+var_90] ; +0x1c0, 0x10465c LDR Q5, [SP,#0xD0+var_A0] ; +0x1c4, 0x104660 MOV X9, X21 ; +0x1c8, 0x104664 SUB W23, W23, #1 ; +0x1cc, 0x104668 BL sub_104804 ; +0x1d0, 0x10466c STR Q1, [X22] ; +0x1d4, 0x104670 LDR Q1, [X9],#0x10 ; +0x1d8, 0x104674 LDR Q2, [SP,#0xD0+var_B0] ; +0x1dc, 0x104678 MOV X22, X8 ; +0x1e0, 0x10467c FADD V1.4S, V1.4S, V4.4S ; +0x1e4, 0x104680 SSHL V0.8H, V0.8H, V2.8H ; +0x1e8, 0x104684 AND V0.16B, V3.16B, V0.16B ; +0x1ec, 0x104688 UCVTF V0.4S, V0.4S ; +0x1f0, 0x10468c FMLA V1.4S, V0.4S, V5.4S ; +0x1f4, 0x104690 STR Q1, [X21] ; +0x1f8, 0x104694 MOV X21, X9 ; +0x1fc, 0x104698 CBNZ W23, loc_104650 ; +0x200, 0x10469c B def_104508; jumptable 0000000000104508 default case ; +0x204, 0x1046a0 ASR W23, W5, #3; jumptable 0000000000104508 case 8 ; +0x208, 0x1046a4 CBZ W23, def_104508; jumptable 0000000000104508 default case ; +0x20c, 0x1046a8 BL sub_1047B8 ; +0x210, 0x1046ac SUB X2, X29, #-var_60 ; +0x214, 0x1046b0 ADD X3, SP, #0xD0+var_70 ; +0x218, 0x1046b4 MOV X0, X20 ; +0x21c, 0x1046b8 MOV X1, X19 ; +0x220, 0x1046bc BL sub_1043B8 ; +0x224, 0x1046c0 LDP Q1, Q0, [X29,#var_50] ; +0x228, 0x1046c4 LDUR Q2, [X29,#var_60] ; +0x22c, 0x1046c8 LDP Q7, Q3, [SP,#0xD0+var_80] ; +0x230, 0x1046cc LDP Q17, Q16, [SP,#0xD0+var_A0] ; +0x234, 0x1046d0 SUB W23, W23, #1 ; +0x238, 0x1046d4 AND V1.16B, V1.16B, V7.16B ; +0x23c, 0x1046d8 AND V2.16B, V2.16B, V7.16B ; +0x240, 0x1046dc MOV V5.16B, V16.16B ; +0x244, 0x1046e0 MOV V6.16B, V16.16B ; +0x248, 0x1046e4 UCVTF V1.4S, V1.4S ; +0x24c, 0x1046e8 UCVTF V2.4S, V2.4S ; +0x250, 0x1046ec AND V0.16B, V0.16B, V7.16B ; +0x254, 0x1046f0 FMLA V5.4S, V1.4S, V17.4S ; +0x258, 0x1046f4 FMLA V6.4S, V2.4S, V17.4S ; +0x25c, 0x1046f8 LDP Q1, Q2, [X22] ; +0x260, 0x1046fc MOV V4.16B, V16.16B ; +0x264, 0x104700 UCVTF V0.4S, V0.4S ; +0x268, 0x104704 AND V3.16B, V3.16B, V7.16B ; +0x26c, 0x104708 FMLA V4.4S, V0.4S, V17.4S ; +0x270, 0x10470c MOV V0.16B, V16.16B ; +0x274, 0x104710 UCVTF V3.4S, V3.4S ; +0x278, 0x104714 FMLA V0.4S, V3.4S, V17.4S ; +0x27c, 0x104718 UZP1 V3.4S, V4.4S, V5.4S ; +0x280, 0x10471c FADD V1.4S, V1.4S, V3.4S ; +0x284, 0x104720 UZP1 V3.4S, V6.4S, V0.4S ; +0x288, 0x104724 FADD V2.4S, V3.4S, V2.4S ; +0x28c, 0x104728 STP Q1, Q2, [X22],#0x20 ; +0x290, 0x10472c LDP Q1, Q2, [X21] ; +0x294, 0x104730 UZP2 V4.4S, V4.4S, V5.4S ; +0x298, 0x104734 UZP2 V0.4S, V6.4S, V0.4S ; +0x29c, 0x104738 FADD V1.4S, V1.4S, V4.4S ; +0x2a0, 0x10473c FADD V0.4S, V2.4S, V0.4S ; +0x2a4, 0x104740 STP Q1, Q0, [X21],#0x20 ; +0x2a8, 0x104744 CBNZ W23, loc_1046AC ; +0x2ac, 0x104748 LDP X29, X30, [SP,#0xD0+var_s0]; jumptable 0000000000104508 default case ; +0x2b0, 0x10474c LDP X20, X19, [SP,#0xD0+var_10] ; +0x2b4, 0x104750 LDP X22, X21, [SP,#0xD0+var_20] ; +0x2b8, 0x104754 LDR X23, [SP,#0xD0+var_30] ; +0x2bc, 0x104758 MOV X0, XZR ; +0x2c0, 0x10475c ADD SP, SP, #0xE0 ; +0x2c4, 0x104760 RET ; +0x2c8, 0x104764