; ; sub_103C94 from 0x103c94 to 0x103e84 (496 bytes) ; ; 4 xrefs: ; > sub_103E84 @ 0x103f24 ; > sub_103E84 @ 0x10403c ; > sub_10449C @ 0x1045dc ; > sub_104768 @ 0x104770 ; ; 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 X28, X27, [SP,#-0x10+var_50]! ; +0x0, 0x103c94 STP X26, X25, [SP,#0x50+var_40] ; +0x4, 0x103c98 STP X24, X23, [SP,#0x50+var_30] ; +0x8, 0x103c9c STP X22, X21, [SP,#0x50+var_20] ; +0xc, 0x103ca0 STP X20, X19, [SP,#0x50+var_10] ; +0x10, 0x103ca4 STP X29, X30, [SP,#0x50+var_s0] ; +0x14, 0x103ca8 LDR X8, [X1] ; +0x18, 0x103cac LDR W9, [X1,#0x10] ; +0x1c, 0x103cb0 LDR W28, [X0,#0x70] ; +0x20, 0x103cb4 LDP X27, X25, [X0,#0x30] ; +0x24, 0x103cb8 LDR X8, [X8] ; +0x28, 0x103cbc MOV X19, X1 ; +0x2c, 0x103cc0 MOV X20, X0 ; +0x30, 0x103cc4 ADD X29, SP, #0x50 ; +0x34, 0x103cc8 LSR X24, X8, X9 ; +0x38, 0x103ccc AND X8, X24, X28 ; +0x3c, 0x103cd0 LDRH W13, [X27,X8,LSL#1] ; +0x40, 0x103cd4 AND X8, X13, #0x7FFF ; +0x44, 0x103cd8 LDRB W14, [X25,X8] ; +0x48, 0x103cdc LSR X8, X24, X14 ; +0x4c, 0x103ce0 AND X9, X8, X28 ; +0x50, 0x103ce4 LDRH W22, [X27,X9,LSL#1] ; +0x54, 0x103ce8 AND X9, X22, #0x7FFF ; +0x58, 0x103cec LDRB W26, [X25,X9] ; +0x5c, 0x103cf0 LSR X8, X8, X26 ; +0x60, 0x103cf4 AND X9, X8, X28 ; +0x64, 0x103cf8 LDRH W23, [X27,X9,LSL#1] ; +0x68, 0x103cfc AND X9, X23, #0x7FFF ; +0x6c, 0x103d00 LDRB W21, [X25,X9] ; +0x70, 0x103d04 ORR W9, W22, W13 ; +0x74, 0x103d08 ORR W9, W9, W23 ; +0x78, 0x103d0c LSR X8, X8, X21 ; +0x7c, 0x103d10 AND X8, X8, X28 ; +0x80, 0x103d14 LDRH W8, [X27,X8,LSL#1] ; +0x84, 0x103d18 ORR W9, W9, W8 ; +0x88, 0x103d1c SXTH W9, W9 ; +0x8c, 0x103d20 TBNZ W9, #0x1F, loc_103D30 ; +0x90, 0x103d24 AND W2, W8, #0x7FFF ; +0x94, 0x103d28 B loc_103E04 ; +0x98, 0x103d2c SXTH W8, W13 ; +0x9c, 0x103d30 TBZ W8, #0x1F, loc_103D4C ; +0xa0, 0x103d34 BL sub_104774 ; +0xa4, 0x103d38 MOV W2, W13 ; +0xa8, 0x103d3c MOV W3, W24 ; +0xac, 0x103d40 BL sub_FBCF8 ; +0xb0, 0x103d44 MOV W13, W0 ; +0xb4, 0x103d48 LDRB W14, [X25,W13,UXTW] ; +0xb8, 0x103d4c LSR X23, X24, X14 ; +0xbc, 0x103d50 AND X8, X23, X28 ; +0xc0, 0x103d54 LDRSH W8, [X27,X8,LSL#1] ; +0xc4, 0x103d58 AND W22, W8, #0xFFFF ; +0xc8, 0x103d5c TBZ W8, #0x1F, loc_103D88 ; +0xcc, 0x103d60 BL sub_104774 ; +0xd0, 0x103d64 MOV W2, W22 ; +0xd4, 0x103d68 MOV W3, W23 ; +0xd8, 0x103d6c MOV X21, X13 ; +0xdc, 0x103d70 MOV X22, X14 ; +0xe0, 0x103d74 BL sub_FBCF8 ; +0xe4, 0x103d78 MOV X14, X22 ; +0xe8, 0x103d7c MOV X13, X21 ; +0xec, 0x103d80 MOV W22, W0 ; +0xf0, 0x103d84 LDRB W26, [X25,W22,UXTW] ; +0xf4, 0x103d88 LSR X24, X23, X26 ; +0xf8, 0x103d8c AND X8, X24, X28 ; +0xfc, 0x103d90 LDRSH W8, [X27,X8,LSL#1] ; +0x100, 0x103d94 AND W23, W8, #0xFFFF ; +0x104, 0x103d98 TBZ W8, #0x1F, loc_103DC4 ; +0x108, 0x103d9c BL sub_104774 ; +0x10c, 0x103da0 MOV W2, W23 ; +0x110, 0x103da4 MOV W3, W24 ; +0x114, 0x103da8 MOV X21, X13 ; +0x118, 0x103dac MOV X23, X14 ; +0x11c, 0x103db0 BL sub_FBCF8 ; +0x120, 0x103db4 MOV X14, X23 ; +0x124, 0x103db8 MOV X13, X21 ; +0x128, 0x103dbc MOV W23, W0 ; +0x12c, 0x103dc0 LDRB W21, [X25,W23,UXTW] ; +0x130, 0x103dc4 LSR X3, X24, X21 ; +0x134, 0x103dc8 AND X8, X3, X28 ; +0x138, 0x103dcc LDRSH W8, [X27,X8,LSL#1] ; +0x13c, 0x103dd0 AND W2, W8, #0xFFFF ; +0x140, 0x103dd4 TBNZ W8, #0x1F, loc_103DE4 ; +0x144, 0x103dd8 MOV W8, W2 ; +0x148, 0x103ddc B loc_103E04 ; +0x14c, 0x103de0 BL sub_104774 ; +0x150, 0x103de4 MOV X24, X13 ; +0x154, 0x103de8 MOV X27, X14 ; +0x158, 0x103dec BL sub_FBCF8 ; +0x15c, 0x103df0 MOV X14, X27 ; +0x160, 0x103df4 MOV X13, X24 ; +0x164, 0x103df8 MOV W2, W0 ; +0x168, 0x103dfc MOV W8, W0 ; +0x16c, 0x103e00 LDRB W9, [X25,W2,UXTW] ; +0x170, 0x103e04 LDR W10, [X19,#0x10] ; +0x174, 0x103e08 ADD W11, W26, W21 ; +0x178, 0x103e0c LDR X12, [X19] ; +0x17c, 0x103e10 ADD W11, W11, W14 ; +0x180, 0x103e14 ADD W9, W11, W9 ; +0x184, 0x103e18 ADD W9, W9, W10 ; +0x188, 0x103e1c AND W10, W9, #7 ; +0x18c, 0x103e20 ASR W9, W9, #3 ; +0x190, 0x103e24 ADD X9, X12, W9,SXTW ; +0x194, 0x103e28 STR W10, [X19,#0x10] ; +0x198, 0x103e2c STR X9, [X19] ; +0x19c, 0x103e30 LDR X9, [X20,#0x48] ; +0x1a0, 0x103e34 SUB W10, W13, #1 ; +0x1a4, 0x103e38 SUB W11, W22, #1 ; +0x1a8, 0x103e3c SUB W12, W23, #1 ; +0x1ac, 0x103e40 LDRH W10, [X9,W10,UXTW#1] ; +0x1b0, 0x103e44 LDRH W11, [X9,W11,UXTW#1] ; +0x1b4, 0x103e48 LDRH W12, [X9,W12,UXTW#1] ; +0x1b8, 0x103e4c SUB W8, W8, #1 ; +0x1bc, 0x103e50 LDRH W8, [X9,W8,UXTW#1] ; +0x1c0, 0x103e54 FMOV S0, W10 ; +0x1c4, 0x103e58 LDP X29, X30, [SP,#0x50+var_s0] ; +0x1c8, 0x103e5c LDP X20, X19, [SP,#0x50+var_10] ; +0x1cc, 0x103e60 LDP X22, X21, [SP,#0x50+var_20] ; +0x1d0, 0x103e64 LDP X24, X23, [SP,#0x50+var_30] ; +0x1d4, 0x103e68 LDP X26, X25, [SP,#0x50+var_40] ; +0x1d8, 0x103e6c INS V0.S[1], W11 ; +0x1dc, 0x103e70 INS V0.S[2], W12 ; +0x1e0, 0x103e74 INS V0.S[3], W8 ; +0x1e4, 0x103e78 LDP X28, X27, [SP+0x50+var_50],#0x60 ; +0x1e8, 0x103e7c RET ; +0x1ec, 0x103e80