[*] Binary protection state of aplay

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function sprintf tear down of aplay

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/aplay @ 0x4710 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00004710 ()              | void fcn_00004710 () {
    0x00004710 lui gp, 3                 |     
    0x00004714 addiu gp, gp, -0x76d0     |     
    0x00004718 addu gp, gp, t9           |     gp += t9;
    0x0000471c addiu sp, sp, -0xb8       |     
    0x00004720 lw v0, -0x7e4c(gp)        |     v0 = *((gp - 8083));
    0x00004724 sw fp, 0xb0(sp)           |     *(var_b0h) = fp;
    0x00004728 move fp, sp               |     fp = sp;
    0x0000472c lw t9, -0x7ef0(gp)        |     t9 = sym.imp.snd_ctl_card_info_sizeof;
    0x00004730 sw v0, 0x2c(fp)           |     *(arg_2ch) = v0;
    0x00004734 lw v0, (v0)               |     v0 = *(v0);
    0x00004738 sw s0, 0x90(sp)           |     *(var_90h) = s0;
    0x0000473c addiu s0, fp, 0x64        |     s0 = fp + 0x64;
    0x00004740 sw ra, 0xb4(sp)           |     *(var_b4h) = ra;
    0x00004744 sw s1, 0x94(sp)           |     *(var_94h) = s1;
    0x00004748 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x0000474c sw s7, 0xac(sp)           |     *(var_ach) = s7;
    0x00004750 sw s6, 0xa8(sp)           |     *(var_a8h) = s6;
    0x00004754 sw s5, 0xa4(sp)           |     *(var_a4h) = s5;
    0x00004758 sw s4, 0xa0(sp)           |     *(var_a0h) = s4;
    0x0000475c sw s3, 0x9c(sp)           |     *(var_9ch) = s3;
    0x00004760 sw s2, 0x98(sp)           |     *(var_98h) = s2;
    0x00004764 sw s0, 0x34(fp)           |     *(arg_34h) = s0;
    0x00004768 sw v0, 0x8c(fp)           |     *(arg_8ch) = v0;
    0x0000476c jalr t9                   |     t9 ();
    0x00004770 nop                       |     
    0x00004774 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004778 addiu v0, v0, 7           |     v0 += 7;
    0x0000477c srl v0, v0, 3             |     v0 >>= 3;
    0x00004780 sll v0, v0, 3             |     v0 <<= 3;
    0x00004784 lw t9, -0x7ef0(gp)        |     t9 = sym.imp.snd_ctl_card_info_sizeof;
    0x00004788 subu sp, sp, v0           |     
    0x0000478c jalr t9                   |     t9 ();
    0x00004790 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004794 addiu v1, sp, 0x20        |     v1 = sp + 0x20;
    0x00004798 move a0, v1               |     a0 = v1;
    0x0000479c lw t9, -0x7d60(gp)        |     t9 = sym.imp.memset;
    0x000047a0 sw v1, 0x3c(fp)           |     *(arg_3ch) = v1;
    0x000047a4 move a2, v0               |     a2 = v0;
    0x000047a8 move a1, zero             |     a1 = 0;
    0x000047ac jalr t9                   |     t9 ();
    0x000047b0 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x000047b4 lw t9, -0x7e94(gp)        |     t9 = sym.imp.snd_pcm_info_sizeof;
    0x000047b8 jalr t9                   |     t9 ();
    0x000047bc nop                       |     
    0x000047c0 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x000047c4 addiu v0, v0, 7           |     v0 += 7;
    0x000047c8 srl v0, v0, 3             |     v0 >>= 3;
    0x000047cc sll v0, v0, 3             |     v0 <<= 3;
    0x000047d0 lw t9, -0x7e94(gp)        |     t9 = sym.imp.snd_pcm_info_sizeof;
    0x000047d4 subu sp, sp, v0           |     
    0x000047d8 jalr t9                   |     t9 ();
    0x000047dc lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x000047e0 addiu s1, sp, 0x20        |     s1 = sp + 0x20;
    0x000047e4 move a2, v0               |     a2 = v0;
    0x000047e8 lw t9, -0x7d60(gp)        |     t9 = sym.imp.memset;
    0x000047ec move a1, zero             |     a1 = 0;
    0x000047f0 move a0, s1               |     a0 = s1;
    0x000047f4 jalr t9                   |     t9 ();
    0x000047f8 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x000047fc addiu v0, zero, -1        |     v0 = -1;
    0x00004800 move a0, s0               |     a0 = s0;
    0x00004804 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.snd_card_next;
    0x00004808 sw v0, 0x64(fp)           |     *(arg_64h) = v0;
    0x0000480c jalr t9                   |     t9 ();
    0x00004810 lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x00004814 bltz v0, 0x4ad8           |         goto label_10;
                                         |     }
    0x00004818 lw v0, 0x64(fp)           |     v0 = *(arg_64h);
    0x0000481c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         |     if (v0 < 0) {
    0x00004820 bltz v0, 0x4ad8           |         goto label_10;
                                         |     }
    0x00004824 lw t9, -0x7e84(gp)        |     t9 = sym.imp.snd_pcm_stream_name;
    0x00004828 sw v0, 0x40(fp)           |     *(arg_40h) = v0;
    0x0000482c lw a0, 0x5484(v0)         |     a0 = *((v0 + 5409));
    0x00004830 jalr t9                   |     t9 ();
    0x00004834 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004838 move a2, v0               |     a2 = v0;
    0x0000483c addiu a0, zero, 1         |     a0 = 1;
    0x00004840 lw a1, -0x7fd8(gp)        |     a1 = *(gp);
    0x00004844 lw t9, -0x7d2c(gp)        |     t9 = sym.imp.__printf_chk;
                                         |     /* str._List_of__s_Hardware_Devices__n */
    0x00004848 addiu a1, a1, 0x2b90      |     a1 += 0x2b90;
    0x0000484c jalr t9                   |     t9 ();
    0x00004850 lw v0, 0x64(fp)           |     v0 = *(arg_64h);
    0x00004854 lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x00004858 bltz v0, 0x4b4c           |         goto label_11;
                                         |     }
    0x0000485c lw v1, -0x7fd8(gp)        |     v1 = *(gp);
    0x00004860 lw s4, -0x7fd8(gp)        |     s4 = *(gp);
    0x00004864 sw v1, 0x30(fp)           |     *(arg_30h) = v1;
                                         |     /* str.device_list */
    0x00004868 addiu v1, s4, 0x42a8      |     v1 = s4 + 0x42a8;
    0x0000486c sw v1, 0x54(fp)           |     *(arg_54h) = v1;
    0x00004870 lw v1, -0x7fd8(gp)        |     v1 = *(gp);
    0x00004874 addiu s3, fp, 0x6c        |     s3 = fp + 0x6c;
                                         |     /* str._s:__s:_d:_ */
    0x00004878 addiu v1, v1, 0x2b6c      |     v1 += 0x2b6c;
    0x0000487c sw v1, 0x50(fp)           |     *(arg_50h) = v1;
    0x00004880 lw v1, -0x7fd8(gp)        |     v1 = *(gp);
    0x00004884 addiu s6, fp, 0x60        |     s6 = fp + 0x60;
                                         |     /* str.__Subdevice__i:__s_n */
    0x00004888 addiu v1, v1, 0x2ca4      |     v1 += 0x2ca4;
    0x0000488c sw v1, 0x48(fp)           |     *(arg_48h) = v1;
    0x00004890 lw v1, 0x30(fp)           |     v1 = *(arg_30h);
                                         | label_2:
    0x00004894 lw t9, -0x7f0c(gp)        |     t9 = sym.imp.__sprintf_chk
    0x00004898 addiu a3, v1, 0x2bb8      |     a3 = v1 + 0x2bb8;
    0x0000489c addiu a2, zero, 0x20      |     a2 = 0x20;
    0x000048a0 addiu a1, zero, 1         |     a1 = 1;
    0x000048a4 move a0, s3               |     a0 = s3;
    0x000048a8 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x000048ac jalr t9                   |     t9 ();
    0x000048b0 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x000048b4 move a2, zero             |     a2 = 0;
    0x000048b8 move a1, s3               |     a1 = s3;
    0x000048bc lw t9, -0x7d58(gp)        |     t9 = sym.imp.snd_ctl_open;
    0x000048c0 move a0, s6               |     a0 = s6;
    0x000048c4 jalr t9                   |     t9 ();
    0x000048c8 move s0, v0               |     s0 = v0;
    0x000048cc lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x000048d0 bltz v0, 0x4d6c           |         goto label_12;
                                         |     }
    0x000048d4 lw t9, -0x7eb0(gp)        |     t9 = sym.imp.snd_ctl_card_info;
    0x000048d8 lw a0, 0x60(fp)           |     a0 = *(arg_60h);
    0x000048dc lw a1, 0x3c(fp)           |     a1 = *(arg_3ch);
    0x000048e0 jalr t9                   |     t9 ();
    0x000048e4 move s0, v0               |     s0 = v0;
    0x000048e8 lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x000048ec bltz v0, 0x4e5c           |         goto label_13;
                                         |     }
    0x000048f0 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000048f4 addiu s5, fp, 0x68        |     s5 = fp + 0x68;
    0x000048f8 sw v0, 0x4c(fp)           |     *(arg_4ch) = v0;
    0x000048fc lw v0, -0x7fd8(gp)        |     v0 = *(gp);
    0x00004900 sw v0, 0x38(fp)           |     *(arg_38h) = v0;
    0x00004904 addiu v0, zero, -1        |     v0 = -1;
    0x00004908 sw v0, 0x68(fp)           |     *(arg_68h) = v0;
                                         | label_3:
    0x0000490c lw t9, -0x7d88(gp)        |     t9 = sym.imp.snd_ctl_pcm_next_device;
                                         |     do {
                                         | label_4:
    0x00004910 lw a0, 0x60(fp)           |         a0 = *(arg_60h);
    0x00004914 move a1, s5               |         a1 = s5;
    0x00004918 jalr t9                   |         t9 ();
    0x0000491c lw gp, 0x20(fp)           |         gp = *(var_20h);
                                         |         if (v0 < 0) {
    0x00004920 bltz v0, 0x4a30           |             goto label_14;
                                         |         }
                                         | label_0:
    0x00004924 lw a1, 0x68(fp)           |         a1 = *(arg_68h);
    0x00004928 lw t9, -0x7dec(gp)        |         t9 = sym.imp.snd_ctl_close;
                                         |         if (a1 < 0) {
    0x0000492c bltz a1, 0x4aa4           |             goto label_15;
                                         |         }
                                         | label_1:
    0x00004930 lw t9, -0x7e08(gp)        |         t9 = sym.imp.snd_pcm_info_set_device;
    0x00004934 move a0, s1               |         a0 = s1;
    0x00004938 jalr t9                   |         t9 ();
    0x0000493c lw gp, 0x20(fp)           |         gp = *(var_20h);
    0x00004940 move a1, zero             |         a1 = 0;
    0x00004944 lw t9, -0x7f30(gp)        |         t9 = sym.imp.snd_pcm_info_set_subdevice;
    0x00004948 move a0, s1               |         a0 = s1;
    0x0000494c jalr t9                   |         t9 ();
    0x00004950 lw gp, 0x20(fp)           |         gp = *(var_20h);
    0x00004954 lw v0, 0x40(fp)           |         v0 = *(arg_40h);
    0x00004958 move a0, s1               |         a0 = s1;
    0x0000495c lw t9, -0x7f08(gp)        |         t9 = sym.imp.snd_pcm_info_set_stream;
    0x00004960 lw a1, 0x5484(v0)         |         a1 = *((v0 + 5409));
    0x00004964 jalr t9                   |         t9 ();
    0x00004968 lw gp, 0x20(fp)           |         gp = *(var_20h);
    0x0000496c lw a0, 0x60(fp)           |         a0 = *(arg_60h);
    0x00004970 lw t9, -0x7cf8(gp)        |         t9 = sym.imp.snd_ctl_pcm_info;
    0x00004974 move a1, s1               |         a1 = s1;
    0x00004978 jalr t9                   |         t9 ();
    0x0000497c move s0, v0               |         s0 = v0;
    0x00004980 lw gp, 0x20(fp)           |         gp = *(var_20h);
                                         |         if (v0 >= 0) {
    0x00004984 bgez v0, 0x4b90           |             goto label_16;
                                         |         }
    0x00004988 addiu v0, zero, -2        |         v0 = -2;
    0x0000498c lw t9, -0x7d88(gp)        |         t9 = sym.imp.snd_ctl_pcm_next_device;
    0x00004990 beq s0, v0, 0x4910        |         
                                         |     } while (s0 == v0);
    0x00004994 lw v0, 0x4c(fp)           |     v0 = *(arg_4ch);
    0x00004998 lw s2, -0x7e24(gp)        |     s2 = *((gp - 8073));
    0x0000499c lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x000049a0 lw a3, 0x54b4(v0)         |     a3 = *((v0 + 5421));
    0x000049a4 addiu v0, zero, 0x12d     |     v0 = 0x12d;
    0x000049a8 lw a0, (s2)               |     a0 = *(s2);
    0x000049ac sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x000049b0 lw v0, 0x54(fp)           |     v0 = *(arg_54h);
    0x000049b4 lw a2, 0x50(fp)           |     a2 = *(arg_50h);
    0x000049b8 addiu a1, zero, 1         |     a1 = 1;
    0x000049bc sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x000049c0 jalr t9                   |     t9 ();
    0x000049c4 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x000049c8 move a0, s0               |     a0 = s0;
    0x000049cc lw s7, 0x64(fp)           |     s7 = *(arg_64h);
    0x000049d0 lw t9, -0x7e3c(gp)        |     t9 = sym.imp.snd_strerror;
    0x000049d4 lw s0, (s2)               |     s0 = *(s2);
    0x000049d8 jalr t9                   |     t9 ();
    0x000049dc lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x000049e0 move a3, s7               |     a3 = s7;
    0x000049e4 addiu a1, zero, 1         |     a1 = 1;
    0x000049e8 lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x000049ec lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
                                         |     /* str.control_digital_audio_info___i_:__s */
    0x000049f0 addiu a2, a2, 0x2c10      |     a2 += 0x2c10;
    0x000049f4 move a0, s0               |     a0 = s0;
    0x000049f8 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x000049fc jalr t9                   |     t9 ();
    0x00004a00 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004a04 lw a1, (s2)               |     a1 = *(s2);
    0x00004a08 lw t9, -0x7f18(gp)        |     t9 = sym.imp._IO_putc;
    0x00004a0c addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00004a10 jalr t9                   |     t9 ();
    0x00004a14 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004a18 lw a0, 0x60(fp)           |     a0 = *(arg_60h);
    0x00004a1c lw t9, -0x7d88(gp)        |     t9 = sym.imp.snd_ctl_pcm_next_device;
    0x00004a20 move a1, s5               |     a1 = s5;
    0x00004a24 jalr t9                   |     t9 ();
    0x00004a28 lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 >= 0) {
    0x00004a2c bgez v0, 0x4924           |         goto label_0;
                                         |     }
                                         | label_14:
    0x00004a30 lw v0, 0x4c(fp)           |     v0 = *(arg_4ch);
    0x00004a34 lw s0, -0x7e24(gp)        |     s0 = *((gp - 8073));
    0x00004a38 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00004a3c lw a3, 0x54b4(v0)         |     a3 = *((v0 + 5421));
    0x00004a40 addiu v0, zero, 0x125     |     v0 = 0x125;
    0x00004a44 lw a0, (s0)               |     a0 = *(s0);
    0x00004a48 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00004a4c lw v0, 0x54(fp)           |     v0 = *(arg_54h);
    0x00004a50 lw a2, 0x50(fp)           |     a2 = *(arg_50h);
    0x00004a54 addiu a1, zero, 1         |     a1 = 1;
    0x00004a58 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004a5c jalr t9                   |     t9 ();
    0x00004a60 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004a64 lw v0, 0x38(fp)           |     v0 = *(arg_38h);
    0x00004a68 lw a3, (s0)               |     a3 = *(s0);
    0x00004a6c lw t9, -0x7e6c(gp)        |     t9 = sym.imp.fwrite;
    0x00004a70 addiu a2, zero, 0x17      |     a2 = 0x17;
    0x00004a74 addiu a1, zero, 1         |     a1 = 1;
    0x00004a78 addiu a0, v0, 0x2bf8      |     a0 = v0 + 0x2bf8;
    0x00004a7c jalr t9                   |     t9 ();
    0x00004a80 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004a84 lw a1, (s0)               |     a1 = *(s0);
    0x00004a88 lw t9, -0x7f18(gp)        |     t9 = sym.imp._IO_putc;
    0x00004a8c addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00004a90 jalr t9                   |     t9 ();
    0x00004a94 lw a1, 0x68(fp)           |     a1 = *(arg_68h);
    0x00004a98 lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (a1 >= 0) {
    0x00004a9c bgez a1, 0x4930           |         goto label_1;
                                         |     }
    0x00004aa0 lw t9, -0x7dec(gp)        |     t9 = sym.imp.snd_ctl_close;
                                         | label_15:
    0x00004aa4 lw a0, 0x60(fp)           |     a0 = *(arg_60h);
    0x00004aa8 jalr t9                   |     t9 ();
    0x00004aac lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         | label_9:
    0x00004ab0 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.snd_card_next;
    0x00004ab4 lw a0, 0x34(fp)           |     a0 = *(arg_34h);
    0x00004ab8 jalr t9                   |     t9 ();
    0x00004abc lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 < 0) {
    0x00004ac0 bltz v0, 0x4e04           |         goto label_17;
                                         |     }
                                         | label_7:
    0x00004ac4 lw v0, 0x64(fp)           |     v0 = *(arg_64h);
    0x00004ac8 lw v1, 0x30(fp)           |     v1 = *(arg_30h);
                                         |     if (v0 >= 0) {
    0x00004acc bgez v0, 0x4894           |         goto label_2;
                                         |     }
    0x00004ad0 lw v0, 0x2c(fp)           |     v0 = *(arg_2ch);
    0x00004ad4 b 0x4b50                  |     goto label_18;
                                         | label_10:
    0x00004ad8 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004adc lw s0, -0x7e24(gp)        |     s0 = *((gp - 8073));
    0x00004ae0 lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x00004ae4 lw a3, 0x54b4(v0)         |     a3 = *((v0 + 5421));
    0x00004ae8 addiu v0, zero, 0x110     |     v0 = 0x110;
    0x00004aec lw a0, (s0)               |     a0 = *(s0);
    0x00004af0 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00004af4 lw v0, -0x7fd8(gp)        |     v0 = *(gp);
    0x00004af8 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
                                         |     /* str.device_list */
    0x00004afc addiu v0, v0, 0x42a8      |     v0 += 0x42a8;
                                         |     /* str._s:__s:_d:_ */
    0x00004b00 addiu a2, a2, 0x2b6c      |     a2 += 0x2b6c;
    0x00004b04 addiu a1, zero, 1         |     a1 = 1;
    0x00004b08 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004b0c jalr t9                   |     t9 ();
    0x00004b10 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004b14 lw a3, (s0)               |     a3 = *(s0);
    0x00004b18 addiu a2, zero, 0x16      |     a2 = 0x16;
    0x00004b1c lw a0, -0x7fd8(gp)        |     a0 = *(gp);
    0x00004b20 lw t9, -0x7e6c(gp)        |     t9 = sym.imp.fwrite;
    0x00004b24 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.no_soundcards_found... */
    0x00004b28 addiu a0, a0, 0x2b78      |     a0 += 0x2b78;
                                         | label_8:
    0x00004b2c jalr t9                   |     t9 ();
    0x00004b30 nop                       |     
    0x00004b34 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004b38 lw a1, (s0)               |     a1 = *(s0);
    0x00004b3c lw t9, -0x7f18(gp)        |     t9 = sym.imp._IO_putc;
    0x00004b40 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00004b44 jalr t9                   |     t9 ();
    0x00004b48 lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         | label_11:
    0x00004b4c lw v0, 0x2c(fp)           |     v0 = *(arg_2ch);
                                         | label_18:
    0x00004b50 lw v1, 0x8c(fp)           |     v1 = *(arg_8ch);
    0x00004b54 lw v0, (v0)               |     v0 = *(v0);
    0x00004b58 lw ra, 0xb4(fp)           |     ra = *(var_b4h);
                                         |     if (v1 != v0) {
    0x00004b5c bne v1, v0, 0x4ef4        |         goto label_19;
                                         |     }
    0x00004b60 move sp, fp               |     
    0x00004b64 lw fp, 0xb0(sp)           |     fp = *(var_b0h);
    0x00004b68 lw s7, 0xac(sp)           |     s7 = *(var_ach);
    0x00004b6c lw s6, 0xa8(sp)           |     s6 = *(var_a8h);
    0x00004b70 lw s5, 0xa4(sp)           |     s5 = *(var_a4h);
    0x00004b74 lw s4, 0xa0(sp)           |     s4 = *(var_a0h);
    0x00004b78 lw s3, 0x9c(sp)           |     s3 = *(var_9ch);
    0x00004b7c lw s2, 0x98(sp)           |     s2 = *(var_98h);
    0x00004b80 lw s1, 0x94(sp)           |     s1 = *(var_94h);
    0x00004b84 lw s0, 0x90(sp)           |     s0 = *(var_90h);
    0x00004b88 addiu sp, sp, 0xb8        |     
    0x00004b8c jr ra                     |     return v0;
                                         | label_16:
    0x00004b90 lw a2, 0x64(fp)           |     a2 = *(arg_64h);
    0x00004b94 lw s0, 0x3c(fp)           |     s0 = *(arg_3ch);
    0x00004b98 lw t9, -0x7de8(gp)        |     t9 = sym.imp.snd_ctl_card_info_get_id;
    0x00004b9c sw a2, 0x58(fp)           |     *(arg_58h) = a2;
    0x00004ba0 move a0, s0               |     a0 = s0;
    0x00004ba4 jalr t9                   |     t9 ();
    0x00004ba8 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004bac move a0, s0               |     a0 = s0;
    0x00004bb0 lw t9, -0x7d78(gp)        |     t9 = sym.imp.snd_ctl_card_info_get_name;
    0x00004bb4 sw v0, 0x5c(fp)           |     *(arg_5ch) = v0;
    0x00004bb8 jalr t9                   |     t9 ();
    0x00004bbc lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004bc0 move a0, s1               |     a0 = s1;
    0x00004bc4 lw s2, 0x68(fp)           |     s2 = *(arg_68h);
    0x00004bc8 lw t9, -0x7cf0(gp)        |     t9 = sym.imp.snd_pcm_info_get_id;
    0x00004bcc move s0, v0               |     s0 = v0;
    0x00004bd0 jalr t9                   |     t9 ();
    0x00004bd4 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004bd8 move a0, s1               |     a0 = s1;
    0x00004bdc lw t9, -0x7ccc(gp)        |     t9 = sym.imp.snd_pcm_info_get_name;
    0x00004be0 move s7, v0               |     s7 = v0;
    0x00004be4 jalr t9                   |     t9 ();
    0x00004be8 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004bec lw a3, 0x5c(fp)           |     a3 = *(arg_5ch);
    0x00004bf0 lw a2, 0x58(fp)           |     a2 = *(arg_58h);
    0x00004bf4 lw a1, -0x7fd8(gp)        |     a1 = *(gp);
    0x00004bf8 lw t9, -0x7d2c(gp)        |     t9 = sym.imp.__printf_chk;
                                         |     /* str.card__i:__s___s___device__i:__s___s__n */
    0x00004bfc addiu a1, a1, 0x2c34      |     a1 += 0x2c34;
    0x00004c00 addiu a0, zero, 1         |     a0 = 1;
    0x00004c04 sw s2, 0x14(sp)           |     *(var_14h) = s2;
    0x00004c08 sw v0, 0x1c(sp)           |     *(var_1ch_2) = v0;
    0x00004c0c sw s7, 0x18(sp)           |     *(var_18h_3) = s7;
    0x00004c10 sw s0, 0x10(sp)           |     *(var_10h_2) = s0;
    0x00004c14 jalr t9                   |     t9 ();
    0x00004c18 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004c1c lw t9, -0x7ec0(gp)        |     t9 = sym.imp.snd_pcm_info_get_subdevices_count;
    0x00004c20 move a0, s1               |     a0 = s1;
    0x00004c24 jalr t9                   |     t9 ();
    0x00004c28 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004c2c move a0, s1               |     a0 = s1;
    0x00004c30 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.snd_pcm_info_get_subdevices_avail;
    0x00004c34 move s2, v0               |     s2 = v0;
    0x00004c38 jalr t9                   |     t9 ();
    0x00004c3c lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004c40 move a3, s2               |     a3 = s2;
    0x00004c44 move a2, v0               |     a2 = v0;
    0x00004c48 lw a1, -0x7fd8(gp)        |     a1 = *(gp);
    0x00004c4c lw t9, -0x7d2c(gp)        |     t9 = sym.imp.__printf_chk;
                                         |     /* str.__Subdevices:__i__i_n */
    0x00004c50 addiu a1, a1, 0x2c5c      |     a1 += 0x2c5c;
    0x00004c54 addiu a0, zero, 1         |     a0 = 1;
    0x00004c58 jalr t9                   |     t9 ();
    0x00004c5c lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (s2 <= 0) {
    0x00004c60 blez s2, 0x490c           |         goto label_3;
                                         |     }
    0x00004c64 lw v0, -0x7fd8(gp)        |     v0 = *(gp);
    0x00004c68 move s0, zero             |     s0 = 0;
    0x00004c6c sw v0, 0x44(fp)           |     *(arg_44h) = v0;
    0x00004c70 b 0x4cac                  |     goto label_20;
                                         | label_5:
    0x00004c74 lw t9, -0x7e48(gp)        |     t9 = sym.imp.snd_pcm_info_get_subdevice_name;
    0x00004c78 move a0, s1               |     a0 = s1;
    0x00004c7c jalr t9                   |     t9 ();
    0x00004c80 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004c84 lw a1, 0x48(fp)           |     a1 = *(arg_48h);
    0x00004c88 move a3, v0               |     a3 = v0;
    0x00004c8c lw t9, -0x7d2c(gp)        |     t9 = sym.imp.__printf_chk;
    0x00004c90 move a2, s0               |     a2 = s0;
    0x00004c94 addiu a0, zero, 1         |     a0 = 1;
    0x00004c98 jalr t9                   |     t9 ();
    0x00004c9c lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         | label_6:
    0x00004ca0 addiu s0, s0, 1           |     s0++;
    0x00004ca4 lw t9, -0x7d88(gp)        |     t9 = sym.imp.snd_ctl_pcm_next_device;
                                         |     if (s0 == s2) {
    0x00004ca8 beq s0, s2, 0x4910        |         goto label_4;
                                         |     }
                                         | label_20:
    0x00004cac lw t9, -0x7f30(gp)        |     t9 = sym.imp.snd_pcm_info_set_subdevice;
    0x00004cb0 move a1, s0               |     a1 = s0;
    0x00004cb4 move a0, s1               |     a0 = s1;
    0x00004cb8 jalr t9                   |     t9 ();
    0x00004cbc lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004cc0 lw a0, 0x60(fp)           |     a0 = *(arg_60h);
    0x00004cc4 lw t9, -0x7cf8(gp)        |     t9 = sym.imp.snd_ctl_pcm_info;
    0x00004cc8 move a1, s1               |     a1 = s1;
    0x00004ccc jalr t9                   |     t9 ();
    0x00004cd0 sw v0, 0x5c(fp)           |     *(arg_5ch) = v0;
    0x00004cd4 lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 >= 0) {
    0x00004cd8 bgez v0, 0x4c74           |         goto label_5;
                                         |     }
    0x00004cdc lw v0, 0x4c(fp)           |     v0 = *(arg_4ch);
    0x00004ce0 lw s7, -0x7e24(gp)        |     s7 = *((gp - 8073));
    0x00004ce4 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00004ce8 lw a3, 0x54b4(v0)         |     a3 = *((v0 + 5421));
    0x00004cec addiu v0, zero, 0x13b     |     v0 = 0x13b;
    0x00004cf0 lw a0, (s7)               |     a0 = *(s7);
    0x00004cf4 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00004cf8 lw v0, 0x54(fp)           |     v0 = *(arg_54h);
    0x00004cfc lw a2, 0x50(fp)           |     a2 = *(arg_50h);
    0x00004d00 addiu a1, zero, 1         |     a1 = 1;
    0x00004d04 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004d08 jalr t9                   |     t9 ();
    0x00004d0c lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004d10 lw a3, 0x64(fp)           |     a3 = *(arg_64h);
    0x00004d14 lw v1, 0x5c(fp)           |     v1 = *(arg_5ch);
    0x00004d18 lw t9, -0x7e3c(gp)        |     t9 = sym.imp.snd_strerror;
    0x00004d1c move a0, v1               |     a0 = v1;
    0x00004d20 sw a3, 0x58(fp)           |     *(arg_58h) = a3;
    0x00004d24 lw s4, (s7)               |     s4 = *(s7);
    0x00004d28 jalr t9                   |     t9 ();
    0x00004d2c lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004d30 lw v1, 0x44(fp)           |     v1 = *(arg_44h);
    0x00004d34 lw a3, 0x58(fp)           |     a3 = *(arg_58h);
    0x00004d38 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00004d3c addiu a2, v1, 0x2c74      |     a2 = v1 + 0x2c74;
    0x00004d40 addiu a1, zero, 1         |     a1 = 1;
    0x00004d44 move a0, s4               |     a0 = s4;
    0x00004d48 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004d4c jalr t9                   |     t9 ();
    0x00004d50 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004d54 lw a1, (s7)               |     a1 = *(s7);
    0x00004d58 lw t9, -0x7f18(gp)        |     t9 = sym.imp._IO_putc;
    0x00004d5c addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00004d60 jalr t9                   |     t9 ();
    0x00004d64 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004d68 b 0x4ca0                  |     goto label_6;
                                         | label_12:
    0x00004d6c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004d70 lw s2, -0x7e24(gp)        |     s2 = *((gp - 8073));
    0x00004d74 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00004d78 lw a3, 0x54b4(v0)         |     a3 = *((v0 + 5421));
    0x00004d7c addiu v0, zero, 0x119     |     v0 = 0x119;
    0x00004d80 lw a0, (s2)               |     a0 = *(s2);
    0x00004d84 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00004d88 lw v0, 0x54(fp)           |     v0 = *(arg_54h);
    0x00004d8c lw a2, 0x50(fp)           |     a2 = *(arg_50h);
    0x00004d90 addiu a1, zero, 1         |     a1 = 1;
    0x00004d94 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004d98 jalr t9                   |     t9 ();
    0x00004d9c lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004da0 move a0, s0               |     a0 = s0;
    0x00004da4 lw s5, 0x64(fp)           |     s5 = *(arg_64h);
    0x00004da8 lw t9, -0x7e3c(gp)        |     t9 = sym.imp.snd_strerror;
    0x00004dac lw s0, (s2)               |     s0 = *(s2);
    0x00004db0 jalr t9                   |     t9 ();
    0x00004db4 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004db8 move a3, s5               |     a3 = s5;
    0x00004dbc addiu a1, zero, 1         |     a1 = 1;
    0x00004dc0 lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x00004dc4 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
                                         |     /* str.control_open___i_:__s */
    0x00004dc8 addiu a2, a2, 0x2bc0      |     a2 += 0x2bc0;
    0x00004dcc move a0, s0               |     a0 = s0;
    0x00004dd0 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004dd4 jalr t9                   |     t9 ();
    0x00004dd8 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004ddc lw a1, (s2)               |     a1 = *(s2);
    0x00004de0 lw t9, -0x7f18(gp)        |     t9 = sym.imp._IO_putc;
    0x00004de4 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00004de8 jalr t9                   |     t9 ();
    0x00004dec lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004df0 lw t9, -0x7ef8(gp)        |     t9 = sym.imp.snd_card_next;
    0x00004df4 lw a0, 0x34(fp)           |     a0 = *(arg_34h);
    0x00004df8 jalr t9                   |     t9 ();
    0x00004dfc lw gp, 0x20(fp)           |     gp = *(var_20h);
                                         |     if (v0 >= 0) {
    0x00004e00 bgez v0, 0x4ac4           |         goto label_7;
                                         |     }
                                         | label_17:
    0x00004e04 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004e08 lw s0, -0x7e24(gp)        |     s0 = *((gp - 8073));
    0x00004e0c lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x00004e10 lw a3, 0x54b4(v0)         |     a3 = *((v0 + 5421));
    0x00004e14 addiu v0, zero, 0x145     |     v0 = 0x145;
    0x00004e18 lw a0, (s0)               |     a0 = *(s0);
    0x00004e1c sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00004e20 lw v0, -0x7fd8(gp)        |     v0 = *(gp);
    0x00004e24 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
                                         |     /* str.device_list */
    0x00004e28 addiu v0, v0, 0x42a8      |     v0 += 0x42a8;
                                         |     /* str._s:__s:_d:_ */
    0x00004e2c addiu a2, a2, 0x2b6c      |     a2 += 0x2b6c;
    0x00004e30 addiu a1, zero, 1         |     a1 = 1;
    0x00004e34 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004e38 jalr t9                   |     t9 ();
    0x00004e3c lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004e40 lw a3, (s0)               |     a3 = *(s0);
    0x00004e44 addiu a2, zero, 0xd       |     a2 = 0xd;
    0x00004e48 lw a0, -0x7fd8(gp)        |     a0 = *(gp);
    0x00004e4c lw t9, -0x7e6c(gp)        |     t9 = sym.imp.fwrite;
    0x00004e50 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.snd_card_next */
    0x00004e54 addiu a0, a0, 0x2cbc      |     a0 += 0x2cbc;
    0x00004e58 b 0x4b2c                  |     goto label_8;
                                         | label_13:
    0x00004e5c lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00004e60 lw s2, -0x7e24(gp)        |     s2 = *((gp - 8073));
    0x00004e64 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00004e68 lw a3, 0x54b4(v0)         |     a3 = *((v0 + 5421));
    0x00004e6c addiu v0, zero, 0x11d     |     v0 = 0x11d;
    0x00004e70 lw a0, (s2)               |     a0 = *(s2);
    0x00004e74 sw v0, 0x14(sp)           |     *(var_14h) = v0;
    0x00004e78 lw v0, 0x54(fp)           |     v0 = *(arg_54h);
    0x00004e7c lw a2, 0x50(fp)           |     a2 = *(arg_50h);
    0x00004e80 addiu a1, zero, 1         |     a1 = 1;
    0x00004e84 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004e88 jalr t9                   |     t9 ();
    0x00004e8c lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004e90 move a0, s0               |     a0 = s0;
    0x00004e94 lw s5, 0x64(fp)           |     s5 = *(arg_64h);
    0x00004e98 lw t9, -0x7e3c(gp)        |     t9 = sym.imp.snd_strerror;
    0x00004e9c lw s0, (s2)               |     s0 = *(s2);
    0x00004ea0 jalr t9                   |     t9 ();
    0x00004ea4 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004ea8 move a3, s5               |     a3 = s5;
    0x00004eac addiu a1, zero, 1         |     a1 = 1;
    0x00004eb0 lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x00004eb4 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
                                         |     /* str.control_hardware_info___i_:__s */
    0x00004eb8 addiu a2, a2, 0x2bd8      |     a2 += 0x2bd8;
    0x00004ebc move a0, s0               |     a0 = s0;
    0x00004ec0 sw v0, 0x10(sp)           |     *(var_10h_2) = v0;
    0x00004ec4 jalr t9                   |     t9 ();
    0x00004ec8 lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004ecc lw a1, (s2)               |     a1 = *(s2);
    0x00004ed0 lw t9, -0x7f18(gp)        |     t9 = sym.imp._IO_putc;
    0x00004ed4 addiu a0, zero, 0xa       |     a0 = 0xa;
    0x00004ed8 jalr t9                   |     t9 ();
    0x00004edc lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004ee0 lw t9, -0x7dec(gp)        |     t9 = sym.imp.snd_ctl_close;
    0x00004ee4 lw a0, 0x60(fp)           |     a0 = *(arg_60h);
    0x00004ee8 jalr t9                   |     t9 ();
    0x00004eec lw gp, 0x20(fp)           |     gp = *(var_20h);
    0x00004ef0 b 0x4ab0                  |     goto label_9;
                                         | label_19:
    0x00004ef4 lw t9, -0x7e98(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00004ef8 jalr t9                   |     t9 ();
    0x00004efc nop                       |     
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/aplay @ 0x8d70 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00008d70 ()              | void fcn_00008d70 () {
    0x00008d70 lui gp, 2                 |     
    0x00008d74 addiu gp, gp, 0x42d0      |     
    0x00008d78 addu gp, gp, t9           |     gp += t9;
    0x00008d7c addiu sp, sp, -0xc0       |     
    0x00008d80 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.snd_pcm_format_little_endian;
    0x00008d84 sw s1, 0x9c(sp)           |     *(var_9ch) = s1;
    0x00008d88 lw s1, -0x7e4c(gp)        |     s1 = *((gp - 8083));
    0x00008d8c sw s7, 0xb4(sp)           |     *(var_b4h) = s7;
    0x00008d90 lw s7, -0x7fdc(gp)        |     s7 = *((gp - 8183));
    0x00008d94 sw s2, 0xa0(sp)           |     *(var_a0h) = s2;
    0x00008d98 lw v0, (s1)               |     v0 = *(s1);
    0x00008d9c lw s2, -0x7fdc(gp)        |     s2 = *((gp - 8183));
    0x00008da0 sw s0, 0x98(sp)           |     *(var_98h) = s0;
    0x00008da4 move s0, a0               |     s0 = a0;
    0x00008da8 lw a0, 0x54a4(s7)         |     a0 = *((s7 + 5417));
    0x00008dac sw gp, 0x18(sp)           |     *(var_18h) = gp;
    0x00008db0 sw s5, 0xac(sp)           |     *(var_ach) = s5;
    0x00008db4 sw s4, 0xa8(sp)           |     *(var_a8h) = s4;
    0x00008db8 sw s3, 0xa4(sp)           |     *(var_a4h) = s3;
    0x00008dbc sw ra, 0xbc(sp)           |     *(var_bch) = ra;
    0x00008dc0 sw fp, 0xb8(sp)           |     *(var_b8h) = fp;
    0x00008dc4 sw s6, 0xb0(sp)           |     *(var_b0h) = s6;
    0x00008dc8 sw v0, 0x94(sp)           |     *(var_94h) = v0;
    0x00008dcc move s3, a1               |     s3 = a1;
    0x00008dd0 jalr t9                   |     t9 ();
    0x00008dd4 lw s4, 0x5440(s2)         |     s4 = *((s2 + 5392));
    0x00008dd8 addiu v1, zero, 2         |     v1 = 2;
    0x00008ddc lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008de0 move s5, v0               |     s5 = v0;
                                         |     if (s4 != v1) {
    0x00008de4 beq s4, v1, 0x8dec        |         
    0x00008de8 addiu s4, zero, 1         |         s4 = 1;
                                         |     }
    0x00008dec lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
    0x00008df0 addiu v0, zero, 0x10      |     v0 = 0x10;
    0x00008df4 sw zero, 0x38(sp)         |     *(var_38h) = 0;
    0x00008df8 lw a3, 0x5434(s6)         |     a3 = *((s6 + 5389));
    0x00008dfc sw zero, 0x3c(sp)         |     *(var_3ch) = 0;
                                         |     if (a3 == v0) {
    0x00008e00 beq a3, v0, 0x913c        |         goto label_20;
                                         |     }
    0x00008e04 sltiu v0, a3, 0x11        |     v0 = (a3 < 0x11) ? 1 : 0;
    0x00008e08 addiu v0, zero, 0x18      |     v0 = 0x18;
                                         |     if (v0 != 0) {
    0x00008e0c bnez v0, 0x8f78           |         goto label_21;
                                         |     }
    0x00008e10 addiu v0, zero, 0x20      |     v0 = 0x20;
                                         |     if (a3 == v0) {
    0x00008e14 beq a3, v0, 0x9070        |         goto label_22;
                                         |     }
    0x00008e18 lw t9, -0x7ee8(gp)        |     t9 = sym.imp.snd_pcm_format_silence_32;
                                         |     if (a3 != v0) {
    0x00008e1c bne a3, v0, 0x9038        |         goto label_23;
                                         |     }
    0x00008e20 lw a0, 0x54a4(s7)         |     a0 = *((s7 + 5417));
    0x00008e24 jalr t9                   |     t9 ();
    0x00008e28 srl a3, s3, 2             |     a3 = s3 >> 2;
    0x00008e2c sll a3, a3, 2             |     a3 <<= 2;
    0x00008e30 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00008e34 lw t1, 0x5440(s2)         |     t1 = *((s2 + 5392));
    0x00008e38 addu a3, s0, a3           |     a3 = s0 + a3;
    0x00008e3c move a2, zero             |     a2 = 0;
    0x00008e40 addiu t0, zero, 2         |     t0 = 2;
                                         |     do {
    0x00008e44 lw a1, 0x5434(s6)         |         a1 = *((s6 + 5389));
                                         |         if (a3 == s0) {
    0x00008e48 beq a3, s0, 0x8e98        |             goto label_9;
                                         |         }
                                         | label_0:
    0x00008e4c lw v1, (s0)               |         v1 = *(s0);
                                         |         if (s5 == 0) {
    0x00008e50 bnez s5, 0x8e5c           |             
    0x00008e54 wsbh v1, v1               |             __asm ("wsbh v1, v1");
    0x00008e58 rotr v1, v1, 0x10         |             __asm ("rotr v1, v1, 0x10");
                                         |         }
                                         |         if (v1 >= 0) {
    0x00008e5c bltzl v1, 0x8e64          |             
    0x00008e60 negu v1, v1               |             __asm ("negu v1, v1");
                                         |         }
    0x00008e64 addiu a1, sp, 0x98        |         a1 = sp + 0x98;
    0x00008e68 sll a0, a2, 2             |         a0 = a2 << 2;
    0x00008e6c addu a0, a1, a0           |         a0 = a1 + a0;
    0x00008e70 xor v1, v1, v0            |         v1 ^= v0;
    0x00008e74 lw a1, -0x60(a0)          |         a1 = *((a0 - 24));
    0x00008e78 slt a1, a1, v1            |         a1 = (a1 < v1) ? 1 : 0;
    0x00008e7c sw v1, -0x60(a0)          |         *((a0 - 24)) = v1;
                                         |         if (a1 != 0) {
    0x00008e80 bnel a1, zero, 0x8e84     |             
                                         |         }
    0x00008e84 addiu s0, s0, 4           |         s0 += 4;
    0x00008e88 bne t1, t0, 0x8e44        |         
                                         |     } while (t1 != t0);
    0x00008e8c xori a2, a2, 1            |     a2 ^= 1;
                                         |     if (a3 != s0) {
    0x00008e90 bne a3, s0, 0x8e4c        |         goto label_0;
                                         |     }
    0x00008e94 lw a1, 0x5434(s6)         |     a1 = *((s6 + 5389));
                                         |     do {
                                         | label_9:
    0x00008e98 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
                                         | label_6:
    0x00008e9c lw v1, 0x5438(v0)         |         v1 = *((v0 + 5390));
    0x00008ea0 addiu v0, v1, -1          |         v0 = v1 + -1;
    0x00008ea4 addiu v1, zero, 1         |         v1 = 1;
    0x00008ea8 sllv v1, v1, v0           |         v1 <<= v0;
    0x00008eac lui v0, 0x51eb            |         v0 = 0x51eb0000;
                                         |         if (v1 <= 0) {
    0x00008eb0 blez v1, 0x8ff0           |             goto label_24;
                                         |         }
    0x00008eb4 ori v0, v0, 0x851f        |         v0 |= 0x851f;
    0x00008eb8 mult v1, v0               |         __asm ("mult v1, v0");
    0x00008ebc mfhi v0                   |         __asm ("mfhi v0");
    0x00008ec0 sra a0, v1, 0x1f          |         a0 = v1 >> 0x1f;
    0x00008ec4 sltiu a1, a1, 0x11        |         a1 = (a1 < 0x11) ? 1 : 0;
    0x00008ec8 lw a2, 0x38(sp)           |         a2 = *(var_38h);
    0x00008ecc sra v0, v0, 5             |         v0 >>= 5;
    0x00008ed0 subu v0, v0, a0           |         __asm ("subu v0, v0, a0");
                                         |         if (a1 == 0) {
    0x00008ed4 beqz a1, 0x900c           |             goto label_25;
                                         |         }
                                         | label_2:
    0x00008ed8 addiu a1, zero, 0x64      |         a1 = 0x64;
    0x00008edc mul a0, a2, a1            |         __asm ("mul a0, a2, a1");
    0x00008ee0 addiu v0, zero, 2         |         v0 = 2;
    0x00008ee4 div zero, a0, v1          |         __asm ("div zero, a0, v1");
    0x00008ee8 teq v1, zero, 7           |         __asm ("teq v1, zero, 7");
    0x00008eec mflo a0                   |         __asm ("mflo a0");
    0x00008ef0 sw a0, 0x30(sp)           |         *(var_30h) = a0;
                                         |         if (s4 == v0) {
    0x00008ef4 bne s4, v0, 0x8f10        |             
    0x00008ef8 lw v0, 0x3c(sp)           |             v0 = *(var_3ch);
    0x00008efc mul v0, v0, a1            |             __asm ("mul v0, v0, a1");
    0x00008f00 div zero, v0, v1          |             __asm ("div zero, v0, v1");
    0x00008f04 teq v1, zero, 7           |             __asm ("teq v1, zero, 7");
    0x00008f08 mflo v0                   |             __asm ("mflo v0");
                                         | label_4:
    0x00008f0c sw v0, 0x34(sp)           |             *(var_34h) = v0;
                                         |         }
                                         | label_3:
    0x00008f10 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00008f14 lw v1, 0x5030(v0)         |         v1 = *((v0 + 5132));
    0x00008f18 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00008f1c lw v0, 0x5444(v0)         |         v0 = *((v0 + 5393));
                                         |         if (v1 != 0) {
    0x00008f20 beqz v1, 0x8f30           |             
    0x00008f24 slti v1, v0, 3            |             v1 = (v0 < 3) ? 1 : 0;
    0x00008f28 lw t9, -0x7e7c(gp)        |             t9 = sym.imp.time;
                                         |             if (v1 != 0) {
    0x00008f2c bnez v1, 0x9278           |                 goto label_26;
                                         |             }
                                         |         }
    0x00008f30 addiu v1, zero, 3         |         v1 = 3;
                                         |         if (v0 == v1) {
    0x00008f34 beql v0, v1, 0x91bc       |             goto label_27;
                                         |         }
    0x00008f38 lw s0, -0x7e24(gp)        |         s0 = *((gp - 8073));
                                         | label_5:
    0x00008f3c lw v1, 0x94(sp)           |         v1 = *(var_94h);
    0x00008f40 lw v0, (s1)               |         v0 = *(s1);
    0x00008f44 lw ra, 0xbc(sp)           |         ra = *(var_bch);
                                         |         if (v1 != v0) {
    0x00008f48 bne v1, v0, 0x96b4        |             goto label_28;
                                         |         }
    0x00008f4c lw fp, 0xb8(sp)           |         fp = *(var_b8h);
    0x00008f50 lw s7, 0xb4(sp)           |         s7 = *(var_b4h);
    0x00008f54 lw s6, 0xb0(sp)           |         s6 = *(var_b0h);
    0x00008f58 lw s5, 0xac(sp)           |         s5 = *(var_ach);
    0x00008f5c lw s4, 0xa8(sp)           |         s4 = *(var_a8h);
    0x00008f60 lw s3, 0xa4(sp)           |         s3 = *(var_a4h);
    0x00008f64 lw s2, 0xa0(sp)           |         s2 = *(var_a0h);
    0x00008f68 lw s1, 0x9c(sp)           |         s1 = *(var_9ch);
    0x00008f6c lw s0, 0x98(sp)           |         s0 = *(var_98h);
    0x00008f70 addiu sp, sp, 0xc0        |         
    0x00008f74 jr ra                     |         return v0;
                                         | label_21:
    0x00008f78 addiu v0, zero, 8         |         v0 = 8;
    0x00008f7c lw t9, -0x7e54(gp)        |         t9 = sym.imp.snd_pcm_format_silence;
                                         |         if (a3 != v0) {
    0x00008f80 bne a3, v0, 0x9038        |             goto label_23;
                                         |         }
    0x00008f84 lw a0, 0x54a4(s7)         |         a0 = *((s7 + 5417));
    0x00008f88 jalr t9                   |         t9 ();
    0x00008f8c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00008f90 lw t1, 0x5440(s2)         |         t1 = *((s2 + 5392));
    0x00008f94 seb v0, v0                |         __asm ("seb v0, v0");
    0x00008f98 addu a3, s0, s3           |         a3 = s0 + s3;
    0x00008f9c move a2, zero             |         a2 = 0;
    0x00008fa0 addiu t0, zero, 2         |         t0 = 2;
                                         | label_1:
    0x00008fa4 lw a1, 0x5434(s6)         |         a1 = *((s6 + 5389));
    0x00008fa8 beq s0, a3, 0x8e98        |         
                                         |     } while (s0 == a3);
    0x00008fac addiu s0, s0, 1           |     s0++;
    0x00008fb0 lbu v1, -1(s0)            |     v1 = *((s0 - 1));
    0x00008fb4 xor v1, v0, v1            |     v1 = v0 ^ v1;
    0x00008fb8 seb v1, v1                |     __asm ("seb v1, v1");
                                         |     if (v1 >= 0) {
    0x00008fbc bltzl v1, 0x8fc4          |         
    0x00008fc0 negu v1, v1               |         __asm ("negu v1, v1");
                                         |     }
    0x00008fc4 addiu a1, sp, 0x98        |     a1 = sp + 0x98;
    0x00008fc8 sll a0, a2, 2             |     a0 = a2 << 2;
    0x00008fcc addu a0, a1, a0           |     a0 = a1 + a0;
    0x00008fd0 lw a1, -0x60(a0)          |     a1 = *((a0 - 24));
    0x00008fd4 slt a1, a1, v1            |     a1 = (a1 < v1) ? 1 : 0;
    0x00008fd8 sw v1, -0x60(a0)          |     *((a0 - 24)) = v1;
                                         |     if (a1 == 0) {
    0x00008fdc bnel a1, zero, 0x8fe0     |         goto label_29;
                                         |     }
                                         |     if (t1 == t0) {
                                         | label_29:
    0x00008fe0 beql t1, t0, 0x8fa4       |         goto label_1;
                                         |     }
    0x00008fe4 xori a2, a2, 1            |     a2 ^= 1;
    0x00008fe8 b 0x8fa4                  |     goto label_1;
    0x00008fec nop                       |     
                                         | label_24:
    0x00008ff0 lui v0, 0x147             |     v0 = 0x1470000;
    0x00008ff4 lui v1, 0x7fff            |     v1 = 0x7fff0000;
    0x00008ff8 sltiu a1, a1, 0x11        |     a1 = (a1 < 0x11) ? 1 : 0;
    0x00008ffc ori v0, v0, 0xae14        |     v0 |= 0xae14;
    0x00009000 ori v1, v1, 0xffff        |     v1 |= 0xffff;
    0x00009004 lw a2, 0x38(sp)           |     a2 = *(var_38h);
                                         |     if (a1 != 0) {
    0x00009008 bnez a1, 0x8ed8           |         goto label_2;
                                         |     }
                                         | label_25:
    0x0000900c div zero, a2, v0          |     __asm ("div zero, a2, v0");
    0x00009010 teq v0, zero, 7           |     __asm ("teq v0, zero, 7");
    0x00009014 addiu v1, zero, 2         |     v1 = 2;
    0x00009018 mflo a0                   |     __asm ("mflo a0");
    0x0000901c sw a0, 0x30(sp)           |     *(var_30h) = a0;
                                         |     if (s4 != v1) {
    0x00009020 bne s4, v1, 0x8f10        |         goto label_3;
                                         |     }
    0x00009024 lw v1, 0x3c(sp)           |     v1 = *(var_3ch);
    0x00009028 div zero, v1, v0          |     __asm ("div zero, v1, v0");
    0x0000902c teq v0, zero, 7           |     __asm ("teq v0, zero, 7");
    0x00009030 mflo v0                   |     __asm ("mflo v0");
    0x00009034 b 0x8f0c                  |     goto label_4;
                                         | label_23:
    0x00009038 lw s0, -0x7fdc(gp)        |     s0 = *((gp - 8183));
    0x0000903c lw v0, 0x53b4(s0)         |     v0 = *((s0 + 5357));
    0x00009040 lw v0, -0x7e24(gp)        |     v0 = *((gp - 8073));
                                         |     if (v0 != 0) {
    0x00009044 bnez v0, 0x8f3c           |         goto label_5;
                                         |     }
    0x00009048 lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x0000904c lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x00009050 lw a0, (v0)               |     a0 = *(v0);
                                         |     /* str.Unsupported_bit_size__d._n */
    0x00009054 addiu a2, a2, 0x343c      |     a2 += 0x343c;
    0x00009058 addiu a1, zero, 1         |     a1 = 1;
    0x0000905c jalr t9                   |     t9 ();
    0x00009060 addiu v0, zero, 1         |     v0 = 1;
    0x00009064 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009068 sw v0, 0x53b4(s0)         |     *((s0 + 5357)) = v0;
    0x0000906c b 0x8f3c                  |     goto label_5;
                                         | label_22:
    0x00009070 lw t9, -0x7ee8(gp)        |     t9 = sym.imp.snd_pcm_format_silence_32;
    0x00009074 lw a0, 0x54a4(s7)         |     a0 = *((s7 + 5417));
    0x00009078 jalr t9                   |     t9 ();
    0x0000907c lui v1, 0xaaaa            |     v1 = 0xaaaaaaab;
    0x00009080 ori v1, v1, 0xaaab        |     
    0x00009084 multu s3, v1              |     __asm ("multu s3, v1");
    0x00009088 mfhi v1                   |     __asm ("mfhi v1");
    0x0000908c lw a1, 0x5434(s6)         |     a1 = *((s6 + 5389));
    0x00009090 addiu t1, zero, 1         |     t1 = 1;
    0x00009094 addiu a0, a1, -1          |     a0 = a1 + -1;
    0x00009098 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x0000909c srl v1, v1, 1             |     v1 >>= 1;
    0x000090a0 sll t0, v1, 1             |     t0 = v1 << 1;
    0x000090a4 addu t0, t0, v1           |     t0 += v1;
    0x000090a8 lw t3, 0x5440(s2)         |     t3 = *((s2 + 5392));
    0x000090ac sllv t1, t1, a0           |     t1 <<= a0;
    0x000090b0 addu t0, s0, t0           |     t0 = s0 + t0;
    0x000090b4 move a3, zero             |     a3 = 0;
    0x000090b8 lui t4, 0xff00            |     t4 = 0xff000000;
    0x000090bc addiu t2, zero, 2         |     t2 = 2;
                                         |     if (t0 == s0) {
                                         | label_7:
    0x000090c0 beql t0, s0, 0x8e9c       |         goto label_6;
                                         |     }
    0x000090c4 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000090c8 lbu v1, 1(s0)             |     v1 = *((s0 + 1));
    0x000090cc lbu a0, (s0)              |     a0 = *(s0);
    0x000090d0 sll a2, v1, 8             |     a2 = v1 << 8;
    0x000090d4 lbu t5, 2(s0)             |     t5 = *((s0 + 2));
                                         |     if (s5 == 0) {
    0x000090d8 beqz s5, 0x912c           |         goto label_30;
                                         |     }
    0x000090dc sll v1, t5, 0x10          |     v1 = t5 << 0x10;
    0x000090e0 or v1, v1, a2             |     v1 |= a2;
    0x000090e4 or v1, v1, a0             |     v1 |= a0;
                                         | label_8:
    0x000090e8 and a0, t1, v1            |     a0 = t1 & v1;
    0x000090ec or v1, v1, t4             |     v1 |= t4;
                                         |     if (a0 != 0) {
    0x000090f0 bnel a0, zero, 0x90f4     |         
                                         |     }
                                         |     if (v1 >= 0) {
    0x000090f4 bltzl v1, 0x90fc          |         
    0x000090f8 negu v1, v1               |         __asm ("negu v1, v1");
                                         |     }
    0x000090fc addiu a2, sp, 0x98        |     a2 = sp + 0x98;
    0x00009100 sll a0, a3, 2             |     a0 = a3 << 2;
    0x00009104 addu a0, a2, a0           |     a0 = a2 + a0;
    0x00009108 xor v1, v1, v0            |     v1 ^= v0;
    0x0000910c lw a2, -0x60(a0)          |     a2 = *((a0 - 24));
    0x00009110 slt a2, a2, v1            |     a2 = (a2 < v1) ? 1 : 0;
    0x00009114 sw v1, -0x60(a0)          |     *((a0 - 24)) = v1;
                                         |     if (a2 != 0) {
    0x00009118 bnel a2, zero, 0x911c     |         
                                         |     }
    0x0000911c addiu s0, s0, 3           |     s0 += 3;
                                         |     if (t3 != t2) {
    0x00009120 bne t3, t2, 0x90c0        |         goto label_7;
                                         |     }
    0x00009124 xori a3, a3, 1            |     a3 ^= 1;
    0x00009128 b 0x90c0                  |     goto label_7;
                                         | label_30:
    0x0000912c sll v1, a0, 0x10          |     v1 = a0 << 0x10;
    0x00009130 or v1, v1, a2             |     v1 |= a2;
    0x00009134 or v1, v1, t5             |     v1 |= t5;
    0x00009138 b 0x90e8                  |     goto label_8;
                                         | label_20:
    0x0000913c lw t9, -0x7dac(gp)        |     t9 = sym.imp.snd_pcm_format_silence_16;
    0x00009140 lw a0, 0x54a4(s7)         |     a0 = *((s7 + 5417));
    0x00009144 jalr t9                   |     t9 ();
    0x00009148 srl a3, s3, 1             |     a3 = s3 >> 1;
    0x0000914c sll a3, a3, 1             |     a3 <<= 1;
    0x00009150 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009154 lw t1, 0x5440(s2)         |     t1 = *((s2 + 5392));
    0x00009158 seh v0, v0                |     __asm ("seh v0, v0");
    0x0000915c addu a3, s0, a3           |     a3 = s0 + a3;
    0x00009160 move a2, zero             |     a2 = 0;
    0x00009164 addiu t0, zero, 2         |     t0 = 2;
                                         | label_10:
    0x00009168 lw a1, 0x5434(s6)         |     a1 = *((s6 + 5389));
                                         |     if (a3 == s0) {
    0x0000916c beq a3, s0, 0x8e98        |         goto label_9;
                                         |     }
    0x00009170 lh v1, (s0)               |     v1 = *(s0);
                                         |     if (s5 == 0) {
    0x00009174 bnez s5, 0x9180           |         
    0x00009178 wsbh v1, v1               |         __asm ("wsbh v1, v1");
    0x0000917c seh v1, v1                |         __asm ("seh v1, v1");
                                         |     }
                                         |     if (v1 >= 0) {
    0x00009180 bltzl v1, 0x9188          |         
    0x00009184 negu v1, v1               |         __asm ("negu v1, v1");
                                         |     }
    0x00009188 addiu a1, sp, 0x98        |     a1 = sp + 0x98;
    0x0000918c sll a0, a2, 2             |     a0 = a2 << 2;
    0x00009190 addu a0, a1, a0           |     a0 = a1 + a0;
    0x00009194 seh v1, v1                |     __asm ("seh v1, v1");
    0x00009198 lw a1, -0x60(a0)          |     a1 = *((a0 - 24));
    0x0000919c xor v1, v1, v0            |     v1 ^= v0;
    0x000091a0 slt a1, a1, v1            |     a1 = (a1 < v1) ? 1 : 0;
    0x000091a4 sw v1, -0x60(a0)          |     *((a0 - 24)) = v1;
                                         |     if (a1 != 0) {
    0x000091a8 bnel a1, zero, 0x91ac     |         
                                         |     }
    0x000091ac addiu s0, s0, 2           |     s0 += 2;
                                         |     if (t1 != t0) {
    0x000091b0 bne t1, t0, 0x9168        |         goto label_10;
                                         |     }
    0x000091b4 xori a2, a2, 1            |     a2 ^= 1;
    0x000091b8 b 0x9168                  |     goto label_10;
                                         | label_27:
    0x000091bc lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x000091c0 move a3, s3               |     a3 = s3;
    0x000091c4 lw a0, (s0)               |     a0 = *(s0);
    0x000091c8 sw a2, 0x10(sp)           |     *(var_10h) = a2;
    0x000091cc lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x000091d0 addiu a1, zero, 1         |     a1 = 1;
                                         |     /* str.Max_peak___li_samples_:_0x_08x_ */
    0x000091d4 addiu a2, a2, 0x3480      |     a2 += 0x3480;
    0x000091d8 lui s2, 0x6666            |     s2 = 0x66660000;
    0x000091dc jalr t9                   |     t9 ();
    0x000091e0 move s4, zero             |     s4 = 0;
    0x000091e4 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000091e8 addiu s2, s2, 0x6667      |     s2 += 0x6667;
    0x000091ec addiu s3, zero, 0x14      |     s3 = 0x14;
    0x000091f0 b 0x9208                  |     
                                         |     while (v0 == 0) {
    0x000091f4 addiu a0, zero, 0x23      |         a0 = 0x23;
    0x000091f8 addiu s4, s4, 1           |         s4++;
    0x000091fc jalr t9                   |         t9 ();
    0x00009200 lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (s4 == s3) {
    0x00009204 beq s4, s3, 0x9244        |             goto label_31;
                                         |         }
                                         | label_11:
    0x00009208 lw v1, 0x30(sp)           |         v1 = *(var_30h);
    0x0000920c lw a1, (s0)               |         a1 = *(s0);
    0x00009210 mult v1, s2               |         __asm ("mult v1, s2");
    0x00009214 mfhi v0                   |         __asm ("mfhi v0");
    0x00009218 sra v1, v1, 0x1f          |         v1 >>= 0x1f;
    0x0000921c sra v0, v0, 1             |         v0 >>= 1;
    0x00009220 subu v0, v0, v1           |         __asm ("subu v0, v0, v1");
    0x00009224 slt v0, v0, s4            |         v0 = (v0 < s4) ? 1 : 0;
    0x00009228 lw t9, -0x7f18(gp)        |         t9 = sym.imp._IO_putc;
    0x0000922c beqz v0, 0x91f4           |         
                                         |     }
    0x00009230 addiu a0, zero, 0x20      |     a0 = 0x20;
    0x00009234 addiu s4, s4, 1           |     s4++;
    0x00009238 jalr t9                   |     t9 ();
    0x0000923c lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (s4 != s3) {
    0x00009240 bne s4, s3, 0x9208        |         goto label_11;
                                         |     }
                                         | label_31:
    0x00009244 lw a2, -0x7fd8(gp)        |     a2 = *(gp);
    0x00009248 lw t9, -0x7d04(gp)        |     t9 = sym.imp.__fprintf_chk;
    0x0000924c lw a3, 0x30(sp)           |     a3 = *(var_30h);
    0x00009250 lw a0, (s0)               |     a0 = *(s0);
                                         |     /* str.__i___n */
    0x00009254 addiu a2, a2, 0x34a0      |     a2 += 0x34a0;
    0x00009258 addiu a1, zero, 1         |     a1 = 1;
    0x0000925c jalr t9                   |     t9 ();
    0x00009260 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009264 lw t9, -0x7de4(gp)        |     t9 = sym.imp.fflush;
    0x00009268 lw a0, (s0)               |     a0 = *(s0);
    0x0000926c jalr t9                   |     t9 ();
    0x00009270 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009274 b 0x8f3c                  |     goto label_5;
                                         | label_26:
    0x00009278 move a0, zero             |     a0 = 0;
    0x0000927c jalr t9                   |     t9 ();
    0x00009280 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009284 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00009288 lw v1, 0x53b0(a0)         |     v1 = *((a0 + 5356));
    0x0000928c slt v1, v1, v0            |     v1 = (v1 < v0) ? 1 : 0;
    0x00009290 lw s5, -0x7fdc(gp)        |     s5 = *((gp - 8183));
                                         |     if (v1 != 0) {
    0x00009294 bnez v1, 0x9428           |         goto label_32;
                                         |     }
    0x00009298 lw v0, 0x53a8(s5)         |     v0 = *((s5 + 5354));
                                         | label_12:
    0x0000929c lw v1, 0x30(sp)           |     v1 = *(var_30h);
    0x000092a0 slt v0, v0, v1            |     v0 = (v0 < v1) ? 1 : 0;
    0x000092a4 sw v1, 0x53a8(s5)         |     *((s5 + 5354)) = v1;
                                         |     if (v0 != 0) {
    0x000092a8 bnel v0, zero, 0x92ac     |         
                                         |     }
    0x000092ac addiu v0, zero, 2         |     v0 = 2;
    0x000092b0 addiu v1, s5, 0x53a8      |     v1 = s5 + 0x53a8;
                                         |     if (s4 == v0) {
    0x000092b4 bne s4, v0, 0x92cc        |         
    0x000092b8 lw a0, 0x34(sp)           |         a0 = *(var_34h);
    0x000092bc lw v0, 4(v1)              |         v0 = *((v1 + 1));
    0x000092c0 slt v0, v0, a0            |         v0 = (v0 < a0) ? 1 : 0;
    0x000092c4 sw a0, 4(v1)              |         *((v1 + 1)) = a0;
                                         |         if (v0 == 0) {
    0x000092c8 bnel v0, zero, 0x92cc     |             goto label_33;
                                         |         }
                                         |     }
                                         | label_33:
    0x000092cc lw s0, -0x7e24(gp)        |     s0 = *((gp - 8073));
    0x000092d0 lw t9, -0x7f18(gp)        |     t9 = sym.imp._IO_putc;
    0x000092d4 addiu a0, zero, 0xd       |     a0 = 0xd;
    0x000092d8 lw a1, (s0)               |     a1 = *(s0);
    0x000092dc jalr t9                   |     t9 ();
    0x000092e0 lw v1, 0x5440(s2)         |     v1 = *((s2 + 5392));
    0x000092e4 addiu v0, zero, 2         |     v0 = 2;
    0x000092e8 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     if (v1 == v0) {
    0x000092ec beq v1, v0, 0x9468        |         goto label_34;
                                         |     }
    0x000092f0 lw s2, 0x30(sp)           |     s2 = *(var_30h);
    0x000092f4 lw t1, 0x53a8(s5)         |     t1 = *((s5 + 5354));
    0x000092f8 srl a2, s2, 0x1f          |     a2 = s2 >> 0x1f;
    0x000092fc addu a2, a2, s2           |     a2 += s2;
    0x00009300 slti v0, s2, -1           |     v0 = (s2 < -1) ? 1 : 0;
    0x00009304 sra a2, a2, 1             |     a2 >>= 1;
                                         |     if (v0 != 0) {
    0x00009308 bnez v0, 0x9694           |         goto label_35;
                                         |     }
    0x0000930c addiu s3, sp, 0x44        |     s3 = sp + 0x44;
    0x00009310 move a0, s3               |     a0 = s3;
    0x00009314 move v0, zero             |     v0 = 0;
    0x00009318 addiu a3, zero, 0x23      |     a3 = 0x23;
    0x0000931c addiu t0, zero, 0x32      |     t0 = 0x32;
    0x00009320 b 0x9330                  |     
                                         |     while (a1 == 0) {
    0x00009324 move v0, v1               |         v0 = v1;
    0x00009328 addiu a0, a0, 1           |         a0++;
                                         |         if (v1 == t0) {
    0x0000932c beq v1, t0, 0x9688        |             goto label_36;
                                         |         }
    0x00009330 addiu v1, v0, 1           |         v1 = v0 + 1;
    0x00009334 slt a1, a2, v1            |         a1 = (a2 < v1) ? 1 : 0;
    0x00009338 sb a3, (a0)               |         *(a0) = a3;
    0x0000933c beqz a1, 0x9324           |         
                                         |     }
    0x00009340 srl a3, t1, 0x1f          |     a3 = t1 >> 0x1f;
    0x00009344 addu a3, a3, t1           |     a3 += t1;
    0x00009348 sra a3, a3, 1             |     a3 >>= 1;
    0x0000934c slt a0, a3, v1            |     a0 = (a3 < v1) ? 1 : 0;
    0x00009350 addiu v0, v0, 2           |     v0 += 2;
                                         |     if (a0 != 0) {
    0x00009354 bnez a0, 0x96d4           |         goto label_37;
                                         |     }
    0x00009358 addiu a0, zero, 0x32      |     a0 = 0x32;
                                         |     if (v1 == a0) {
    0x0000935c beql v1, a0, 0x9398       |         goto label_38;
                                         |     }
    0x00009360 addiu v1, sp, 0x98        |     v1 = sp + 0x98;
                                         | label_17:
    0x00009364 addu a1, s3, v1           |     a1 = s3 + v1;
    0x00009368 addiu t0, zero, 0x20      |     t0 = 0x20;
    0x0000936c addiu t2, zero, 0x32      |     t2 = 0x32;
    0x00009370 b 0x9380                  |     
                                         |     while (a2 == 0) {
    0x00009374 move v1, a0               |         v1 = a0;
    0x00009378 addiu a1, a1, 1           |         a1++;
                                         |         if (a0 == t2) {
    0x0000937c beq a0, t2, 0x9394        |             goto label_19;
                                         |         }
    0x00009380 addiu a0, v1, 1           |         a0 = v1 + 1;
    0x00009384 slt a2, a3, a0            |         a2 = (a3 < a0) ? 1 : 0;
    0x00009388 sb t0, (a1)               |         *(a1) = t0;
    0x0000938c addiu v0, v1, 2           |         v0 = v1 + 2;
    0x00009390 beqz a2, 0x9374           |         
                                         |     }
                                         | label_19:
    0x00009394 addiu v1, sp, 0x98        |     v1 = sp + 0x98;
                                         | label_38:
    0x00009398 addu a0, v1, a0           |     a0 = v1 + a0;
    0x0000939c addiu a1, zero, 0x2b      |     a1 = 0x2b;
    0x000093a0 addiu v1, zero, 0x33      |     v1 = 0x33;
    0x000093a4 sb a1, -0x54(a0)          |     *((a0 - 84)) = a1;
                                         |     if (v0 == v1) {
    0x000093a8 beq v0, v1, 0x93c8        |         goto label_16;
                                         |     }
                                         | label_18:
    0x000093ac addu v1, s3, v0           |     v1 = s3 + v0;
    0x000093b0 addiu a1, zero, 0x20      |     a1 = 0x20;
    0x000093b4 addiu a0, zero, 0x33      |     a0 = 0x33;
                                         |     do {
    0x000093b8 addiu v0, v0, 1           |         v0++;
    0x000093bc sb a1, (v1)               |         *(v1) = a1;
    0x000093c0 addiu v1, v1, 1           |         v1++;
    0x000093c4 bne v0, a0, 0x93b8        |         
                                         |     } while (v0 != a0);
                                         | label_16:
    0x000093c8 slti v0, t1, 0x64         |     v0 = (t1 < 0x64) ? 1 : 0;
    0x000093cc lw v1, -0x7fd8(gp)        |     v1 = *(gp);
                                         |     if (v0 == 0) {
    0x000093d0 beqz v0, 0x9440           |         goto label_39;
                                         |     }
    0x000093d4 lw a3, -0x7fd8(gp)        |     a3 = *(gp);
    0x000093d8 lw t9, -0x7f0c(gp)        |     t9 = sym.imp.__sprintf_chk
    0x000093dc sw t1, 0x10(sp)           |     *(var_10h) = t1;
                                         |     /* str.__02i__ */
    0x000093e0 addiu a3, a3, 0x3468      |     a3 += 0x3468;
    0x000093e4 addiu a2, zero, -1        |     a2 = -1;
    0x000093e8 addiu a1, zero, 1         |     a1 = 1;
    0x000093ec addiu a0, sp, 0x77        |     a0 = sp + 0x77;
    0x000093f0 jalr t9                   |     t9 ();
    0x000093f4 lw gp, 0x18(sp)           |     gp = *(var_18h);
                                         |     do {
    0x000093f8 lw t9, -0x7cc4(gp)        |         t9 = sym.imp.fputs;
    0x000093fc lw a1, (s0)               |         a1 = *(s0);
    0x00009400 move a0, s3               |         a0 = s3;
    0x00009404 slti s2, s2, 0x65         |         s2 = (s2 < 0x65) ? 1 : 0;
    0x00009408 jalr t9                   |         t9 ();
    0x0000940c lw gp, 0x18(sp)           |         gp = *(var_18h);
                                         |         if (s2 == 0) {
    0x00009410 beqz s2, 0x965c           |             goto label_40;
                                         |         }
                                         | label_13:
    0x00009414 lw t9, -0x7de4(gp)        |         t9 = sym.imp.fflush;
    0x00009418 lw a0, (s0)               |         a0 = *(s0);
    0x0000941c jalr t9                   |         t9 ();
    0x00009420 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00009424 b 0x8f3c                  |         goto label_5;
                                         | label_32:
    0x00009428 sw v0, 0x53b0(a0)         |         *((a0 + 5356)) = v0;
    0x0000942c addiu v0, s5, 0x53a8      |         v0 = s5 + 0x53a8;
    0x00009430 sw zero, 0x53a8(s5)       |         *((s5 + 5354)) = 0;
    0x00009434 sw zero, 4(v0)            |         *((v0 + 1)) = 0;
    0x00009438 move v0, zero             |         v0 = 0;
    0x0000943c b 0x929c                  |         goto label_12;
                                         |         /* str._MAX */
                                         | label_39:
    0x00009440 addiu v0, v1, 0x3460      |         v0 = v1 + 0x3460;
    0x00009444 lw v1, 0x3460(v1)         |         v1 = *((v1 + 3352));
    0x00009448 lbu a1, 4(v0)             |         a1 = *((v0 + 4));
    0x0000944c lbu a0, 5(v0)             |         a0 = *((v0 + 5));
    0x00009450 addiu v0, sp, 0x77        |         v0 = sp + 0x77;
    0x00009454 swl v1, 0x7a(sp)          |         __asm ("swl v1, (var_7ah)");
    0x00009458 swr v1, (v0)              |         __asm ("swr v1, (v0)");
    0x0000945c sb a1, 4(v0)              |         *((v0 + 4)) = a1;
    0x00009460 sb a0, 5(v0)              |         *((v0 + 5)) = a0;
    0x00009464 b 0x93f8                  |         
                                         |     } while (1);
                                         | label_34:
    0x00009468 lw t9, -0x7d60(gp)        |     t9 = sym.imp.memset;
    0x0000946c addiu s3, sp, 0x44        |     s3 = sp + 0x44;
    0x00009470 addiu a2, zero, 0x4f      |     a2 = 0x4f;
    0x00009474 addiu a1, zero, 0x20      |     a1 = 0x20;
    0x00009478 move a0, s3               |     a0 = s3;
    0x0000947c jalr t9                   |     t9 ();
    0x00009480 addiu v0, zero, 0x7c      |     v0 = 0x7c;
    0x00009484 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009488 sb v0, 0x6a(sp)           |     *(var_6ah) = v0;
    0x0000948c addiu s4, s5, 0x53a8      |     s4 = s5 + 0x53a8;
    0x00009490 addiu v0, sp, 0x6b        |     v0 = sp + 0x6b;
    0x00009494 lui s5, 0x51eb            |     s5 = 0x51eb0000;
    0x00009498 sw v0, 0x28(sp)           |     *(var_28h) = v0;
    0x0000949c ori v0, s5, 0x851f        |     v0 = s5 | 0x851f;
    0x000094a0 sw v0, 0x20(sp)           |     *(var_20h) = v0;
    0x000094a4 lw v0, -0x7fd8(gp)        |     v0 = *(gp);
    0x000094a8 addiu s6, sp, 0x30        |     s6 = sp + 0x30;
                                         |     /* str._02d__ */
    0x000094ac addiu v0, v0, 0x3458      |     v0 += 0x3458;
    0x000094b0 move fp, zero             |     fp = 0;
    0x000094b4 addiu s7, sp, 0x40        |     s7 = sp + 0x40;
    0x000094b8 addiu s5, sp, 0x6e        |     s5 = sp + 0x6e;
    0x000094bc sw v0, 0x2c(sp)           |     *(var_2ch) = v0;
                                         |     do {
    0x000094c0 lw a0, (s6)               |         a0 = *(s6);
    0x000094c4 sll v0, a0, 3             |         v0 = a0 << 3;
    0x000094c8 addu v0, v0, a0           |         v0 += a0;
    0x000094cc sll v0, v0, 2             |         v0 <<= 2;
    0x000094d0 subu v0, v0, a0           |         __asm ("subu v0, v0, a0");
    0x000094d4 slti a0, v0, 0xe10        |         a0 = (v0 < 0xe10) ? 1 : 0;
    0x000094d8 addiu a2, zero, 0x23      |         a2 = 0x23;
                                         |         if (a0 != 0) {
    0x000094dc beqz a0, 0x94f8           |             
    0x000094e0 lw v1, 0x20(sp)           |             v1 = *(var_20h);
    0x000094e4 mult v0, v1               |             __asm ("mult v0, v1");
    0x000094e8 mfhi a2                   |             __asm ("mfhi a2");
    0x000094ec sra v0, v0, 0x1f          |             v0 >>= 0x1f;
    0x000094f0 sra a2, a2, 5             |             a2 >>= 5;
    0x000094f4 subu a2, a2, v0           |             __asm ("subu a2, a2, v0");
                                         |         }
    0x000094f8 lw t2, (s4)               |         t2 = *(s4);
    0x000094fc sll s2, t2, 3             |         s2 = t2 << 3;
    0x00009500 addu s2, s2, t2           |         s2 += t2;
    0x00009504 sll s2, s2, 2             |         s2 <<= 2;
    0x00009508 subu s2, s2, t2           |         __asm ("subu s2, s2, t2");
    0x0000950c sw t2, 0x24(sp)           |         *(var_24h) = t2;
                                         |         if (fp == 0) {
    0x00009510 beqz fp, 0x95f0           |             goto label_41;
                                         |         }
    0x00009514 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.__memset_chk;
    0x00009518 addiu a3, zero, 0x26      |         a3 = 0x26;
    0x0000951c addiu a1, zero, 0x23      |         a1 = 0x23;
    0x00009520 move a0, s5               |         a0 = s5;
    0x00009524 jalr t9                   |         t9 ();
    0x00009528 slti v0, s2, 0xe10        |         v0 = (s2 < 0xe10) ? 1 : 0;
    0x0000952c lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x00009530 lw t2, 0x24(sp)           |         t2 = *(var_24h);
                                         |         if (v0 != 0) {
    0x00009534 bnez v0, 0x963c           |             goto label_42;
                                         |         }
    0x00009538 addiu v0, zero, 0x4d      |         v0 = 0x4d;
                                         | label_15:
    0x0000953c addiu v1, sp, 0x98        |         v1 = sp + 0x98;
    0x00009540 addu v0, v1, v0           |         v0 = v1 + v0;
    0x00009544 addiu a0, zero, 0x2b      |         a0 = 0x2b;
    0x00009548 sb a0, -0x54(v0)          |         *((v0 - 84)) = a0;
    0x0000954c slti v0, t2, 0x64         |         v0 = (t2 < 0x64) ? 1 : 0;
    0x00009550 lw t9, -0x7f0c(gp)        |         t9 = sym.imp.__sprintf_chk
                                         |         if (v0 == 0) {
    0x00009554 bnel v0, zero, 0x95d0     |             goto label_43;
                                         |         }
    0x00009558 lui v0, 0x58              |         v0 = 0x58414d;
    0x0000955c addiu v0, v0, 0x414d      |         
    0x00009560 sw v0, 0x40(sp)           |         *(var_40h) = v0;
                                         | label_14:
    0x00009564 addiu v0, zero, 1         |         v0 = 1;
                                         |         if (fp != 0) {
    0x00009568 beqz fp, 0x95a8           |             
    0x0000956c lw v1, 0x28(sp)           |             v1 = *(var_28h);
    0x00009570 lbu a2, (s7)              |             a2 = *(s7);
    0x00009574 lbu a1, 1(s7)             |             a1 = *((s7 + 1));
    0x00009578 lbu a0, 2(s7)             |             a0 = *((s7 + 2));
    0x0000957c sb a2, (v1)               |             *(v1) = a2;
    0x00009580 sb a1, 1(v1)              |             *((v1 + 1)) = a1;
    0x00009584 sb a0, 2(v1)              |             *((v1 + 2)) = a0;
                                         |             if (fp != v0) {
    0x00009588 bne fp, v0, 0x95c0        |                 goto label_44;
                                         |             }
    0x0000958c lw t9, -0x7cc4(gp)        |             t9 = sym.imp.fputs;
    0x00009590 lw a1, (s0)               |             a1 = *(s0);
    0x00009594 move a0, s3               |             a0 = s3;
    0x00009598 sb zero, 0x92(sp)         |             *(var_92h) = 0;
    0x0000959c jalr t9                   |             t9 ();
    0x000095a0 lw gp, 0x18(sp)           |             gp = *(var_18h);
    0x000095a4 b 0x9414                  |             goto label_13;
                                         |         }
    0x000095a8 lbu v0, (s7)              |         v0 = *(s7);
    0x000095ac lbu a1, 1(s7)             |         a1 = *((s7 + 1));
    0x000095b0 lbu a0, 2(s7)             |         a0 = *((s7 + 2));
    0x000095b4 sb v0, 0x67(sp)           |         *(var_67h) = v0;
    0x000095b8 sb a1, 0x68(sp)           |         *(var_68h) = a1;
    0x000095bc sb a0, 0x69(sp)           |         *(var_69h) = a0;
                                         | label_44:
    0x000095c0 addiu fp, fp, 1           |         fp++;
    0x000095c4 addiu s6, s6, 4           |         s6 += 4;
    0x000095c8 addiu s4, s4, 4           |         s4 += 4;
    0x000095cc b 0x94c0                  |         
                                         |     } while (1);
                                         | label_43:
    0x000095d0 lw a3, 0x2c(sp)           |     a3 = *(var_2ch);
    0x000095d4 sw t2, 0x10(sp)           |     *(var_10h) = t2;
    0x000095d8 addiu a2, zero, 4         |     a2 = 4;
    0x000095dc addiu a1, zero, 1         |     a1 = 1;
    0x000095e0 move a0, s7               |     a0 = s7;
    0x000095e4 jalr t9                   |     t9 ();
    0x000095e8 lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x000095ec b 0x9564                  |     goto label_14;
                                         | label_41:
    0x000095f0 addiu a3, zero, 0x22      |     a3 = 0x22;
    0x000095f4 lw t9, -0x7d60(gp)        |     t9 = sym.imp.memset;
    0x000095f8 subu a0, a3, a2           |     __asm ("subu a0, a3, a2");
    0x000095fc addiu a1, zero, 0x23      |     a1 = 0x23;
    0x00009600 addu a0, s3, a0           |     a0 = s3 + a0;
    0x00009604 jalr t9                   |     t9 ();
    0x00009608 slti v0, s2, 0xe10        |     v0 = (s2 < 0xe10) ? 1 : 0;
    0x0000960c lw gp, 0x18(sp)           |     gp = *(var_18h);
    0x00009610 lw t2, 0x24(sp)           |     t2 = *(var_24h);
                                         |     if (v0 != 0) {
    0x00009614 beqz v0, 0x9680           |         
    0x00009618 lw v0, 0x20(sp)           |         v0 = *(var_20h);
    0x0000961c addiu a3, zero, 0x22      |         a3 = 0x22;
    0x00009620 mult s2, v0               |         __asm ("mult s2, v0");
    0x00009624 mfhi v0                   |         __asm ("mfhi v0");
    0x00009628 sra s2, s2, 0x1f          |         s2 >>= 0x1f;
    0x0000962c sra v0, v0, 5             |         v0 >>= 5;
    0x00009630 subu v0, v0, s2           |         __asm ("subu v0, v0, s2");
    0x00009634 subu v0, a3, v0           |         __asm ("subu v0, a3, v0");
    0x00009638 b 0x953c                  |         goto label_15;
                                         | label_42:
    0x0000963c lw v0, 0x20(sp)           |         v0 = *(var_20h);
    0x00009640 mult s2, v0               |         __asm ("mult s2, v0");
    0x00009644 mfhi v0                   |         __asm ("mfhi v0");
    0x00009648 sra s2, s2, 0x1f          |         s2 >>= 0x1f;
    0x0000964c sra v0, v0, 5             |         v0 >>= 5;
    0x00009650 subu v0, v0, s2           |         __asm ("subu v0, v0, s2");
    0x00009654 addiu v0, v0, 0x2a        |         v0 += 0x2a;
    0x00009658 b 0x953c                  |         goto label_15;
                                         | label_40:
    0x0000965c lw a0, -0x7fd8(gp)        |         a0 = *(gp);
    0x00009660 lw t9, -0x7e6c(gp)        |         t9 = sym.imp.fwrite;
    0x00009664 lw a3, (s0)               |         a3 = *(s0);
    0x00009668 addiu a2, zero, 8         |         a2 = 8;
    0x0000966c addiu a1, zero, 1         |         a1 = 1;
                                         |         /* str.__clip__ */
    0x00009670 addiu a0, a0, 0x3474      |         a0 += 0x3474;
    0x00009674 jalr t9                   |         t9 ();
    0x00009678 lw gp, 0x18(sp)           |         gp = *(var_18h);
    0x0000967c b 0x9414                  |         goto label_13;
                                         |     }
    0x00009680 addiu v0, zero, -1        |     v0 = -1;
    0x00009684 b 0x953c                  |     goto label_15;
                                         | label_36:
    0x00009688 addiu v0, zero, 0x2b      |     v0 = 0x2b;
    0x0000968c sb v0, 0x76(sp)           |     *(var_76h) = v0;
    0x00009690 b 0x93c8                  |     goto label_16;
                                         | label_35:
    0x00009694 srl a3, t1, 0x1f          |     a3 = t1 >> 0x1f;
    0x00009698 addu a3, a3, t1           |     a3 += t1;
    0x0000969c slti v0, t1, -1           |     v0 = (t1 < -1) ? 1 : 0;
    0x000096a0 sra a3, a3, 1             |     a3 >>= 1;
                                         |     if (v0 == 0) {
    0x000096a4 bnez v0, 0x96c0           |         
    0x000096a8 move v1, zero             |         v1 = 0;
    0x000096ac addiu s3, sp, 0x44        |         s3 = sp + 0x44;
    0x000096b0 b 0x9364                  |         goto label_17;
                                         | label_28:
    0x000096b4 lw t9, -0x7e98(gp)        |         t9 = sym.imp.__stack_chk_fail;
    0x000096b8 jalr t9                   |         t9 ();
    0x000096bc nop                       |         
                                         |     }
    0x000096c0 addiu v0, zero, 0x2b      |     v0 = 0x2b;
    0x000096c4 sb v0, 0x44(sp)           |     *(var_44h) = v0;
    0x000096c8 addiu s3, sp, 0x44        |     s3 = sp + 0x44;
    0x000096cc addiu v0, zero, 1         |     v0 = 1;
    0x000096d0 b 0x93ac                  |     goto label_18;
                                         | label_37:
    0x000096d4 move a0, v1               |     a0 = v1;
    0x000096d8 b 0x9394                  |     goto label_19;
                                         | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/aplay @ 0xc0ec */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000c0ec ()                  | void fcn_0000c0ec () {
    0x0000c0ec lui gp, 2                     |     
    0x0000c0f0 addiu gp, gp, 0xf54           |     
    0x0000c0f4 addu gp, gp, t9               |     gp += t9;
    0x0000c0f8 addiu sp, sp, -0x4c0          |     
    0x0000c0fc lw v0, -0x7e4c(gp)            |     v0 = *((gp - 8083));
    0x0000c100 sw s1, 0x49c(sp)              |     *(var_49ch) = s1;
    0x0000c104 lw s1, -0x7fdc(gp)            |     s1 = *((gp - 8183));
    0x0000c108 sw s0, 0x498(sp)              |     *(var_498h) = s0;
    0x0000c10c addiu s0, s1, 0x5498          |     s0 = s1 + 0x5498;
    0x0000c110 sw fp, 0x4b8(sp)              |     *(var_4b8h) = fp;
    0x0000c114 sw s7, 0x4b4(sp)              |     *(var_4b4h) = s7;
    0x0000c118 move fp, sp                   |     fp = sp;
    0x0000c11c lw s7, 4(s0)                  |     s7 = *((s0 + 1));
    0x0000c120 sw s6, 0x4b0(sp)              |     *(var_4b0h) = s6;
    0x0000c124 sw ra, 0x4bc(sp)              |     *(var_4bch) = ra;
    0x0000c128 sw s5, 0x4ac(sp)              |     *(var_4ach) = s5;
    0x0000c12c sw s4, 0x4a8(sp)              |     *(var_4a8h) = s4;
    0x0000c130 sw s3, 0x4a4(sp)              |     *(var_4a4h) = s3;
    0x0000c134 sw s2, 0x4a0(sp)              |     *(var_4a0h) = s2;
    0x0000c138 sw gp, 0x18(sp)               |     *(var_18h_2) = gp;
    0x0000c13c lw v1, (v0)                   |     v1 = *(v0);
    0x0000c140 sw v0, 0x2c(fp)               |     *(arg_2ch) = v0;
    0x0000c144 sll v0, s7, 2                 |     v0 = s7 << 2;
    0x0000c148 sw v0, 0x44(fp)               |     *(arg_44h) = v0;
    0x0000c14c addiu v0, v0, 7               |     v0 += 7;
    0x0000c150 sw v0, 0x5c(fp)               |     *(arg_5ch) = v0;
    0x0000c154 srl v0, v0, 3                 |     v0 >>= 3;
    0x0000c158 sll v0, v0, 3                 |     v0 <<= 3;
    0x0000c15c subu sp, sp, v0               |     
    0x0000c160 addiu v0, sp, 0x18            |     v0 = sp + 0x18;
    0x0000c164 sw a0, 0x3c(fp)               |     *(arg_3ch) = a0;
    0x0000c168 move s6, a1                   |     s6 = a1;
    0x0000c16c sw v1, 0x494(fp)              |     *(arg_494h) = v1;
    0x0000c170 sw v0, 0x70(fp)               |     *(arg_70h) = v0;
                                             |     if (s7 == 0) {
    0x0000c174 beqz s7, 0xcb20               |         goto label_27;
                                             |     }
    0x0000c178 lw v1, 0x70(fp)               |     v1 = *(arg_70h);
    0x0000c17c move v0, zero                 |     v0 = 0;
    0x0000c180 addiu a0, zero, -1            |     a0 = -1;
                                             |     do {
    0x0000c184 addiu v0, v0, 1               |         v0++;
    0x0000c188 sw a0, (v1)                   |         *(v1) = a0;
    0x0000c18c addiu v1, v1, 4               |         v1 += 4;
    0x0000c190 bne s7, v0, 0xc184            |         
                                             |     } while (s7 != v0);
    0x0000c194 addiu v0, zero, 1             |     v0 = 1;
                                             |     if (s6 == v0) {
    0x0000c198 beq s6, v0, 0xc930            |         goto label_28;
                                             |     }
    0x0000c19c nop                           |     
                                             | label_19:
    0x0000c1a0 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (s7 != s6) {
    0x0000c1a4 bne s7, s6, 0xcb2c            |         goto label_29;
                                             |     }
    0x0000c1a8 lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
                                             |     if (s7 == 0) {
    0x0000c1ac beqz s7, 0xca70               |         goto label_30;
                                             |     }
    0x0000c1b0 sw zero, 0x38(fp)             |     *(arg_38h) = 0;
                                             | label_13:
    0x0000c1b4 lw s2, 0x3c(fp)               |     s2 = *(arg_3ch);
    0x0000c1b8 lw s3, 0x70(fp)               |     s3 = *(arg_70h);
    0x0000c1bc move s4, zero                 |     s4 = 0;
    0x0000c1c0 b 0xc1d8                      |     
                                             |     while (v0 >= 0) {
    0x0000c1c4 addiu s4, s4, 1               |         s4++;
    0x0000c1c8 sltu v0, s4, s7               |         v0 = (s4 < s7) ? 1 : 0;
    0x0000c1cc addiu s2, s2, 4               |         s2 += 4;
    0x0000c1d0 addiu s3, s3, 4               |         s3 += 4;
                                             |         if (v0 == 0) {
    0x0000c1d4 beqz v0, 0xc2c8               |             goto label_31;
                                             |         }
    0x0000c1d8 lw t9, -0x7f10(gp)            |         t9 = sym.imp.open64;
    0x0000c1dc lw a0, (s2)                   |         a0 = *(s2);
    0x0000c1e0 move a2, zero                 |         a2 = 0;
    0x0000c1e4 move a1, zero                 |         a1 = 0;
    0x0000c1e8 jalr t9                       |         t9 ();
    0x0000c1ec lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c1f0 sw v0, (s3)                   |         *(s3) = v0;
    0x0000c1f4 bgez v0, 0xc1c4               |         
                                             |     }
    0x0000c1f8 lw t9, -0x7db0(gp)            |     t9 = sym.imp.perror;
    0x0000c1fc lw a0, (s2)                   |     a0 = *(s2);
    0x0000c200 addiu s2, zero, 1             |     s2 = 1;
    0x0000c204 jalr t9                       |     t9 ();
    0x0000c208 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
                                             | label_4:
    0x0000c20c lw s1, 0x70(fp)               |     s1 = *(arg_70h);
    0x0000c210 move s0, zero                 |     s0 = 0;
    0x0000c214 lw s3, 0x38(fp)               |     s3 = *(arg_38h);
    0x0000c218 lw s4, 0x3c(fp)               |     s4 = *(arg_3ch);
    0x0000c21c b 0xc22c                      |     
                                             |     while (s3 == 0) {
    0x0000c220 sltu v0, s0, s7               |         v0 = (s0 < s7) ? 1 : 0;
    0x0000c224 addiu s1, s1, 4               |         s1 += 4;
                                             |         if (v0 == 0) {
    0x0000c228 beqz v0, 0xc270               |             goto label_32;
                                             |         }
                                             | label_0:
    0x0000c22c lw a0, (s1)                   |         a0 = *(s1);
    0x0000c230 lw t9, -0x7e68(gp)            |         t9 = sym.imp.close;
                                             |         if (a0 >= 0) {
    0x0000c234 bltz a0, 0xc244               |             
    0x0000c238 jalr t9                       |             t9 ();
    0x0000c23c nop                           |             
    0x0000c240 lw gp, 0x18(fp)               |             gp = *(var_18h_2);
                                             |         }
    0x0000c244 beql s3, zero, 0xc220         |         
                                             |     }
    0x0000c248 addiu s0, s0, 1               |     s0++;
    0x0000c24c sll a0, s0, 2                 |     a0 = s0 << 2;
    0x0000c250 lw t9, -0x7dd4(gp)            |     t9 = sym.imp.free;
    0x0000c254 lwx a0, a0(s4)                |     __asm ("lwx a0, a0(s4)");
    0x0000c258 addiu s0, s0, 1               |     s0++;
    0x0000c25c jalr t9                       |     t9 ();
    0x0000c260 sltu v0, s0, s7               |     v0 = (s0 < s7) ? 1 : 0;
    0x0000c264 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c268 addiu s1, s1, 4               |     s1 += 4;
                                             |     if (v0 != 0) {
    0x0000c26c bnez v0, 0xc22c               |         goto label_0;
                                             |     }
                                             | label_32:
    0x0000c270 lw v0, 0x38(fp)               |     v0 = *(arg_38h);
    0x0000c274 lw t9, -0x7dd4(gp)            |     t9 = sym.imp.free;
                                             |     if (v0 != 0) {
    0x0000c278 bnez v0, 0xca60               |         goto label_33;
                                             |     }
                                             | label_16:
    0x0000c27c lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             |     if (s2 != 0) {
    0x0000c280 bnez s2, 0xcbec               |         goto label_34;
                                             |     }
    0x0000c284 lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
                                             | label_15:
    0x0000c288 lw v1, 0x494(fp)              |     v1 = *(arg_494h);
    0x0000c28c lw v0, (v0)                   |     v0 = *(v0);
    0x0000c290 lw ra, 0x4bc(fp)              |     ra = *(var_4bch);
                                             |     if (v1 != v0) {
    0x0000c294 bne v1, v0, 0xcc74            |         goto label_35;
                                             |     }
    0x0000c298 move sp, fp                   |     
    0x0000c29c lw fp, 0x4b8(sp)              |     fp = *(var_4b8h);
    0x0000c2a0 lw s7, 0x4b4(sp)              |     s7 = *(var_4b4h);
    0x0000c2a4 lw s6, 0x4b0(sp)              |     s6 = *(var_4b0h);
    0x0000c2a8 lw s5, 0x4ac(sp)              |     s5 = *(var_4ach);
    0x0000c2ac lw s4, 0x4a8(sp)              |     s4 = *(var_4a8h);
    0x0000c2b0 lw s3, 0x4a4(sp)              |     s3 = *(var_4a4h);
    0x0000c2b4 lw s2, 0x4a0(sp)              |     s2 = *(var_4a0h);
    0x0000c2b8 lw s1, 0x49c(sp)              |     s1 = *(var_49ch);
    0x0000c2bc lw s0, 0x498(sp)              |     s0 = *(var_498h);
    0x0000c2c0 addiu sp, sp, 0x4c0           |     
    0x0000c2c4 jr ra                         |     return v0;
                                             | label_31:
    0x0000c2c8 lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
    0x0000c2cc lw a0, 0x5498(s1)             |     a0 = *((s1 + 5414));
    0x0000c2d0 addiu a2, a1, 0x54a4          |     a2 = a1 + 0x54a4;
    0x0000c2d4 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000c2d8 lw v1, 4(s0)                  |     v1 = *((s0 + 1));
    0x0000c2dc lw v0, 8(s0)                  |     v0 = *((s0 + 2));
    0x0000c2e0 sw a0, 0x54a4(a1)             |     *((a1 + 5417)) = a0;
    0x0000c2e4 sw a1, 0x34(fp)               |     *(arg_34h) = a1;
    0x0000c2e8 sw a2, 0x28(fp)               |     *(arg_28h) = a2;
    0x0000c2ec sw v1, 4(a2)                  |     *((a2 + 1)) = v1;
    0x0000c2f0 addiu t9, t9, 0x5190          |     t9 += fcn.00005190;
    0x0000c2f4 sw v0, 8(a2)                  |     *((a2 + 2)) = v0;
    0x0000c2f8 bal 0x5190                    |     fcn_00005190 ();
    0x0000c2fc lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c300 lw a0, 0x5c(fp)               |     a0 = *(arg_5ch);
    0x0000c304 sw sp, 0x24(fp)               |     
    0x0000c308 lw a2, -0x7fdc(gp)            |     a2 = *((gp - 8183));
    0x0000c30c lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
    0x0000c310 srl a0, a0, 3                 |     a0 >>= 3;
    0x0000c314 sll a0, a0, 3                 |     a0 <<= 3;
    0x0000c318 subu sp, sp, a0               |     
    0x0000c31c lw a2, 0x548c(a2)             |     a2 = *((a2 + 5411));
    0x0000c320 sw v0, 0x4c(fp)               |     *(arg_4ch) = v0;
    0x0000c324 sw v0, 0x5018(a1)             |     *((a1 + 5126)) = v0;
    0x0000c328 addiu v0, sp, 0x18            |     v0 = sp + 0x18;
    0x0000c32c sw v1, 0x50(fp)               |     *(arg_50h) = v1;
    0x0000c330 sw v1, 0x501c(a1)             |     *((a1 + 5127)) = v1;
    0x0000c334 sw v0, 0x74(fp)               |     *(arg_74h) = v0;
                                             |     if (a2 != 0) {
    0x0000c338 bnez a2, 0xca1c               |         goto label_36;
                                             |     }
    0x0000c33c lw v0, 0x3c(fp)               |     v0 = *(arg_3ch);
    0x0000c340 lw t9, -0x7fd8(gp)            |     t9 = *(gp);
    0x0000c344 move a0, zero                 |     a0 = 0;
    0x0000c348 addiu t9, t9, -0x7a98         |     t9 += -0x7a98;
    0x0000c34c lw a1, (v0)                   |     a1 = *(v0);
    0x0000c350 bal 0x8568                    |     fcn_00008568 ();
    0x0000c354 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c358 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000c35c addiu t9, t9, 0x67b4          |     t9 += fcn.000067b4;
    0x0000c360 bal 0x67b4                    |     fcn_000067b4 ();
    0x0000c364 nop                           |     
    0x0000c368 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c36c lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c370 lw v0, 0x542c(v0)             |     v0 = *((v0 + 5387));
    0x0000c374 divu zero, v0, s7             |     __asm ("divu zero, v0, s7");
    0x0000c378 teq s7, zero, 7               |     __asm ("teq s7, zero, 7");
    0x0000c37c mflo v0                       |     __asm ("mflo v0");
    0x0000c380 sw v0, 0x40(fp)               |     *(arg_40h) = v0;
                                             |     if (s7 == 0) {
    0x0000c384 beqz s7, 0xcbe4               |         goto label_37;
                                             |     }
                                             | label_14:
    0x0000c388 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c38c lw v1, 0x74(fp)               |     v1 = *(arg_74h);
    0x0000c390 lw a1, 0x40(fp)               |     a1 = *(arg_40h);
    0x0000c394 lw v0, 0x5474(v0)             |     v0 = *((v0 + 5405));
    0x0000c398 move s6, zero                 |     s6 = 0;
                                             |     do {
    0x0000c39c addiu s6, s6, 1               |         s6++;
    0x0000c3a0 sltu a0, s6, s7               |         a0 = (s6 < s7) ? 1 : 0;
    0x0000c3a4 sw v0, (v1)                   |         *(v1) = v0;
    0x0000c3a8 addu v0, v0, a1               |         v0 += a1;
    0x0000c3ac addiu v1, v1, 4               |         v1 += 4;
    0x0000c3b0 bnez a0, 0xc39c               |         
                                             |     } while (a0 != 0);
                                             | label_17:
    0x0000c3b4 lw v0, 0x50(fp)               |     v0 = *(arg_50h);
                                             |     if (v0 <= 0) {
    0x0000c3b8 blez v0, 0xcbcc               |         goto label_38;
                                             |     }
    0x0000c3bc nop                           |     
    0x0000c3c0 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             | label_26:
    0x0000c3c4 sw v0, 0x6c(fp)               |     *(arg_6ch) = v0;
    0x0000c3c8 lw v0, 0x5478(v0)             |     v0 = *((v0 + 5406));
    0x0000c3cc lw v0, 0x74(fp)               |     v0 = *(arg_74h);
                                             |     if (v0 != 0) {
    0x0000c3d0 bnez v0, 0xc728               |         goto label_21;
                                             |     }
    0x0000c3d4 lw v1, 0x44(fp)               |     v1 = *(arg_44h);
    0x0000c3d8 sw s6, 0x4c4(fp)              |     *(arg_4c4h) = s6;
    0x0000c3dc addu v0, v0, v1               |     v0 += v1;
    0x0000c3e0 sw v0, 0x30(fp)               |     *(arg_30h) = v0;
    0x0000c3e4 lw v0, -0x7fd4(gp)            |     v0 = *((gp - 8181));
    0x0000c3e8 addiu v0, v0, 0x50b0          |     v0 += fcn.000050b0;
    0x0000c3ec sw v0, 0x88(fp)               |     *(arg_88h) = v0;
    0x0000c3f0 lw v0, -0x7fd4(gp)            |     v0 = *((gp - 8181));
    0x0000c3f4 addiu v0, v0, 0x558c          |     v0 += 0x558c;
    0x0000c3f8 sw v0, 0x84(fp)               |     *(arg_84h) = v0;
    0x0000c3fc lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000c400 addiu v0, v0, -0x7770         |     v0 += -0x7770;
    0x0000c404 sw v0, 0x58(fp)               |     *(arg_58h) = v0;
    0x0000c408 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000c40c addiu v0, v0, -0x7290         |     v0 += -0x7290;
    0x0000c410 sw v0, 0x54(fp)               |     *(arg_54h) = v0;
    0x0000c414 lw t9, -0x7f9c(gp)            |     t9 = *(gp);
                                             | label_3:
    0x0000c418 lw a0, 0x4c(fp)               |     a0 = *(arg_4ch);
    0x0000c41c lw a1, 0x50(fp)               |     a1 = *(arg_50h);
    0x0000c420 move a2, s7                   |     a2 = s7;
    0x0000c424 move a3, zero                 |     a3 = 0;
    0x0000c428 bal 0xe650                    |     fcn_0000e650 ();
    0x0000c42c lw a0, 0x70(fp)               |     a0 = *(arg_70h);
    0x0000c430 lw v1, 0x40(fp)               |     v1 = *(arg_40h);
    0x0000c434 lw s3, 0x4c4(fp)              |     s3 = *(arg_4c4h);
    0x0000c438 lw a0, (a0)                   |     a0 = *(a0);
    0x0000c43c sltu s2, v1, v0               |     s2 = (v1 < v0) ? 1 : 0;
    0x0000c440 sw a0, 0x8c(fp)               |     *(arg_8ch) = a0;
    0x0000c444 lw a0, 0x74(fp)               |     a0 = *(arg_74h);
                                             |     if (s2 != 0) {
    0x0000c448 movz v1, v0, s2               |         v1 = v0;
                                             |     }
    0x0000c44c sltiu v0, s7, 2               |     v0 = (s7 < 2) ? 1 : 0;
    0x0000c450 lw s1, (a0)                   |     s1 = *(a0);
    0x0000c454 move s2, v1                   |     s2 = v1;
    0x0000c458 move s0, zero                 |     s0 = 0;
    0x0000c45c sw v0, 0x80(fp)               |     *(arg_80h) = v0;
    0x0000c460 lw a0, 0x8c(fp)               |     a0 = *(arg_8ch);
                                             | label_1:
    0x0000c464 lw t9, 0x88(fp)               |     t9 = *(arg_88h);
    0x0000c468 move a2, s2                   |     a2 = s2;
    0x0000c46c move a1, s1                   |     a1 = s1;
    0x0000c470 jalr t9                       |     t9 ();
    0x0000c474 move s5, v0                   |     s5 = v0;
    0x0000c478 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
                                             |     if (v0 < 0) {
    0x0000c47c bltz v0, 0xcbb8               |         goto label_39;
                                             |     }
    0x0000c480 lw v0, 0x80(fp)               |     v0 = *(arg_80h);
    0x0000c484 addiu s3, zero, 1             |     s3 = 1;
                                             |     if (v0 != 0) {
    0x0000c488 bnez v0, 0xc4d4               |         goto label_40;
                                             |     }
    0x0000c48c lw v0, 0x70(fp)               |     v0 = *(arg_70h);
    0x0000c490 addiu s3, zero, 1             |     s3 = 1;
    0x0000c494 addiu s6, v0, 4               |     s6 = v0 + 4;
    0x0000c498 lw v0, 0x74(fp)               |     v0 = *(arg_74h);
    0x0000c49c addiu s4, v0, 4               |     s4 = v0 + 4;
                                             |     do {
    0x0000c4a0 lw a0, (s6)                   |         a0 = *(s6);
    0x0000c4a4 lw a1, (s4)                   |         a1 = *(s4);
    0x0000c4a8 lw t9, 0x88(fp)               |         t9 = *(arg_88h);
    0x0000c4ac move a2, s5                   |         a2 = s5;
    0x0000c4b0 jalr t9                       |         t9 ();
    0x0000c4b4 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c4b8 sll a0, s3, 2                 |         a0 = s3 << 2;
                                             |         if (s5 != v0) {
    0x0000c4bc bne s5, v0, 0xc9f4            |             goto label_41;
                                             |         }
    0x0000c4c0 addiu s3, s3, 1               |         s3++;
    0x0000c4c4 addiu s6, s6, 4               |         s6 += 4;
    0x0000c4c8 addiu s4, s4, 4               |         s4 += 4;
    0x0000c4cc bne s7, s3, 0xc4a0            |         
                                             |     } while (s7 != s3);
    0x0000c4d0 move s3, s7                   |     s3 = s7;
                                             |     if (s5 == 0) {
                                             | label_40:
    0x0000c4d4 beql s5, zero, 0xc4f0         |         goto label_42;
                                             |     }
    0x0000c4d8 lw s4, -0x7fdc(gp)            |     s4 = *((gp - 8183));
    0x0000c4dc addu s0, s0, s5               |     s0 += s5;
    0x0000c4e0 sltu v0, s0, s2               |     v0 = (s0 < s2) ? 1 : 0;
    0x0000c4e4 lw a0, 0x8c(fp)               |     a0 = *(arg_8ch);
                                             |     if (v0 == 0) {
    0x0000c4e8 bnel v0, zero, 0xc464         |         goto label_1;
                                             |     }
    0x0000c4ec lw s4, -0x7fdc(gp)            |     s4 = *((gp - 8183));
                                             | label_42:
    0x0000c4f0 sll s0, s0, 3                 |     s0 <<= 3;
    0x0000c4f4 lw s2, -0x7fdc(gp)            |     s2 = *((gp - 8183));
    0x0000c4f8 lw a1, 0x5434(s4)             |     a1 = *((s4 + 5389));
    0x0000c4fc sw s3, 0x4c4(fp)              |     *(arg_4c4h) = s3;
    0x0000c500 divu zero, s0, a1             |     __asm ("divu zero, s0, a1");
    0x0000c504 teq a1, zero, 7               |     __asm ("teq a1, zero, 7");
    0x0000c508 lw s0, 0x5470(s2)             |     s0 = *((s2 + 5404));
    0x0000c50c mflo s6                       |     __asm ("mflo s6");
    0x0000c510 sw s6, 0x48(fp)               |     *(arg_48h) = s6;
                                             |     if (s6 == s0) {
    0x0000c514 beq s6, s0, 0xc570            |         goto label_43;
                                             |     }
    0x0000c518 subu s0, s0, s6               |     __asm ("subu s0, s0, s6");
                                             |     if (s7 == 0) {
    0x0000c51c beqz s7, 0xc56c               |         goto label_44;
                                             |     }
    0x0000c520 lw v0, 0x74(fp)               |     v0 = *(arg_74h);
    0x0000c524 lw s5, 0x30(fp)               |     s5 = *(arg_30h);
    0x0000c528 addiu s3, v0, 4               |     s3 = v0 + 4;
    0x0000c52c move v0, a1                   |     v0 = a1;
    0x0000c530 move a1, s1                   |     a1 = s1;
    0x0000c534 lw s1, 0x34(fp)               |     s1 = *(arg_34h);
    0x0000c538 b 0xc548                      |     
                                             |     while (s5 != s3) {
    0x0000c53c lw v0, 0x5434(s4)             |         v0 = *((s4 + 5389));
    0x0000c540 lw a1, (s3)                   |         a1 = *(s3);
    0x0000c544 addiu s3, s3, 4               |         s3 += 4;
    0x0000c548 mul v0, s6, v0                |         __asm ("mul v0, s6, v0");
    0x0000c54c lw t9, -0x7ed4(gp)            |         t9 = sym.imp.snd_pcm_format_set_silence;
    0x0000c550 lw a0, 0x54a4(s1)             |         a0 = *((s1 + 5417));
    0x0000c554 move a2, s0                   |         a2 = s0;
    0x0000c558 srl v0, v0, 3                 |         v0 >>= 3;
    0x0000c55c addu a1, a1, v0               |         a1 += v0;
    0x0000c560 jalr t9                       |         t9 ();
    0x0000c564 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c568 bne s5, s3, 0xc53c            |         
                                             |     }
                                             | label_44:
    0x0000c56c lw s0, 0x5470(s2)             |     s0 = *((s2 + 5404));
                                             | label_43:
    0x0000c570 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c574 lw s1, 0x53f0(v0)             |     s1 = *((v0 + 5372));
    0x0000c578 lw s5, 0x74(fp)               |     s5 = *(arg_74h);
                                             |     if (s1 != 0) {
    0x0000c57c beqz s1, 0xc590               |         
    0x0000c580 lw s2, -0x7fdc(gp)            |         s2 = *((gp - 8183));
    0x0000c584 lw s5, 0x53a4(s2)             |         s5 = *((s2 + 5353));
    0x0000c588 lw v0, 0x28(fp)               |         v0 = *(arg_28h);
                                             |         if (s5 == 0) {
    0x0000c58c beqz s5, 0xc8d4               |             goto label_45;
                                             |         }
                                             |     }
                                             | label_12:
    0x0000c590 lw v0, 0x6c(fp)               |     v0 = *(arg_6ch);
                                             |     if (s0 == 0) {
    0x0000c594 beqz s0, 0xcb18               |         goto label_46;
                                             |     }
    0x0000c598 lw v0, 0x5478(v0)             |     v0 = *((v0 + 5406));
    0x0000c59c lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (v0 != 0) {
    0x0000c5a0 bnez v0, 0xcb18               |         goto label_46;
                                             |     }
    0x0000c5a4 move s2, zero                 |     s2 = 0;
    0x0000c5a8 sw v0, 0x7c(fp)               |     *(arg_7ch) = v0;
    0x0000c5ac lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c5b0 sw s5, 0x78(fp)               |     *(arg_78h) = s5;
    0x0000c5b4 sw v0, 0x8c(fp)               |     *(arg_8ch) = v0;
    0x0000c5b8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c5bc sw v0, 0x68(fp)               |     *(arg_68h) = v0;
    0x0000c5c0 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c5c4 sw v0, 0x64(fp)               |     *(arg_64h) = v0;
    0x0000c5c8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c5cc sw v0, 0x80(fp)               |     *(arg_80h) = v0;
    0x0000c5d0 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c5d4 sw v0, 0x60(fp)               |     *(arg_60h) = v0;
    0x0000c5d8 lw v0, 0x44(fp)               |     v0 = *(arg_44h);
    0x0000c5dc addu s6, s5, v0               |     s6 = s5 + v0;
    0x0000c5e0 lw v0, 0x5c(fp)               |     v0 = *(arg_5ch);
                                             | label_2:
    0x0000c5e4 move s3, sp                   |     s3 = sp;
    0x0000c5e8 srl v0, v0, 3                 |     v0 >>= 3;
    0x0000c5ec sll v0, v0, 3                 |     v0 <<= 3;
    0x0000c5f0 subu sp, sp, v0               |     
    0x0000c5f4 addiu s1, sp, 0x18            |     s1 = sp + 0x18;
                                             |     if (s7 == 0) {
    0x0000c5f8 beqz s7, 0xc628               |         goto label_47;
                                             |     }
    0x0000c5fc lw v0, 0x5434(s4)             |     v0 = *((s4 + 5389));
    0x0000c600 lw v1, 0x78(fp)               |     v1 = *(arg_78h);
    0x0000c604 mul v0, s2, v0                |     __asm ("mul v0, s2, v0");
    0x0000c608 move a0, s1                   |     a0 = s1;
    0x0000c60c srl v0, v0, 3                 |     v0 >>= 3;
                                             |     do {
    0x0000c610 lw a1, (v1)                   |         a1 = *(v1);
    0x0000c614 addiu v1, v1, 4               |         v1 += 4;
    0x0000c618 addu a1, a1, v0               |         a1 += v0;
    0x0000c61c sw a1, (a0)                   |         *(a0) = a1;
    0x0000c620 addiu a0, a0, 4               |         a0 += 4;
    0x0000c624 bne s6, v1, 0xc610            |         
                                             |     } while (s6 != v1);
                                             | label_47:
    0x0000c628 lw v0, 0x8c(fp)               |     v0 = *(arg_8ch);
    0x0000c62c lw v0, 0x5428(v0)             |     v0 = *((v0 + 5386));
    0x0000c630 lw t9, 0x84(fp)               |     t9 = *(arg_84h);
                                             |     if (v0 != 0) {
    0x0000c634 bnez v0, 0xc80c               |         goto label_48;
                                             |     }
    0x0000c638 lw v0, 0x68(fp)               |     v0 = *(arg_68h);
                                             | label_10:
    0x0000c63c lw v0, 0x5450(v0)             |     v0 = *((v0 + 5396));
    0x0000c640 lw v0, 0x64(fp)               |     v0 = *(arg_64h);
                                             |     if (v0 != 0) {
    0x0000c644 beqz v0, 0xc658               |         
    0x0000c648 lw t9, 0x58(fp)               |         t9 = *(arg_58h);
    0x0000c64c jalr t9                       |         t9 ();
    0x0000c650 nop                           |         
    0x0000c654 lw v0, 0x64(fp)               |         v0 = *(arg_64h);
                                             |     }
    0x0000c658 move a1, s1                   |     a1 = s1;
    0x0000c65c move a2, s0                   |     a2 = s0;
    0x0000c660 lw t9, 0x54b8(v0)             |     t9 = *((v0 + 5422));
    0x0000c664 lw v0, 0x7c(fp)               |     v0 = *(arg_7ch);
    0x0000c668 lw a0, 0x54b0(v0)             |     a0 = *((v0 + 5420));
    0x0000c66c jalr t9                       |     t9 ();
    0x0000c670 lw v1, 0x8c(fp)               |     v1 = *(arg_8ch);
    0x0000c674 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c678 lw a0, 0x5428(v1)             |     a0 = *((v1 + 5386));
    0x0000c67c move s1, v0                   |     s1 = v0;
                                             |     if (a0 != 0) {
    0x0000c680 bnez a0, 0xc7f8               |         goto label_49;
                                             |     }
                                             | label_9:
    0x0000c684 addiu v0, zero, -0xb          |     v0 = -0xb;
    0x0000c688 lw v0, 0x80(fp)               |     v0 = *(arg_80h);
                                             |     if (s1 == v0) {
    0x0000c68c beq s1, v0, 0xc794            |         goto label_50;
                                             |     }
    0x0000c690 sltu v0, s1, s0               |     v0 = (s1 < s0) ? 1 : 0;
                                             |     if (s1 < 0) {
    0x0000c694 bltz s1, 0xc81c               |         goto label_51;
                                             |     }
    0x0000c698 lw v0, 0x80(fp)               |     v0 = *(arg_80h);
                                             |     if (v0 == 0) {
    0x0000c69c beqz v0, 0xc7b8               |         goto label_52;
                                             |     }
    0x0000c6a0 lw v0, 0x5424(v0)             |     v0 = *((v0 + 5385));
    0x0000c6a4 lw v0, 0x7c(fp)               |     v0 = *(arg_7ch);
                                             |     if (v0 == 0) {
    0x0000c6a8 beqz v0, 0xc7a4               |         goto label_53;
                                             |     }
    0x0000c6ac lw v0, 0x60(fp)               |     v0 = *(arg_60h);
                                             |     if (s1 == 0) {
    0x0000c6b0 beqz s1, 0xc78c               |         goto label_6;
                                             |     }
    0x0000c6b4 lw v0, 0x5440(v0)             |     v0 = *((v0 + 5392));
                                             |     if (v0 != 0) {
    0x0000c6b8 bnez v0, 0xc7cc               |         goto label_54;
                                             |     }
    0x0000c6bc nop                           |     
                                             | label_8:
    0x0000c6c0 subu s0, s0, s1               |     __asm ("subu s0, s0, s1");
                                             | label_7:
    0x0000c6c4 addu s2, s2, s1               |     s2 += s1;
    0x0000c6c8 move sp, s3                   |     
                                             |     if (s0 == 0) {
    0x0000c6cc beqz s0, 0xc6e0               |         goto label_18;
                                             |     }
                                             | label_5:
    0x0000c6d0 lw v0, 0x6c(fp)               |     v0 = *(arg_6ch);
    0x0000c6d4 lw v0, 0x5478(v0)             |     v0 = *((v0 + 5406));
    0x0000c6d8 lw v0, 0x5c(fp)               |     v0 = *(arg_5ch);
                                             |     if (v0 == 0) {
    0x0000c6dc beqz v0, 0xc5e4               |         goto label_2;
                                             |     }
                                             | label_18:
    0x0000c6e0 lw v1, 0x48(fp)               |     v1 = *(arg_48h);
    0x0000c6e4 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (v1 != s2) {
    0x0000c6e8 bne v1, s2, 0xc728            |         goto label_21;
                                             |     }
    0x0000c6ec lw a0, 0x50(fp)               |     a0 = *(arg_50h);
    0x0000c6f0 lw v0, 0x5430(v0)             |     v0 = *((v0 + 5388));
    0x0000c6f4 mul v0, v1, v0                |     __asm ("mul v0, v1, v0");
    0x0000c6f8 lw v1, 0x4c(fp)               |     v1 = *(arg_4ch);
    0x0000c6fc srl v0, v0, 3                 |     v0 >>= 3;
    0x0000c700 subu v0, v1, v0               |     __asm ("subu v0, v1, v0");
    0x0000c704 sltu v1, v1, v0               |     v1 = (v1 < v0) ? 1 : 0;
    0x0000c708 subu v1, a0, v1               |     __asm ("subu v1, a0, v1");
    0x0000c70c sw v1, 0x50(fp)               |     *(arg_50h) = v1;
    0x0000c710 sw v0, 0x4c(fp)               |     *(arg_4ch) = v0;
                                             |     if (v1 <= 0) {
    0x0000c714 blez v1, 0xcb80               |         goto label_55;
                                             |     }
    0x0000c718 lw v0, 0x6c(fp)               |     v0 = *(arg_6ch);
                                             | label_22:
    0x0000c71c lw v0, 0x5478(v0)             |     v0 = *((v0 + 5406));
    0x0000c720 lw t9, -0x7f9c(gp)            |     t9 = *(gp);
                                             |     if (v0 == 0) {
    0x0000c724 beqz v0, 0xc418               |         goto label_3;
                                             |     }
                                             | label_21:
    0x0000c728 lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
                                             | label_23:
    0x0000c72c lw t9, -0x7ee0(gp)            |     t9 = sym.imp.snd_pcm_nonblock;
    0x0000c730 move a1, zero                 |     a1 = 0;
    0x0000c734 lw a0, 0x54b0(s0)             |     a0 = *((s0 + 5420));
    0x0000c738 jalr t9                       |     t9 ();
    0x0000c73c lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c740 lw t9, -0x7d70(gp)            |     t9 = sym.imp.snd_pcm_drain;
    0x0000c744 lw a0, 0x54b0(s0)             |     a0 = *((s0 + 5420));
    0x0000c748 jalr t9                       |     t9 ();
    0x0000c74c lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c750 lw a0, 0x54b0(s0)             |     a0 = *((s0 + 5420));
    0x0000c754 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000c758 lw t9, -0x7ee0(gp)            |     t9 = sym.imp.snd_pcm_nonblock;
    0x0000c75c lw a1, 0x547c(v0)             |     a1 = *((v0 + 5407));
    0x0000c760 jalr t9                       |     t9 ();
    0x0000c764 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c768 lw sp, 0x24(fp)               |     
                                             |     if (s7 == 0) {
    0x0000c76c beqz s7, 0xca4c               |         goto label_56;
                                             |     }
    0x0000c770 move s2, zero                 |     s2 = 0;
    0x0000c774 b 0xc20c                      |     goto label_4;
                                             | label_11:
    0x0000c778 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000c77c addiu t9, t9, 0x7c44          |     t9 += fcn.00007c44;
    0x0000c780 bal 0x7c44                    |     fcn_00007c44 ();
    0x0000c784 nop                           |     
    0x0000c788 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
                                             | label_6:
    0x0000c78c move sp, s3                   |     
    0x0000c790 b 0xc6d0                      |     goto label_5;
                                             | label_50:
    0x0000c794 lw v0, 0x5424(v0)             |     v0 = *((v0 + 5385));
    0x0000c798 move sp, s3                   |     
                                             |     if (v0 == 0) {
    0x0000c79c bnel v0, zero, 0xc6d0         |         goto label_5;
                                             |     }
    0x0000c7a0 lw v0, 0x7c(fp)               |     v0 = *(arg_7ch);
                                             | label_53:
    0x0000c7a4 lw t9, -0x7e30(gp)            |     t9 = sym.imp.snd_pcm_wait;
    0x0000c7a8 addiu a1, zero, 0x64          |     a1 = 0x64;
    0x0000c7ac lw a0, 0x54b0(v0)             |     a0 = *((v0 + 5420));
    0x0000c7b0 jalr t9                       |     t9 ();
    0x0000c7b4 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
                                             | label_52:
    0x0000c7b8 lw v0, 0x60(fp)               |     v0 = *(arg_60h);
                                             |     if (s1 <= 0) {
    0x0000c7bc blez s1, 0xc78c               |         goto label_6;
                                             |     }
    0x0000c7c0 lw v0, 0x5440(v0)             |     v0 = *((v0 + 5392));
                                             |     if (v0 == 0) {
    0x0000c7c4 beql v0, zero, 0xc6c4         |         goto label_7;
                                             |     }
    0x0000c7c8 subu s0, s0, s1               |     __asm ("subu s0, s0, s1");
                                             | label_54:
    0x0000c7cc lw s5, 0x78(fp)               |     s5 = *(arg_78h);
                                             |     if (s7 == 0) {
    0x0000c7d0 beqz s7, 0xc6c0               |         goto label_8;
                                             |     }
                                             |     do {
    0x0000c7d4 lw a0, (s5)                   |         a0 = *(s5);
    0x0000c7d8 lw t9, 0x54(fp)               |         t9 = *(arg_54h);
    0x0000c7dc move a1, s1                   |         a1 = s1;
    0x0000c7e0 addiu s5, s5, 4               |         s5 += 4;
    0x0000c7e4 jalr t9                       |         t9 ();
    0x0000c7e8 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c7ec bne s6, s5, 0xc7d4            |         
                                             |     } while (s6 != s5);
    0x0000c7f0 subu s0, s0, s1               |     __asm ("subu s0, s0, s1");
    0x0000c7f4 b 0xc6c4                      |     goto label_7;
                                             | label_49:
    0x0000c7f8 lw t9, 0x84(fp)               |     t9 = *(arg_84h);
    0x0000c7fc jalr t9                       |     t9 ();
    0x0000c800 nop                           |     
    0x0000c804 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c808 b 0xc684                      |     goto label_9;
                                             | label_48:
    0x0000c80c jalr t9                       |     t9 ();
    0x0000c810 nop                           |     
    0x0000c814 lw v0, 0x68(fp)               |     v0 = *(arg_68h);
    0x0000c818 b 0xc63c                      |     goto label_10;
                                             | label_51:
    0x0000c81c addiu v0, zero, -0x20         |     v0 = -0x20;
    0x0000c820 addiu v0, zero, -0x5c         |     v0 = -0x5c;
                                             |     if (s1 == v0) {
    0x0000c824 beq s1, v0, 0xc778            |         goto label_11;
                                             |     }
    0x0000c828 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (s1 != v0) {
    0x0000c82c beq s1, v0, 0xc8b8            |         
    0x0000c830 lw s0, -0x7e24(gp)            |         s0 = *((gp - 8073));
    0x0000c834 lw a2, -0x7fd8(gp)            |         a2 = *(gp);
    0x0000c838 lw a3, 0x54b4(v0)             |         a3 = *((v0 + 5421));
    0x0000c83c addiu v0, zero, 0x839         |         v0 = 0x839;
    0x0000c840 lw a0, (s0)                   |         a0 = *(s0);
    0x0000c844 sw v0, 0x14(sp)               |         *(var_14h) = v0;
    0x0000c848 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0000c84c lw t9, -0x7d04(gp)            |         t9 = sym.imp.__fprintf_chk;
                                             |         /* str.pcm_writev */
    0x0000c850 addiu v0, v0, 0x4198          |         v0 += 0x4198;
                                             |         /* str._s:__s:_d:_ */
    0x0000c854 addiu a2, a2, 0x2b6c          |         a2 += 0x2b6c;
    0x0000c858 addiu a1, zero, 1             |         a1 = 1;
    0x0000c85c sw v0, 0x10(sp)               |         *(var_10h_2) = v0;
    0x0000c860 jalr t9                       |         t9 ();
    0x0000c864 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c868 move a0, s1                   |         a0 = s1;
    0x0000c86c lw t9, -0x7e3c(gp)            |         t9 = sym.imp.snd_strerror;
    0x0000c870 lw s1, (s0)                   |         s1 = *(s0);
    0x0000c874 jalr t9                       |         t9 ();
    0x0000c878 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c87c move a3, v0                   |         a3 = v0;
    0x0000c880 addiu a1, zero, 1             |         a1 = 1;
    0x0000c884 lw a2, -0x7fd8(gp)            |         a2 = *(gp);
    0x0000c888 lw t9, -0x7d04(gp)            |         t9 = sym.imp.__fprintf_chk;
                                             |         /* str.writev_error:__s */
    0x0000c88c addiu a2, a2, 0x381c          |         a2 += 0x381c;
    0x0000c890 move a0, s1                   |         a0 = s1;
                                             | label_20:
    0x0000c894 jalr t9                       |         t9 ();
    0x0000c898 nop                           |         
    0x0000c89c lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c8a0 lw a1, (s0)                   |         a1 = *(s0);
    0x0000c8a4 lw t9, -0x7f18(gp)            |         t9 = sym.imp._IO_putc;
    0x0000c8a8 addiu a0, zero, 0xa           |         a0 = 0xa;
    0x0000c8ac jalr t9                       |         t9 ();
    0x0000c8b0 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c8b4 b 0xca0c                      |         goto label_57;
                                             |     }
    0x0000c8b8 lw t9, -0x7fd8(gp)            |     t9 = *(gp);
    0x0000c8bc addiu t9, t9, -0x7c80         |     t9 += -0x7c80;
    0x0000c8c0 bal 0x8380                    |     fcn_00008380 ();
    0x0000c8c4 nop                           |     
    0x0000c8c8 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c8cc move sp, s3                   |     
    0x0000c8d0 b 0xc6d0                      |     goto label_5;
                                             | label_45:
    0x0000c8d4 lw t9, -0x7e88(gp)            |     t9 = sym.imp.malloc;
    0x0000c8d8 lw s6, 4(v0)                  |     s6 = *((v0 + 1));
    0x0000c8dc sll s3, s6, 2                 |     s3 = s6 << 2;
    0x0000c8e0 move a0, s3                   |     a0 = s3;
    0x0000c8e4 jalr t9                       |     t9 ();
    0x0000c8e8 move s5, v0                   |     s5 = v0;
    0x0000c8ec lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c8f0 sw v0, 0x53a4(s2)             |     *((s2 + 5353)) = v0;
                                             |     if (v0 == 0) {
    0x0000c8f4 beqz v0, 0xcbf8               |         goto label_58;
                                             |     }
    0x0000c8f8 lw a2, 0x74(fp)               |     a2 = *(arg_74h);
                                             |     if (s6 == 0) {
    0x0000c8fc beqz s6, 0xc590               |         goto label_12;
                                             |     }
    0x0000c900 move v0, s1                   |     v0 = s1;
    0x0000c904 move a0, s5                   |     a0 = s5;
    0x0000c908 addu a1, s1, s3               |     a1 = s1 + s3;
                                             |     do {
    0x0000c90c lw v1, (v0)                   |         v1 = *(v0);
    0x0000c910 addiu a0, a0, 4               |         a0 += 4;
    0x0000c914 sll v1, v1, 2                 |         v1 <<= 2;
    0x0000c918 addiu v0, v0, 4               |         v0 += 4;
    0x0000c91c lwx v1, v1(a2)                |         __asm ("lwx v1, v1(a2)");
    0x0000c920 sw v1, -4(a0)                 |         *((a0 - 1)) = v1;
    0x0000c924 bne v0, a1, 0xc90c            |         
                                             |     } while (v0 != a1);
    0x0000c928 b 0xc590                      |     goto label_12;
    0x0000c92c nop                           |     
                                             |     if (s7 == s6) {
                                             | label_28:
    0x0000c930 beql s7, s6, 0xc1b4           |         goto label_13;
                                             |     }
    0x0000c934 sw zero, 0x38(fp)             |     *(arg_38h) = 0;
    0x0000c938 lw v0, 0x3c(fp)               |     v0 = *(arg_3ch);
    0x0000c93c lw t9, -0x7e2c(gp)            |     t9 = sym.imp.strlen;
    0x0000c940 addiu s4, fp, 0x94            |     s4 = fp + 0x94;
    0x0000c944 lw s2, (v0)                   |     s2 = *(v0);
    0x0000c948 move s5, zero                 |     s5 = 0;
    0x0000c94c move a0, s2                   |     a0 = s2;
    0x0000c950 jalr t9                       |     t9 ();
    0x0000c954 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c958 move a1, s2                   |     a1 = s2;
    0x0000c95c addiu a3, zero, 0x400         |     a3 = 0x400;
    0x0000c960 lw t9, -0x7d7c(gp)            |     t9 = sym.imp.__memcpy_chk;
    0x0000c964 move a2, v0                   |     a2 = v0;
    0x0000c968 move a0, s4                   |     a0 = s4;
    0x0000c96c move s3, v0                   |     s3 = v0;
    0x0000c970 jalr t9                       |     t9 ();
    0x0000c974 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c978 addu v0, s4, s3               |     v0 = s4 + s3;
    0x0000c97c lw a0, 0x44(fp)               |     a0 = *(arg_44h);
    0x0000c980 lw v1, -0x7fd8(gp)            |     v1 = *(gp);
    0x0000c984 lw t9, -0x7e88(gp)            |     t9 = sym.imp.malloc;
    0x0000c988 addiu s3, s3, 4               |     s3 += 4;
    0x0000c98c lw v1, 0x37f8(v1)             |     v1 = *((v1 + 3582));
    0x0000c990 swl v1, 3(v0)                 |     __asm ("swl v1, 3(v0)");
    0x0000c994 swr v1, (v0)                  |     __asm ("swr v1, (v0)");
    0x0000c998 jalr t9                       |     t9 ();
    0x0000c99c lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000c9a0 sw v0, 0x3c(fp)               |     *(arg_3ch) = v0;
    0x0000c9a4 move s2, v0                   |     s2 = v0;
                                             |     do {
    0x0000c9a8 lw t9, -0x7e88(gp)            |         t9 = sym.imp.malloc;
    0x0000c9ac move a0, s3                   |         a0 = s3;
    0x0000c9b0 jalr t9                       |         t9 ();
    0x0000c9b4 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c9b8 sw v0, (s2)                   |         *(s2) = v0;
    0x0000c9bc move a3, s4                   |         a3 = s4;
    0x0000c9c0 lw t9, -0x7f0c(gp)            |         t9 = sym.imp.__sprintf_chk
    0x0000c9c4 sw s5, 0x10(sp)               |         *(var_10h_2) = s5;
    0x0000c9c8 addiu a2, zero, -1            |         a2 = -1;
    0x0000c9cc addiu a1, zero, 1             |         a1 = 1;
    0x0000c9d0 move a0, v0                   |         a0 = v0;
    0x0000c9d4 addiu s5, s5, 1               |         s5++;
    0x0000c9d8 jalr t9                       |         t9 ();
    0x0000c9dc addiu s2, s2, 4               |         s2 += 4;
    0x0000c9e0 lw gp, 0x18(fp)               |         gp = *(var_18h_2);
    0x0000c9e4 bne s7, s5, 0xc9a8            |         
                                             |     } while (s7 != s5);
    0x0000c9e8 addiu v0, zero, 1             |     v0 = 1;
    0x0000c9ec sw v0, 0x38(fp)               |     *(arg_38h) = v0;
    0x0000c9f0 b 0xc1b4                      |     goto label_13;
                                             | label_41:
    0x0000c9f4 lw v0, 0x3c(fp)               |     v0 = *(arg_3ch);
    0x0000c9f8 lw t9, -0x7db0(gp)            |     t9 = sym.imp.perror;
    0x0000c9fc lwx a0, a0(v0)                |     __asm ("lwx a0, a0(v0)");
                                             | label_25:
    0x0000ca00 jalr t9                       |     t9 ();
    0x0000ca04 nop                           |     
    0x0000ca08 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
                                             | label_57:
    0x0000ca0c lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000ca10 addiu t9, t9, 0x59bc          |     t9 += fcn.000059bc;
    0x0000ca14 addiu a0, zero, 1             |     a0 = 1;
    0x0000ca18 bal 0x59bc                    |     fcn_000059bc ();
                                             | label_36:
    0x0000ca1c lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000ca20 addiu t9, t9, 0x67b4          |     t9 += fcn.000067b4;
    0x0000ca24 bal 0x67b4                    |     fcn_000067b4 ();
    0x0000ca28 nop                           |     
    0x0000ca2c lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000ca30 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000ca34 lw v0, 0x542c(v0)             |     v0 = *((v0 + 5387));
    0x0000ca38 divu zero, v0, s7             |     __asm ("divu zero, v0, s7");
    0x0000ca3c teq s7, zero, 7               |     __asm ("teq s7, zero, 7");
    0x0000ca40 mflo v0                       |     __asm ("mflo v0");
    0x0000ca44 sw v0, 0x40(fp)               |     *(arg_40h) = v0;
    0x0000ca48 b 0xc388                      |     goto label_14;
                                             | label_56:
    0x0000ca4c lw v0, 0x38(fp)               |     v0 = *(arg_38h);
    0x0000ca50 lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
                                             |     if (v0 == 0) {
    0x0000ca54 beqz v0, 0xc288               |         goto label_15;
                                             |     }
    0x0000ca58 move s2, zero                 |     s2 = 0;
    0x0000ca5c lw t9, -0x7dd4(gp)            |     t9 = sym.imp.free;
                                             | label_33:
    0x0000ca60 lw a0, 0x3c(fp)               |     a0 = *(arg_3ch);
    0x0000ca64 jalr t9                       |     t9 ();
    0x0000ca68 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000ca6c b 0xc27c                      |     goto label_16;
                                             | label_30:
    0x0000ca70 lw a0, 0x5498(s1)             |     a0 = *((s1 + 5414));
    0x0000ca74 addiu a2, a1, 0x54a4          |     a2 = a1 + 0x54a4;
    0x0000ca78 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000ca7c lw v1, 4(s0)                  |     v1 = *((s0 + 1));
    0x0000ca80 lw v0, 8(s0)                  |     v0 = *((s0 + 2));
    0x0000ca84 sw a0, 0x54a4(a1)             |     *((a1 + 5417)) = a0;
    0x0000ca88 sw a1, 0x34(fp)               |     *(arg_34h) = a1;
    0x0000ca8c sw a2, 0x28(fp)               |     *(arg_28h) = a2;
    0x0000ca90 sw v1, 4(a2)                  |     *((a2 + 1)) = v1;
    0x0000ca94 addiu t9, t9, 0x5190          |     t9 += fcn.00005190;
    0x0000ca98 sw v0, 8(a2)                  |     *((a2 + 2)) = v0;
    0x0000ca9c bal 0x5190                    |     fcn_00005190 ();
    0x0000caa0 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000caa4 lw a0, 0x5c(fp)               |     a0 = *(arg_5ch);
    0x0000caa8 sw sp, 0x24(fp)               |     
    0x0000caac lw a2, -0x7fdc(gp)            |     a2 = *((gp - 8183));
    0x0000cab0 lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
    0x0000cab4 srl a0, a0, 3                 |     a0 >>= 3;
    0x0000cab8 sll a0, a0, 3                 |     a0 <<= 3;
    0x0000cabc lw a2, 0x548c(a2)             |     a2 = *((a2 + 5411));
    0x0000cac0 subu sp, sp, a0               |     
    0x0000cac4 sw v0, 0x4c(fp)               |     *(arg_4ch) = v0;
    0x0000cac8 sw v0, 0x5018(a1)             |     *((a1 + 5126)) = v0;
    0x0000cacc addiu v0, sp, 0x18            |     v0 = sp + 0x18;
    0x0000cad0 sw a2, 0x38(fp)               |     *(arg_38h) = a2;
    0x0000cad4 sw v1, 0x50(fp)               |     *(arg_50h) = v1;
    0x0000cad8 sw v1, 0x501c(a1)             |     *((a1 + 5127)) = v1;
    0x0000cadc sw v0, 0x74(fp)               |     *(arg_74h) = v0;
                                             |     if (a2 == 0) {
    0x0000cae0 beqz a2, 0xcb98               |         goto label_59;
                                             |     }
    0x0000cae4 sw zero, 0x38(fp)             |     *(arg_38h) = 0;
                                             | label_24:
    0x0000cae8 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000caec addiu t9, t9, 0x67b4          |     t9 += fcn.000067b4;
    0x0000caf0 bal 0x67b4                    |     fcn_000067b4 ();
    0x0000caf4 nop                           |     
    0x0000caf8 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000cafc lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000cb00 lw v0, 0x542c(v0)             |     v0 = *((v0 + 5387));
    0x0000cb04 divu zero, v0, s7             |     __asm ("divu zero, v0, s7");
    0x0000cb08 teq s7, zero, 7               |     __asm ("teq s7, zero, 7");
    0x0000cb0c mflo v0                       |     __asm ("mflo v0");
    0x0000cb10 sw v0, 0x40(fp)               |     *(arg_40h) = v0;
    0x0000cb14 b 0xc3b4                      |     goto label_17;
                                             | label_46:
    0x0000cb18 move s2, zero                 |     s2 = 0;
    0x0000cb1c b 0xc6e0                      |     goto label_18;
                                             | label_27:
    0x0000cb20 addiu v0, zero, 1             |     v0 = 1;
    0x0000cb24 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (a1 != v0) {
    0x0000cb28 bne a1, v0, 0xc1a0            |         goto label_19;
                                             |     }
                                             | label_29:
    0x0000cb2c lw s0, -0x7e24(gp)            |     s0 = *((gp - 8073));
    0x0000cb30 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000cb34 lw a3, 0x54b4(v0)             |     a3 = *((v0 + 5421));
    0x0000cb38 addiu v0, zero, 0xd13         |     v0 = 0xd13;
    0x0000cb3c lw a0, (s0)                   |     a0 = *(s0);
    0x0000cb40 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000cb44 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000cb48 lw t9, -0x7d04(gp)            |     t9 = sym.imp.__fprintf_chk;
                                             |     /* str.playbackv */
    0x0000cb4c addiu v0, v0, 0x41a4          |     v0 += 0x41a4;
                                             |     /* str._s:__s:_d:_ */
    0x0000cb50 addiu a2, a2, 0x2b6c          |     a2 += 0x2b6c;
    0x0000cb54 addiu a1, zero, 1             |     a1 = 1;
    0x0000cb58 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000cb5c jalr t9                       |     t9 ();
    0x0000cb60 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000cb64 lw a0, (s0)                   |     a0 = *(s0);
    0x0000cb68 move a3, s7                   |     a3 = s7;
    0x0000cb6c lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000cb70 lw t9, -0x7d04(gp)            |     t9 = sym.imp.__fprintf_chk;
                                             |     /* str.You_need_to_specify__d_files */
    0x0000cb74 addiu a2, a2, 0x37fc          |     a2 += 0x37fc;
    0x0000cb78 addiu a1, zero, 1             |     a1 = 1;
    0x0000cb7c b 0xc894                      |     goto label_20;
                                             | label_55:
    0x0000cb80 lw v0, 0x4c(fp)               |     v0 = *(arg_4ch);
                                             |     if (v1 != 0) {
    0x0000cb84 bnez v1, 0xc728               |         goto label_21;
                                             |     }
    0x0000cb88 lw v0, 0x6c(fp)               |     v0 = *(arg_6ch);
                                             |     if (v0 != 0) {
    0x0000cb8c bnez v0, 0xc71c               |         goto label_22;
                                             |     }
    0x0000cb90 lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
    0x0000cb94 b 0xc72c                      |     goto label_23;
                                             | label_59:
    0x0000cb98 lw v0, 0x3c(fp)               |     v0 = *(arg_3ch);
    0x0000cb9c lw t9, -0x7fd8(gp)            |     t9 = *(gp);
    0x0000cba0 move a0, zero                 |     a0 = 0;
    0x0000cba4 addiu t9, t9, -0x7a98         |     t9 += -0x7a98;
    0x0000cba8 lw a1, (v0)                   |     a1 = *(v0);
    0x0000cbac bal 0x8568                    |     fcn_00008568 ();
    0x0000cbb0 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000cbb4 b 0xcae8                      |     goto label_24;
                                             | label_39:
    0x0000cbb8 lw v0, 0x3c(fp)               |     v0 = *(arg_3ch);
    0x0000cbbc sll a0, s3, 2                 |     a0 = s3 << 2;
    0x0000cbc0 lw t9, -0x7db0(gp)            |     t9 = sym.imp.perror;
    0x0000cbc4 lwx a0, a0(v0)                |     __asm ("lwx a0, a0(v0)");
    0x0000cbc8 b 0xca00                      |     goto label_25;
                                             | label_38:
    0x0000cbcc lw v0, 0x4c(fp)               |     v0 = *(arg_4ch);
                                             |     if (v0 != 0) {
    0x0000cbd0 bnez v0, 0xc728               |         goto label_21;
                                             |     }
    0x0000cbd4 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (v0 != 0) {
    0x0000cbd8 bnez v0, 0xc3c4               |         goto label_26;
                                             |     }
    0x0000cbdc lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
    0x0000cbe0 b 0xc72c                      |     goto label_23;
                                             | label_37:
    0x0000cbe4 move s6, zero                 |     s6 = 0;
    0x0000cbe8 b 0xc3b4                      |     goto label_17;
                                             | label_34:
    0x0000cbec addiu t9, t9, 0x59bc          |     t9 += fcn.000059bc;
    0x0000cbf0 addiu a0, zero, 1             |     a0 = 1;
    0x0000cbf4 bal 0x59bc                    |     fcn_000059bc ();
                                             | label_58:
    0x0000cbf8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000cbfc lw s0, -0x7e24(gp)            |     s0 = *((gp - 8073));
    0x0000cc00 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000cc04 lw a3, 0x54b4(v0)             |     a3 = *((v0 + 5421));
    0x0000cc08 addiu v0, zero, 0x7df         |     v0 = 0x7df;
    0x0000cc0c lw a0, (s0)                   |     a0 = *(s0);
    0x0000cc10 sw v0, 0x14(sp)               |     *(var_14h) = v0;
    0x0000cc14 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000cc18 lw t9, -0x7d04(gp)            |     t9 = sym.imp.__fprintf_chk;
                                             |     /* str.remap_datav */
    0x0000cc1c addiu v0, v0, 0x418c          |     v0 += 0x418c;
                                             |     /* str._s:__s:_d:_ */
    0x0000cc20 addiu a2, a2, 0x2b6c          |     a2 += 0x2b6c;
    0x0000cc24 addiu a1, zero, 1             |     a1 = 1;
    0x0000cc28 sw v0, 0x10(sp)               |     *(var_10h_2) = v0;
    0x0000cc2c jalr t9                       |     t9 ();
    0x0000cc30 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000cc34 lw a3, (s0)                   |     a3 = *(s0);
    0x0000cc38 addiu a2, zero, 0x11          |     a2 = 0x11;
    0x0000cc3c lw a0, -0x7fd8(gp)            |     a0 = *(gp);
    0x0000cc40 lw t9, -0x7e6c(gp)            |     t9 = sym.imp.fwrite;
    0x0000cc44 addiu a1, zero, 1             |     a1 = 1;
                                             |     /* str.not_enough_memory */
    0x0000cc48 addiu a0, a0, 0x3098          |     a0 += 0x3098;
    0x0000cc4c jalr t9                       |     t9 ();
    0x0000cc50 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000cc54 lw a1, (s0)                   |     a1 = *(s0);
    0x0000cc58 lw t9, -0x7f18(gp)            |     t9 = sym.imp._IO_putc;
    0x0000cc5c addiu a0, zero, 0xa           |     a0 = 0xa;
    0x0000cc60 jalr t9                       |     t9 ();
    0x0000cc64 lw gp, 0x18(fp)               |     gp = *(var_18h_2);
    0x0000cc68 lw t9, -0x7f48(gp)            |     t9 = sym.imp.exit;
    0x0000cc6c addiu a0, zero, 1             |     a0 = 1;
    0x0000cc70 jalr t9                       |     t9 ();
                                             | label_35:
    0x0000cc74 lw t9, -0x7e98(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000cc78 jalr t9                       |     t9 ();
    0x0000cc7c nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/aplay @ 0xcc80 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0000cc80 ()                  | void fcn_0000cc80 () {
    0x0000cc80 lui gp, 2                     |     
    0x0000cc84 addiu gp, gp, 0x3c0           |     
    0x0000cc88 addu gp, gp, t9               |     gp += t9;
    0x0000cc8c addiu sp, sp, -0x4a8          |     
    0x0000cc90 lw v0, -0x7e4c(gp)            |     v0 = *((gp - 8083));
    0x0000cc94 sw s4, 0x490(sp)              |     *(var_490h) = s4;
    0x0000cc98 lw s4, -0x7fdc(gp)            |     s4 = *((gp - 8183));
    0x0000cc9c sw s2, 0x488(sp)              |     *(var_488h) = s2;
    0x0000cca0 addiu s2, s4, 0x5498          |     s2 = s4 + 0x5498;
    0x0000cca4 sw s7, 0x49c(sp)              |     *(var_49ch_2) = s7;
    0x0000cca8 lw s7, 4(s2)                  |     s7 = *((s2 + 1));
    0x0000ccac sw fp, 0x4a0(sp)              |     *(var_4a0h_2) = fp;
    0x0000ccb0 move fp, sp                   |     fp = sp;
    0x0000ccb4 sw s1, 0x484(sp)              |     *(var_484h) = s1;
    0x0000ccb8 sll s1, s7, 2                 |     s1 = s7 << 2;
    0x0000ccbc sw ra, 0x4a4(sp)              |     *(var_4a4h_2) = ra;
    0x0000ccc0 sw s6, 0x498(sp)              |     *(var_498h_2) = s6;
    0x0000ccc4 sw s5, 0x494(sp)              |     *(var_494h) = s5;
    0x0000ccc8 sw s3, 0x48c(sp)              |     *(var_48ch) = s3;
    0x0000cccc sw s0, 0x480(sp)              |     *(var_480h) = s0;
    0x0000ccd0 sw gp, 0x18(sp)               |     *(var_18h_3) = gp;
    0x0000ccd4 lw v1, (v0)                   |     v1 = *(v0);
    0x0000ccd8 sw v0, 0x24(fp)               |     *(arg_24h) = v0;
    0x0000ccdc addiu v0, s1, 7               |     v0 = s1 + 7;
    0x0000cce0 sw v0, 0x4c(fp)               |     *(arg_4ch) = v0;
    0x0000cce4 srl v0, v0, 3                 |     v0 >>= 3;
    0x0000cce8 sll v0, v0, 3                 |     v0 <<= 3;
    0x0000ccec subu sp, sp, v0               |     
    0x0000ccf0 addiu v0, sp, 0x18            |     v0 = sp + 0x18;
    0x0000ccf4 sw a0, 0x2c(fp)               |     *(arg_2ch) = a0;
    0x0000ccf8 sw v1, 0x47c(fp)              |     *(arg_47ch) = v1;
    0x0000ccfc sw v0, 0x3c(fp)               |     *(arg_3ch) = v0;
                                             |     if (s7 == 0) {
    0x0000cd00 beqz s7, 0xd468               |         goto label_25;
                                             |     }
    0x0000cd04 move v1, v0                   |     v1 = v0;
    0x0000cd08 addiu a0, zero, -1            |     a0 = -1;
    0x0000cd0c move v0, zero                 |     v0 = 0;
                                             |     do {
    0x0000cd10 addiu v0, v0, 1               |         v0++;
    0x0000cd14 sw a0, (v1)                   |         *(v1) = a0;
    0x0000cd18 addiu v1, v1, 4               |         v1 += 4;
    0x0000cd1c bne s7, v0, 0xcd10            |         
                                             |     } while (s7 != v0);
    0x0000cd20 addiu v0, zero, 1             |     v0 = 1;
    0x0000cd24 lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
                                             |     if (a1 == v0) {
    0x0000cd28 beq a1, v0, 0xd38c            |         goto label_26;
                                             |     }
    0x0000cd2c sw zero, 0x28(fp)             |     *(arg_28h) = 0;
                                             |     if (s7 != a1) {
    0x0000cd30 bne s7, a1, 0xd5d8            |         goto label_27;
                                             |     }
                                             | label_16:
    0x0000cd34 lw s0, 0x2c(fp)               |     s0 = *(arg_2ch);
    0x0000cd38 lw s3, 0x3c(fp)               |     s3 = *(arg_3ch);
    0x0000cd3c move s5, zero                 |     s5 = 0;
    0x0000cd40 b 0xcd54                      |     
                                             |     while (v0 >= 0) {
    0x0000cd44 addiu s5, s5, 1               |         s5++;
    0x0000cd48 addiu s0, s0, 4               |         s0 += 4;
    0x0000cd4c addiu s3, s3, 4               |         s3 += 4;
                                             |         if (s7 == s5) {
    0x0000cd50 beq s7, s5, 0xce44            |             goto label_28;
                                             |         }
    0x0000cd54 lw t9, -0x7f10(gp)            |         t9 = sym.imp.open64;
    0x0000cd58 lw a0, (s0)                   |         a0 = *(s0);
    0x0000cd5c addiu a2, zero, 0x1a4         |         a2 = segment.NOTE;
    0x0000cd60 addiu a1, zero, 0x101         |         a1 = 0x101;
    0x0000cd64 jalr t9                       |         t9 ();
    0x0000cd68 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000cd6c sw v0, (s3)                   |         *(s3) = v0;
    0x0000cd70 bgez v0, 0xcd44               |         
                                             |     }
    0x0000cd74 lw t9, -0x7db0(gp)            |     t9 = sym.imp.perror;
    0x0000cd78 lw a0, (s0)                   |     a0 = *(s0);
    0x0000cd7c addiu s1, zero, 1             |     s1 = 1;
    0x0000cd80 jalr t9                       |     t9 ();
    0x0000cd84 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
                                             | label_7:
    0x0000cd88 lw s2, 0x3c(fp)               |     s2 = *(arg_3ch);
    0x0000cd8c move s0, zero                 |     s0 = 0;
    0x0000cd90 lw s3, 0x28(fp)               |     s3 = *(arg_28h);
    0x0000cd94 lw s4, 0x2c(fp)               |     s4 = *(arg_2ch);
    0x0000cd98 b 0xcda8                      |     
                                             |     while (s3 == 0) {
    0x0000cd9c sltu v0, s0, s7               |         v0 = (s0 < s7) ? 1 : 0;
    0x0000cda0 addiu s2, s2, 4               |         s2 += 4;
                                             |         if (v0 == 0) {
    0x0000cda4 beqz v0, 0xcdec               |             goto label_29;
                                             |         }
                                             | label_0:
    0x0000cda8 lw a0, (s2)                   |         a0 = *(s2);
    0x0000cdac lw t9, -0x7e68(gp)            |         t9 = sym.imp.close;
                                             |         if (a0 >= 0) {
    0x0000cdb0 bltz a0, 0xcdc0               |             
    0x0000cdb4 jalr t9                       |             t9 ();
    0x0000cdb8 nop                           |             
    0x0000cdbc lw gp, 0x18(fp)               |             gp = *(var_18h_3);
                                             |         }
    0x0000cdc0 beql s3, zero, 0xcd9c         |         
                                             |     }
    0x0000cdc4 addiu s0, s0, 1               |     s0++;
    0x0000cdc8 sll a0, s0, 2                 |     a0 = s0 << 2;
    0x0000cdcc lw t9, -0x7dd4(gp)            |     t9 = sym.imp.free;
    0x0000cdd0 lwx a0, a0(s4)                |     __asm ("lwx a0, a0(s4)");
    0x0000cdd4 addiu s0, s0, 1               |     s0++;
    0x0000cdd8 jalr t9                       |     t9 ();
    0x0000cddc sltu v0, s0, s7               |     v0 = (s0 < s7) ? 1 : 0;
    0x0000cde0 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000cde4 addiu s2, s2, 4               |     s2 += 4;
                                             |     if (v0 != 0) {
    0x0000cde8 bnez v0, 0xcda8               |         goto label_0;
                                             |     }
                                             | label_29:
    0x0000cdec lw v0, 0x28(fp)               |     v0 = *(arg_28h);
    0x0000cdf0 lw t9, -0x7dd4(gp)            |     t9 = sym.imp.free;
                                             |     if (v0 != 0) {
    0x0000cdf4 bnez v0, 0xd374               |         goto label_30;
                                             |     }
                                             | label_14:
    0x0000cdf8 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
                                             |     if (s1 != 0) {
    0x0000cdfc bnez s1, 0xd63c               |         goto label_31;
                                             |     }
                                             | label_22:
    0x0000ce00 lw v0, 0x24(fp)               |     v0 = *(arg_24h);
                                             | label_21:
    0x0000ce04 lw v1, 0x47c(fp)              |     v1 = *(arg_47ch);
    0x0000ce08 lw v0, (v0)                   |     v0 = *(v0);
    0x0000ce0c lw ra, 0x4a4(fp)              |     ra = *(var_4a4h_2);
                                             |     if (v1 != v0) {
    0x0000ce10 bne v1, v0, 0xd648            |         goto label_32;
                                             |     }
    0x0000ce14 move sp, fp                   |     
    0x0000ce18 lw fp, 0x4a0(sp)              |     fp = *(var_4a0h_2);
    0x0000ce1c lw s7, 0x49c(sp)              |     s7 = *(var_49ch_2);
    0x0000ce20 lw s6, 0x498(sp)              |     s6 = *(var_498h_2);
    0x0000ce24 lw s5, 0x494(sp)              |     s5 = *(var_494h);
    0x0000ce28 lw s4, 0x490(sp)              |     s4 = *(var_490h);
    0x0000ce2c lw s3, 0x48c(sp)              |     s3 = *(var_48ch);
    0x0000ce30 lw s2, 0x488(sp)              |     s2 = *(var_488h);
    0x0000ce34 lw s1, 0x484(sp)              |     s1 = *(var_484h);
    0x0000ce38 lw s0, 0x480(sp)              |     s0 = *(var_480h);
    0x0000ce3c addiu sp, sp, 0x4a8           |     
    0x0000ce40 jr ra                         |     return v0;
                                             | label_28:
    0x0000ce44 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x0000ce48 lw a1, 4(s2)                  |     a1 = *((s2 + 1));
    0x0000ce4c lw a0, 8(s2)                  |     a0 = *((s2 + 2));
    0x0000ce50 addiu v0, v1, 0x54a4          |     v0 = v1 + 0x54a4;
    0x0000ce54 lw a2, 0x5498(s4)             |     a2 = *((s4 + 5414));
    0x0000ce58 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000ce5c sw a2, 0x54a4(v1)             |     *((v1 + 5417)) = a2;
    0x0000ce60 sw a1, 4(v0)                  |     *((v0 + 1)) = a1;
    0x0000ce64 addiu t9, t9, 0x5190          |     t9 += fcn.00005190;
    0x0000ce68 sw a0, 8(v0)                  |     *((v0 + 2)) = a0;
    0x0000ce6c bal 0x5190                    |     fcn_00005190 ();
    0x0000ce70 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000ce74 lw a0, 0x4c(fp)               |     a0 = *(arg_4ch);
    0x0000ce78 sw sp, 0x20(fp)               |     
    0x0000ce7c lw a2, -0x7fdc(gp)            |     a2 = *((gp - 8183));
    0x0000ce80 lw a1, -0x7fdc(gp)            |     a1 = *((gp - 8183));
    0x0000ce84 srl a0, a0, 3                 |     a0 >>= 3;
    0x0000ce88 sll a0, a0, 3                 |     a0 <<= 3;
    0x0000ce8c subu sp, sp, a0               |     
    0x0000ce90 lw a2, 0x548c(a2)             |     a2 = *((a2 + 5411));
    0x0000ce94 move s2, v0                   |     s2 = v0;
    0x0000ce98 sw v0, 0x5018(a1)             |     *((a1 + 5126)) = v0;
    0x0000ce9c addiu v0, sp, 0x18            |     v0 = sp + 0x18;
    0x0000cea0 sw v1, 0x50(fp)               |     *(arg_50h) = v1;
    0x0000cea4 sw v1, 0x501c(a1)             |     *((a1 + 5127)) = v1;
    0x0000cea8 sw v0, 0x74(fp)               |     *(arg_74h) = v0;
                                             |     if (a2 != 0) {
    0x0000ceac bnez a2, 0xd384               |         goto label_33;
                                             |     }
    0x0000ceb0 lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
    0x0000ceb4 lw t9, -0x7fd8(gp)            |     t9 = *(gp);
    0x0000ceb8 move a0, zero                 |     a0 = 0;
    0x0000cebc addiu t9, t9, -0x7a98         |     t9 += -0x7a98;
    0x0000cec0 lw a1, (v0)                   |     a1 = *(v0);
    0x0000cec4 bal 0x8568                    |     fcn_00008568 ();
    0x0000cec8 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000cecc lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
                                             | label_15:
    0x0000ced0 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000ced4 addiu t9, t9, 0x67b4          |     t9 += fcn.000067b4;
    0x0000ced8 bal 0x67b4                    |     fcn_000067b4 ();
    0x0000cedc nop                           |     
    0x0000cee0 lw a2, 0x542c(s0)             |     a2 = *((s0 + 5387));
    0x0000cee4 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000cee8 divu zero, a2, s7             |     __asm ("divu zero, a2, s7");
    0x0000ceec teq s7, zero, 7               |     __asm ("teq s7, zero, 7");
    0x0000cef0 lw a0, 0x74(fp)               |     a0 = *(arg_74h);
    0x0000cef4 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000cef8 move v1, zero                 |     v1 = 0;
    0x0000cefc lw v0, 0x5474(v0)             |     v0 = *((v0 + 5405));
    0x0000cf00 mflo a2                       |     __asm ("mflo a2");
                                             |     do {
    0x0000cf04 addiu v1, v1, 1               |         v1++;
    0x0000cf08 sltu a1, v1, s7               |         a1 = (v1 < s7) ? 1 : 0;
    0x0000cf0c sw v0, (a0)                   |         *(a0) = v0;
    0x0000cf10 addu v0, v0, a2               |         v0 += a2;
    0x0000cf14 addiu a0, a0, 4               |         a0 += 4;
    0x0000cf18 bnez a1, 0xcf04               |         
                                             |     } while (a1 != 0);
    0x0000cf1c lw v0, 0x50(fp)               |     v0 = *(arg_50h);
                                             |     if (v0 <= 0) {
    0x0000cf20 blez v0, 0xd5bc               |         goto label_34;
                                             |     }
    0x0000cf24 nop                           |     
                                             | label_19:
    0x0000cf28 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             | label_20:
    0x0000cf2c sw v0, 0x6c(fp)               |     *(arg_6ch) = v0;
    0x0000cf30 lw v0, 0x5478(v0)             |     v0 = *((v0 + 5406));
    0x0000cf34 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
                                             |     if (v0 != 0) {
    0x0000cf38 bnez v0, 0xd244               |         goto label_17;
                                             |     }
    0x0000cf3c lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000cf40 sw v1, 0x34(fp)               |     *(arg_34h) = v1;
    0x0000cf44 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x0000cf48 sw v0, 0x30(fp)               |     *(arg_30h) = v0;
    0x0000cf4c sw v1, 0x38(fp)               |     *(arg_38h) = v1;
    0x0000cf50 lw v1, 0x74(fp)               |     v1 = *(arg_74h);
    0x0000cf54 lw v0, 0x5430(v0)             |     v0 = *((v0 + 5388));
    0x0000cf58 addu v1, v1, s1               |     v1 += s1;
    0x0000cf5c sw v1, 0x68(fp)               |     *(arg_68h) = v1;
    0x0000cf60 lw v1, -0x7fd4(gp)            |     v1 = *((gp - 8181));
    0x0000cf64 addiu v1, v1, 0x558c          |     v1 += 0x558c;
    0x0000cf68 sw v1, 0x64(fp)               |     *(arg_64h) = v1;
    0x0000cf6c lw v1, -0x7fd8(gp)            |     v1 = *(gp);
    0x0000cf70 addiu v1, v1, -0x7770         |     v1 += -0x7770;
    0x0000cf74 sw v1, 0x44(fp)               |     *(arg_44h) = v1;
    0x0000cf78 lw v1, -0x7fd8(gp)            |     v1 = *(gp);
    0x0000cf7c addiu v1, v1, -0x7290         |     v1 += -0x7290;
    0x0000cf80 sw v1, 0x40(fp)               |     *(arg_40h) = v1;
    0x0000cf84 lw v1, 0x34(fp)               |     v1 = *(arg_34h);
                                             | label_6:
    0x0000cf88 lw a0, 0x542c(v1)             |     a0 = *((v1 + 5387));
    0x0000cf8c lw v1, 0x38(fp)               |     v1 = *(arg_38h);
    0x0000cf90 lw s1, 0x5470(v1)             |     s1 = *((v1 + 5404));
    0x0000cf94 sltu v1, s2, a0               |     v1 = (s2 < a0) ? 1 : 0;
                                             |     if (v1 == 0) {
    0x0000cf98 movn a0, s2, v1               |         a0 = s2;
                                             |     }
    0x0000cf9c sll v1, a0, 3                 |     v1 = a0 << 3;
    0x0000cfa0 divu zero, v1, v0             |     __asm ("divu zero, v1, v0");
    0x0000cfa4 teq v0, zero, 7               |     __asm ("teq v0, zero, 7");
    0x0000cfa8 mflo v0                       |     __asm ("mflo v0");
    0x0000cfac sw v0, 0x60(fp)               |     *(arg_60h) = v0;
                                             |     if (s1 == 0) {
    0x0000cfb0 beqz s1, 0xd0f8               |         goto label_35;
                                             |     }
    0x0000cfb4 lw v0, 0x6c(fp)               |     v0 = *(arg_6ch);
    0x0000cfb8 lw v0, 0x5478(v0)             |     v0 = *((v0 + 5406));
    0x0000cfbc lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (v0 != 0) {
    0x0000cfc0 bnez v0, 0xd0f8               |         goto label_35;
                                             |     }
    0x0000cfc4 lw s6, -0x7fdc(gp)            |     s6 = *((gp - 8183));
    0x0000cfc8 sw v0, 0x70(fp)               |     *(arg_70h) = v0;
    0x0000cfcc lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000cfd0 lw s5, -0x7fdc(gp)            |     s5 = *((gp - 8183));
    0x0000cfd4 sw v0, 0x58(fp)               |     *(arg_58h) = v0;
    0x0000cfd8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000cfdc move s3, zero                 |     s3 = 0;
    0x0000cfe0 sw v0, 0x5c(fp)               |     *(arg_5ch) = v0;
    0x0000cfe4 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000cfe8 sw s2, 0x48(fp)               |     *(arg_48h) = s2;
    0x0000cfec sw v0, 0x54(fp)               |     *(arg_54h) = v0;
    0x0000cff0 lw v0, 0x4c(fp)               |     v0 = *(arg_4ch);
                                             | label_1:
    0x0000cff4 move s4, sp                   |     s4 = sp;
    0x0000cff8 srl v0, v0, 3                 |     v0 >>= 3;
    0x0000cffc sll v0, v0, 3                 |     v0 <<= 3;
    0x0000d000 subu sp, sp, v0               |     
    0x0000d004 addiu s0, sp, 0x18            |     s0 = sp + 0x18;
                                             |     if (s7 == 0) {
    0x0000d008 beqz s7, 0xd040               |         goto label_36;
                                             |     }
    0x0000d00c lw v0, 0x54(fp)               |     v0 = *(arg_54h);
    0x0000d010 lw v1, 0x74(fp)               |     v1 = *(arg_74h);
    0x0000d014 move a0, s0                   |     a0 = s0;
    0x0000d018 lw v0, 0x5434(v0)             |     v0 = *((v0 + 5389));
    0x0000d01c mul v0, s3, v0                |     __asm ("mul v0, s3, v0");
    0x0000d020 srl v0, v0, 3                 |     v0 >>= 3;
                                             |     do {
    0x0000d024 lw a1, (v1)                   |         a1 = *(v1);
    0x0000d028 addiu v1, v1, 4               |         v1 += 4;
    0x0000d02c addu a1, a1, v0               |         a1 += v0;
    0x0000d030 sw a1, (a0)                   |         *(a0) = a1;
    0x0000d034 lw a1, 0x68(fp)               |         a1 = *(arg_68h);
    0x0000d038 addiu a0, a0, 4               |         a0 += 4;
    0x0000d03c bne a1, v1, 0xd024            |         
                                             |     } while (a1 != v1);
                                             | label_36:
    0x0000d040 lw v0, 0x70(fp)               |     v0 = *(arg_70h);
    0x0000d044 lw v0, 0x5428(v0)             |     v0 = *((v0 + 5386));
    0x0000d048 lw t9, 0x64(fp)               |     t9 = *(arg_64h);
                                             |     if (v0 != 0) {
    0x0000d04c bnez v0, 0xd29c               |         goto label_37;
                                             |     }
    0x0000d050 lw v0, 0x58(fp)               |     v0 = *(arg_58h);
                                             | label_10:
    0x0000d054 lw v0, 0x5450(v0)             |     v0 = *((v0 + 5396));
    0x0000d058 lw v0, 0x5c(fp)               |     v0 = *(arg_5ch);
                                             |     if (v0 != 0) {
    0x0000d05c beqz v0, 0xd070               |         
    0x0000d060 lw t9, 0x44(fp)               |         t9 = *(arg_44h);
    0x0000d064 jalr t9                       |         t9 ();
    0x0000d068 nop                           |         
    0x0000d06c lw v0, 0x5c(fp)               |         v0 = *(arg_5ch);
                                             |     }
    0x0000d070 lw a0, 0x54b0(s6)             |     a0 = *((s6 + 5420));
    0x0000d074 move a1, s0                   |     a1 = s0;
    0x0000d078 lw t9, 0x54bc(v0)             |     t9 = *((v0 + 5423));
    0x0000d07c move a2, s1                   |     a2 = s1;
    0x0000d080 jalr t9                       |     t9 ();
    0x0000d084 lw v1, 0x70(fp)               |     v1 = *(arg_70h);
    0x0000d088 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d08c lw a0, 0x5428(v1)             |     a0 = *((v1 + 5386));
    0x0000d090 move s0, v0                   |     s0 = v0;
                                             |     if (a0 != 0) {
    0x0000d094 bnez a0, 0xd344               |         goto label_38;
                                             |     }
                                             | label_13:
    0x0000d098 addiu v0, zero, -0xb          |     v0 = -0xb;
    0x0000d09c lw v0, 0x5424(s5)             |     v0 = *((s5 + 5385));
                                             |     if (s0 == v0) {
    0x0000d0a0 beq s0, v0, 0xd270            |         goto label_39;
                                             |     }
    0x0000d0a4 sltu v0, s0, s1               |     v0 = (s0 < s1) ? 1 : 0;
                                             |     if (s0 < 0) {
    0x0000d0a8 bltz s0, 0xd2ac               |         goto label_40;
                                             |     }
    0x0000d0ac lw v0, 0x5424(s5)             |     v0 = *((s5 + 5385));
                                             |     if (v0 == 0) {
    0x0000d0b0 beqz v0, 0xd28c               |         goto label_41;
                                             |     }
    0x0000d0b4 lw t9, -0x7e30(gp)            |     t9 = sym.imp.snd_pcm_wait;
                                             |     if (v0 == 0) {
    0x0000d0b8 beqz v0, 0xd27c               |         goto label_42;
                                             |     }
                                             |     if (s0 != 0) {
    0x0000d0bc beql s0, zero, 0xd0e4         |         
    0x0000d0c0 move sp, s4                   |         
    0x0000d0c4 lw v0, -0x7fdc(gp)            |         v0 = *((gp - 8183));
                                             | label_9:
    0x0000d0c8 lw v0, 0x5440(v0)             |         v0 = *((v0 + 5392));
                                             |         if (v0 != 0) {
    0x0000d0cc bnez v0, 0xd194               |             goto label_43;
                                             |         }
    0x0000d0d0 nop                           |         
                                             | label_2:
    0x0000d0d4 subu s1, s1, s0               |         __asm ("subu s1, s1, s0");
                                             | label_3:
    0x0000d0d8 addu s3, s3, s0               |         s3 += s0;
    0x0000d0dc move sp, s4                   |         
                                             |         if (s1 == 0) {
    0x0000d0e0 beqz s1, 0xd0f4               |             goto label_44;
                                             |         }
                                             |     }
                                             | label_8:
    0x0000d0e4 lw v0, 0x6c(fp)               |     v0 = *(arg_6ch);
    0x0000d0e8 lw v0, 0x5478(v0)             |     v0 = *((v0 + 5406));
    0x0000d0ec lw v0, 0x4c(fp)               |     v0 = *(arg_4ch);
                                             |     if (v0 == 0) {
    0x0000d0f0 beqz v0, 0xcff4               |         goto label_1;
                                             |     }
                                             | label_44:
    0x0000d0f4 lw s2, 0x48(fp)               |     s2 = *(arg_48h);
                                             | label_35:
    0x0000d0f8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000d0fc lw s1, 0x5434(v0)             |     s1 = *((v0 + 5389));
    0x0000d100 lw v0, 0x60(fp)               |     v0 = *(arg_60h);
    0x0000d104 mul s1, v0, s1                |     __asm ("mul s1, v0, s1");
    0x0000d108 srl s1, s1, 3                 |     s1 >>= 3;
                                             |     if (s7 == 0) {
    0x0000d10c beqz s7, 0xd1e4               |         goto label_45;
                                             |     }
    0x0000d110 lw s5, 0x3c(fp)               |     s5 = *(arg_3ch);
    0x0000d114 lw s4, 0x74(fp)               |     s4 = *(arg_74h);
    0x0000d118 sw s2, 0x70(fp)               |     *(arg_70h) = s2;
    0x0000d11c move s3, zero                 |     s3 = 0;
    0x0000d120 move s2, s7                   |     s2 = s7;
                                             | label_5:
    0x0000d124 sll v0, s3, 2                 |     v0 = s3 << 2;
    0x0000d128 sw v0, 0x5c(fp)               |     *(arg_5ch) = v0;
    0x0000d12c lw s6, (s5)                   |     s6 = *(s5);
    0x0000d130 lw s7, (s4)                   |     s7 = *(s4);
                                             |     if (s1 == 0) {
    0x0000d134 beqz s1, 0xd1cc               |         goto label_46;
                                             |     }
    0x0000d138 move s0, zero                 |     s0 = 0;
    0x0000d13c b 0xd150                      |     
                                             |     while (v0 > 0) {
    0x0000d140 addu s0, s0, v0               |         s0 += v0;
    0x0000d144 sltu v0, s0, s1               |         v0 = (s0 < s1) ? 1 : 0;
                                             |         if (v0 == 0) {
    0x0000d148 beqz v0, 0xd1c4               |             goto label_47;
                                             |         }
    0x0000d14c nop                           |         
    0x0000d150 lw t9, -0x7d50(gp)            |         t9 = sym.imp.write;
    0x0000d154 subu a2, s1, s0               |         __asm ("subu a2, s1, s0");
    0x0000d158 addu a1, s7, s0               |         a1 = s7 + s0;
    0x0000d15c move a0, s6                   |         a0 = s6;
    0x0000d160 jalr t9                       |         t9 ();
    0x0000d164 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d168 bgtz v0, 0xd140               |         
                                             |     }
    0x0000d16c lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
                                             | label_4:
    0x0000d170 lw v1, 0x5c(fp)               |     v1 = *(arg_5ch);
    0x0000d174 lw t9, -0x7db0(gp)            |     t9 = sym.imp.perror;
    0x0000d178 lwx a0, v1(v0)                |     __asm ("lwx a0, v1(v0)");
    0x0000d17c jalr t9                       |     t9 ();
    0x0000d180 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
                                             | label_12:
    0x0000d184 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000d188 addiu t9, t9, 0x59bc          |     t9 += fcn.000059bc;
    0x0000d18c addiu a0, zero, 1             |     a0 = 1;
    0x0000d190 bal 0x59bc                    |     fcn_000059bc ();
                                             | label_43:
    0x0000d194 lw s2, 0x74(fp)               |     s2 = *(arg_74h);
                                             |     if (s7 == 0) {
    0x0000d198 beqz s7, 0xd0d4               |         goto label_2;
                                             |     }
                                             |     do {
    0x0000d19c lw a0, (s2)                   |         a0 = *(s2);
    0x0000d1a0 lw t9, 0x40(fp)               |         t9 = *(arg_40h);
    0x0000d1a4 move a1, s0                   |         a1 = s0;
    0x0000d1a8 jalr t9                       |         t9 ();
    0x0000d1ac lw v0, 0x68(fp)               |         v0 = *(arg_68h);
    0x0000d1b0 addiu s2, s2, 4               |         s2 += 4;
    0x0000d1b4 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d1b8 bne v0, s2, 0xd19c            |         
                                             |     } while (v0 != s2);
    0x0000d1bc subu s1, s1, s0               |     __asm ("subu s1, s1, s0");
    0x0000d1c0 b 0xd0d8                      |     goto label_3;
                                             | label_47:
    0x0000d1c4 lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
                                             |     if (s1 != s0) {
    0x0000d1c8 bne s1, s0, 0xd170            |         goto label_4;
                                             |     }
                                             | label_46:
    0x0000d1cc addiu s3, s3, 1               |     s3++;
    0x0000d1d0 addiu s5, s5, 4               |     s5 += 4;
    0x0000d1d4 addiu s4, s4, 4               |     s4 += 4;
                                             |     if (s2 != s3) {
    0x0000d1d8 bne s2, s3, 0xd124            |         goto label_5;
                                             |     }
    0x0000d1dc move s7, s2                   |     s7 = s2;
    0x0000d1e0 lw s2, 0x70(fp)               |     s2 = *(arg_70h);
                                             | label_45:
    0x0000d1e4 lw v0, 0x30(fp)               |     v0 = *(arg_30h);
    0x0000d1e8 lw v1, 0x60(fp)               |     v1 = *(arg_60h);
    0x0000d1ec lw a2, -0x7fdc(gp)            |     a2 = *((gp - 8183));
    0x0000d1f0 lw v0, 0x5430(v0)             |     v0 = *((v0 + 5388));
    0x0000d1f4 mul a0, v1, v0                |     __asm ("mul a0, v1, v0");
    0x0000d1f8 lw a1, 0x5400(a2)             |     a1 = *((a2 + 5376));
    0x0000d1fc lw a3, 0x5404(a2)             |     a3 = *((a2 + 5377));
    0x0000d200 srl a0, a0, 3                 |     a0 >>= 3;
    0x0000d204 subu v1, s2, a0               |     __asm ("subu v1, s2, a0");
    0x0000d208 addu a0, a1, a0               |     a0 = a1 + a0;
    0x0000d20c sltu a1, a0, a1               |     a1 = (a0 < a1) ? 1 : 0;
    0x0000d210 addu a1, a1, a3               |     a1 += a3;
    0x0000d214 lw a3, 0x50(fp)               |     a3 = *(arg_50h);
    0x0000d218 sltu s2, s2, v1               |     s2 = (s2 < v1) ? 1 : 0;
    0x0000d21c subu a3, a3, s2               |     __asm ("subu a3, a3, s2");
    0x0000d220 sw a3, 0x50(fp)               |     *(arg_50h) = a3;
    0x0000d224 move s2, v1                   |     s2 = v1;
    0x0000d228 sw a0, 0x5400(a2)             |     *((a2 + 5376)) = a0;
    0x0000d22c sw a1, 0x5404(a2)             |     *((a2 + 5377)) = a1;
                                             |     if (a3 <= 0) {
    0x0000d230 blez a3, 0xd450               |         goto label_48;
                                             |     }
    0x0000d234 lw v1, 0x6c(fp)               |     v1 = *(arg_6ch);
                                             | label_18:
    0x0000d238 lw v1, 0x5478(v1)             |     v1 = *((v1 + 5406));
    0x0000d23c lw v1, 0x34(fp)               |     v1 = *(arg_34h);
                                             |     if (v1 == 0) {
    0x0000d240 beqz v1, 0xcf88               |         goto label_6;
                                             |     }
                                             | label_17:
    0x0000d244 lw sp, 0x20(fp)               |     
                                             |     if (s7 == 0) {
    0x0000d248 beqz s7, 0xd530               |         goto label_49;
                                             |     }
    0x0000d24c move s1, zero                 |     s1 = 0;
    0x0000d250 b 0xcd88                      |     goto label_7;
                                             | label_11:
    0x0000d254 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000d258 addiu t9, t9, 0x7c44          |     t9 += fcn.00007c44;
    0x0000d25c bal 0x7c44                    |     fcn_00007c44 ();
    0x0000d260 nop                           |     
    0x0000d264 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d268 move sp, s4                   |     
    0x0000d26c b 0xd0e4                      |     goto label_8;
                                             | label_39:
    0x0000d270 move sp, s4                   |     
                                             |     if (v0 == 0) {
    0x0000d274 bnel v0, zero, 0xd0e4         |         goto label_8;
                                             |     }
    0x0000d278 lw t9, -0x7e30(gp)            |     t9 = sym.imp.snd_pcm_wait;
                                             | label_42:
    0x0000d27c lw a0, 0x54b0(s6)             |     a0 = *((s6 + 5420));
    0x0000d280 addiu a1, zero, 0x64          |     a1 = 0x64;
    0x0000d284 jalr t9                       |     t9 ();
    0x0000d288 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
                                             | label_41:
    0x0000d28c lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (s0 > 0) {
    0x0000d290 bgtz s0, 0xd0c8               |         goto label_9;
                                             |     }
    0x0000d294 move sp, s4                   |     
    0x0000d298 b 0xd0e4                      |     goto label_8;
                                             | label_37:
    0x0000d29c jalr t9                       |     t9 ();
    0x0000d2a0 nop                           |     
    0x0000d2a4 lw v0, 0x58(fp)               |     v0 = *(arg_58h);
    0x0000d2a8 b 0xd054                      |     goto label_10;
                                             | label_40:
    0x0000d2ac addiu v0, zero, -0x20         |     v0 = -0x20;
    0x0000d2b0 addiu v0, zero, -0x5c         |     v0 = -0x5c;
                                             |     if (s0 == v0) {
    0x0000d2b4 beq s0, v0, 0xd254            |         goto label_11;
                                             |     }
    0x0000d2b8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (s0 != v0) {
    0x0000d2bc beq s0, v0, 0xd358            |         
    0x0000d2c0 lw s2, -0x7e24(gp)            |         s2 = *((gp - 8073));
    0x0000d2c4 lw a2, -0x7fd8(gp)            |         a2 = *(gp);
    0x0000d2c8 lw a3, 0x54b4(v0)             |         a3 = *((v0 + 5421));
    0x0000d2cc addiu v0, zero, 0x891         |         v0 = 0x891;
    0x0000d2d0 lw a0, (s2)                   |         a0 = *(s2);
    0x0000d2d4 sw v0, 0x14(sp)               |         *(var_14h_2) = v0;
    0x0000d2d8 lw v0, -0x7fd8(gp)            |         v0 = *(gp);
    0x0000d2dc lw t9, -0x7d04(gp)            |         t9 = sym.imp.__fprintf_chk;
                                             |         /* str.pcm_readv */
    0x0000d2e0 addiu v0, v0, 0x4174          |         v0 += 0x4174;
                                             |         /* str._s:__s:_d:_ */
    0x0000d2e4 addiu a2, a2, 0x2b6c          |         a2 += 0x2b6c;
    0x0000d2e8 addiu a1, zero, 1             |         a1 = 1;
    0x0000d2ec sw v0, 0x10(sp)               |         *(var_10h_3) = v0;
    0x0000d2f0 jalr t9                       |         t9 ();
    0x0000d2f4 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d2f8 move a0, s0                   |         a0 = s0;
    0x0000d2fc lw t9, -0x7e3c(gp)            |         t9 = sym.imp.snd_strerror;
    0x0000d300 lw s1, (s2)                   |         s1 = *(s2);
    0x0000d304 jalr t9                       |         t9 ();
    0x0000d308 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d30c addiu a1, zero, 1             |         a1 = 1;
    0x0000d310 move a3, v0                   |         a3 = v0;
    0x0000d314 lw a2, -0x7fd8(gp)            |         a2 = *(gp);
    0x0000d318 lw t9, -0x7d04(gp)            |         t9 = sym.imp.__fprintf_chk;
                                             |         /* str.readv_error:__s */
    0x0000d31c addiu a2, a2, 0x3830          |         a2 += 0x3830;
    0x0000d320 move a0, s1                   |         a0 = s1;
    0x0000d324 jalr t9                       |         t9 ();
    0x0000d328 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d32c lw a1, (s2)                   |         a1 = *(s2);
                                             | label_24:
    0x0000d330 lw t9, -0x7f18(gp)            |         t9 = sym.imp._IO_putc;
    0x0000d334 addiu a0, zero, 0xa           |         a0 = 0xa;
    0x0000d338 jalr t9                       |         t9 ();
    0x0000d33c lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d340 b 0xd184                      |         goto label_12;
                                             | label_38:
    0x0000d344 lw t9, 0x64(fp)               |         t9 = *(arg_64h);
    0x0000d348 jalr t9                       |         t9 ();
    0x0000d34c nop                           |         
    0x0000d350 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d354 b 0xd098                      |         goto label_13;
                                             |     }
    0x0000d358 lw t9, -0x7fd8(gp)            |     t9 = *(gp);
    0x0000d35c addiu t9, t9, -0x7c80         |     t9 += -0x7c80;
    0x0000d360 bal 0x8380                    |     fcn_00008380 ();
    0x0000d364 nop                           |     
    0x0000d368 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d36c move sp, s4                   |     
    0x0000d370 b 0xd0e4                      |     goto label_8;
                                             | label_30:
    0x0000d374 lw a0, 0x2c(fp)               |     a0 = *(arg_2ch);
    0x0000d378 jalr t9                       |     t9 ();
    0x0000d37c lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d380 b 0xcdf8                      |     goto label_14;
                                             | label_33:
    0x0000d384 lw s0, -0x7fdc(gp)            |     s0 = *((gp - 8183));
    0x0000d388 b 0xced0                      |     goto label_15;
                                             | label_26:
    0x0000d38c lw t9, -0x7e2c(gp)            |     t9 = sym.imp.strlen;
    0x0000d390 addiu s5, fp, 0x7c            |     s5 = fp + 0x7c;
    0x0000d394 lw s0, (v0)                   |     s0 = *(v0);
    0x0000d398 move s6, zero                 |     s6 = 0;
    0x0000d39c move a0, s0                   |     a0 = s0;
    0x0000d3a0 jalr t9                       |     t9 ();
    0x0000d3a4 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d3a8 move a1, s0                   |     a1 = s0;
    0x0000d3ac addiu a3, zero, 0x400         |     a3 = 0x400;
    0x0000d3b0 lw t9, -0x7d7c(gp)            |     t9 = sym.imp.__memcpy_chk;
    0x0000d3b4 move a2, v0                   |     a2 = v0;
    0x0000d3b8 move a0, s5                   |     a0 = s5;
    0x0000d3bc move s3, v0                   |     s3 = v0;
    0x0000d3c0 jalr t9                       |     t9 ();
    0x0000d3c4 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d3c8 addu v0, s5, s3               |     v0 = s5 + s3;
    0x0000d3cc move a0, s1                   |     a0 = s1;
    0x0000d3d0 lw v1, -0x7fd8(gp)            |     v1 = *(gp);
    0x0000d3d4 lw t9, -0x7e88(gp)            |     t9 = sym.imp.malloc;
    0x0000d3d8 addiu s3, s3, 4               |     s3 += 4;
    0x0000d3dc lw v1, 0x37f8(v1)             |     v1 = *((v1 + 3582));
    0x0000d3e0 swl v1, 3(v0)                 |     __asm ("swl v1, 3(v0)");
    0x0000d3e4 swr v1, (v0)                  |     __asm ("swr v1, (v0)");
    0x0000d3e8 jalr t9                       |     t9 ();
    0x0000d3ec lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d3f0 sw v0, 0x2c(fp)               |     *(arg_2ch) = v0;
    0x0000d3f4 move s0, v0                   |     s0 = v0;
                                             |     do {
    0x0000d3f8 lw t9, -0x7e88(gp)            |         t9 = sym.imp.malloc;
    0x0000d3fc move a0, s3                   |         a0 = s3;
    0x0000d400 jalr t9                       |         t9 ();
    0x0000d404 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d408 sw v0, (s0)                   |         *(s0) = v0;
    0x0000d40c move a3, s5                   |         a3 = s5;
    0x0000d410 lw t9, -0x7f0c(gp)            |         t9 = sym.imp.__sprintf_chk
    0x0000d414 sw s6, 0x10(sp)               |         *(var_10h_3) = s6;
    0x0000d418 addiu a2, zero, -1            |         a2 = -1;
    0x0000d41c addiu a1, zero, 1             |         a1 = 1;
    0x0000d420 move a0, v0                   |         a0 = v0;
    0x0000d424 addiu s6, s6, 1               |         s6++;
    0x0000d428 jalr t9                       |         t9 ();
    0x0000d42c addiu s0, s0, 4               |         s0 += 4;
    0x0000d430 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
    0x0000d434 bne s7, s6, 0xd3f8            |         
                                             |     } while (s7 != s6);
    0x0000d438 addiu v0, zero, 1             |     v0 = 1;
    0x0000d43c sw v0, 0x28(fp)               |     *(arg_28h) = v0;
                                             |     if (s7 != 0) {
    0x0000d440 bnez s7, 0xcd34               |         goto label_16;
                                             |     }
    0x0000d444 addiu v0, zero, 1             |     v0 = 1;
    0x0000d448 sw v0, 0x28(fp)               |     *(arg_28h) = v0;
    0x0000d44c b 0xd480                      |     goto label_23;
                                             |     if (a3 != 0) {
                                             | label_48:
    0x0000d450 bnez a3, 0xd244               |         goto label_17;
                                             |     }
    0x0000d454 nop                           |     
    0x0000d458 lw v1, 0x6c(fp)               |     v1 = *(arg_6ch);
                                             |     if (s2 != 0) {
    0x0000d45c bnez s2, 0xd238               |         goto label_18;
                                             |     }
    0x0000d460 b 0xd244                      |     goto label_17;
    0x0000d464 nop                           |     
                                             | label_25:
    0x0000d468 addiu v0, zero, 1             |     v0 = 1;
    0x0000d46c lw v0, 0x2c(fp)               |     v0 = *(arg_2ch);
                                             |     if (a1 == v0) {
    0x0000d470 beq a1, v0, 0xd550            |         goto label_50;
                                             |     }
    0x0000d474 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (a1 != 0) {
    0x0000d478 bnez a1, 0xd5dc               |         goto label_51;
                                             |     }
    0x0000d47c sw zero, 0x28(fp)             |     *(arg_28h) = 0;
                                             | label_23:
    0x0000d480 lw v1, -0x7fdc(gp)            |     v1 = *((gp - 8183));
    0x0000d484 lw a1, 4(s2)                  |     a1 = *((s2 + 1));
    0x0000d488 lw a0, 8(s2)                  |     a0 = *((s2 + 2));
    0x0000d48c addiu v0, v1, 0x54a4          |     v0 = v1 + 0x54a4;
    0x0000d490 lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000d494 lw a2, 0x5498(s4)             |     a2 = *((s4 + 5414));
    0x0000d498 sw a1, 4(v0)                  |     *((v0 + 1)) = a1;
    0x0000d49c sw a0, 8(v0)                  |     *((v0 + 2)) = a0;
    0x0000d4a0 addiu t9, t9, 0x5190          |     t9 += fcn.00005190;
    0x0000d4a4 sw a2, 0x54a4(v1)             |     *((v1 + 5417)) = a2;
    0x0000d4a8 bal 0x5190                    |     fcn_00005190 ();
    0x0000d4ac lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d4b0 move a1, v0                   |     a1 = v0;
    0x0000d4b4 move s2, v0                   |     s2 = v0;
    0x0000d4b8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
    0x0000d4bc lw a0, -0x7fdc(gp)            |     a0 = *((gp - 8183));
    0x0000d4c0 sw v1, 0x50(fp)               |     *(arg_50h) = v1;
    0x0000d4c4 lw v0, 0x548c(v0)             |     v0 = *((v0 + 5411));
    0x0000d4c8 sw v1, 0x501c(a0)             |     *((a0 + 5127)) = v1;
    0x0000d4cc addiu v1, sp, 0x18            |     v1 = sp + 0x18;
    0x0000d4d0 sw a1, 0x5018(a0)             |     *((a0 + 5126)) = a1;
    0x0000d4d4 sw sp, 0x20(fp)               |     
    0x0000d4d8 sw v1, 0x74(fp)               |     *(arg_74h) = v1;
                                             |     if (v0 == 0) {
    0x0000d4dc bnez v0, 0xd4fc               |         
    0x0000d4e0 lw v0, 0x2c(fp)               |         v0 = *(arg_2ch);
    0x0000d4e4 lw t9, -0x7fd8(gp)            |         t9 = *(gp);
    0x0000d4e8 move a0, zero                 |         a0 = 0;
    0x0000d4ec addiu t9, t9, -0x7a98         |         t9 += -0x7a98;
    0x0000d4f0 lw a1, (v0)                   |         a1 = *(v0);
    0x0000d4f4 bal 0x8568                    |         fcn_00008568 ();
    0x0000d4f8 lw gp, 0x18(fp)               |         gp = *(var_18h_3);
                                             |     }
    0x0000d4fc lw t9, -0x7fd4(gp)            |     t9 = *((gp - 8181));
    0x0000d500 addiu t9, t9, 0x67b4          |     t9 += fcn.000067b4;
    0x0000d504 bal 0x67b4                    |     fcn_000067b4 ();
    0x0000d508 nop                           |     
    0x0000d50c lw v0, 0x50(fp)               |     v0 = *(arg_50h);
    0x0000d510 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
                                             |     if (v0 > 0) {
    0x0000d514 bgtz v0, 0xcf28               |         goto label_19;
                                             |     }
                                             |     if (v0 != 0) {
    0x0000d518 bnez v0, 0xd244               |         goto label_17;
                                             |     }
    0x0000d51c nop                           |     
    0x0000d520 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (s2 == 0) {
    0x0000d524 bnel s2, zero, 0xcf2c         |         goto label_20;
                                             |     }
    0x0000d528 b 0xd244                      |     goto label_17;
    0x0000d52c nop                           |     
                                             | label_49:
    0x0000d530 lw v0, 0x28(fp)               |     v0 = *(arg_28h);
    0x0000d534 lw v0, 0x24(fp)               |     v0 = *(arg_24h);
                                             |     if (v0 == 0) {
    0x0000d538 beqz v0, 0xce04               |         goto label_21;
                                             |     }
    0x0000d53c lw t9, -0x7dd4(gp)            |     t9 = sym.imp.free;
    0x0000d540 lw a0, 0x2c(fp)               |     a0 = *(arg_2ch);
    0x0000d544 jalr t9                       |     t9 ();
    0x0000d548 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d54c b 0xce00                      |     goto label_22;
                                             | label_50:
    0x0000d550 lw t9, -0x7e2c(gp)            |     t9 = sym.imp.strlen;
    0x0000d554 lw s3, (v0)                   |     s3 = *(v0);
    0x0000d558 move a0, s3                   |     a0 = s3;
    0x0000d55c jalr t9                       |     t9 ();
    0x0000d560 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d564 addiu v1, fp, 0x7c            |     v1 = fp + 0x7c;
    0x0000d568 move a0, v1                   |     a0 = v1;
    0x0000d56c lw t9, -0x7d7c(gp)            |     t9 = sym.imp.__memcpy_chk;
    0x0000d570 addiu a3, zero, 0x400         |     a3 = 0x400;
    0x0000d574 move a2, v0                   |     a2 = v0;
    0x0000d578 move a1, s3                   |     a1 = s3;
    0x0000d57c move s0, v0                   |     s0 = v0;
    0x0000d580 jalr t9                       |     t9 ();
    0x0000d584 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d588 addu v0, v0, s0               |     v0 += s0;
    0x0000d58c move a0, zero                 |     a0 = 0;
    0x0000d590 lw v1, -0x7fd8(gp)            |     v1 = *(gp);
    0x0000d594 lw t9, -0x7e88(gp)            |     t9 = sym.imp.malloc;
    0x0000d598 lw v1, 0x37f8(v1)             |     v1 = *((v1 + 3582));
    0x0000d59c swl v1, 3(v0)                 |     __asm ("swl v1, 3(v0)");
    0x0000d5a0 swr v1, (v0)                  |     __asm ("swr v1, (v0)");
    0x0000d5a4 jalr t9                       |     t9 ();
    0x0000d5a8 sw v0, 0x2c(fp)               |     *(arg_2ch) = v0;
    0x0000d5ac addiu v0, zero, 1             |     v0 = 1;
    0x0000d5b0 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d5b4 sw v0, 0x28(fp)               |     *(arg_28h) = v0;
    0x0000d5b8 b 0xd480                      |     goto label_23;
                                             | label_34:
    0x0000d5bc move s1, zero                 |     s1 = 0;
                                             |     if (v0 == 0) {
    0x0000d5c0 bnel v0, zero, 0xd5d0         |         goto label_52;
                                             |     }
    0x0000d5c4 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             |     if (s2 != 0) {
    0x0000d5c8 bnez s2, 0xcf2c               |         goto label_20;
                                             |     }
    0x0000d5cc move s1, zero                 |     s1 = 0;
                                             | label_52:
    0x0000d5d0 lw sp, 0x20(fp)               |     
    0x0000d5d4 b 0xcd88                      |     goto label_7;
                                             | label_27:
    0x0000d5d8 lw v0, -0x7fdc(gp)            |     v0 = *((gp - 8183));
                                             | label_51:
    0x0000d5dc lw s0, -0x7e24(gp)            |     s0 = *((gp - 8073));
    0x0000d5e0 lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000d5e4 lw a3, 0x54b4(v0)             |     a3 = *((v0 + 5421));
    0x0000d5e8 addiu v0, zero, 0xd48         |     v0 = 0xd48;
    0x0000d5ec lw a0, (s0)                   |     a0 = *(s0);
    0x0000d5f0 sw v0, 0x14(sp)               |     *(var_14h_2) = v0;
    0x0000d5f4 lw v0, -0x7fd8(gp)            |     v0 = *(gp);
    0x0000d5f8 lw t9, -0x7d04(gp)            |     t9 = sym.imp.__fprintf_chk;
                                             |     /* str.capturev */
    0x0000d5fc addiu v0, v0, 0x4180          |     v0 += 0x4180;
                                             |     /* str._s:__s:_d:_ */
    0x0000d600 addiu a2, a2, 0x2b6c          |     a2 += 0x2b6c;
    0x0000d604 addiu a1, zero, 1             |     a1 = 1;
    0x0000d608 sw v0, 0x10(sp)               |     *(var_10h_3) = v0;
    0x0000d60c jalr t9                       |     t9 ();
    0x0000d610 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d614 lw a0, (s0)                   |     a0 = *(s0);
    0x0000d618 addiu a1, zero, 1             |     a1 = 1;
    0x0000d61c lw a2, -0x7fd8(gp)            |     a2 = *(gp);
    0x0000d620 lw t9, -0x7d04(gp)            |     t9 = sym.imp.__fprintf_chk;
    0x0000d624 move a3, s7                   |     a3 = s7;
                                             |     /* str.You_need_to_specify__d_files */
    0x0000d628 addiu a2, a2, 0x37fc          |     a2 += 0x37fc;
    0x0000d62c jalr t9                       |     t9 ();
    0x0000d630 lw gp, 0x18(fp)               |     gp = *(var_18h_3);
    0x0000d634 lw a1, (s0)                   |     a1 = *(s0);
    0x0000d638 b 0xd330                      |     goto label_24;
                                             | label_31:
    0x0000d63c addiu t9, t9, 0x59bc          |     t9 += fcn.000059bc;
    0x0000d640 addiu a0, zero, 1             |     a0 = 1;
    0x0000d644 bal 0x59bc                    |     fcn_000059bc ();
                                             | label_32:
    0x0000d648 lw t9, -0x7e98(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000d64c jalr t9                       |     t9 ();
    0x0000d650 nop                           |     
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/aplay @ 0xd654 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.mystrftime ()                | void mystrftime () {
    0x0000d654 lui gp, 2                     |     
    0x0000d658 addiu gp, gp, -0x614          |     
    0x0000d65c addu gp, gp, t9               |     gp += t9;
    0x0000d660 addiu sp, sp, -0x2058         |     
    0x0000d664 lw t9, -0x7d60(gp)            |     t9 = sym.imp.memset;
    0x0000d668 sw s2, 0x2038(sp)             |     *(arg_2038h) = s2;
    0x0000d66c lw s2, -0x7e4c(gp)            |     s2 = *((gp - 8083));
    0x0000d670 sw gp, 0x18(sp)               |     *(arg_18h) = gp;
    0x0000d674 sw ra, 0x2054(sp)             |     *(arg_2054h) = ra;
    0x0000d678 lw v0, (s2)                   |     v0 = *(s2);
    0x0000d67c sw s6, 0x2048(sp)             |     *(arg_2048h) = s6;
    0x0000d680 sw s5, 0x2044(sp)             |     *(arg_2044h) = s5;
    0x0000d684 sw s4, 0x2040(sp)             |     *(arg_2040h) = s4;
    0x0000d688 sw s0, 0x2030(sp)             |     *(arg_2030h) = s0;
    0x0000d68c sw fp, 0x2050(sp)             |     *(arg_2050h) = fp;
    0x0000d690 sw s7, 0x204c(sp)             |     *(arg_204ch) = s7;
    0x0000d694 sw s3, 0x203c(sp)             |     *(arg_203ch) = s3;
    0x0000d698 sw s1, 0x2034(sp)             |     *(arg_2034h) = s1;
    0x0000d69c move s4, a0                   |     s4 = a0;
    0x0000d6a0 move s5, a1                   |     s5 = a1;
    0x0000d6a4 addiu a0, sp, 0x30            |     a0 = sp + 0x30;
    0x0000d6a8 move a1, zero                 |     a1 = 0;
    0x0000d6ac move s0, a2                   |     s0 = a2;
    0x0000d6b0 sw v0, 0x202c(sp)             |     *(arg_202ch) = v0;
    0x0000d6b4 addiu a2, zero, 0xffc         |     a2 = 0xffc;
    0x0000d6b8 sw zero, 0x2c(sp)             |     *(arg_2ch) = 0;
    0x0000d6bc move s6, a3                   |     s6 = a3;
    0x0000d6c0 jalr t9                       |     t9 ();
    0x0000d6c4 lw gp, 0x18(sp)               |     gp = *(arg_18h);
    0x0000d6c8 addiu a2, zero, 0xffc         |     a2 = 0xffc;
    0x0000d6cc move a1, zero                 |     a1 = 0;
    0x0000d6d0 lw t9, -0x7d60(gp)            |     t9 = sym.imp.memset;
    0x0000d6d4 addiu a0, sp, 0x1030          |     a0 = sp + 0x1030;
    0x0000d6d8 sw zero, 0x102c(sp)           |     *(arg_102ch) = 0;
    0x0000d6dc jalr t9                       |     t9 ();
    0x0000d6e0 lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             |     if (s0 == 0) {
    0x0000d6e4 beqz s0, 0xd834               |         goto label_3;
                                             |     }
    0x0000d6e8 lb v0, (s0)                   |     v0 = *(s0);
    0x0000d6ec addiu t1, sp, 0x2c            |     t1 = sp + 0x2c;
    0x0000d6f0 move s1, t1                   |     s1 = t1;
                                             |     if (v0 == 0) {
    0x0000d6f4 beqz v0, 0xd79c               |         goto label_4;
                                             |     }
    0x0000d6f8 lw s3, -0x7fd8(gp)            |     s3 = *(gp);
    0x0000d6fc addiu fp, zero, 0x25          |     fp = 0x25;
    0x0000d700 addiu t0, zero, 0x76          |     t0 = 0x76;
    0x0000d704 addiu t2, sp, 0x102c          |     t2 = sp + 0x102c;
                                             |     /* str._02d */
    0x0000d708 addiu s3, s3, 0x3840          |     s3 += 0x3840;
    0x0000d70c b 0xd72c                      |     
                                             |     while (v0 != fp) {
                                             | label_0:
    0x0000d710 lbu a0, (s0)                  |         a0 = *(s0);
    0x0000d714 move v0, v1                   |         v0 = v1;
    0x0000d718 sb a0, (s1)                   |         *(s1) = a0;
    0x0000d71c move s0, s7                   |         s0 = s7;
    0x0000d720 addiu s1, s1, 1               |         s1++;
                                             | label_1:
    0x0000d724 lw t9, -0x7f24(gp)            |         t9 = sym.imp.strftime;
                                             |         if (v0 == 0) {
    0x0000d728 beqz v0, 0xd7a0               |             goto label_5;
                                             |         }
    0x0000d72c lb v1, 1(s0)                  |         v1 = *((s0 + 1));
    0x0000d730 addiu s7, s0, 1               |         s7 = s0 + 1;
    0x0000d734 bne v0, fp, 0xd710            |         
                                             |     }
    0x0000d738 sb zero, 0x102c(sp)           |     *(arg_102ch) = 0;
                                             |     if (v1 != 0) {
    0x0000d73c beqz v1, 0xd794               |         
    0x0000d740 sb v0, (s1)                   |         *(s1) = v0;
                                             |         if (v1 == t0) {
    0x0000d744 bnel v1, t0, 0xd7f8           |             goto label_6;
                                             |         }
    0x0000d748 lw v0, 0x2068(sp)             |         v0 = *(arg_2068h);
    0x0000d74c lw t9, -0x7f0c(gp)            |         t9 = sym.imp.__sprintf_chk
    0x0000d750 move a0, t2                   |         a0 = t2;
    0x0000d754 sw t1, 0x24(sp)               |         *(arg_24h) = t1;
    0x0000d758 sw t2, 0x20(sp)               |         *(arg_20h) = t2;
    0x0000d75c sw v0, 0x10(sp)               |         *(arg_10h) = v0;
    0x0000d760 move a3, s3                   |         a3 = s3;
    0x0000d764 addiu a2, zero, 0x1000        |         a2 = 0x1000;
    0x0000d768 addiu a1, zero, 1             |         a1 = 1;
    0x0000d76c jalr t9                       |         t9 ();
    0x0000d770 lb v0, 0x102c(sp)             |         v0 = *(arg_102ch);
    0x0000d774 lw gp, 0x18(sp)               |         gp = *(arg_18h);
    0x0000d778 addiu a0, s0, 2               |         a0 = s0 + 2;
    0x0000d77c lw t2, 0x20(sp)               |         t2 = *(arg_20h);
    0x0000d780 lw t1, 0x24(sp)               |         t1 = *(arg_24h);
    0x0000d784 addiu t0, zero, 0x76          |         t0 = 0x76;
                                             |         if (v0 != 0) {
    0x0000d788 bnez v0, 0xd80c               |             goto label_7;
                                             |         }
    0x0000d78c move s0, s7                   |         s0 = s7;
    0x0000d790 move s7, a0                   |         s7 = a0;
                                             |     }
    0x0000d794 lb v1, 1(s0)                  |     v1 = *((s0 + 1));
    0x0000d798 b 0xd710                      |     goto label_0;
                                             | label_4:
    0x0000d79c lw t9, -0x7f24(gp)            |     t9 = sym.imp.strftime;
                                             | label_5:
    0x0000d7a0 sb zero, (s1)                 |     *(s1) = 0;
    0x0000d7a4 move a3, s6                   |     a3 = s6;
    0x0000d7a8 move a2, t1                   |     a2 = t1;
    0x0000d7ac move a1, s5                   |     a1 = s5;
    0x0000d7b0 move a0, s4                   |     a0 = s4;
    0x0000d7b4 jalr t9                       |     t9 ();
    0x0000d7b8 lw gp, 0x18(sp)               |     gp = *(arg_18h);
                                             | label_2:
    0x0000d7bc lw a0, 0x202c(sp)             |     a0 = *(arg_202ch);
    0x0000d7c0 lw v1, (s2)                   |     v1 = *(s2);
    0x0000d7c4 lw ra, 0x2054(sp)             |     ra = *(arg_2054h);
                                             |     if (a0 != v1) {
    0x0000d7c8 bne a0, v1, 0xd840            |         goto label_8;
                                             |     }
    0x0000d7cc lw fp, 0x2050(sp)             |     fp = *(arg_2050h);
    0x0000d7d0 lw s7, 0x204c(sp)             |     s7 = *(arg_204ch);
    0x0000d7d4 lw s6, 0x2048(sp)             |     s6 = *(arg_2048h);
    0x0000d7d8 lw s5, 0x2044(sp)             |     s5 = *(arg_2044h);
    0x0000d7dc lw s4, 0x2040(sp)             |     s4 = *(arg_2040h);
    0x0000d7e0 lw s3, 0x203c(sp)             |     s3 = *(arg_203ch);
    0x0000d7e4 lw s2, 0x2038(sp)             |     s2 = *(arg_2038h);
    0x0000d7e8 lw s1, 0x2034(sp)             |     s1 = *(arg_2034h);
    0x0000d7ec lw s0, 0x2030(sp)             |     s0 = *(arg_2030h);
    0x0000d7f0 addiu sp, sp, 0x2058          |     
    0x0000d7f4 jr ra                         |     return v0;
                                             | label_6:
    0x0000d7f8 sb v1, 1(s1)                  |     *((s1 + 1)) = v1;
    0x0000d7fc lb v0, 2(s0)                  |     v0 = *((s0 + 2));
    0x0000d800 addiu s1, s1, 2               |     s1 += 2;
    0x0000d804 addiu s0, s0, 2               |     s0 += 2;
    0x0000d808 b 0xd724                      |     goto label_1;
                                             | label_7:
    0x0000d80c sb v0, (s1)                   |     *(s1) = v0;
    0x0000d810 addiu v0, sp, 0x102d          |     v0 = sp + 0x102d;
                                             |     do {
    0x0000d814 addiu v0, v0, 1               |         v0++;
    0x0000d818 addiu s1, s1, 1               |         s1++;
    0x0000d81c lb v1, -1(v0)                 |         v1 = *((v0 - 1));
    0x0000d820 sb v1, (s1)                   |         *(s1) = v1;
    0x0000d824 bnez v1, 0xd814               |         
                                             |     } while (v1 != 0);
    0x0000d828 lb v0, 2(s0)                  |     v0 = *((s0 + 2));
    0x0000d82c move s0, a0                   |     s0 = a0;
    0x0000d830 b 0xd724                      |     goto label_1;
                                             | label_3:
    0x0000d834 sb zero, (s4)                 |     *(s4) = 0;
    0x0000d838 move v0, zero                 |     v0 = 0;
    0x0000d83c b 0xd7bc                      |     goto label_2;
                                             | label_8:
    0x0000d840 lw t9, -0x7e98(gp)            |     t9 = sym.imp.__stack_chk_fail;
    0x0000d844 jalr t9                       |     t9 ();
    0x0000d848 nop                           |     
                                             | }

[*] Function sprintf used 7 times aplay