[*] Binary protection state of axfer
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of axfer
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/bin/axfer @ 0x4270 */
| #include <stdint.h>
|
; (fcn) sym.subcmd_list () | void subcmd_list () {
0x00004270 lui gp, 2 |
0x00004274 addiu gp, gp, 0x7da0 |
0x00004278 addu gp, gp, t9 | gp += t9;
0x0000427c addiu sp, sp, -0xa8 |
0x00004280 slti v0, a0, 2 | v0 = (a0 < 2) ? 1 : 0;
0x00004284 sw s2, 0x88(sp) | *(var_88h) = s2;
0x00004288 lw s2, -0x7d6c(gp) | s2 = *((gp - 8027));
0x0000428c sw gp, 0x20(sp) | *(var_20h) = gp;
0x00004290 sw s5, 0x94(sp) | *(var_94h) = s5;
0x00004294 lw v1, (s2) | v1 = *(s2);
0x00004298 sw s1, 0x84(sp) | *(var_84h) = s1;
0x0000429c sw s0, 0x80(sp) | *(var_80h) = s0;
0x000042a0 sw ra, 0xa4(sp) | *(var_a4h) = ra;
0x000042a4 sw fp, 0xa0(sp) | *(var_a0h) = fp;
0x000042a8 sw s7, 0x9c(sp) | *(var_9ch) = s7;
0x000042ac sw s6, 0x98(sp) | *(var_98h) = s6;
0x000042b0 sw s4, 0x90(sp) | *(var_90h) = s4;
0x000042b4 sw s3, 0x8c(sp) | *(var_8ch) = s3;
0x000042b8 move s0, a0 | s0 = a0;
0x000042bc move s1, a1 | s1 = a1;
0x000042c0 move s5, a2 | s5 = a2;
0x000042c4 sw v1, 0x7c(sp) | *(var_7ch) = v1;
0x000042c8 lw t9, -0x7e80(gp) | t9 = sym.imp.strcmp;
| if (v0 == 0) {
0x000042cc bnez v0, 0x4308 |
0x000042d0 lw s3, 4(a1) | s3 = *((a1 + 1));
0x000042d4 lw a1, -0x7fdc(gp) | a1 = sym.imp.snd_pcm_hw_params_set_access_mask;
| /* str.device */
0x000042d8 addiu a1, a1, 0x7f0 | a1 += 0x7f0;
0x000042dc move a0, s3 | a0 = s3;
0x000042e0 jalr t9 | t9 ();
0x000042e4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x000042e8 beqz v0, 0x43c0 | goto label_9;
| }
0x000042ec lw s4, -0x7fdc(gp) | s4 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x000042f0 lw t9, -0x7e80(gp) | t9 = sym.imp.strcmp;
| /* esilref: 'pcm' */
0x000042f4 addiu a1, s4, 0x98c | a1 = s4 + 0x98c;
0x000042f8 move a0, s3 | a0 = s3;
0x000042fc jalr t9 | t9 ();
0x00004300 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x00004304 beqz v0, 0x470c | goto label_10;
| }
| }
0x00004308 lw v0, -0x7cfc(gp) | v0 = *((gp - 7999));
0x0000430c lw s4, -0x7fd8(gp) | s4 = *((gp - 8182));
0x00004310 lw s3, -0x7fdc(gp) | s3 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004314 sw zero, (v0) | *(v0) = 0;
0x00004318 lw v0, -0x7e38(gp) | v0 = *((gp - 8078));
| /* esilref: 'list-devices' */
0x0000431c addiu s4, s4, 0x3a90 | s4 += 0x3a90;
| /* esilref: 'hlL' */
0x00004320 addiu s3, s3, 0x7f8 | s3 += 0x7f8;
0x00004324 sw zero, (v0) | *(v0) = 0;
0x00004328 addiu s7, zero, 0x6c | s7 = 0x6c;
0x0000432c addiu s6, zero, 0x4c | s6 = 0x4c;
0x00004330 b 0x4344 |
| while (v0 >= 0) {
0x00004334 lw t9, -0x7cf4(gp) | t9 = sym.imp.snd_ctl_card_info_malloc;
| if (v0 == s7) {
0x00004338 beq v0, s7, 0x43c4 | goto label_11;
| }
| if (v0 == s6) {
0x0000433c beql v0, s6, 0x470c | goto label_10;
| }
0x00004340 lw s4, -0x7fdc(gp) | s4 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004344 lw t9, -0x7d14(gp) | t9 = sym.imp.getopt_long;
0x00004348 sw zero, 0x10(sp) | *(var_10h) = 0;
0x0000434c move a3, s4 | a3 = s4;
0x00004350 move a2, s3 | a2 = s3;
0x00004354 move a1, s1 | a1 = s1;
0x00004358 move a0, s0 | a0 = s0;
0x0000435c jalr t9 | t9 ();
0x00004360 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004364 bgez v0, 0x4334 |
| }
0x00004368 lw a0, -0x7fdc(gp) | a0 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x0000436c lw t9, -0x7e1c(gp) | t9 = sym.imp.puts;
| /* str.Usage:_n__axfer_list_DIRECTION_TARGET_n_n__where:_n____DIRECTION__capture__playback_n____TARGET__device__pcm */
0x00004370 addiu a0, a0, 0x924 | a0 += 0x924;
0x00004374 jalr t9 | t9 ();
0x00004378 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000437c addiu s0, zero, -0x16 | s0 = -0x16;
| do {
| label_5:
0x00004380 lw a0, 0x7c(sp) | a0 = *(var_7ch);
0x00004384 lw v1, (s2) | v1 = *(s2);
0x00004388 move v0, s0 | v0 = s0;
| if (a0 != v1) {
0x0000438c bne a0, v1, 0x49a4 | goto label_12;
| }
0x00004390 lw ra, 0xa4(sp) | ra = *(var_a4h);
0x00004394 lw fp, 0xa0(sp) | fp = *(var_a0h);
0x00004398 lw s7, 0x9c(sp) | s7 = *(var_9ch);
0x0000439c lw s6, 0x98(sp) | s6 = *(var_98h);
0x000043a0 lw s5, 0x94(sp) | s5 = *(var_94h);
0x000043a4 lw s4, 0x90(sp) | s4 = *(var_90h);
0x000043a8 lw s3, 0x8c(sp) | s3 = *(var_8ch);
0x000043ac lw s2, 0x88(sp) | s2 = *(var_88h);
0x000043b0 lw s1, 0x84(sp) | s1 = *(var_84h);
0x000043b4 lw s0, 0x80(sp) | s0 = *(var_80h);
0x000043b8 addiu sp, sp, 0xa8 |
0x000043bc jr ra | return v0;
| label_9:
0x000043c0 lw t9, -0x7cf4(gp) | t9 = sym.imp.snd_ctl_card_info_malloc;
| label_11:
0x000043c4 addiu v0, zero, -1 | v0 = -1;
0x000043c8 addiu a0, sp, 0x50 | a0 = sp + 0x50;
0x000043cc sw v0, 0x48(sp) | *(var_48h) = v0;
0x000043d0 jalr t9 | t9 ();
0x000043d4 move s0, v0 | s0 = v0;
0x000043d8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000043dc bltz v0, 0x4380 |
| } while (v0 < 0);
0x000043e0 lw t9, -0x7e20(gp) | t9 = sym.imp.snd_card_next;
0x000043e4 addiu v0, sp, 0x48 | v0 = sp + 0x48;
0x000043e8 sw v0, 0x44(sp) | *(var_44h) = v0;
0x000043ec move a0, v0 | a0 = v0;
0x000043f0 jalr t9 | t9 ();
0x000043f4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x000043f8 bltz v0, 0x4940 | goto label_8;
| }
0x000043fc lw v0, 0x48(sp) | v0 = *(var_48h);
0x00004400 lw t9, -0x7da8(gp) | t9 = sym.imp.snd_pcm_stream_name;
| if (v0 < 0) {
0x00004404 bltz v0, 0x4940 | goto label_8;
| }
0x00004408 move a0, s5 | a0 = s5;
0x0000440c jalr t9 | t9 ();
0x00004410 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004414 move a2, v0 | a2 = v0;
0x00004418 addiu a0, zero, 1 | a0 = 1;
0x0000441c lw a1, -0x7fdc(gp) | a1 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004420 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
| /* str._List_of__s_Hardware_Devices__n */
0x00004424 addiu a1, a1, 0x7fc | a1 += 0x7fc;
0x00004428 jalr t9 | t9 ();
0x0000442c lw gp, 0x20(sp) | gp = *(var_20h);
0x00004430 lw v0, -0x7fdc(gp) | v0 = sym.imp.snd_pcm_hw_params_set_access_mask;
| /* str.card__i:__s___s___device__i:__s___s__n */
0x00004434 addiu v0, v0, 0x864 | v0 += 0x864;
0x00004438 sw v0, 0x38(sp) | *(var_38h) = v0;
0x0000443c lw v0, -0x7fdc(gp) | v0 = sym.imp.snd_pcm_hw_params_set_access_mask;
| /* str.__Subdevice__i:__s_n */
0x00004440 addiu v0, v0, 0x8d4 | v0 += 0x8d4;
0x00004444 sw v0, 0x3c(sp) | *(var_3ch) = v0;
0x00004448 lw v0, -0x7fdc(gp) | v0 = sym.imp.snd_pcm_hw_params_set_access_mask;
| /* str.control_digital_audio_playback_info___i_:__s */
0x0000444c addiu v0, v0, 0x8a4 | v0 += 0x8a4;
0x00004450 sw v0, 0x40(sp) | *(var_40h) = v0;
| label_7:
0x00004454 lw v0, 0x48(sp) | v0 = *(var_48h);
0x00004458 lw a3, -0x7fdc(gp) | a3 = sym.imp.snd_pcm_hw_params_set_access_mask;
| if (v0 < 0) {
0x0000445c bltz v0, 0x4940 | goto label_8;
| }
0x00004460 lw t9, -0x7e40(gp) | t9 = sym.imp.__sprintf_chk
0x00004464 addiu s0, sp, 0x5c | s0 = sp + 0x5c;
0x00004468 move a0, s0 | a0 = s0;
| /* str.hw:_d */
0x0000446c addiu a3, a3, 0x824 | a3 += 0x824;
0x00004470 addiu a2, zero, 0x20 | a2 = 0x20;
0x00004474 addiu a1, zero, 1 | a1 = 1;
0x00004478 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0000447c jalr t9 | t9 ();
0x00004480 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004484 move a1, s0 | a1 = s0;
0x00004488 move a2, zero | a2 = 0;
0x0000448c lw t9, -0x7c8c(gp) | t9 = sym.imp.snd_ctl_open;
0x00004490 addiu a0, sp, 0x4c | a0 = sp + 0x4c;
0x00004494 jalr t9 | t9 ();
0x00004498 move s0, v0 | s0 = v0;
0x0000449c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x000044a0 bltz v0, 0x490c | goto label_13;
| }
0x000044a4 lw t9, -0x7dcc(gp) | t9 = sym.imp.snd_ctl_card_info;
0x000044a8 lw a1, 0x50(sp) | a1 = *(var_50h);
0x000044ac lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x000044b0 jalr t9 | t9 ();
0x000044b4 move s0, v0 | s0 = v0;
0x000044b8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x000044bc bltz v0, 0x4954 | goto label_14;
| }
0x000044c0 lw t9, -0x7d08(gp) | t9 = sym.imp.snd_ctl_card_info_get_id;
0x000044c4 lw a0, 0x50(sp) | a0 = *(var_50h);
0x000044c8 lw s4, 0x4c(sp) | s4 = *(var_4ch);
0x000044cc jalr t9 | t9 ();
0x000044d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000044d4 lw a0, 0x50(sp) | a0 = *(var_50h);
0x000044d8 lw t9, -0x7cac(gp) | t9 = sym.imp.snd_ctl_card_info_get_name;
0x000044dc sw v0, 0x30(sp) | *(var_30h) = v0;
0x000044e0 jalr t9 | t9 ();
0x000044e4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000044e8 move fp, v0 | fp = v0;
0x000044ec addiu v0, zero, -1 | v0 = -1;
0x000044f0 lw t9, -0x7e78(gp) | t9 = sym.imp.snd_pcm_info_malloc;
0x000044f4 addiu a0, sp, 0x54 | a0 = sp + 0x54;
0x000044f8 sw v0, 0x58(sp) | *(var_58h) = v0;
0x000044fc jalr t9 | t9 ();
0x00004500 move s0, v0 | s0 = v0;
0x00004504 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00004508 bltz v0, 0x49b0 | goto label_15;
| }
0x0000450c lw s6, -0x7fdc(gp) | s6 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004510 addiu s7, sp, 0x58 | s7 = sp + 0x58;
| /* str.__Subdevices:__i__i_n */
0x00004514 addiu v0, s6, 0x88c | v0 = s6 + 0x88c;
0x00004518 sw v0, 0x34(sp) | *(var_34h) = v0;
| do {
0x0000451c lw t9, -0x7cb8(gp) | t9 = sym.imp.snd_ctl_pcm_next_device;
| label_0:
0x00004520 move a1, s7 | a1 = s7;
0x00004524 move a0, s4 | a0 = s4;
0x00004528 jalr t9 | t9 ();
0x0000452c move s0, v0 | s0 = v0;
0x00004530 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00004534 bltz v0, 0x48b4 | goto label_16;
| }
0x00004538 lw a1, 0x58(sp) | a1 = *(var_58h);
0x0000453c lw a0, 0x54(sp) | a0 = *(var_54h);
| if (a1 < 0) {
0x00004540 bltz a1, 0x48b8 | goto label_17;
| }
0x00004544 lw t9, -0x7d24(gp) | t9 = sym.imp.snd_pcm_info_set_device;
0x00004548 jalr t9 | t9 ();
0x0000454c nop |
0x00004550 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004554 lw a0, 0x54(sp) | a0 = *(var_54h);
0x00004558 lw t9, -0x7e6c(gp) | t9 = sym.imp.snd_pcm_info_set_subdevice;
0x0000455c move a1, zero | a1 = 0;
0x00004560 jalr t9 | t9 ();
0x00004564 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004568 lw a0, 0x54(sp) | a0 = *(var_54h);
0x0000456c lw t9, -0x7e3c(gp) | t9 = sym.imp.snd_pcm_info_set_stream;
0x00004570 move a1, s5 | a1 = s5;
0x00004574 jalr t9 | t9 ();
0x00004578 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000457c lw a1, 0x54(sp) | a1 = *(var_54h);
0x00004580 lw t9, -0x7c1c(gp) | t9 = sym.imp.snd_ctl_pcm_info;
0x00004584 move a0, s4 | a0 = s4;
0x00004588 jalr t9 | t9 ();
0x0000458c lw gp, 0x20(sp) | gp = *(var_20h);
0x00004590 bltz v0, 0x451c |
| } while (v0 < 0);
0x00004594 lw s0, 0x54(sp) | s0 = *(var_54h);
0x00004598 lw t9, -0x7c2c(gp) | t9 = sym.imp.snd_pcm_info_get_card;
0x0000459c move a0, s0 | a0 = s0;
0x000045a0 jalr t9 | t9 ();
0x000045a4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000045a8 move a0, s0 | a0 = s0;
0x000045ac lw t9, -0x7dac(gp) | t9 = sym.imp.snd_pcm_info_get_device;
0x000045b0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000045b4 jalr t9 | t9 ();
0x000045b8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000045bc move a0, s0 | a0 = s0;
0x000045c0 lw t9, -0x7c0c(gp) | t9 = sym.imp.snd_pcm_info_get_id;
0x000045c4 move s1, v0 | s1 = v0;
0x000045c8 jalr t9 | t9 ();
0x000045cc lw gp, 0x20(sp) | gp = *(var_20h);
0x000045d0 move a0, s0 | a0 = s0;
0x000045d4 lw t9, -0x7be0(gp) | t9 = sym.imp.snd_pcm_info_get_name;
0x000045d8 move s3, v0 | s3 = v0;
0x000045dc jalr t9 | t9 ();
0x000045e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000045e4 lw a3, 0x30(sp) | a3 = *(var_30h);
0x000045e8 lw a2, 0x2c(sp) | a2 = *(var_2ch);
0x000045ec lw a1, 0x38(sp) | a1 = *(var_38h);
0x000045f0 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
0x000045f4 addiu a0, zero, 1 | a0 = 1;
0x000045f8 sw s3, 0x18(sp) | *(var_18h) = s3;
0x000045fc sw s1, 0x14(sp) | *(var_14h) = s1;
0x00004600 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00004604 sw fp, 0x10(sp) | *(var_10h) = fp;
0x00004608 jalr t9 | t9 ();
0x0000460c lw gp, 0x20(sp) | gp = *(var_20h);
0x00004610 move a0, s0 | a0 = s0;
0x00004614 lw t9, -0x7de4(gp) | t9 = sym.imp.snd_pcm_info_get_subdevices_count;
0x00004618 move s1, zero | s1 = 0;
0x0000461c jalr t9 | t9 ();
0x00004620 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004624 move a0, s0 | a0 = s0;
0x00004628 lw t9, -0x7e00(gp) | t9 = sym.imp.snd_pcm_info_get_subdevices_avail;
0x0000462c move s3, v0 | s3 = v0;
0x00004630 jalr t9 | t9 ();
0x00004634 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004638 lw a1, 0x34(sp) | a1 = *(var_34h);
0x0000463c move a3, s3 | a3 = s3;
0x00004640 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
0x00004644 move a2, v0 | a2 = v0;
0x00004648 addiu a0, zero, 1 | a0 = 1;
0x0000464c jalr t9 | t9 ();
0x00004650 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s3 != 0) {
0x00004654 bnez s3, 0x4698 | goto label_18;
| }
0x00004658 lw t9, -0x7cb8(gp) | t9 = sym.imp.snd_ctl_pcm_next_device;
0x0000465c b 0x4520 | goto label_0;
| label_1:
0x00004660 lw t9, -0x7d64(gp) | t9 = sym.imp.snd_pcm_info_get_subdevice_name;
0x00004664 move a0, s0 | a0 = s0;
0x00004668 jalr t9 | t9 ();
0x0000466c lw gp, 0x20(sp) | gp = *(var_20h);
0x00004670 lw a1, 0x3c(sp) | a1 = *(var_3ch);
0x00004674 move a3, v0 | a3 = v0;
0x00004678 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
0x0000467c move a2, s1 | a2 = s1;
0x00004680 addiu a0, zero, 1 | a0 = 1;
0x00004684 jalr t9 | t9 ();
0x00004688 lw gp, 0x20(sp) | gp = *(var_20h);
| label_2:
0x0000468c addiu s1, s1, 1 | s1++;
0x00004690 lw t9, -0x7cb8(gp) | t9 = sym.imp.snd_ctl_pcm_next_device;
| if (s1 == s3) {
0x00004694 beq s1, s3, 0x4520 | goto label_0;
| }
| label_18:
0x00004698 lw t9, -0x7e6c(gp) | t9 = sym.imp.snd_pcm_info_set_subdevice;
0x0000469c move a1, s1 | a1 = s1;
0x000046a0 move a0, s0 | a0 = s0;
0x000046a4 jalr t9 | t9 ();
0x000046a8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000046ac move a1, s0 | a1 = s0;
0x000046b0 lw t9, -0x7c1c(gp) | t9 = sym.imp.snd_ctl_pcm_info;
0x000046b4 move a0, s4 | a0 = s4;
0x000046b8 jalr t9 | t9 ();
0x000046bc move s6, v0 | s6 = v0;
0x000046c0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x000046c4 bgez v0, 0x4660 | goto label_1;
| }
0x000046c8 lw t9, -0x7c2c(gp) | t9 = sym.imp.snd_pcm_info_get_card;
0x000046cc move a0, s0 | a0 = s0;
0x000046d0 jalr t9 | t9 ();
0x000046d4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000046d8 move a0, s6 | a0 = s6;
0x000046dc lw t9, -0x7d54(gp) | t9 = sym.imp.snd_strerror;
0x000046e0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000046e4 jalr t9 | t9 ();
0x000046e8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000046ec lw a2, 0x2c(sp) | a2 = *(var_2ch);
0x000046f0 lw a1, 0x40(sp) | a1 = *(var_40h);
0x000046f4 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
0x000046f8 move a3, v0 | a3 = v0;
0x000046fc addiu a0, zero, 1 | a0 = 1;
0x00004700 jalr t9 | t9 ();
0x00004704 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004708 b 0x468c | goto label_2;
| label_10:
0x0000470c lw t9, -0x7d38(gp) | t9 = sym.imp.snd_device_name_hint;
0x00004710 addiu a2, sp, 0x58 | a2 = sp + 0x58;
| /* esilref: 'pcm' */
0x00004714 addiu a1, s4, 0x98c | a1 = s4 + 0x98c;
0x00004718 addiu a0, zero, -1 | a0 = -1;
0x0000471c jalr t9 | t9 ();
0x00004720 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x00004724 bltz v0, 0x499c | goto label_19;
| }
0x00004728 lw s1, 0x58(sp) | s1 = *(var_58h);
0x0000472c lw v0, -0x7fd8(gp) | v0 = *((gp - 8182));
0x00004730 sll s5, s5, 2 | s5 <<= 2;
| /* esilref: 'Output' */
0x00004734 addiu v0, v0, 0x3a88 | v0 += 0x3a88;
0x00004738 lw a0, (s1) | a0 = *(s1);
0x0000473c lwx s5, s5(v0) | __asm ("lwx s5, s5(v0)");
| if (a0 == 0) {
0x00004740 beqz a0, 0x4874 | goto label_20;
| }
0x00004744 lw v0, -0x7fdc(gp) | v0 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004748 lw s6, -0x7fdc(gp) | s6 = sym.imp.snd_pcm_hw_params_set_access_mask;
| /* str.____ */
0x0000474c addiu v0, v0, 0x914 | v0 += 0x914;
0x00004750 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00004754 lw v0, -0x7fdc(gp) | v0 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004758 lw fp, -0x7fdc(gp) | fp = sym.imp.snd_pcm_hw_params_set_access_mask;
| /* str._n____ */
0x0000475c addiu v0, v0, 0x91c | v0 += 0x91c;
0x00004760 lw s7, -0x7fdc(gp) | s7 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004764 lw s4, -0x7e0c(gp) | s4 = *((gp - 8067));
| /* str.NAME */
0x00004768 addiu s6, s6, 0x904 | s6 += 0x904;
0x0000476c sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x00004770 lw t9, -0x7bec(gp) | t9 = sym.imp.snd_device_name_get_hint;
| /* str.IOID */
| label_4:
0x00004774 addiu a1, fp, 0x8fc | a1 = fp + 0x8fc;
0x00004778 jalr t9 | t9 ();
0x0000477c move s0, v0 | s0 = v0;
0x00004780 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x00004784 beqz v0, 0x47a0 |
0x00004788 lw t9, -0x7e80(gp) | t9 = sym.imp.strcmp;
0x0000478c move a1, s5 | a1 = s5;
0x00004790 move a0, v0 | a0 = v0;
0x00004794 jalr t9 | t9 ();
0x00004798 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0000479c bnez v0, 0x48a0 | goto label_21;
| }
| }
0x000047a0 lw t9, -0x7bec(gp) | t9 = sym.imp.snd_device_name_get_hint;
0x000047a4 lw a0, (s1) | a0 = *(s1);
0x000047a8 move a1, s6 | a1 = s6;
0x000047ac jalr t9 | t9 ();
0x000047b0 lw gp, 0x20(sp) | gp = *(var_20h);
0x000047b4 lw a0, (s1) | a0 = *(s1);
| /* str.DESC */
0x000047b8 addiu a1, s7, 0x90c | a1 = s7 + 0x90c;
0x000047bc lw t9, -0x7bec(gp) | t9 = sym.imp.snd_device_name_get_hint;
0x000047c0 move s3, v0 | s3 = v0;
0x000047c4 jalr t9 | t9 ();
0x000047c8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000047cc move s0, v0 | s0 = v0;
0x000047d0 lw t9, -0x7e1c(gp) | t9 = sym.imp.puts;
0x000047d4 move a0, s3 | a0 = s3;
0x000047d8 jalr t9 | t9 ();
0x000047dc lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 == 0) {
0x000047e0 beqz s0, 0x488c | goto label_22;
| }
0x000047e4 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
0x000047e8 lw a1, 0x30(sp) | a1 = *(var_30h);
0x000047ec addiu a0, zero, 1 | a0 = 1;
0x000047f0 jalr t9 | t9 ();
0x000047f4 lb a0, (s0) | a0 = *(s0);
0x000047f8 lw gp, 0x20(sp) | gp = *(var_20h);
0x000047fc addiu s3, zero, 0xa | s3 = 0xa;
| if (a0 != 0) {
0x00004800 bnez a0, 0x4824 | goto label_3;
| }
0x00004804 lw t9, -0x7e4c(gp) | t9 = sym.imp._IO_putc;
0x00004808 b 0x4850 | goto label_23;
| do {
0x0000480c lw a1, (s4) | a1 = *(s4);
0x00004810 addiu s0, s0, 1 | s0++;
0x00004814 jalr t9 | t9 ();
0x00004818 lb a0, (s0) | a0 = *(s0);
0x0000481c lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 == 0) {
0x00004820 beqz a0, 0x484c | goto label_24;
| }
| label_3:
0x00004824 lw t9, -0x7e4c(gp) | t9 = sym.imp._IO_putc;
0x00004828 bne a0, s3, 0x480c |
| } while (a0 != s3);
0x0000482c lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
0x00004830 lw a1, 0x2c(sp) | a1 = *(var_2ch);
0x00004834 addiu s0, s0, 1 | s0++;
0x00004838 addiu a0, zero, 1 | a0 = 1;
0x0000483c jalr t9 | t9 ();
0x00004840 lb a0, (s0) | a0 = *(s0);
0x00004844 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 != 0) {
0x00004848 bnez a0, 0x4824 | goto label_3;
| }
| label_24:
0x0000484c lw t9, -0x7e4c(gp) | t9 = sym.imp._IO_putc;
| label_23:
0x00004850 lw a1, (s4) | a1 = *(s4);
0x00004854 addiu a0, zero, 0xa | a0 = 0xa;
0x00004858 jalr t9 | t9 ();
0x0000485c lw gp, 0x20(sp) | gp = *(var_20h);
| label_6:
0x00004860 addiu s1, s1, 4 | s1 += 4;
0x00004864 lw a0, (s1) | a0 = *(s1);
0x00004868 lw t9, -0x7bec(gp) | t9 = sym.imp.snd_device_name_get_hint;
| if (a0 != 0) {
0x0000486c bnez a0, 0x4774 | goto label_4;
| }
0x00004870 lw s1, 0x58(sp) | s1 = *(var_58h);
| label_20:
0x00004874 lw t9, -0x7ea4(gp) | t9 = sym.imp.snd_device_name_free_hint;
0x00004878 move a0, s1 | a0 = s1;
0x0000487c jalr t9 | t9 ();
0x00004880 move s0, zero | s0 = 0;
0x00004884 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004888 b 0x4380 | goto label_5;
| label_22:
0x0000488c lw t9, -0x7cf8(gp) | t9 = sym.imp.free;
0x00004890 move a0, s3 | a0 = s3;
0x00004894 jalr t9 | t9 ();
0x00004898 lw gp, 0x20(sp) | gp = *(var_20h);
0x0000489c b 0x4860 | goto label_6;
| label_21:
0x000048a0 lw t9, -0x7cf8(gp) | t9 = sym.imp.free;
0x000048a4 move a0, s0 | a0 = s0;
0x000048a8 jalr t9 | t9 ();
0x000048ac lw gp, 0x20(sp) | gp = *(var_20h);
0x000048b0 b 0x4860 | goto label_6;
| label_16:
0x000048b4 lw a0, 0x54(sp) | a0 = *(var_54h);
| label_17:
0x000048b8 lw t9, -0x7cf8(gp) | t9 = sym.imp.free;
0x000048bc jalr t9 | t9 ();
0x000048c0 nop |
0x000048c4 lw gp, 0x20(sp) | gp = *(var_20h);
0x000048c8 lw t9, -0x7d0c(gp) | t9 = sym.imp.snd_ctl_close;
0x000048cc lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x000048d0 jalr t9 | t9 ();
0x000048d4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (s0 < 0) {
0x000048d8 bltz s0, 0x4940 | goto label_8;
| }
0x000048dc lw t9, -0x7e20(gp) | t9 = sym.imp.snd_card_next;
0x000048e0 lw a0, 0x44(sp) | a0 = *(var_44h);
0x000048e4 jalr t9 | t9 ();
0x000048e8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x000048ec bgez v0, 0x4454 | goto label_7;
| }
0x000048f0 lw a1, -0x7fdc(gp) | a1 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x000048f4 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
| /* str.snd_card_next */
0x000048f8 addiu a1, a1, 0x8ec | a1 += aav.0x000008ec;
0x000048fc addiu a0, zero, 1 | a0 = 1;
0x00004900 jalr t9 | t9 ();
0x00004904 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004908 b 0x4940 | goto label_8;
| label_13:
0x0000490c lw t9, -0x7d54(gp) | t9 = sym.imp.snd_strerror;
0x00004910 move a0, v0 | a0 = v0;
0x00004914 lw s1, 0x48(sp) | s1 = *(var_48h);
0x00004918 jalr t9 | t9 ();
0x0000491c lw gp, 0x20(sp) | gp = *(var_20h);
0x00004920 move a3, v0 | a3 = v0;
0x00004924 move a2, s1 | a2 = s1;
0x00004928 lw a1, -0x7fdc(gp) | a1 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x0000492c lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
| /* str.control_open___i_:__s */
0x00004930 addiu a1, a1, 0x82c | a1 += 0x82c;
0x00004934 addiu a0, zero, 1 | a0 = 1;
0x00004938 jalr t9 | t9 ();
0x0000493c lw gp, 0x20(sp) | gp = *(var_20h);
| do {
| label_8:
0x00004940 lw t9, -0x7cf8(gp) | t9 = sym.imp.free;
0x00004944 lw a0, 0x50(sp) | a0 = *(var_50h);
0x00004948 jalr t9 | t9 ();
0x0000494c lw gp, 0x20(sp) | gp = *(var_20h);
0x00004950 b 0x4380 | goto label_5;
| label_14:
0x00004954 lw t9, -0x7d54(gp) | t9 = sym.imp.snd_strerror;
0x00004958 move a0, v0 | a0 = v0;
0x0000495c lw s1, 0x48(sp) | s1 = *(var_48h);
0x00004960 jalr t9 | t9 ();
0x00004964 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004968 move a3, v0 | a3 = v0;
0x0000496c move a2, s1 | a2 = s1;
0x00004970 lw a1, -0x7fdc(gp) | a1 = sym.imp.snd_pcm_hw_params_set_access_mask;
0x00004974 lw t9, -0x7c58(gp) | t9 = sym.imp.__printf_chk;
| /* str.control_hardware_info___i_:__s */
0x00004978 addiu a1, a1, 0x844 | a1 += 0x844;
0x0000497c addiu a0, zero, 1 | a0 = 1;
0x00004980 jalr t9 | t9 ();
0x00004984 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004988 lw t9, -0x7d0c(gp) | t9 = sym.imp.snd_ctl_close;
0x0000498c lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x00004990 jalr t9 | t9 ();
0x00004994 lw gp, 0x20(sp) | gp = *(var_20h);
0x00004998 b 0x4940 |
| } while (1);
| label_19:
0x0000499c addiu s0, zero, -0x16 | s0 = -0x16;
0x000049a0 b 0x4380 | goto label_5;
| label_12:
0x000049a4 lw t9, -0x7dbc(gp) | t9 = sym.imp.__stack_chk_fail;
0x000049a8 jalr t9 | t9 ();
0x000049ac nop |
| label_15:
0x000049b0 lw t9, -0x7d0c(gp) | t9 = sym.imp.snd_ctl_close;
0x000049b4 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x000049b8 jalr t9 | t9 ();
0x000049bc lw gp, 0x20(sp) | gp = *(var_20h);
0x000049c0 b 0x4940 | goto label_8;
| }
[*] Function sprintf used 2 times axfer