; ; Biquad_Filter from 0x105eb8 to 0x105fc0 (264 bytes) ; ; 5 xrefs: ; > Pole_Zero_Filter_Phase @ 0x105eb4 ; > .Biquad_Filter @ 0x109e9c ; > @ 0x6280 ; > .Biquad_Filter @ 0x109e94 ; > @ 0x111810 ; ; 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 X29, X30, [SP,#var_20]! ; +0x0, 0x105eb8 SXTH W6, W6 ; +0x4, 0x105ebc SXTH X1, W1 ; +0x8, 0x105ec0 MOV X29, SP ; +0xc, 0x105ec4 SXTH X3, W3 ; +0x10, 0x105ec8 AND W7, W6, #1 ; +0x14, 0x105ecc LDR S1, [X5,#4] ; +0x18, 0x105ed0 LDR S0, [X5] ; +0x1c, 0x105ed4 LDR S4, [X5,#0xC] ; +0x20, 0x105ed8 LDR S6, [X5,#8] ; +0x24, 0x105edc LDR S16, [X4,#4] ; +0x28, 0x105ee0 LDR S7, [X4] ; +0x2c, 0x105ee4 LDR S17, [X4,#8] ; +0x30, 0x105ee8 LDR S18, [X4,#0xC] ; +0x34, 0x105eec LDR S19, [X4,#0x10] ; +0x38, 0x105ef0 TBNZ W6, #0, loc_105F9C ; +0x3c, 0x105ef4 FMOV S5, S6 ; +0x40, 0x105ef8 FMOV S3, S4 ; +0x44, 0x105efc CBZ W6, loc_105F74 ; +0x48, 0x105f00 FNEG S16, S16 ; +0x4c, 0x105f04 MOV W4, W7 ; +0x50, 0x105f08 FNEG S7, S7 ; +0x54, 0x105f0c LSL X8, X1, #2 ; +0x58, 0x105f10 LSL X7, X3, #2 ; +0x5c, 0x105f14 LSL X1, X1, #3 ; +0x60, 0x105f18 LSL X3, X3, #3 ; +0x64, 0x105f1c FMUL S4, S4, S19 ; +0x68, 0x105f20 ADD W4, W4, #2 ; +0x6c, 0x105f24 FMUL S2, S6, S19 ; +0x70, 0x105f28 CMP W4, W6 ; +0x74, 0x105f2c LDR S5, [X0,X8] ; +0x78, 0x105f30 LDR S3, [X0] ; +0x7c, 0x105f34 ADD X0, X0, X1 ; +0x80, 0x105f38 FMADD S1, S1, S16, S4 ; +0x84, 0x105f3c FMADD S2, S0, S16, S2 ; +0x88, 0x105f40 FMOV S4, S3 ; +0x8c, 0x105f44 FMADD S1, S0, S7, S1 ; +0x90, 0x105f48 FMADD S0, S5, S17, S2 ; +0x94, 0x105f4c FMADD S1, S6, S18, S1 ; +0x98, 0x105f50 FMADD S0, S3, S18, S0 ; +0x9c, 0x105f54 FMOV S6, S5 ; +0xa0, 0x105f58 FMADD S1, S3, S17, S1 ; +0xa4, 0x105f5c FMADD S0, S1, S7, S0 ; +0xa8, 0x105f60 STR S1, [X2] ; +0xac, 0x105f64 STR S0, [X2,X7] ; +0xb0, 0x105f68 ADD X2, X2, X3 ; +0xb4, 0x105f6c B.CC loc_105F20 ; +0xb8, 0x105f70 ADD X1, X29, #0x20+var_10 ; +0xbc, 0x105f74 MOV W0, #0 ; +0xc0, 0x105f78 STR S0, [X29,#0x20+var_10] ; +0xc4, 0x105f7c STR S1, [X29,#0x20+var_C] ; +0xc8, 0x105f80 STR S5, [X29,#0x20+var_8] ; +0xcc, 0x105f84 STR S3, [X29,#0x20+var_4] ; +0xd0, 0x105f88 LDR Q0, [X1] ; +0xd4, 0x105f8c LDP X29, X30, [SP+0x20+var_20],#0x20 ; +0xd8, 0x105f90 STR Q0, [X5] ; +0xdc, 0x105f94 RET ; +0xe0, 0x105f98 ADRP X2, #aPoleZeroFilter_1@PAGE; "Pole_Zero_Filter" ; +0xe4, 0x105f9c ADRP X0, #aSrcPl2EncodeSu@PAGE; "../../src/pl2_encode_subroutine.c" ; +0xe8, 0x105fa0 ADD X2, X2, #aPoleZeroFilter_1@PAGEOFF; "Pole_Zero_Filter" ; +0xec, 0x105fa4 ADRP X3, #a0Dspsblocksize@PAGE; "0 == dspsBlockSize % 2" ; +0xf0, 0x105fa8 ADD X0, X0, #aSrcPl2EncodeSu@PAGEOFF; "../../src/pl2_encode_subroutine.c" ; +0xf4, 0x105fac MOV W1, #0x759 ; +0xf8, 0x105fb0 ADD X2, X2, #0x40 ; '@' ; +0xfc, 0x105fb4 ADD X3, X3, #a0Dspsblocksize@PAGEOFF; "0 == dspsBlockSize % 2" ; +0x100, 0x105fb8 BL .__assert2 ; +0x104, 0x105fbc