[*] Binary protection state of libaudioProcess.so
No RELRO No Canary found NX disabled DSO No RPATH No RUNPATH Symbols
[*] Function system tear down of libaudioProcess.so
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libaudioProcess.so @ 0x54c3c */
| #include <stdint.h>
|
; (fcn) method.webrtc::AudioProcessingImpl.MaybeUpdateHistograms__ () | void method_webrtc::AudioProcessingImpl_MaybeUpdateHistograms_ () {
| /* webrtc::AudioProcessingImpl::MaybeUpdateHistograms() */
0x00054c3c lui gp, 4 |
0x00054c40 addiu gp, gp, 0x4dc4 |
0x00054c44 addu gp, gp, t9 | gp += t9;
0x00054c48 lw v0, (a0) | v0 = *(a0);
0x00054c4c addiu sp, sp, -0x108 |
0x00054c50 sw gp, 0x10(sp) | *(var_10h) = gp;
0x00054c54 lw t9, 0x78(v0) | t9 = *((v0 + 30));
0x00054c58 sw ra, 0x104(sp) | *(var_104h) = ra;
0x00054c5c sw s0, 0xe0(sp) | *(var_e0h) = s0;
0x00054c60 sw fp, 0x100(sp) | *(var_100h) = fp;
0x00054c64 sw s7, 0xfc(sp) | *(var_fch) = s7;
0x00054c68 sw s6, 0xf8(sp) | *(var_f8h) = s6;
0x00054c6c sw s5, 0xf4(sp) | *(var_f4h) = s5;
0x00054c70 sw s4, 0xf0(sp) | *(var_f0h) = s4;
0x00054c74 sw s3, 0xec(sp) | *(var_ech) = s3;
0x00054c78 sw s2, 0xe8(sp) | *(var_e8h) = s2;
0x00054c7c sw s1, 0xe4(sp) | *(var_e4h) = s1;
0x00054c80 move s0, a0 | s0 = a0;
0x00054c84 jalr t9 | t9 ();
0x00054c88 lw v1, (v0) | v1 = *(v0);
0x00054c8c lw t9, 4(v1) | t9 = *((v1 + 1));
0x00054c90 move a0, v0 | a0 = v0;
0x00054c94 jalr t9 | t9 ();
0x00054c98 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054c9c beqz v0, 0x54db4 | goto label_9;
| }
0x00054ca0 lw v1, 0xb4(s0) | v1 = *((s0 + 45));
0x00054ca4 addiu v0, zero, -1 | v0 = -1;
| if (v1 == v0) {
0x00054ca8 beq v1, v0, 0x54f70 | goto label_10;
| }
0x00054cac nop |
| label_3:
0x00054cb0 lw v1, 0xb8(s0) | v1 = *((s0 + 46));
0x00054cb4 addiu v0, zero, -1 | v0 = -1;
| if (v1 == v0) {
0x00054cb8 beq v1, v0, 0x54f40 | goto label_11;
| }
0x00054cbc nop |
| label_2:
0x00054cc0 lw v0, 0xa0(s0) | v0 = *((s0 + 40));
0x00054cc4 lw v1, 0xac(s0) | v1 = *((s0 + 43));
0x00054cc8 subu s1, v0, v1 | __asm ("subu s1, v0, v1");
0x00054ccc slti a0, s1, 0x3d | a0 = (s1 < 0x3d) ? 1 : 0;
| if (a0 == 0) {
0x00054cd0 bnez a0, 0x54ce0 |
0x00054cd4 nop |
0x00054cd8 lw s2, -0x7fcc(gp) | s2 = *(gp);
| if (v1 != 0) {
0x00054cdc bnez v1, 0x54e94 | goto label_12;
| }
| }
| label_1:
0x00054ce0 lw s1, 0x9c(s0) | s1 = *((s0 + 39));
0x00054ce4 lui v1, 0x1062 | v1 = 0x10624dd3;
0x00054ce8 addiu v1, v1, 0x4dd3 |
0x00054cec mult s1, v1 | __asm ("mult s1, v1");
0x00054cf0 sra s2, s1, 0x1f | s2 = s1 >> 0x1f;
0x00054cf4 sw v0, 0xac(s0) | *((s0 + 43)) = v0;
0x00054cf8 sw zero, 0xcc(sp) | *(var_cch) = 0;
0x00054cfc mfhi v1 | __asm ("mfhi v1");
0x00054d00 sra v1, v1, 6 | v1 >>= 6;
0x00054d04 subu v1, v1, s2 | __asm ("subu v1, v1, s2");
0x00054d08 sll v0, v1, 2 | v0 = v1 << 2;
0x00054d0c sll a0, v1, 7 | a0 = v1 << 7;
0x00054d10 subu v0, a0, v0 | __asm ("subu v0, a0, v0");
0x00054d14 addu v1, v0, v1 | v1 = v0 + v1;
0x00054d18 sll v1, v1, 3 | v1 <<= 3;
0x00054d1c subu v1, s1, v1 | __asm ("subu v1, s1, v1");
0x00054d20 sw v1, 0xd0(sp) | *(var_d0h) = v1;
| if (v1 != 0) {
0x00054d24 beqz v1, 0x54d48 |
0x00054d28 lw a2, -0x7fcc(gp) | a2 = *(gp);
0x00054d2c lw t9, -0x76e4(gp) | t9 = *(gp);
0x00054d30 addiu a0, sp, 0xd0 | a0 = sp + 0xd0;
0x00054d34 addiu a1, sp, 0xcc | a1 = sp + 0xcc;
| /* str.a___b__static_cast_T__0_ */
0x00054d38 addiu a2, a2, 0x6668 | a2 += 0x6668;
0x00054d3c jalr t9 | t9 ();
0x00054d40 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00054d44 bnez v0, 0x54fa0 | goto label_13;
| }
| }
0x00054d48 lw v0, (s0) | v0 = *(s0);
0x00054d4c lw t9, 0x78(v0) | t9 = *((v0 + 30));
0x00054d50 move a0, s0 | a0 = s0;
0x00054d54 jalr t9 | t9 ();
0x00054d58 lw v1, (v0) | v1 = *(v0);
0x00054d5c lw t9, 0x50(v1) | t9 = *((v1 + 20));
0x00054d60 move a0, v0 | a0 = v0;
0x00054d64 jalr t9 | t9 ();
0x00054d68 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054d6c lw t9, -0x791c(gp) | t9 = sym.WebRtcAec_system_delay
0x00054d70 move a0, v0 | a0 = v0;
0x00054d74 jalr t9 | t9 ();
0x00054d78 lui v1, 0x1062 | v1 = 0x10624dd3;
0x00054d7c addiu v1, v1, 0x4dd3 |
0x00054d80 mult s1, v1 | __asm ("mult s1, v1");
0x00054d84 lw v1, 0xb0(s0) | v1 = *((s0 + 44));
0x00054d88 mfhi s1 | __asm ("mfhi s1");
0x00054d8c sra s1, s1, 6 | s1 >>= 6;
0x00054d90 subu s2, s1, s2 | __asm ("subu s2, s1, s2");
0x00054d94 div zero, v0, s2 | __asm ("div zero, v0, s2");
0x00054d98 teq s2, zero, 7 | __asm ("teq s2, zero, 7");
0x00054d9c mflo s2 | __asm ("mflo s2");
0x00054da0 subu s1, s2, v1 | __asm ("subu s1, s2, v1");
0x00054da4 slti v0, s1, 0x3d | v0 = (s1 < 0x3d) ? 1 : 0;
0x00054da8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054dac beqz v0, 0x54de4 |
| while (v1 == 0) {
| label_0:
0x00054db0 sw s2, 0xb0(s0) | *((s0 + 44)) = s2;
| label_9:
0x00054db4 lw ra, 0x104(sp) | ra = *(var_104h);
0x00054db8 lw fp, 0x100(sp) | fp = *(var_100h);
0x00054dbc lw s7, 0xfc(sp) | s7 = *(var_fch);
0x00054dc0 lw s6, 0xf8(sp) | s6 = *(var_f8h);
0x00054dc4 lw s5, 0xf4(sp) | s5 = *(var_f4h);
0x00054dc8 lw s4, 0xf0(sp) | s4 = *(var_f0h);
0x00054dcc lw s3, 0xec(sp) | s3 = *(var_ech);
0x00054dd0 lw s2, 0xe8(sp) | s2 = *(var_e8h);
0x00054dd4 lw s1, 0xe4(sp) | s1 = *(var_e4h);
0x00054dd8 lw s0, 0xe0(sp) | s0 = *(var_e0h);
0x00054ddc addiu sp, sp, 0x108 |
0x00054de0 jr ra | return v0;
0x00054de4 lw s6, -0x7fcc(gp) | s6 = *(gp);
0x00054de8 beqz v1, 0x54db0 |
| }
0x00054dec lw t9, -0x787c(gp) | t9 = *(gp);
0x00054df0 addiu s3, sp, 0xd4 | s3 = sp + 0xd4;
0x00054df4 addiu s5, sp, 0xdc | s5 = sp + 0xdc;
0x00054df8 move a0, s3 | a0 = s3;
| /* str.WebRTC.Audio.AecSystemDelayJump */
0x00054dfc addiu a1, s6, 0x66a4 | a1 = s6 + 0x66a4;
0x00054e00 move a2, s5 | a2 = s5;
0x00054e04 jalr t9 | t9 ();
0x00054e08 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054e0c move a0, s3 | a0 = s3;
0x00054e10 addiu a1, zero, 0x3c | a1 = 0x3c;
0x00054e14 lw t9, -0x7324(gp) | t9 = *(gp);
0x00054e18 addiu a2, zero, 0x3e8 | a2 = aav.0x000003e8;
0x00054e1c addiu a3, zero, 0x64 | a3 = 0x64;
0x00054e20 jalr t9 | t9 ();
0x00054e24 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054e28 lw a0, 0xd4(sp) | a0 = *(var_d4h);
0x00054e2c lw s4, -0x7cf8(gp) | s4 = *((gp - 7998));
0x00054e30 addiu s7, a0, -0xc | s7 = a0 + -0xc;
0x00054e34 move fp, v0 | fp = v0;
| if (s7 != s4) {
0x00054e38 bne s7, s4, 0x55098 | goto label_14;
| }
| label_8:
0x00054e3c lw t9, -0x787c(gp) | t9 = *(gp);
0x00054e40 move a0, s3 | a0 = s3;
| /* str.WebRTC.Audio.AecSystemDelayJump */
0x00054e44 addiu a1, s6, 0x66a4 | a1 = s6 + 0x66a4;
0x00054e48 move a2, s5 | a2 = s5;
0x00054e4c jalr t9 | t9 ();
0x00054e50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054e54 move a0, fp | a0 = fp;
0x00054e58 move a1, s3 | a1 = s3;
0x00054e5c lw t9, -0x7570(gp) | t9 = *(gp);
0x00054e60 move a2, s1 | a2 = s1;
0x00054e64 jalr t9 | t9 ();
0x00054e68 lw a0, 0xd4(sp) | a0 = *(var_d4h);
0x00054e6c addiu s1, a0, -0xc | s1 = a0 + -0xc;
0x00054e70 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s1 != s4) {
0x00054e74 bne s1, s4, 0x5502c | goto label_15;
| }
| label_6:
0x00054e78 lw v1, 0xb8(s0) | v1 = *((s0 + 46));
| label_7:
0x00054e7c addiu v0, zero, 1 | v0 = 1;
0x00054e80 addiu a0, v1, 1 | a0 = v1 + 1;
0x00054e84 nor v1, zero, v1 | __asm ("nor v1, zero, v1");
| if (v1 == 0) {
0x00054e88 movn v0, a0, v1 | v0 = a0;
| }
0x00054e8c sw v0, 0xb8(s0) | *((s0 + 46)) = v0;
0x00054e90 b 0x54db0 | goto label_0;
| label_12:
0x00054e94 lw t9, -0x787c(gp) | t9 = *(gp);
0x00054e98 addiu s3, sp, 0xd4 | s3 = sp + 0xd4;
0x00054e9c addiu s5, sp, 0xdc | s5 = sp + 0xdc;
0x00054ea0 move a0, s3 | a0 = s3;
| /* str.WebRTC.Audio.PlatformReportedStreamDelayJump */
0x00054ea4 addiu a1, s2, 0x6638 | a1 = s2 + 0x6638;
0x00054ea8 move a2, s5 | a2 = s5;
0x00054eac jalr t9 | t9 ();
0x00054eb0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054eb4 move a0, s3 | a0 = s3;
0x00054eb8 addiu a1, zero, 0x3c | a1 = 0x3c;
0x00054ebc lw t9, -0x7324(gp) | t9 = *(gp);
0x00054ec0 addiu a2, zero, 0x3e8 | a2 = aav.0x000003e8;
0x00054ec4 addiu a3, zero, 0x64 | a3 = 0x64;
0x00054ec8 jalr t9 | t9 ();
0x00054ecc lw gp, 0x10(sp) | gp = *(var_10h);
0x00054ed0 lw a0, 0xd4(sp) | a0 = *(var_d4h);
0x00054ed4 lw s4, -0x7cf8(gp) | s4 = *((gp - 7998));
0x00054ed8 addiu s6, a0, -0xc | s6 = a0 + -0xc;
0x00054edc move s7, v0 | s7 = v0;
| if (s6 != s4) {
0x00054ee0 bne s6, s4, 0x54fcc | goto label_16;
| }
| label_4:
0x00054ee4 lw t9, -0x787c(gp) | t9 = *(gp);
0x00054ee8 move a0, s3 | a0 = s3;
0x00054eec addiu a1, s2, 0x6638 | a1 = s2 + 0x6638;
0x00054ef0 move a2, s5 | a2 = s5;
0x00054ef4 jalr t9 | t9 ();
0x00054ef8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054efc move a0, s7 | a0 = s7;
0x00054f00 move a1, s3 | a1 = s3;
0x00054f04 lw t9, -0x7570(gp) | t9 = *(gp);
0x00054f08 move a2, s1 | a2 = s1;
0x00054f0c jalr t9 | t9 ();
0x00054f10 lw a0, 0xd4(sp) | a0 = *(var_d4h);
0x00054f14 addiu s1, a0, -0xc | s1 = a0 + -0xc;
0x00054f18 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s1 != s4) {
0x00054f1c bne s1, s4, 0x54ffc | goto label_17;
| }
| label_5:
0x00054f20 lw a0, 0xb4(s0) | a0 = *((s0 + 45));
0x00054f24 addiu v1, zero, 1 | v1 = 1;
0x00054f28 lw v0, 0xa0(s0) | v0 = *((s0 + 40));
0x00054f2c addiu a1, a0, 1 | a1 = a0 + 1;
0x00054f30 nor a0, zero, a0 | __asm ("nor a0, zero, a0");
| if (a0 == 0) {
0x00054f34 movn v1, a1, a0 | v1 = a1;
| }
0x00054f38 sw v1, 0xb4(s0) | *((s0 + 45)) = v1;
0x00054f3c b 0x54ce0 | goto label_1;
| label_11:
0x00054f40 lw v0, (s0) | v0 = *(s0);
0x00054f44 lw t9, 0x78(v0) | t9 = *((v0 + 30));
0x00054f48 move a0, s0 | a0 = s0;
0x00054f4c jalr t9 | t9 ();
0x00054f50 lw v1, (v0) | v1 = *(v0);
0x00054f54 lw t9, 0x30(v1) | t9 = *((v1 + 12));
0x00054f58 move a0, v0 | a0 = v0;
0x00054f5c jalr t9 | t9 ();
0x00054f60 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054f64 beqz v0, 0x54cc0 | goto label_2;
| }
0x00054f68 sw zero, 0xb8(s0) | *((s0 + 46)) = 0;
0x00054f6c b 0x54cc0 | goto label_2;
| label_10:
0x00054f70 lw v0, (s0) | v0 = *(s0);
0x00054f74 lw t9, 0x78(v0) | t9 = *((v0 + 30));
0x00054f78 move a0, s0 | a0 = s0;
0x00054f7c jalr t9 | t9 ();
0x00054f80 lw v1, (v0) | v1 = *(v0);
0x00054f84 lw t9, 0x30(v1) | t9 = *((v1 + 12));
0x00054f88 move a0, v0 | a0 = v0;
0x00054f8c jalr t9 | t9 ();
0x00054f90 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054f94 beqz v0, 0x54cb0 | goto label_3;
| }
0x00054f98 sw zero, 0xb4(s0) | *((s0 + 45)) = 0;
0x00054f9c b 0x54cb0 | goto label_3;
| label_13:
0x00054fa0 lw a1, -0x7fcc(gp) | a1 = *(gp);
0x00054fa4 lw t9, -0x755c(gp) | t9 = *(gp);
0x00054fa8 addiu a0, sp, 0x18 | a0 = sp + 0x18;
| /* str..._.._.._webrtc_base_checks.h */
0x00054fac addiu a1, a1, 0x6684 | a1 += 0x6684;
0x00054fb0 addiu a2, zero, 0xdf | a2 = 0xdf;
0x00054fb4 move a3, v0 | a3 = v0;
0x00054fb8 jalr t9 | t9 ();
0x00054fbc lw gp, 0x10(sp) | gp = *(var_10h);
0x00054fc0 lw t9, -0x7694(gp) | t9 = *(gp);
0x00054fc4 addiu a0, sp, 0x18 | a0 = sp + 0x18;
0x00054fc8 jalr t9 | t9 ();
| label_16:
0x00054fcc lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* method.__gnu_cxx.__exchange_and_add_dispatch_int__int___clone_.constprop.56_ */
0x00054fd0 addiu t9, t9, 0x2c0 | t9 += aav.0x000002c0;
0x00054fd4 addiu a0, a0, -4 | a0 += -4;
0x00054fd8 jalr t9 | t9 ();
0x00054fdc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 > 0) {
0x00054fe0 bgtz v0, 0x54ee4 | goto label_4;
| }
0x00054fe4 lw t9, -0x76a4(gp) | t9 = *(gp);
0x00054fe8 move a0, s6 | a0 = s6;
0x00054fec addiu a1, sp, 0xd8 | a1 = sp + 0xd8;
0x00054ff0 jalr t9 | t9 ();
0x00054ff4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054ff8 b 0x54ee4 | goto label_4;
| label_17:
0x00054ffc lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* method.__gnu_cxx.__exchange_and_add_dispatch_int__int___clone_.constprop.56_ */
0x00055000 addiu t9, t9, 0x2c0 | t9 += aav.0x000002c0;
0x00055004 addiu a0, a0, -4 | a0 += -4;
0x00055008 jalr t9 | t9 ();
0x0005500c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 > 0) {
0x00055010 bgtz v0, 0x54f20 | goto label_5;
| }
0x00055014 lw t9, -0x76a4(gp) | t9 = *(gp);
0x00055018 move a0, s1 | a0 = s1;
0x0005501c addiu a1, sp, 0xd8 | a1 = sp + 0xd8;
0x00055020 jalr t9 | t9 ();
0x00055024 lw gp, 0x10(sp) | gp = *(var_10h);
0x00055028 b 0x54f20 | goto label_5;
| label_15:
0x0005502c lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* method.__gnu_cxx.__exchange_and_add_dispatch_int__int___clone_.constprop.56_ */
0x00055030 addiu t9, t9, 0x2c0 | t9 += aav.0x000002c0;
0x00055034 addiu a0, a0, -4 | a0 += -4;
0x00055038 jalr t9 | t9 ();
0x0005503c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 > 0) {
0x00055040 bgtz v0, 0x54e78 | goto label_6;
| }
0x00055044 lw t9, -0x76a4(gp) | t9 = *(gp);
0x00055048 move a0, s1 | a0 = s1;
0x0005504c addiu a1, sp, 0xd8 | a1 = sp + 0xd8;
0x00055050 jalr t9 | t9 ();
0x00055054 lw v1, 0xb8(s0) | v1 = *((s0 + 46));
0x00055058 b 0x54e7c | goto label_7;
| label_14:
0x00055098 lw t9, -0x7fd8(gp) | t9 = *(gp);
| /* method.__gnu_cxx.__exchange_and_add_dispatch_int__int___clone_.constprop.56_ */
0x0005509c addiu t9, t9, 0x2c0 | t9 += aav.0x000002c0;
0x000550a0 addiu a0, a0, -4 | a0 += -4;
0x000550a4 jalr t9 | t9 ();
0x000550a8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 > 0) {
0x000550ac bgtz v0, 0x54e3c | goto label_8;
| }
0x000550b0 lw t9, -0x76a4(gp) | t9 = *(gp);
0x000550b4 move a0, s7 | a0 = s7;
0x000550b8 addiu a1, sp, 0xd8 | a1 = sp + 0xd8;
0x000550bc jalr t9 | t9 ();
0x000550c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000550c4 b 0x54e3c | goto label_8;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libaudioProcess.so @ 0x4d8bc */
| #include <stdint.h>
|
; (fcn) sym.WebRtcAec_BufferFarendPartition () | void WebRtcAec_BufferFarendPartition () {
0x0004d8bc lui gp, 5 |
0x0004d8c0 addiu gp, gp, -0x3ebc |
0x0004d8c4 addu gp, gp, t9 | gp += t9;
0x0004d8c8 lui v0, 1 | v0 = 0x10000;
0x0004d8cc addiu sp, sp, -0x438 |
| /* aav.0x00010000 */
0x0004d8d0 addu v0, a0, v0 | v0 = a0 + v0;
0x0004d8d4 lw t9, -0x77a4(gp) | t9 = sym.WebRtc_available_write;
0x0004d8d8 sw s1, 0x428(sp) | *(var_428h) = s1;
0x0004d8dc move s1, a0 | s1 = a0;
0x0004d8e0 lw a0, -0x7b88(v0) | a0 = *((v0 - 7906));
0x0004d8e4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0004d8e8 sw s0, 0x424(sp) | *(var_424h) = s0;
0x0004d8ec sw ra, 0x434(sp) | *(var_434h) = ra;
0x0004d8f0 sw s3, 0x430(sp) | *(var_430h) = s3;
0x0004d8f4 sw s2, 0x42c(sp) | *(var_42ch) = s2;
0x0004d8f8 move s0, a1 | s0 = a1;
0x0004d8fc jalr t9 | t9 ();
0x0004d900 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x0004d904 bnez v0, 0x4d91c |
0x0004d908 lw t9, -0x7edc(gp) | t9 = sym.WebRtcAec_MoveFarReadPtr;
0x0004d90c move a0, s1 | a0 = s1;
0x0004d910 addiu a1, zero, 1 | a1 = 1;
0x0004d914 jalr t9 | t9 ();
0x0004d918 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x0004d91c move v0, s0 | v0 = s0;
0x0004d920 addiu v1, sp, 0x220 | v1 = sp + aav.0x00000220;
0x0004d924 addiu s2, s0, 0x200 | s2 = s0 + aav.0x00000200;
| do {
0x0004d928 lwl t1, 3(v0) | __asm ("lwl t1, 3(v0)");
0x0004d92c lwl t0, 7(v0) | __asm ("lwl t0, 7(v0)");
0x0004d930 lwl a3, 0xb(v0) | __asm ("lwl a3, 0xb(v0)");
0x0004d934 lwl a2, 0xf(v0) | __asm ("lwl a2, 0xf(v0)");
0x0004d938 lwr t1, (v0) | __asm ("lwr t1, (v0)");
0x0004d93c lwr t0, 4(v0) | __asm ("lwr t0, 4(v0)");
0x0004d940 lwr a3, 8(v0) | __asm ("lwr a3, 8(v0)");
0x0004d944 lwr a2, 0xc(v0) | __asm ("lwr a2, 0xc(v0)");
0x0004d948 addiu v0, v0, 0x10 | v0 += 0x10;
0x0004d94c sw t1, (v1) | *(v1) = t1;
0x0004d950 sw t0, 4(v1) | *(var_4h) = t0;
0x0004d954 sw a3, 8(v1) | *(var_8h) = a3;
0x0004d958 sw a2, 0xc(v1) | *(var_ch) = a2;
0x0004d95c addiu v1, v1, 0x10 | v1 += 0x10;
0x0004d960 bne v0, s2, 0x4d928 |
| } while (v0 != s2);
0x0004d964 lw s3, -0x7fc0(gp) | s3 = *(gp);
0x0004d968 addiu a0, sp, 0x220 | a0 = sp + aav.0x00000220;
0x0004d96c addiu a1, sp, 0x18 | a1 = sp + 0x18;
| /* sym.TimeToFrequency.isra.0 */
0x0004d970 addiu s3, s3, -0x5680 | s3 += -aav.0x00005680;
0x0004d974 move t9, s3 | t9 = s3;
0x0004d978 move a2, zero | a2 = 0;
0x0004d97c bal 0x4a980 | sym_TimeToFrequency_isra_0 ();
0x0004d980 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004d984 lui v0, 1 | v0 = 0x10000;
| /* aav.0x00010000 */
0x0004d988 addu v0, s1, v0 | v0 = s1 + v0;
0x0004d98c lw a0, -0x7b88(v0) | a0 = *((v0 - 7906));
0x0004d990 lw t9, -0x7374(gp) | t9 = sym.WebRtc_WriteBuffer;
0x0004d994 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0004d998 addiu a2, zero, 1 | a2 = 1;
0x0004d99c jalr t9 | t9 ();
0x0004d9a0 move a1, s0 | a1 = s0;
0x0004d9a4 addiu v0, sp, 0x220 | v0 = sp + aav.0x00000220;
| do {
0x0004d9a8 lwl a3, 3(a1) | __asm ("lwl a3, 3(a1)");
0x0004d9ac lwl a2, 7(a1) | __asm ("lwl a2, 7(a1)");
0x0004d9b0 lwl a0, 0xb(a1) | __asm ("lwl a0, 0xb(a1)");
0x0004d9b4 lwl v1, 0xf(a1) | __asm ("lwl v1, 0xf(a1)");
0x0004d9b8 lwr a3, (a1) | __asm ("lwr a3, (a1)");
0x0004d9bc lwr a2, 4(a1) | __asm ("lwr a2, 4(a1)");
0x0004d9c0 lwr a0, 8(a1) | __asm ("lwr a0, 8(a1)");
0x0004d9c4 lwr v1, 0xc(a1) | __asm ("lwr v1, 0xc(a1)");
0x0004d9c8 addiu a1, a1, 0x10 | a1 += 0x10;
0x0004d9cc sw a3, (v0) | *(v0) = a3;
0x0004d9d0 sw a2, 4(v0) | *(var_4h) = a2;
0x0004d9d4 sw a0, 8(v0) | *(var_8h) = a0;
0x0004d9d8 sw v1, 0xc(v0) | *(var_ch) = v1;
0x0004d9dc addiu v0, v0, 0x10 | v0 += 0x10;
0x0004d9e0 bne a1, s2, 0x4d9a8 |
| } while (a1 != s2);
0x0004d9e4 addiu a0, sp, 0x220 | a0 = sp + aav.0x00000220;
0x0004d9e8 addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0004d9ec move t9, s3 | t9 = s3;
0x0004d9f0 addiu a2, zero, 1 | a2 = 1;
0x0004d9f4 bal 0x4a980 | sym_TimeToFrequency_isra_0 ();
0x0004d9f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004d9fc lui v0, 1 | v0 = 0x10000;
| /* aav.0x00010000 */
0x0004da00 addu s1, s1, v0 | s1 += v0;
0x0004da04 lw a0, -0x7b84(s1) | a0 = *(s1);
0x0004da08 lw t9, -0x7374(gp) | t9 = sym.WebRtc_WriteBuffer;
0x0004da0c addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0004da10 addiu a2, zero, 1 | a2 = 1;
0x0004da14 jalr t9 | t9 ();
0x0004da18 lw ra, 0x434(sp) | ra = *(var_434h);
0x0004da1c lw s3, 0x430(sp) | s3 = *(var_430h);
0x0004da20 lw s2, 0x42c(sp) | s2 = *(var_42ch);
0x0004da24 lw s1, 0x428(sp) | s1 = *(var_428h);
0x0004da28 lw s0, 0x424(sp) | s0 = *(var_424h);
0x0004da2c addiu sp, sp, 0x438 |
0x0004da30 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libaudioProcess.so @ 0x5a910 */
| #include <stdint.h>
|
; (fcn) sym.WebRtcAec_BufferFarend () | void WebRtcAec_BufferFarend () {
0x0005a910 lui gp, 4 |
0x0005a914 addiu gp, gp, -0xf10 |
0x0005a918 addu gp, gp, t9 | gp += t9;
0x0005a91c addiu sp, sp, -0x878 |
0x0005a920 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0005a924 sw ra, 0x874(sp) | *(var_874h) = ra;
0x0005a928 sw s2, 0x870(sp) | *(var_870h) = s2;
0x0005a92c sw s1, 0x86c(sp) | *(var_86ch) = s1;
0x0005a930 sw s0, 0x868(sp) | *(var_868h) = s0;
0x0005a934 sw a2, 0x864(sp) | *(var_864h) = a2;
| if (a1 == 0) {
0x0005a938 beqz a1, 0x5aa90 | goto label_2;
| }
0x0005a93c lh v1, 0x24(a0) | v1 = *((a0 + 18));
0x0005a940 addiu v0, zero, 0x2a | v0 = 0x2a;
0x0005a944 addiu v0, zero, 0x2ee2 | v0 = 0x2ee2;
| if (v1 != v0) {
0x0005a948 bne v1, v0, 0x5aa78 | goto label_3;
| }
0x0005a94c addiu v0, zero, 0x50 | v0 = 0x50;
0x0005a950 move s0, a0 | s0 = a0;
| if (a2 != v0) {
0x0005a954 beq a2, v0, 0x5a964 |
0x0005a958 addiu v0, zero, 0xa0 | v0 = 0xa0;
0x0005a95c addiu v0, zero, 0x2ee4 | v0 = 0x2ee4;
| if (a2 != v0) {
0x0005a960 bne a2, v0, 0x5aa84 | goto label_4;
| }
| }
0x0005a964 lh v0, 0x14(s0) | v0 = *((s0 + 10));
0x0005a968 addiu v1, zero, 1 | v1 = 1;
0x0005a96c move s2, a1 | s2 = a1;
| if (v0 == v1) {
0x0005a970 beq v0, v1, 0x5aa40 | goto label_5;
| }
| label_0:
0x0005a974 lw s1, 0x64(s0) | s1 = *((s0 + 25));
0x0005a978 lw t9, -0x791c(gp) | t9 = sym.WebRtcAec_system_delay
0x0005a97c addiu v0, zero, 1 | v0 = 1;
0x0005a980 move a0, s1 | a0 = s1;
0x0005a984 sw v0, 0x60(s0) | *((s0 + 24)) = v0;
0x0005a988 jalr t9 | t9 ();
0x0005a98c lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a990 lw a1, 0x864(sp) | a1 = *(var_864h);
0x0005a994 move a0, s1 | a0 = s1;
0x0005a998 lw t9, -0x7e80(gp) | t9 = sym.WebRtcAec_SetSystemDelay;
0x0005a99c addu a1, v0, a1 | a1 = v0 + a1;
0x0005a9a0 jalr t9 | t9 ();
0x0005a9a4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a9a8 lw a0, 0x58(s0) | a0 = *((s0 + 22));
0x0005a9ac lw a2, 0x864(sp) | a2 = *(var_864h);
0x0005a9b0 lw t9, -0x7374(gp) | t9 = sym.WebRtc_WriteBuffer;
0x0005a9b4 move a1, s2 | a1 = s2;
0x0005a9b8 jalr t9 | t9 ();
0x0005a9bc lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a9c0 b 0x5a9fc |
| while (v0 == 0) {
0x0005a9c4 lw a0, 0x58(s0) | a0 = *((s0 + 22));
0x0005a9c8 sw zero, 0x860(sp) | *(var_860h) = 0;
0x0005a9cc jalr t9 | t9 ();
0x0005a9d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a9d4 lw a0, 0x64(s0) | a0 = *((s0 + 25));
0x0005a9d8 lw t9, -0x74a4(gp) | t9 = sym.WebRtcAec_BufferFarendPartition;
0x0005a9dc lw a1, 0x860(sp) | a1 = *(var_860h);
0x0005a9e0 jalr t9 | t9 ();
0x0005a9e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a9e8 lw a0, 0x58(s0) | a0 = *((s0 + 22));
0x0005a9ec lw t9, -0x7ab0(gp) | t9 = sym.WebRtc_MoveReadPtr;
0x0005a9f0 addiu a1, zero, -0x40 | a1 = -0x40;
0x0005a9f4 jalr t9 | t9 ();
0x0005a9f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a9fc lw t9, -0x7f90(gp) | t9 = *(gp);
0x0005aa00 lw a0, 0x58(s0) | a0 = *((s0 + 22));
0x0005aa04 jalr t9 | t9 ();
0x0005aa08 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005aa0c sltiu v0, v0, 0x80 | v0 = (v0 < 0x80) ? 1 : 0;
0x0005aa10 addiu a2, sp, 0x660 | a2 = sp + aav.0x00000660;
0x0005aa14 addiu a3, zero, 0x80 | a3 = 0x80;
0x0005aa18 addiu a1, sp, 0x860 | a1 = sp + 0x860;
0x0005aa1c lw t9, -0x7f04(gp) | t9 = sym.WebRtc_ReadBuffer;
0x0005aa20 beqz v0, 0x5a9c4 |
| }
0x0005aa24 move v0, zero | v0 = 0;
| label_1:
0x0005aa28 lw ra, 0x874(sp) | ra = *(var_874h);
0x0005aa2c lw s2, 0x870(sp) | s2 = *(var_870h);
0x0005aa30 lw s1, 0x86c(sp) | s1 = *(var_86ch);
0x0005aa34 lw s0, 0x868(sp) | s0 = *(var_868h);
0x0005aa38 addiu sp, sp, 0x878 |
0x0005aa3c jr ra | return v0;
| label_5:
0x0005aa40 lw v1, 0x4c(s0) | v1 = *((s0 + 19));
0x0005aa44 addiu v0, sp, 0x20 | v0 = sp + 0x20;
| if (v1 != v0) {
0x0005aa48 bne v1, v0, 0x5a974 | goto label_0;
| }
0x0005aa4c lwc1 f0, 0x54(s0) | __asm ("lwc1 f0, 0x54(s0)");
0x0005aa50 lw a0, 0x44(s0) | a0 = *((s0 + 17));
0x0005aa54 lw t9, -0x7714(gp) | t9 = *(gp);
0x0005aa58 addiu v1, sp, 0x864 | v1 = sp + 0x864;
0x0005aa5c mfc1 a3, f0 | __asm ("mfc1 a3, f0");
0x0005aa60 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005aa64 sw v1, 0x14(sp) | *(var_14h) = v1;
0x0005aa68 move s2, v0 | s2 = v0;
0x0005aa6c jalr t9 | t9 ();
0x0005aa70 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005aa74 b 0x5a974 | goto label_0;
| label_3:
0x0005aa78 sw v0, 0x5c(a0) | *((a0 + 23)) = v0;
0x0005aa7c addiu v0, zero, -1 | v0 = -1;
0x0005aa80 b 0x5aa28 | goto label_1;
| label_4:
0x0005aa84 sw v0, 0x5c(a0) | *((a0 + 23)) = v0;
0x0005aa88 addiu v0, zero, -1 | v0 = -1;
0x0005aa8c b 0x5aa28 | goto label_1;
| label_2:
0x0005aa90 addiu v0, zero, 0x2ee3 | v0 = 0x2ee3;
0x0005aa94 sw v0, 0x5c(a0) | *((a0 + 23)) = v0;
0x0005aa98 addiu v0, zero, -1 | v0 = -1;
0x0005aa9c b 0x5aa28 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libaudioProcess.so @ 0x4da34 */
| #include <stdint.h>
|
; (fcn) sym.WebRtcAec_ProcessFrames () | void WebRtcAec_ProcessFrames () {
0x0004da34 lui gp, 5 |
0x0004da38 addiu gp, gp, -0x4034 |
0x0004da3c addu gp, gp, t9 | gp += t9;
0x0004da40 addiu sp, sp, -0x58 |
0x0004da44 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0004da48 lui s1, 1 | s1 = 0x10000;
| /* aav.0x00010000 */
0x0004da4c addu s1, a0, s1 | s1 = a0 + s1;
0x0004da50 lw v0, -0x7824(s1) | v0 = *((s1 - 7689));
0x0004da54 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0004da58 sltiu v1, a2, 2 | v1 = (a2 < 2) ? 1 : 0;
0x0004da5c addiu v0, v0, 1 | v0++;
0x0004da60 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x0004da64 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0004da68 sw fp, 0x48(sp) | *(var_48h) = fp;
0x0004da6c sw s7, 0x44(sp) | *(var_44h) = s7;
0x0004da70 sw s6, 0x40(sp) | *(var_40h) = s6;
0x0004da74 sw s4, 0x38(sp) | *(var_38h) = s4;
0x0004da78 sw s3, 0x34(sp) | *(var_34h) = s3;
0x0004da7c sw s2, 0x30(sp) | *(var_30h) = s2;
0x0004da80 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0004da84 sdc1 f20, 0x50(sp) | __asm ("sdc1 f20, 0x50(sp)");
0x0004da88 sw a3, 0x64(sp) | *(arg_64h) = a3;
0x0004da8c sw a1, 0x5c(sp) | *(arg_5ch) = a1;
0x0004da90 sw v0, -0x7824(s1) | *((s1 - 7689)) = v0;
0x0004da94 move s5, zero | s5 = 0;
0x0004da98 sw v1, 0x18(sp) | *(var_18h) = v1;
| if (a3 == 0) {
0x0004da9c beqz a3, 0x4dc64 | goto label_6;
| }
0x0004daa0 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0004daa4 lw s2, -0x7fc0(gp) | s2 = *(gp);
0x0004daa8 addiu v1, a2, -1 | v1 = a2 + -1;
0x0004daac lwc1 f20, 0x5410(v0) | __asm ("lwc1 f20, 0x5410(v0)");
0x0004dab0 move s0, a0 | s0 = a0;
0x0004dab4 move s4, a2 | s4 = a2;
0x0004dab8 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x0004dabc lw v1, 0x5c(sp) | v1 = *(arg_5ch);
| label_0:
0x0004dac0 lw t9, -0x7374(gp) | t9 = sym.WebRtc_WriteBuffer;
0x0004dac4 lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x0004dac8 lw a1, (v1) | a1 = *(v1);
0x0004dacc sll s3, s5, 2 | s3 = s5 << 2;
0x0004dad0 addiu a2, zero, 0x50 | a2 = 0x50;
0x0004dad4 addu a1, a1, s3 | a1 += s3;
0x0004dad8 jalr t9 | t9 ();
0x0004dadc lw v1, 0x18(sp) | v1 = *(var_18h);
0x0004dae0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != 0) {
0x0004dae4 bnez v1, 0x4db24 | goto label_7;
| }
0x0004dae8 lw v1, 0x5c(sp) | v1 = *(arg_5ch);
0x0004daec move fp, s0 | fp = s0;
0x0004daf0 addiu s6, zero, 1 | s6 = 1;
0x0004daf4 addiu s7, v1, 4 | s7 = v1 + 4;
| do {
0x0004daf8 lw a1, (s7) | a1 = *(s7);
0x0004dafc lw t9, -0x7374(gp) | t9 = sym.WebRtc_WriteBuffer;
0x0004db00 lw a0, 0x50(fp) | a0 = *(arg_50h);
0x0004db04 addu a1, a1, s3 | a1 += s3;
0x0004db08 addiu a2, zero, 0x50 | a2 = 0x50;
0x0004db0c addiu s6, s6, 1 | s6++;
0x0004db10 jalr t9 | t9 ();
0x0004db14 addiu fp, fp, 4 | fp += 4;
0x0004db18 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004db1c addiu s7, s7, 4 | s7 += 4;
0x0004db20 bne s6, s4, 0x4daf8 |
| } while (s6 != s4);
| label_7:
0x0004db24 lw v0, -0x7b80(s1) | v0 = *((s1 - 7904));
0x0004db28 slti v0, v0, 0x50 | v0 = (v0 < 0x50) ? 1 : 0;
0x0004db2c lw t9, -0x7edc(gp) | t9 = sym.WebRtcAec_MoveFarReadPtr;
| if (v0 != 0) {
0x0004db30 bnez v0, 0x4dd50 | goto label_8;
| }
| label_2:
0x0004db34 lw v0, -0x7820(s1) | v0 = *((s1 - 7688));
0x0004db38 lw v0, 0x68(sp) | v0 = *(arg_68h);
| if (v0 != 0) {
0x0004db3c bnez v0, 0x4dc98 | goto label_9;
| }
0x0004db40 lw v1, 8(s0) | v1 = *((s0 + 2));
0x0004db44 lw t9, -0x7ab0(gp) | t9 = sym.WebRtc_MoveReadPtr;
0x0004db48 lw a0, -0x7b84(s1) | a0 = *(s1);
0x0004db4c subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x0004db50 addiu v0, v1, -0x20 | v0 = v1 + -0x20;
0x0004db54 slti s6, v0, 0 | s6 = (v0 < 0) ? 1 : 0;
0x0004db58 addiu v1, v1, 0x1f | v1 += 0x1f;
| if (s6 == 0) {
0x0004db5c movn v0, v1, s6 | v0 = v1;
| }
0x0004db60 sra s6, v0, 6 | s6 = v0 >> 6;
0x0004db64 move a1, s6 | a1 = s6;
0x0004db68 jalr t9 | t9 ();
0x0004db6c lw gp, 0x10(sp) | gp = *(var_10h);
0x0004db70 lw a0, -0x7b88(s1) | a0 = *((s1 - 7906));
0x0004db74 lw t9, -0x7ab0(gp) | t9 = sym.WebRtc_MoveReadPtr;
0x0004db78 move a1, s6 | a1 = s6;
0x0004db7c jalr t9 | t9 ();
0x0004db80 lw v1, 8(s0) | v1 = *((s0 + 2));
0x0004db84 sll v0, v0, 6 | v0 <<= 6;
0x0004db88 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004db8c subu v1, v1, v0 | __asm ("subu v1, v1, v0");
0x0004db90 sw v1, 8(s0) | *((s0 + 2)) = v1;
0x0004db94 b 0x4dba8 |
| while (v0 == 0) {
| /* sym.ProcessBlock */
0x0004db98 addiu t9, s2, -0x55a8 | t9 = s2 + -0x55a8;
0x0004db9c move a0, s0 | a0 = s0;
0x0004dba0 bal 0x4aa58 | sym_ProcessBlock ();
0x0004dba4 lw gp, 0x10(sp) | gp = *(var_10h);
| label_1:
0x0004dba8 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0004dbac lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x0004dbb0 jalr t9 | t9 ();
0x0004dbb4 sltiu v0, v0, 0x40 | v0 = (v0 < 0x40) ? 1 : 0;
0x0004dbb8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dbbc beqz v0, 0x4db98 |
| }
0x0004dbc0 lw v0, -0x7b80(s1) | v0 = *((s1 - 7904));
0x0004dbc4 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0004dbc8 lw a0, 0x4c(s0) | a0 = *((s0 + 19));
0x0004dbcc addiu v0, v0, -0x50 | v0 += -0x50;
0x0004dbd0 sw v0, -0x7b80(s1) | *((s1 - 7904)) = v0;
0x0004dbd4 jalr t9 | t9 ();
0x0004dbd8 slti v1, v0, 0x50 | v1 = (v0 < 0x50) ? 1 : 0;
0x0004dbdc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != 0) {
0x0004dbe0 bnez v1, 0x4dd68 | goto label_10;
| }
| label_3:
0x0004dbe4 lw v1, 0x6c(sp) | v1 = *(arg_6ch);
| label_4:
0x0004dbe8 lw t9, -0x7f04(gp) | t9 = sym.WebRtc_ReadBuffer;
0x0004dbec lw a0, 0x4c(s0) | a0 = *((s0 + 19));
0x0004dbf0 lw a2, (v1) | a2 = *(v1);
0x0004dbf4 move a1, zero | a1 = 0;
0x0004dbf8 addiu a3, zero, 0x50 | a3 = 0x50;
0x0004dbfc addu a2, a2, s3 | a2 += s3;
0x0004dc00 jalr t9 | t9 ();
0x0004dc04 lw v1, 0x18(sp) | v1 = *(var_18h);
0x0004dc08 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 != 0) {
0x0004dc0c bnez v1, 0x4dc50 | goto label_11;
| }
0x0004dc10 lw v1, 0x6c(sp) | v1 = *(arg_6ch);
0x0004dc14 move s7, s0 | s7 = s0;
0x0004dc18 addiu s6, zero, 1 | s6 = 1;
0x0004dc1c addiu fp, v1, 4 | fp = v1 + 4;
| do {
0x0004dc20 lw a2, (fp) | a2 = *(fp);
0x0004dc24 lw t9, -0x7f04(gp) | t9 = sym.WebRtc_ReadBuffer;
0x0004dc28 lw a0, 0x58(s7) | a0 = *((s7 + 22));
0x0004dc2c move a1, zero | a1 = 0;
0x0004dc30 addu a2, a2, s3 | a2 += s3;
0x0004dc34 addiu a3, zero, 0x50 | a3 = 0x50;
0x0004dc38 addiu s6, s6, 1 | s6++;
0x0004dc3c jalr t9 | t9 ();
0x0004dc40 addiu s7, s7, 4 | s7 += 4;
0x0004dc44 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dc48 addiu fp, fp, 4 | fp += 4;
0x0004dc4c bne s6, s4, 0x4dc20 |
| } while (s6 != s4);
| label_11:
0x0004dc50 lw v1, 0x64(sp) | v1 = *(arg_64h);
0x0004dc54 addiu s5, s5, 0x50 | s5 += 0x50;
0x0004dc58 sltu v0, s5, v1 | v0 = (s5 < v1) ? 1 : 0;
0x0004dc5c lw v1, 0x5c(sp) | v1 = *(arg_5ch);
| if (v0 != 0) {
0x0004dc60 bnez v0, 0x4dac0 | goto label_0;
| }
| label_6:
0x0004dc64 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0004dc68 lw fp, 0x48(sp) | fp = *(var_48h);
0x0004dc6c lw s7, 0x44(sp) | s7 = *(var_44h);
0x0004dc70 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0004dc74 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x0004dc78 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0004dc7c lw s3, 0x34(sp) | s3 = *(var_34h);
0x0004dc80 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0004dc84 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0004dc88 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0004dc8c ldc1 f20, 0x50(sp) | __asm ("ldc1 f20, (var_50h)");
0x0004dc90 addiu sp, sp, 0x58 |
0x0004dc94 jr ra | return v0;
| label_9:
0x0004dc98 lw v0, -0x7824(s1) | v0 = *((s1 - 7689));
0x0004dc9c slti v0, v0, 0x5dc | v0 = (v0 < aav.0x000005dc) ? 1 : 0;
0x0004dca0 move s6, zero | s6 = 0;
| if (v0 == 0) {
0x0004dca4 beqz v0, 0x4ddc0 | goto label_12;
| }
| label_5:
0x0004dca8 lw t9, -0x7ab0(gp) | t9 = sym.WebRtc_MoveReadPtr;
0x0004dcac lw a0, -0x7b84(s1) | a0 = *(s1);
0x0004dcb0 move a1, s6 | a1 = s6;
0x0004dcb4 jalr t9 | t9 ();
0x0004dcb8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dcbc lw a0, -0x7b88(s1) | a0 = *((s1 - 7906));
0x0004dcc0 lw t9, -0x7ab0(gp) | t9 = sym.WebRtc_MoveReadPtr;
0x0004dcc4 move a1, s6 | a1 = s6;
0x0004dcc8 jalr t9 | t9 ();
0x0004dccc lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dcd0 lw a0, -0x7b88(s1) | a0 = *((s1 - 7906));
0x0004dcd4 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0004dcd8 move s6, v0 | s6 = v0;
0x0004dcdc jalr t9 | t9 ();
0x0004dce0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dce4 lw a0, 0x48(s0) | a0 = *((s0 + 18));
0x0004dce8 lw t9, -0x7f90(gp) | t9 = *(gp);
0x0004dcec move s7, v0 | s7 = v0;
0x0004dcf0 jalr t9 | t9 ();
0x0004dcf4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dcf8 lw a0, -0x783c(s1) | a0 = *(s1);
0x0004dcfc move a1, s6 | a1 = s6;
0x0004dd00 lw t9, -0x77d4(gp) | t9 = *(gp);
0x0004dd04 srl v0, v0, 6 | v0 >>= 6;
0x0004dd08 subu s7, s7, v0 | __asm ("subu s7, s7, v0");
0x0004dd0c jalr t9 | t9 ();
0x0004dd10 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dd14 lw a0, -0x7840(s1) | a0 = *((s1 - 7696));
0x0004dd18 lw t9, -0x7de4(gp) | t9 = sym.WebRtc_SoftResetDelayEstimatorFarend;
0x0004dd1c move a1, s6 | a1 = s6;
0x0004dd20 jalr t9 | t9 ();
0x0004dd24 lw v0, -0x7838(s1) | v0 = *((s1 - 7694));
0x0004dd28 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dd2c addu s6, v0, s6 | s6 = v0 + s6;
0x0004dd30 sw s6, -0x7838(s1) | *((s1 - 7694)) = s6;
| if (s7 >= 0) {
0x0004dd34 bgez s7, 0x4dba8 | goto label_1;
| }
0x0004dd38 lw t9, -0x7edc(gp) | t9 = sym.WebRtcAec_MoveFarReadPtr;
0x0004dd3c move a0, s0 | a0 = s0;
0x0004dd40 move a1, s7 | a1 = s7;
0x0004dd44 jalr t9 | t9 ();
0x0004dd48 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dd4c b 0x4dba8 | goto label_1;
| label_8:
0x0004dd50 lw a1, -0x7b7c(s1) | a1 = *((s1 - 7903));
0x0004dd54 move a0, s0 | a0 = s0;
0x0004dd58 nor a1, zero, a1 | __asm ("nor a1, zero, a1");
0x0004dd5c jalr t9 | t9 ();
0x0004dd60 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004dd64 b 0x4db34 | goto label_2;
| label_10:
0x0004dd68 lw t9, -0x7ab0(gp) | t9 = sym.WebRtc_MoveReadPtr;
0x0004dd6c lw a0, 0x4c(s0) | a0 = *((s0 + 19));
0x0004dd70 addiu s6, v0, -0x50 | s6 = v0 + -0x50;
0x0004dd74 move a1, s6 | a1 = s6;
0x0004dd78 jalr t9 | t9 ();
0x0004dd7c lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x0004dd80 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v1 == 0) {
0x0004dd84 beqz v1, 0x4dbe4 | goto label_3;
| }
0x0004dd88 move fp, s0 | fp = s0;
0x0004dd8c move s7, zero | s7 = 0;
| do {
0x0004dd90 lw t9, -0x7ab0(gp) | t9 = sym.WebRtc_MoveReadPtr;
0x0004dd94 lw a0, 0x58(fp) | a0 = *(arg_58h);
0x0004dd98 move a1, s6 | a1 = s6;
0x0004dd9c addiu s7, s7, 1 | s7++;
0x0004dda0 jalr t9 | t9 ();
0x0004dda4 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x0004dda8 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004ddac sltu v0, s7, v1 | v0 = (s7 < v1) ? 1 : 0;
0x0004ddb0 addiu fp, fp, 4 | fp += 4;
0x0004ddb4 bnez v0, 0x4dd90 |
| } while (v0 != 0);
0x0004ddb8 lw v1, 0x6c(sp) | v1 = *(arg_6ch);
0x0004ddbc b 0x4dbe8 | goto label_4;
| label_12:
0x0004ddc0 lw t9, -0x7248(gp) | t9 = *(gp);
0x0004ddc4 lw a0, -0x783c(s1) | a0 = *(s1);
0x0004ddc8 jalr t9 | t9 ();
0x0004ddcc move v1, v0 | v1 = v0;
0x0004ddd0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 >= 0) {
0x0004ddd4 bltz v0, 0x4de04 |
0x0004ddd8 lw v0, -0x7834(s1) | v0 = *((s1 - 7693));
0x0004dddc lw t9, -0x7b18(gp) | t9 = sym.WebRtc_last_delay_quality;
| if (v1 == v0) {
0x0004dde0 beq v1, v0, 0x4de04 | goto label_13;
| }
0x0004dde4 lw a0, -0x783c(s1) | a0 = *(s1);
0x0004dde8 sw v1, 0x24(sp) | *(var_24h) = v1;
0x0004ddec jalr t9 | t9 ();
0x0004ddf0 lwc1 f1, -0x7828(s1) | __asm ("lwc1 f1, -0x7828(s1)");
0x0004ddf4 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004ddf8 c.lt.s f1, f0 | __asm ("c.lt.s f1, f0");
0x0004ddfc bc1t 0x4de44 | __asm ("bc1t 0x4de44");
0x0004de00 lw v1, 0x24(sp) | v1 = *(var_24h);
| }
| label_13:
0x0004de04 lw v0, -0x7830(s1) | v0 = *((s1 - 7692));
0x0004de08 lw t9, -0x7b18(gp) | t9 = sym.WebRtc_last_delay_quality;
| if (v0 <= 0) {
0x0004de0c blez v0, 0x4dca8 | goto label_5;
| }
0x0004de10 lw a0, -0x783c(s1) | a0 = *(s1);
0x0004de14 jalr t9 | t9 ();
0x0004de18 c.lt.s f20, f0 | __asm ("c.lt.s f20, f0");
0x0004de1c bc1f 0x4de28 | __asm ("bc1f 0x4de28");
0x0004de20 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004de24 mov.s f0, f20 | __asm ("mov.s f0, f20");
0x0004de28 lwc1 f1, -0x7828(s1) | __asm ("lwc1 f1, -0x7828(s1)");
0x0004de2c c.lt.s f1, f0 | __asm ("c.lt.s f1, f0");
0x0004de30 bc1f 0x4de3c | __asm ("bc1f 0x4de3c");
0x0004de34 nop |
0x0004de38 mov.s f1, f0 | __asm ("mov.s f1, f0");
0x0004de3c swc1 f1, -0x7828(s1) | __asm ("swc1 f1, -0x7828(s1)");
0x0004de40 b 0x4dca8 | goto label_5;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/6225984-11075644.jffs2_new_extract/lib/libaudioProcess.so @ 0x5aaa0 */
| #include <stdint.h>
|
; (fcn) sym.WebRtcAec_Process () | void WebRtcAec_Process () {
0x0005aaa0 lui gp, 4 |
0x0005aaa4 addiu gp, gp, -0x10a0 |
0x0005aaa8 addu gp, gp, t9 | gp += t9;
0x0005aaac addiu sp, sp, -0x50 |
0x0005aab0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0005aab4 sw s2, 0x30(sp) | *(var_30h) = s2;
0x0005aab8 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0005aabc sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0005aac0 sw fp, 0x48(sp) | *(var_48h) = fp;
0x0005aac4 sw s7, 0x44(sp) | *(var_44h) = s7;
0x0005aac8 sw s6, 0x40(sp) | *(var_40h) = s6;
0x0005aacc sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x0005aad0 sw s4, 0x38(sp) | *(var_38h) = s4;
0x0005aad4 sw s3, 0x34(sp) | *(var_34h) = s3;
0x0005aad8 sw s0, 0x28(sp) | *(var_28h) = s0;
0x0005aadc lw s1, 0x60(sp) | s1 = *(arg_60h);
0x0005aae0 lh s2, 0x64(sp) | s2 = *(arg_64h);
| if (a3 == 0) {
0x0005aae4 beqz a3, 0x5b378 | goto label_19;
| }
0x0005aae8 lh v1, 0x24(a0) | v1 = *((a0 + 18));
0x0005aaec addiu v0, zero, 0x2a | v0 = 0x2a;
0x0005aaf0 addiu v0, zero, 0x50 | v0 = 0x50;
| if (v1 != v0) {
0x0005aaf4 bne v1, v0, 0x5b1c0 | goto label_20;
| }
0x0005aaf8 move s5, a3 | s5 = a3;
0x0005aafc move s7, a0 | s7 = a0;
0x0005ab00 move s6, a1 | s6 = a1;
0x0005ab04 move s4, a2 | s4 = a2;
| if (s1 != v0) {
0x0005ab08 beq s1, v0, 0x5ab18 |
0x0005ab0c addiu v0, zero, 0xa0 | v0 = 0xa0;
0x0005ab10 addiu v0, zero, 0x2ee4 | v0 = 0x2ee4;
| if (s1 != v0) {
0x0005ab14 bne s1, v0, 0x5b01c | goto label_21;
| }
| }
0x0005ab18 slti v0, s2, 0x1f5 | v0 = (s2 < 0x1f5) ? 1 : 0;
| if (s2 < 0) {
0x0005ab1c bltz s2, 0x5ae0c | goto label_22;
| }
0x0005ab20 move s0, zero | s0 = 0;
| if (v0 == 0) {
0x0005ab24 bnez v0, 0x5ab34 |
0x0005ab28 addiu v0, zero, 0x2f12 | v0 = 0x2f12;
0x0005ab2c sw v0, 0x5c(s7) | *((s7 + 23)) = v0;
0x0005ab30 addiu s0, zero, -1 | s0 = -1;
| }
0x0005ab34 lw t9, -0x7e20(gp) | t9 = sym.WebRtcAec_extended_filter_enabled;
0x0005ab38 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005ab3c jalr t9 | t9 ();
0x0005ab40 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005ab44 beqz v0, 0x5abd4 | goto label_23;
| }
0x0005ab48 slti v0, s2, 0x14 | v0 = (s2 < 0x14) ? 1 : 0;
0x0005ab4c addiu v0, zero, 0x32 | v0 = 0x32;
| if (v0 != 0) {
0x0005ab50 bnez v0, 0x5ae2c | goto label_24;
| }
0x0005ab54 slti v1, s2, 0x1f4 | v1 = (s2 < aav.0x000001f4) ? 1 : 0;
| if (v1 != 0) {
0x0005ab58 movz s2, v0, v1 | s2 = v0;
| }
0x0005ab5c lw v0, 0x60(s7) | v0 = *((s7 + 24));
0x0005ab60 sh s2, 0x30(s7) | *((s7 + 24)) = s2;
| if (v0 != 0) {
0x0005ab64 bnez v0, 0x5ae3c | goto label_25;
| }
| label_0:
0x0005ab68 sll s1, s1, 2 | s1 <<= 2;
| if (s4 == 0) {
0x0005ab6c beqz s4, 0x5aba0 | goto label_2;
| }
0x0005ab70 move s2, zero | s2 = 0;
| do {
0x0005ab74 lw a1, (s6) | a1 = *(s6);
0x0005ab78 lw a0, (s5) | a0 = *(s5);
0x0005ab7c lw t9, -0x7300(gp) | t9 = sym.imp.memcpy;
0x0005ab80 addiu s2, s2, 1 | s2++;
| if (a1 != a0) {
0x0005ab84 beq a1, a0, 0x5ab94 |
0x0005ab88 move a2, s1 | a2 = s1;
0x0005ab8c jalr t9 | t9 ();
0x0005ab90 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0005ab94 addiu s6, s6, 4 | s6 += 4;
0x0005ab98 addiu s5, s5, 4 | s5 += 4;
0x0005ab9c bne s2, s4, 0x5ab74 |
| } while (s2 != s4);
| label_2:
0x0005aba0 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0005aba4 move v0, s0 | v0 = s0;
0x0005aba8 lw fp, 0x48(sp) | fp = *(var_48h);
0x0005abac lw s7, 0x44(sp) | s7 = *(var_44h);
0x0005abb0 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0005abb4 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x0005abb8 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0005abbc lw s3, 0x34(sp) | s3 = *(var_34h);
0x0005abc0 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0005abc4 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0005abc8 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0005abcc addiu sp, sp, 0x50 |
0x0005abd0 jr ra | return v0;
| label_23:
0x0005abd4 seh v0, s2 | __asm ("seh v0, s2");
0x0005abd8 slti v0, v0, 0x1f5 | v0 = (v0 < 0x1f5) ? 1 : 0;
| if (v0 == 0) {
0x0005abdc bnez v0, 0x5abe8 |
0x0005abe0 nop |
0x0005abe4 addiu s2, zero, 0x1f4 | s2 = aav.0x000001f4;
| }
0x0005abe8 lh v1, 0x14(s7) | v1 = *((s7 + 10));
0x0005abec addiu s2, s2, 0xa | s2 += 0xa;
0x0005abf0 addiu v0, zero, 1 | v0 = 1;
0x0005abf4 sh s2, 0x30(s7) | *((s7 + 24)) = s2;
0x0005abf8 move s2, zero | s2 = 0;
| if (v1 == v0) {
0x0005abfc beq v1, v0, 0x5b004 | goto label_26;
| }
| label_1:
0x0005ac00 lw v1, 0x20(s7) | v1 = *((s7 + 8));
0x0005ac04 lw v0, 0x38(s7) | v0 = *((s7 + 14));
0x0005ac08 sw v1, 0x20(sp) | *(var_20h) = v1;
| if (v0 == 0) {
0x0005ac0c beqz v0, 0x5b0cc | goto label_27;
| }
| if (s4 == 0) {
0x0005ac10 beqz s4, 0x5ac54 | goto label_28;
| }
0x0005ac14 nop |
0x0005ac18 move s3, s6 | s3 = s6;
0x0005ac1c sll fp, s1, 2 | fp = s1 << 2;
0x0005ac20 move s6, s5 | s6 = s5;
0x0005ac24 move s5, zero | s5 = 0;
| do {
0x0005ac28 lw a1, (s3) | a1 = *(s3);
0x0005ac2c lw a0, (s6) | a0 = *(s6);
0x0005ac30 lw t9, -0x7300(gp) | t9 = sym.imp.memcpy;
0x0005ac34 addiu s5, s5, 1 | s5++;
| if (a1 != a0) {
0x0005ac38 beq a1, a0, 0x5ac48 |
0x0005ac3c move a2, fp | a2 = fp;
0x0005ac40 jalr t9 | t9 ();
0x0005ac44 lw gp, 0x18(sp) | gp = *(var_18h);
| }
0x0005ac48 addiu s3, s3, 4 | s3 += 4;
0x0005ac4c addiu s6, s6, 4 | s6 += 4;
0x0005ac50 bne s5, s4, 0x5ac28 |
| } while (s5 != s4);
| label_28:
0x0005ac54 lw v0, 0x3c(s7) | v0 = *((s7 + 15));
0x0005ac58 lw t9, -0x791c(gp) | t9 = sym.WebRtcAec_system_delay
| if (v0 != 0) {
0x0005ac5c beqz v0, 0x5ad94 |
0x0005ac60 lhu v1, 0x2e(s7) | v1 = *((s7 + 23));
0x0005ac64 lh a0, 0x26(s7) | a0 = *((s7 + 19));
0x0005ac68 lh v0, 0x30(s7) | v0 = *((s7 + 24));
0x0005ac6c addiu v1, v1, 1 | v1++;
0x0005ac70 seh v1, v1 | __asm ("seh v1, v1");
0x0005ac74 sh v1, 0x2e(s7) | *((s7 + 23)) = v1;
| if (a0 == 0) {
0x0005ac78 beqz a0, 0x5b1ec | goto label_29;
| }
0x0005ac7c lh a2, 0x2c(s7) | a2 = *((s7 + 22));
0x0005ac80 subu a2, a2, v0 | __asm ("subu a2, a2, v0");
0x0005ac84 sra a1, a2, 0x1f | a1 = a2 >> 0x1f;
0x0005ac88 xor a2, a1, a2 | a2 = a1 ^ a2;
0x0005ac8c subu a1, a2, a1 | __asm ("subu a1, a2, a1");
0x0005ac90 mtc1 a1, f0 | __asm ("mtc1 a1, f0");
0x0005ac94 cvt.d.w f6, f0 | __asm ("cvt.d.w f6, f0");
| label_10:
0x0005ac98 lw a2, 0x20(sp) | a2 = *(var_20h);
0x0005ac9c mtc1 v0, f8 | __asm ("mtc1 v0, f8");
0x0005aca0 sll a1, a2, 4 | a1 = a2 << 4;
0x0005aca4 lw a2, -0x7fcc(gp) | a2 = *(gp);
0x0005aca8 cvt.d.w f0, f8 | __asm ("cvt.d.w f0, f8");
0x0005acac ldc1 f2, 0x50a0(a2) | __asm ("ldc1 f2, 0x50a0(a2)");
0x0005acb0 lw a2, -0x7fcc(gp) | a2 = *(gp);
0x0005acb4 ldc1 f4, 0x50a8(a2) | __asm ("ldc1 f4, 0x50a8(a2)");
0x0005acb8 lw a2, 0x20(sp) | a2 = *(var_20h);
0x0005acbc mul.d f0, f0, f4 | __asm ("mul.d f0, f0, f4");
0x0005acc0 sll s3, a2, 6 | s3 = a2 << 6;
0x0005acc4 addu s3, a1, s3 | s3 = a1 + s3;
0x0005acc8 divu zero, s1, s3 | __asm ("divu zero, s1, s3");
0x0005accc teq s3, zero, 7 | __asm ("teq s3, zero, 7");
0x0005acd0 c.lt.d f2, f0 | __asm ("c.lt.d f2, f0");
0x0005acd4 movf.d f0, f2, fcc0 | __asm ("movf.d f0, f2, fcc0");
0x0005acd8 c.lt.d f6, f0 | __asm ("c.lt.d f6, f0");
0x0005acdc bc1f 0x5b1e4 | __asm ("bc1f 0x5b1e4");
0x0005ace0 mflo s1 | __asm ("mflo s1");
0x0005ace4 addiu a0, a0, 1 | a0++;
0x0005ace8 seh a0, a0 | __asm ("seh a0, a0");
0x0005acec mul a2, s1, a0 | __asm ("mul a2, s1, a0");
0x0005acf0 lw a1, 0x28(s7) | a1 = *((s7 + 10));
0x0005acf4 sh a0, 0x26(s7) | *((s7 + 19)) = a0;
0x0005acf8 addu a1, v0, a1 | a1 = v0 + a1;
0x0005acfc sltiu a2, a2, 6 | a2 = (a2 < 6) ? 1 : 0;
0x0005ad00 sw a1, 0x28(s7) | *((s7 + 10)) = a1;
| if (a2 == 0) {
0x0005ad04 bnez a2, 0x5ad40 |
0x0005ad08 lw a3, 0x20(s7) | a3 = *((s7 + 8));
0x0005ad0c sll a2, a1, 3 | a2 = a1 << 3;
0x0005ad10 sll a1, a1, 5 | a1 <<= 5;
0x0005ad14 subu a2, a1, a2 | __asm ("subu a2, a1, a2");
0x0005ad18 mul a2, a2, a3 | __asm ("mul a2, a2, a3");
0x0005ad1c sll a1, a0, 8 | a1 = a0 << 8;
0x0005ad20 addiu a0, zero, 0x3e | a0 = 0x3e;
0x0005ad24 sw zero, 0x3c(s7) | *((s7 + 15)) = 0;
0x0005ad28 div zero, a2, a1 | __asm ("div zero, a2, a1");
0x0005ad2c teq a1, zero, 7 | __asm ("teq a1, zero, 7");
0x0005ad30 mflo a1 | __asm ("mflo a1");
0x0005ad34 slti a2, a1, 0x3e | a2 = (a1 < 0x3e) ? 1 : 0;
| if (a2 == 0) {
0x0005ad38 movn a0, a1, a2 | a0 = a1;
| }
0x0005ad3c sw a0, 0x18(s7) | *((s7 + 6)) = a0;
| }
0x0005ad40 mul v1, s1, v1 | __asm ("mul v1, s1, v1");
0x0005ad44 sltiu v1, v1, 0x33 | v1 = (v1 < 0x33) ? 1 : 0;
| if (v1 != 0) {
0x0005ad48 bnez v1, 0x5b1d0 | goto label_30;
| }
0x0005ad4c nop |
0x0005ad50 lw a0, 0x20(s7) | a0 = *((s7 + 8));
0x0005ad54 mul v0, v0, a0 | __asm ("mul v0, v0, a0");
0x0005ad58 sll a0, v0, 1 | a0 = v0 << 1;
0x0005ad5c addu v0, a0, v0 | v0 = a0 + v0;
0x0005ad60 slti a0, v0, 0x9b0 | a0 = (v0 < 0x9b0) ? 1 : 0;
0x0005ad64 addiu v1, zero, 0x3e | v1 = 0x3e;
| if (a0 != 0) {
0x0005ad68 beqz a0, 0x5ad88 |
0x0005ad6c lui v1, 0x6666 | v1 = 0x66666667;
0x0005ad70 addiu v1, v1, 0x6667 |
0x0005ad74 mult v0, v1 | __asm ("mult v0, v1");
0x0005ad78 sra v0, v0, 0x1f | v0 >>= 0x1f;
0x0005ad7c mfhi v1 | __asm ("mfhi v1");
0x0005ad80 sra v1, v1, 4 | v1 >>= 4;
0x0005ad84 subu v1, v1, v0 | __asm ("subu v1, v1, v0");
| }
0x0005ad88 sw v1, 0x18(s7) | *((s7 + 6)) = v1;
0x0005ad8c sw zero, 0x3c(s7) | *((s7 + 15)) = 0;
| label_9:
0x0005ad90 lw t9, -0x791c(gp) | t9 = sym.WebRtcAec_system_delay
| }
0x0005ad94 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005ad98 jalr t9 | t9 ();
0x0005ad9c slti a1, v0, 0 | a1 = (v0 < 0) ? 1 : 0;
0x0005ada0 addiu a0, v0, 0x3f | a0 = v0 + 0x3f;
0x0005ada4 lw v1, 0x18(s7) | v1 = *((s7 + 6));
| if (a1 == 0) {
0x0005ada8 movn v0, a0, a1 | v0 = a0;
| }
0x0005adac sra a1, v0, 6 | a1 = v0 >> 6;
0x0005adb0 subu a1, a1, v1 | __asm ("subu a1, a1, v1");
0x0005adb4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a1 != 0) {
0x0005adb8 beqz a1, 0x5adcc |
0x0005adbc lw t9, -0x7edc(gp) | t9 = sym.WebRtcAec_MoveFarReadPtr;
| if (a1 <= 0) {
0x0005adc0 blez a1, 0x5add0 | goto label_31;
| }
0x0005adc4 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005adc8 jalr t9 | t9 ();
| }
0x0005adcc sw zero, 0x38(s7) | *((s7 + 14)) = 0;
| label_31:
0x0005add0 addiu v0, zero, -1 | v0 = -1;
| if (s2 == 0) {
0x0005add4 movn s0, v0, s2 | s0 = v0;
| }
| label_8:
0x0005add8 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0005addc move v0, s0 | v0 = s0;
0x0005ade0 lw fp, 0x48(sp) | fp = *(var_48h);
0x0005ade4 lw s7, 0x44(sp) | s7 = *(var_44h);
0x0005ade8 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0005adec lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x0005adf0 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0005adf4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x0005adf8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0005adfc lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0005ae00 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0005ae04 addiu sp, sp, 0x50 |
0x0005ae08 jr ra | return v0;
| label_22:
0x0005ae0c lw t9, -0x7e20(gp) | t9 = sym.WebRtcAec_extended_filter_enabled;
0x0005ae10 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005ae14 addiu v0, zero, 0x2f12 | v0 = 0x2f12;
0x0005ae18 sw v0, 0x5c(s7) | *((s7 + 23)) = v0;
0x0005ae1c jalr t9 | t9 ();
0x0005ae20 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005ae24 beqz v0, 0x5afe8 | goto label_32;
| }
0x0005ae28 addiu s0, zero, -1 | s0 = -1;
| label_24:
0x0005ae2c lw v0, 0x60(s7) | v0 = *((s7 + 24));
0x0005ae30 addiu s2, zero, 0x14 | s2 = 0x14;
0x0005ae34 sh s2, 0x30(s7) | *((s7 + 24)) = s2;
| if (v0 == 0) {
0x0005ae38 beqz v0, 0x5ab68 | goto label_0;
| }
| label_25:
0x0005ae3c lw v0, 0x38(s7) | v0 = *((s7 + 14));
0x0005ae40 slti a0, s2, 0x32 | a0 = (s2 < 0x32) ? 1 : 0;
| if (v0 != 0) {
0x0005ae44 beqz v0, 0x5ae98 |
0x0005ae48 lw v1, 0x20(s7) | v1 = *((s7 + 8));
0x0005ae4c addiu v0, zero, 0x32 | v0 = 0x32;
| if (a0 != 0) {
0x0005ae50 movz v0, s2, a0 | v0 = s2;
| }
0x0005ae54 mul v0, v0, v1 | __asm ("mul v0, v0, v1");
0x0005ae58 lw t9, -0x791c(gp) | t9 = sym.WebRtcAec_system_delay
0x0005ae5c lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005ae60 sll s2, v0, 2 | s2 = v0 << 2;
0x0005ae64 jalr t9 | t9 ();
0x0005ae68 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005ae6c subu v0, v0, s2 | __asm ("subu v0, v0, s2");
0x0005ae70 addiu v1, v0, 0x3f | v1 = v0 + 0x3f;
0x0005ae74 lw t9, -0x7edc(gp) | t9 = sym.WebRtcAec_MoveFarReadPtr;
0x0005ae78 slti a1, v0, 0 | a1 = (v0 < 0) ? 1 : 0;
0x0005ae7c lw a0, 0x64(s7) | a0 = *((s7 + 25));
| if (a1 == 0) {
0x0005ae80 movn v0, v1, a1 | v0 = v1;
| }
0x0005ae84 sra a1, v0, 6 | a1 = v0 >> 6;
0x0005ae88 jalr t9 | t9 ();
0x0005ae8c lh s2, 0x30(s7) | s2 = *((s7 + 24));
0x0005ae90 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005ae94 sw zero, 0x38(s7) | *((s7 + 14)) = 0;
| }
0x0005ae98 lw v0, 0x20(s7) | v0 = *((s7 + 8));
0x0005ae9c sll s2, s2, 3 | s2 <<= 3;
0x0005aea0 lw t9, -0x791c(gp) | t9 = sym.WebRtcAec_system_delay
0x0005aea4 mul s3, s2, v0 | __asm ("mul s3, s2, v0");
0x0005aea8 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005aeac jalr t9 | t9 ();
0x0005aeb0 lw v1, 0x20(s7) | v1 = *((s7 + 8));
0x0005aeb4 lh a0, 0x14(s7) | a0 = *((s7 + 10));
0x0005aeb8 sll s2, v1, 4 | s2 = v1 << 4;
0x0005aebc sll v1, v1, 6 | v1 <<= 6;
0x0005aec0 addu v1, s2, v1 | v1 = s2 + v1;
0x0005aec4 subu v0, s3, v0 | __asm ("subu v0, s3, v0");
0x0005aec8 addu s2, v0, v1 | s2 = v0 + v1;
0x0005aecc addiu v0, zero, 1 | v0 = 1;
0x0005aed0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == v0) {
0x0005aed4 beq a0, v0, 0x5b044 | goto label_33;
| }
| label_4:
0x0005aed8 slti v0, s2, 0x40 | v0 = (s2 < 0x40) ? 1 : 0;
0x0005aedc lw t9, -0x7edc(gp) | t9 = sym.WebRtcAec_MoveFarReadPtr;
| if (v0 != 0) {
0x0005aee0 bnez v0, 0x5b028 | goto label_34;
| }
| label_3:
0x0005aee4 lh v0, 0x32(s7) | v0 = *((s7 + 25));
0x0005aee8 addiu v1, zero, -1 | v1 = -1;
0x0005aeec mtc1 v0, f4 | __asm ("mtc1 v0, f4");
| if (v0 == v1) {
0x0005aef0 beq v0, v1, 0x5b058 | goto label_35;
| }
0x0005aef4 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005aef8 mtc1 s2, f8 | __asm ("mtc1 s2, f8");
0x0005aefc cvt.d.w f0, f4 | __asm ("cvt.d.w f0, f4");
0x0005af00 ldc1 f4, 0x5160(v0) | __asm ("ldc1 f4, 0x5160(v0)");
0x0005af04 cvt.d.w f2, f8 | __asm ("cvt.d.w f2, f8");
0x0005af08 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005af0c mul.d f2, f2, f4 | __asm ("mul.d f2, f2, f4");
0x0005af10 ldc1 f4, 0x52b8(v0) | __asm ("ldc1 f4, 0x52b8(v0)");
0x0005af14 madd.d f0, f2, f0, f4 | __asm ("madd.d f0, f2, f0, f4");
0x0005af18 trunc.w.d f8, f0 | __asm ("trunc.w.d f8, f0");
0x0005af1c mfc1 v0, f8 | __asm ("mfc1 v0, f8");
0x0005af20 seh a0, v0 | __asm ("seh a0, v0");
| if (a0 < 0) {
0x0005af24 bltz a0, 0x5b25c | goto label_36;
| }
0x0005af28 nop |
| label_14:
0x0005af2c sh v0, 0x32(s7) | *((s7 + 25)) = v0;
0x0005af30 move a1, a0 | a1 = a0;
| label_5:
0x0005af34 lw v1, 0x1c(s7) | v1 = *((s7 + 7));
0x0005af38 subu v0, a1, v1 | __asm ("subu v0, a1, v1");
0x0005af3c slti a2, v0, 0x181 | a2 = (v0 < 0x181) ? 1 : 0;
0x0005af40 slti a2, v0, 0x80 | a2 = (v0 < 0x80) ? 1 : 0;
| if (a2 != 0) {
0x0005af44 bnez a2, 0x5b098 | goto label_37;
| }
0x0005af48 lh a2, 0x40(s7) | a2 = *((s7 + 32));
0x0005af4c slti a2, a2, 0x80 | a2 = (a2 < 0x80) ? 1 : 0;
| if (a2 != 0) {
0x0005af50 bnez a2, 0x5b0b8 | goto label_38;
| }
0x0005af54 nop |
| label_6:
0x0005af58 lw a2, 0x34(s7) | a2 = *((s7 + 13));
0x0005af5c sh v0, 0x40(s7) | *((s7 + 32)) = v0;
0x0005af60 addiu a2, a2, 1 | a2++;
0x0005af64 sw a2, 0x34(s7) | *((s7 + 13)) = a2;
0x0005af68 slti a2, a2, 0x1a | a2 = (a2 < 0x1a) ? 1 : 0;
0x0005af6c slti a0, a0, 0x101 | a0 = (a0 < 0x101) ? 1 : 0;
| if (a2 != 0) {
0x0005af70 bnez a2, 0x5b0c0 | goto label_39;
| }
0x0005af74 move v1, zero | v1 = 0;
| if (a0 != 0) {
0x0005af78 bnez a0, 0x5b200 | goto label_40;
| }
0x0005af7c addiu a1, a1, -0x100 | a1 += -aav.0x00000100;
0x0005af80 slti v1, a1, 0 | v1 = (a1 < 0) ? 1 : 0;
0x0005af84 move v0, zero | v0 = 0;
| if (v1 != 0) {
0x0005af88 movz v0, a1, v1 | v0 = a1;
| }
0x0005af8c move v1, v0 | v1 = v0;
| label_11:
0x0005af90 sw a1, 0x1c(s7) | *((s7 + 7)) = a1;
| label_7:
0x0005af94 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005af98 lw t9, -0x761c(gp) | t9 = sym.WebRtcAec_ProcessFrames;
0x0005af9c sw v1, 0x10(sp) | *(var_10h) = v1;
0x0005afa0 sw s5, 0x14(sp) | *(var_14h) = s5;
0x0005afa4 move a1, s6 | a1 = s6;
0x0005afa8 move a2, s4 | a2 = s4;
0x0005afac move a3, s1 | a3 = s1;
0x0005afb0 jalr t9 | t9 ();
0x0005afb4 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0005afb8 move v0, s0 | v0 = s0;
0x0005afbc lw fp, 0x48(sp) | fp = *(var_48h);
0x0005afc0 lw s7, 0x44(sp) | s7 = *(var_44h);
0x0005afc4 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0005afc8 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x0005afcc lw s4, 0x38(sp) | s4 = *(var_38h);
0x0005afd0 lw s3, 0x34(sp) | s3 = *(var_34h);
0x0005afd4 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0005afd8 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0005afdc lw s0, 0x28(sp) | s0 = *(var_28h);
0x0005afe0 addiu sp, sp, 0x50 |
0x0005afe4 jr ra | return v0;
| label_32:
0x0005afe8 lh v1, 0x14(s7) | v1 = *((s7 + 10));
0x0005afec addiu s2, zero, 0xa | s2 = 0xa;
0x0005aff0 addiu v0, zero, 1 | v0 = 1;
0x0005aff4 sh s2, 0x30(s7) | *((s7 + 24)) = s2;
0x0005aff8 addiu s0, zero, -1 | s0 = -1;
0x0005affc move s2, zero | s2 = 0;
| if (v1 != v0) {
0x0005b000 bne v1, v0, 0x5ac00 | goto label_1;
| }
| label_26:
0x0005b004 lw v0, 0x48(s7) | v0 = *((s7 + 18));
0x0005b008 slti v1, v0, 0x19 | v1 = (v0 < 0x19) ? 1 : 0;
0x0005b00c addiu v0, v0, 1 | v0++;
| if (v1 == 0) {
0x0005b010 beqz v1, 0x5b294 | goto label_41;
| }
0x0005b014 sw v0, 0x48(s7) | *((s7 + 18)) = v0;
0x0005b018 b 0x5ac00 | goto label_1;
| label_21:
0x0005b01c sw v0, 0x5c(a0) | *((a0 + 23)) = v0;
0x0005b020 addiu s0, zero, -1 | s0 = -1;
0x0005b024 b 0x5aba0 | goto label_2;
| label_34:
0x0005b028 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005b02c addiu a1, zero, 2 | a1 = 2;
0x0005b030 jalr t9 | t9 ();
0x0005b034 sll v0, v0, 6 | v0 <<= 6;
0x0005b038 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005b03c addu s2, s2, v0 | s2 += v0;
0x0005b040 b 0x5aee4 | goto label_3;
| label_33:
0x0005b044 lw v0, 0x4c(s7) | v0 = *((s7 + 19));
0x0005b048 xori v0, v0, 1 | v0 ^= 1;
0x0005b04c sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x0005b050 subu s2, s2, v0 | __asm ("subu s2, s2, v0");
0x0005b054 b 0x5aed8 | goto label_4;
| label_35:
0x0005b058 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005b05c mtc1 s2, f2 | __asm ("mtc1 s2, f2");
0x0005b060 cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
0x0005b064 ldc1 f2, 0x5068(v0) | __asm ("ldc1 f2, 0x5068(v0)");
0x0005b068 mul.d f0, f0, f2 | __asm ("mul.d f0, f0, f2");
0x0005b06c mtc1 zero, f2 | __asm ("mtc1 zero, f2");
0x0005b070 mtc1 zero, f3 | __asm ("mtc1 zero, f3");
0x0005b074 c.lt.d f0, f2 | __asm ("c.lt.d f0, f2");
0x0005b078 bc1t 0x5b268 | __asm ("bc1t 0x5b268");
0x0005b07c nop |
0x0005b080 trunc.w.d f4, f0 | __asm ("trunc.w.d f4, f0");
0x0005b084 mfc1 a0, f4 | __asm ("mfc1 a0, f4");
0x0005b088 seh a0, a0 | __asm ("seh a0, a0");
0x0005b08c move a1, a0 | a1 = a0;
0x0005b090 sh a0, 0x32(s7) | *((s7 + 25)) = a0;
0x0005b094 b 0x5af34 | goto label_5;
| if (a2 == 0) {
| label_37:
0x0005b098 beqz a2, 0x5b0b8 | goto label_38;
| }
0x0005b09c nop |
| if (v1 <= 0) {
0x0005b0a0 blez v1, 0x5b0b8 | goto label_38;
| }
0x0005b0a4 nop |
0x0005b0a8 lh a2, 0x40(s7) | a2 = *((s7 + 32));
0x0005b0ac slti a2, a2, 0x181 | a2 = (a2 < 0x181) ? 1 : 0;
| if (a2 != 0) {
0x0005b0b0 bnez a2, 0x5af58 | goto label_6;
| }
0x0005b0b4 nop |
| label_38:
0x0005b0b8 sw zero, 0x34(s7) | *((s7 + 13)) = 0;
0x0005b0bc sh v0, 0x40(s7) | *((s7 + 32)) = v0;
| label_39:
0x0005b0c0 slti v0, v1, 0 | v0 = (v1 < 0) ? 1 : 0;
| if (v0 == 0) {
0x0005b0c4 movn v1, zero, v0 | v1 = 0;
| }
0x0005b0c8 b 0x5af94 | goto label_7;
| label_27:
0x0005b0cc lh fp, 0x30(s7) | fp = *((s7 + 24));
0x0005b0d0 lw v1, 0x20(sp) | v1 = *(var_20h);
0x0005b0d4 lw t9, -0x791c(gp) | t9 = sym.WebRtcAec_system_delay
0x0005b0d8 sll fp, fp, 3 | fp <<= 3;
0x0005b0dc mul fp, v1, fp | __asm ("mul fp, v1, fp");
0x0005b0e0 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005b0e4 jalr t9 | t9 ();
0x0005b0e8 lw v1, 0x20(s7) | v1 = *((s7 + 8));
0x0005b0ec lh a0, 0x14(s7) | a0 = *((s7 + 10));
0x0005b0f0 sll s3, v1, 4 | s3 = v1 << 4;
0x0005b0f4 sll v1, v1, 6 | v1 <<= 6;
0x0005b0f8 addu v1, s3, v1 | v1 = s3 + v1;
0x0005b0fc subu v0, fp, v0 | __asm ("subu v0, fp, v0");
0x0005b100 addu s3, v0, v1 | s3 = v0 + v1;
0x0005b104 addiu v0, zero, 1 | v0 = 1;
0x0005b108 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a0 == v0) {
0x0005b10c beq a0, v0, 0x5b324 | goto label_42;
| }
| label_16:
0x0005b110 slti v0, s3, 0x40 | v0 = (s3 < 0x40) ? 1 : 0;
0x0005b114 lw t9, -0x7edc(gp) | t9 = sym.WebRtcAec_MoveFarReadPtr;
| if (v0 != 0) {
0x0005b118 bnez v0, 0x5b278 | goto label_43;
| }
| label_15:
0x0005b11c lw a0, -0x7fcc(gp) | a0 = *(gp);
0x0005b120 mtc1 s3, f0 | __asm ("mtc1 s3, f0");
0x0005b124 lh v0, 0x32(s7) | v0 = *((s7 + 25));
0x0005b128 ldc1 f4, 0x50a8(a0) | __asm ("ldc1 f4, 0x50a8(a0)");
0x0005b12c cvt.d.w f2, f0 | __asm ("cvt.d.w f2, f0");
0x0005b130 slti v1, v0, 0 | v1 = (v0 < 0) ? 1 : 0;
0x0005b134 mul.d f2, f2, f4 | __asm ("mul.d f2, f2, f4");
| if (v1 == 0) {
0x0005b138 movn v0, zero, v1 | v0 = 0;
| }
0x0005b13c mtc1 v0, f4 | __asm ("mtc1 v0, f4");
0x0005b140 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005b144 cvt.d.w f0, f4 | __asm ("cvt.d.w f0, f4");
0x0005b148 ldc1 f4, 0x5158(v0) | __asm ("ldc1 f4, 0x5158(v0)");
0x0005b14c madd.d f0, f2, f0, f4 | __asm ("madd.d f0, f2, f0, f4");
0x0005b150 trunc.w.d f8, f0 | __asm ("trunc.w.d f8, f0");
0x0005b154 mfc1 a0, f8 | __asm ("mfc1 a0, f8");
0x0005b158 seh v1, a0 | __asm ("seh v1, a0");
| if (v1 < 0) {
0x0005b15c bltz v1, 0x5b344 | goto label_44;
| }
0x0005b160 nop |
| label_17:
0x0005b164 lw v0, 0x1c(s7) | v0 = *((s7 + 7));
0x0005b168 sh a0, 0x32(s7) | *((s7 + 25)) = a0;
0x0005b16c subu a0, v1, v0 | __asm ("subu a0, v1, v0");
0x0005b170 slti a1, a0, 0xe1 | a1 = (a0 < 0xe1) ? 1 : 0;
0x0005b174 slti a1, a0, 0x60 | a1 = (a0 < 0x60) ? 1 : 0;
| if (a1 != 0) {
0x0005b178 bnez a1, 0x5b208 | goto label_45;
| }
0x0005b17c lh a1, 0x40(s7) | a1 = *((s7 + 32));
0x0005b180 slti a1, a1, 0x60 | a1 = (a1 < 0x60) ? 1 : 0;
| if (a1 == 0) {
0x0005b184 beqz a1, 0x5b228 | goto label_46;
| }
0x0005b188 nop |
| label_12:
0x0005b18c sw zero, 0x34(s7) | *((s7 + 13)) = 0;
0x0005b190 sh a0, 0x40(s7) | *((s7 + 32)) = a0;
| label_13:
0x0005b194 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005b198 lw t9, -0x761c(gp) | t9 = sym.WebRtcAec_ProcessFrames;
0x0005b19c sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005b1a0 sw s5, 0x14(sp) | *(var_14h) = s5;
0x0005b1a4 move a1, s6 | a1 = s6;
0x0005b1a8 move a2, s4 | a2 = s4;
0x0005b1ac move a3, s1 | a3 = s1;
0x0005b1b0 jalr t9 | t9 ();
0x0005b1b4 addiu v0, zero, -1 | v0 = -1;
| if (s2 == 0) {
0x0005b1b8 movn s0, v0, s2 | s0 = v0;
| }
0x0005b1bc b 0x5add8 | goto label_8;
| label_20:
0x0005b1c0 addiu v0, zero, 0x2ee2 | v0 = 0x2ee2;
0x0005b1c4 sw v0, 0x5c(a0) | *((a0 + 23)) = v0;
0x0005b1c8 addiu s0, zero, -1 | s0 = -1;
0x0005b1cc b 0x5aba0 | goto label_2;
| label_30:
0x0005b1d0 lw v0, 0x3c(s7) | v0 = *((s7 + 15));
0x0005b1d4 addiu v0, zero, -1 | v0 = -1;
| if (v0 == 0) {
0x0005b1d8 beqz v0, 0x5ad90 | goto label_9;
| }
| if (s2 == 0) {
0x0005b1dc movn s0, v0, s2 | s0 = v0;
| }
0x0005b1e0 b 0x5add8 | goto label_8;
| label_29:
0x0005b1ec mtc1 zero, f6 | __asm ("mtc1 zero, f6");
0x0005b1f0 sw zero, 0x28(s7) | *((s7 + 10)) = 0;
0x0005b1f4 mtc1 zero, f7 | __asm ("mtc1 zero, f7");
0x0005b1f8 sh v0, 0x2c(s7) | *((s7 + 22)) = v0;
0x0005b1fc b 0x5ac98 | goto label_10;
| label_40:
0x0005b200 move a1, zero | a1 = 0;
0x0005b204 b 0x5af90 | goto label_11;
| if (a1 == 0) {
| label_45:
0x0005b208 beqz a1, 0x5b18c | goto label_12;
| }
0x0005b20c nop |
| if (v0 <= 0) {
0x0005b210 blez v0, 0x5b18c | goto label_12;
| }
0x0005b214 nop |
0x0005b218 lh a1, 0x40(s7) | a1 = *((s7 + 32));
0x0005b21c slti a1, a1, 0xe1 | a1 = (a1 < 0xe1) ? 1 : 0;
| if (a1 == 0) {
0x0005b220 beqz a1, 0x5b18c | goto label_12;
| }
0x0005b224 nop |
| label_46:
0x0005b228 lw a1, 0x34(s7) | a1 = *((s7 + 13));
0x0005b22c sh a0, 0x40(s7) | *((s7 + 32)) = a0;
0x0005b230 addiu a1, a1, 1 | a1++;
0x0005b234 sw a1, 0x34(s7) | *((s7 + 13)) = a1;
0x0005b238 slti a1, a1, 0x1a | a1 = (a1 < 0x1a) ? 1 : 0;
| if (a1 != 0) {
0x0005b23c bnez a1, 0x5b194 | goto label_13;
| }
0x0005b240 nop |
0x0005b244 slti v0, v1, 0xa1 | v0 = (v1 < 0xa1) ? 1 : 0;
0x0005b248 addiu v1, v1, -0xa0 | v1 += -0xa0;
| if (v0 == 0) {
0x0005b24c movn v1, zero, v0 | v1 = 0;
| }
0x0005b250 move v0, v1 | v0 = v1;
0x0005b254 sw v1, 0x1c(s7) | *((s7 + 7)) = v1;
0x0005b258 b 0x5b194 | goto label_13;
| label_36:
0x0005b25c move v0, zero | v0 = 0;
0x0005b260 move a0, zero | a0 = 0;
0x0005b264 b 0x5af2c | goto label_14;
| label_43:
0x0005b278 lw a0, 0x64(s7) | a0 = *((s7 + 25));
0x0005b27c addiu a1, zero, 1 | a1 = 1;
0x0005b280 jalr t9 | t9 ();
0x0005b284 sll v0, v0, 6 | v0 <<= 6;
0x0005b288 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005b28c addu s3, s3, v0 | s3 += v0;
0x0005b290 b 0x5b11c | goto label_15;
| label_41:
0x0005b294 lw t9, -0x7c00(gp) | t9 = *(gp);
0x0005b298 lw a0, 0x44(s7) | a0 = *((s7 + 17));
0x0005b29c lw a1, 0x68(sp) | a1 = *(arg_68h);
0x0005b2a0 addiu a2, s7, 0x54 | a2 = s7 + 0x54;
0x0005b2a4 jalr t9 | t9 ();
0x0005b2a8 move s2, v0 | s2 = v0;
0x0005b2ac addiu v0, zero, -1 | v0 = -1;
0x0005b2b0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s2 == v0) {
0x0005b2b4 beq s2, v0, 0x5b368 | goto label_47;
| }
0x0005b2b8 lwc1 f4, 0x54(s7) | __asm ("lwc1 f4, 0x54(s7)");
| do {
0x0005b2bc mtc1 s1, f2 | __asm ("mtc1 s1, f2");
0x0005b2c0 cvt.d.w f0, f2 | __asm ("cvt.d.w f0, f2");
| if (s1 < 0) {
0x0005b2c4 bltz s1, 0x5b388 | goto label_48;
| }
| label_18:
0x0005b2c8 lwc1 f2, 0x10(s7) | __asm ("lwc1 f2, 0x10(s7)");
0x0005b2cc cvt.s.d f0, f0 | __asm ("cvt.s.d f0, f0");
0x0005b2d0 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005b2d4 mul.s f2, f0, f2 | __asm ("mul.s f2, f0, f2");
0x0005b2d8 div.s f4, f4, f2 | __asm ("div.s f4, f4, f2");
0x0005b2dc ldc1 f2, 0x52c0(v0) | __asm ("ldc1 f2, aav.0x000052c0(v0)");
0x0005b2e0 cvt.d.s f0, f4 | __asm ("cvt.d.s f0, f4");
0x0005b2e4 c.lt.d f0, f2 | __asm ("c.lt.d f0, f2");
0x0005b2e8 bc1f 0x5b338 | __asm ("bc1f 0x5b338");
0x0005b2ec swc1 f4, 0x54(s7) | __asm ("swc1 f4, 0x54(s7)");
0x0005b2f0 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005b2f4 ldc1 f2, 0x52c8(v0) | __asm ("ldc1 f2, 0x52c8(v0)");
0x0005b2f8 c.lt.d f2, f0 | __asm ("c.lt.d f2, f0");
0x0005b2fc bc1f 0x5b33c | __asm ("bc1f 0x5b33c");
0x0005b300 addiu v0, zero, 1 | v0 = 1;
0x0005b304 sw zero, 0x4c(s7) | *((s7 + 19)) = 0;
0x0005b308 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005b30c lwc1 f0, 0x5454(v0) | __asm ("lwc1 f0, 0x5454(v0)");
0x0005b310 c.lt.s f4, f0 | __asm ("c.lt.s f4, f0");
0x0005b314 bc1f 0x5b350 | __asm ("bc1f 0x5b350");
0x0005b318 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005b31c swc1 f0, 0x54(s7) | __asm ("swc1 f0, 0x54(s7)");
0x0005b320 b 0x5ac00 | goto label_1;
| label_42:
0x0005b324 lw v0, 0x4c(s7) | v0 = *((s7 + 19));
0x0005b328 xori v0, v0, 1 | v0 ^= 1;
0x0005b32c sltiu v0, v0, 1 | v0 = (v0 < 1) ? 1 : 0;
0x0005b330 subu s3, s3, v0 | __asm ("subu s3, s3, v0");
0x0005b334 b 0x5b110 | goto label_16;
| label_44:
0x0005b344 move a0, zero | a0 = 0;
0x0005b348 move v1, zero | v1 = 0;
0x0005b34c b 0x5b164 | goto label_17;
| label_47:
0x0005b368 addiu v0, zero, 0x2f12 | v0 = 0x2f12;
0x0005b36c mtc1 zero, f4 | __asm ("mtc1 zero, f4");
0x0005b370 sw v0, 0x5c(s7) | *((s7 + 23)) = v0;
0x0005b374 b 0x5b2bc |
| } while (1);
| label_19:
0x0005b378 addiu v0, zero, 0x2ee3 | v0 = 0x2ee3;
0x0005b37c sw v0, 0x5c(a0) | *((a0 + 23)) = v0;
0x0005b380 addiu s0, zero, -1 | s0 = -1;
0x0005b384 b 0x5aba0 | goto label_2;
| label_48:
0x0005b388 lw v0, -0x7fcc(gp) | v0 = *(gp);
0x0005b38c ldc1 f2, 0x5270(v0) | __asm ("ldc1 f2, 0x5270(v0)");
0x0005b390 add.d f0, f0, f2 | __asm ("add.d f0, f0, f2");
0x0005b394 b 0x5b2c8 | goto label_18;
| }
[*] Function system used 8 times libaudioProcess.so