[*] Binary protection state of iperf

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


[*] Function printf tear down of iperf

    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/usr/bin/iperf @ 0x404714 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.reporter_multistats ()       | void reporter_multistats () {
    0x00404714 addiu sp, sp, -0x50           |     
    0x00404718 sw s2, 0x48(sp)               |     *(var_48h) = s2;
    0x0040471c move s2, a0                   |     s2 = a0;
    0x00404720 lw a1, 0x1c(s2)               |     a1 = *((s2 + 7));
    0x00404724 lw a0, 0x18(a0)               |     a0 = *((a0 + 6));
    0x00404728 sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x0040472c sw s1, 0x44(sp)               |     *(var_44h) = s1;
    0x00404730 sw s0, 0x40(sp)               |     *(var_40h) = s0;
    0x00404734 jal 0x40e270                  |     fcn_0040e270 ();
    0x00404738 lb v0, 0x38(s2)               |     v0 = *((s2 + 56));
    0x0040473c lui v1, 0x42                  |     v1 = 0x420000;
    0x00404740 lw v1, -0x1a30(v1)            |     v1 = *((v1 - 1676));
    0x00404744 sll v0, v0, 1                 |     v0 <<= 1;
    0x00404748 mfc1 a2, f0                   |     __asm ("mfc1 a2, f0");
    0x0040474c addu v0, v1, v0               |     v0 = v1 + v0;
    0x00404750 lb v0, (v0)                   |     v0 = *(v0);
    0x00404754 mfc1 a3, f1                   |     __asm ("mfc1 a3, f1");
    0x00404758 lui s1, 0x42                  |     s1 = 0x420000;
    0x0040475c sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* obj.buffer */
    0x00404760 addiu a0, s1, -0x1900         |     a0 = s1 + -0x1900;
    0x00404764 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00404768 jal 0x40a10c                  |     sym_byte_snprintf ()
    0x0040476c lw a0, 0x18(s2)               |     a0 = *((s2 + 6));
    0x00404770 lw a1, 0x1c(s2)               |     a1 = *((s2 + 7));
    0x00404774 lui s0, 0x42                  |     s0 = 0x420000;
    0x00404778 jal 0x40e270                  |     fcn_0040e270 ();
    0x0040477c ldc1 f2, 0x28(s2)             |     __asm ("ldc1 f2, 0x28(s2)");
    0x00404780 ldc1 f4, 0x30(s2)             |     __asm ("ldc1 f4, 0x30(s2)");
    0x00404784 lb v0, 0x38(s2)               |     v0 = *((s2 + 56));
    0x00404788 addiu a0, s0, -0x18e0         |     a0 = s0 + -0x18e0;
    0x0040478c sub.d f6, f4, f2              |     __asm ("sub.d f6, f4, f2");
    0x00404790 sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00404794 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00404798 mfc1 a2, f6                   |     __asm ("mfc1 a2, f6");
    0x0040479c mfc1 a3, f7                   |     __asm ("mfc1 a3, f7");
    0x004047a0 mtc1 a2, f2                   |     __asm ("mtc1 a2, f2");
    0x004047a4 mtc1 a3, f3                   |     __asm ("mtc1 a3, f3");
    0x004047a8 div.d f2, f0, f2              |     __asm ("div.d f2, f0, f2");
    0x004047ac mfc1 a2, f2                   |     __asm ("mfc1 a2, f2");
    0x004047b0 mfc1 a3, f3                   |     __asm ("mfc1 a3, f3");
    0x004047b4 jal 0x40a10c                  |     sym_byte_snprintf ()
    0x004047b8 lb v1, 0x3a(s2)               |     v1 = *((s2 + 58));
    0x004047bc addiu v0, zero, 1             |     v0 = 1;
    0x004047c0 lui a0, 0x41                  |     a0 = 0x410000;
                                             |     if (v1 == v0) {
    0x004047c4 beq v1, v0, 0x404820          |         goto label_1;
                                             |     }
    0x004047c8 ldc1 f2, 0x28(s2)             |     __asm ("ldc1 f2, 0x28(s2)");
    0x004047cc ldc1 f0, 0x30(s2)             |     __asm ("ldc1 f0, 0x30(s2)");
                                             |     /* obj.buffer */
    0x004047d0 addiu s1, s1, -0x1900         |     s1 += -0x1900;
    0x004047d4 addiu s0, s0, -0x18e0         |     s0 += -0x18e0;
    0x004047d8 mfc1 a2, f2                   |     __asm ("mfc1 a2, f2");
    0x004047dc mfc1 a3, f3                   |     __asm ("mfc1 a3, f3");
    0x004047e0 sdc1 f0, 0x10(sp)             |     __asm ("sdc1 f0, 0x10(sp)");
    0x004047e4 sw s1, 0x18(sp)               |     *(var_18h) = s1;
    0x004047e8 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
                                             |     /* obj.report_sum_bw_format */
    0x004047ec addiu a0, a0, -0x493c         |     a0 += -0x493c;
    0x004047f0 jal 0x40e330                  |     fcn_0040e330 ();
                                             |     do {
    0x004047f4 lw v1, 0x38(s2)               |         v1 = *((s2 + 14));
    0x004047f8 lui v0, 0xffff                |         v0 = 0xffff0000;
    0x004047fc and v1, v1, v0                |         v1 &= v0;
    0x00404800 lui v0, 0x102                 |         v0 = 0x1020000;
    0x00404804 lw ra, 0x4c(sp)               |         ra = *(var_4ch);
                                             |         if (v1 == v0) {
    0x00404808 beq v1, v0, 0x4048e0          |             goto label_2;
                                             |         }
                                             | label_0:
    0x0040480c lw s2, 0x48(sp)               |         s2 = *(var_48h);
    0x00404810 lw s1, 0x44(sp)               |         s1 = *(var_44h);
    0x00404814 lw s0, 0x40(sp)               |         s0 = *(var_40h);
    0x00404818 addiu sp, sp, 0x50            |         
    0x0040481c jr ra                         |         return v1;
                                             | label_1:
    0x00404820 lw v1, 0xc(s2)                |         v1 = *((s2 + 3));
    0x00404824 lui a0, 0x41                  |         a0 = 0x410000;
    0x00404828 ldc1 f0, -0x5180(a0)          |         __asm ("ldc1 f0, -0x5180(a0)");
    0x0040482c mtc1 v1, f3                   |         __asm ("mtc1 v1, f3");
    0x00404830 lw v0, 0x14(s2)               |         v0 = *((s2 + 5));
    0x00404834 cvt.d.w f6, f3                |         __asm ("cvt.d.w f6, f3");
    0x00404838 mul.d f6, f6, f0              |         __asm ("mul.d f6, f6, f0");
    0x0040483c mtc1 v0, f0                   |         __asm ("mtc1 v0, f0");
    0x00404840 lui a0, 0x41                  |         a0 = 0x410000;
    0x00404844 cvt.d.w f8, f0                |         __asm ("cvt.d.w f8, f0");
    0x00404848 ldc1 f4, 0x20(s2)             |         __asm ("ldc1 f4, 0x20(s2)");
    0x0040484c ldc1 f10, -0x3ca8(a0)         |         __asm ("ldc1 f10, -0x3ca8(a0)");
    0x00404850 ldc1 f2, 0x28(s2)             |         __asm ("ldc1 f2, 0x28(s2)");
    0x00404854 ldc1 f0, 0x30(s2)             |         __asm ("ldc1 f0, 0x30(s2)");
    0x00404858 div.d f6, f6, f8              |         __asm ("div.d f6, f6, f8");
    0x0040485c mul.d f4, f4, f10             |         __asm ("mul.d f4, f4, f10");
                                             |         /* obj.buffer */
    0x00404860 addiu s1, s1, -0x1900         |         s1 += -0x1900;
    0x00404864 addiu s0, s0, -0x18e0         |         s0 += -0x18e0;
    0x00404868 mfc1 a2, f2                   |         __asm ("mfc1 a2, f2");
    0x0040486c mfc1 a3, f3                   |         __asm ("mfc1 a3, f3");
    0x00404870 lui a0, 0x41                  |         a0 = 0x410000;
    0x00404874 sdc1 f0, 0x10(sp)             |         __asm ("sdc1 f0, 0x10(sp)");
    0x00404878 sw s1, 0x18(sp)               |         *(var_18h) = s1;
    0x0040487c sw s0, 0x1c(sp)               |         *(var_1ch) = s0;
    0x00404880 sdc1 f4, 0x20(sp)             |         __asm ("sdc1 f4, 0x20(sp)");
    0x00404884 sw v1, 0x28(sp)               |         *(var_28h) = v1;
    0x00404888 sw v0, 0x2c(sp)               |         *(var_2ch) = v0;
                                             |         /* obj.report_sum_bw_jitter_loss_format */
    0x0040488c addiu a0, a0, -0x4a10         |         a0 += -0x4a10;
    0x00404890 sdc1 f6, 0x30(sp)             |         __asm ("sdc1 f6, 0x30(sp)");
    0x00404894 jal 0x40e330                  |         fcn_0040e330 ();
    0x00404898 lw v0, 0x10(s2)               |         v0 = *((s2 + 4));
    0x0040489c blez v0, 0x4047f4             |         
                                             |     } while (v0 <= 0);
    0x004048a0 nop                           |     
    0x004048a4 ldc1 f2, 0x28(s2)             |     __asm ("ldc1 f2, 0x28(s2)");
    0x004048a8 ldc1 f0, 0x30(s2)             |     __asm ("ldc1 f0, 0x30(s2)");
    0x004048ac lui a0, 0x41                  |     a0 = 0x410000;
    0x004048b0 mfc1 a2, f2                   |     __asm ("mfc1 a2, f2");
    0x004048b4 mfc1 a3, f3                   |     __asm ("mfc1 a3, f3");
    0x004048b8 sdc1 f0, 0x10(sp)             |     __asm ("sdc1 f0, 0x10(sp)");
    0x004048bc sw v0, 0x18(sp)               |     *(var_18h) = v0;
                                             |     /* obj.report_sum_outoforder */
    0x004048c0 addiu a0, a0, -0x4a88         |     a0 += -0x4a88;
    0x004048c4 jal 0x40e330                  |     fcn_0040e330 ();
    0x004048c8 lw v1, 0x38(s2)               |     v1 = *((s2 + 14));
    0x004048cc lui v0, 0xffff                |     v0 = 0xffff0000;
    0x004048d0 and v1, v1, v0                |     v1 &= v0;
    0x004048d4 lui v0, 0x102                 |     v0 = 0x1020000;
    0x004048d8 lw ra, 0x4c(sp)               |     ra = *(var_4ch);
                                             |     if (v1 != v0) {
    0x004048dc bne v1, v0, 0x40480c          |         goto label_0;
                                             |     }
                                             | label_2:
    0x004048e0 lw a1, 0x14(s2)               |     a1 = *((s2 + 5));
    0x004048e4 lui a0, 0x41                  |     a0 = "[SUM] Sent %d datagrams\n";
                                             |     /* obj.report_sum_datagrams */
    0x004048e8 addiu a0, a0, -0x4b64         |     
    0x004048ec jal 0x40e330                  |     fcn_0040e330 ();
    0x004048f0 lw ra, 0x4c(sp)               |     ra = *(var_4ch);
    0x004048f4 lw s2, 0x48(sp)               |     s2 = *(var_48h);
    0x004048f8 lw s1, 0x44(sp)               |     s1 = *(var_44h);
    0x004048fc lw s0, 0x40(sp)               |     s0 = *(var_40h);
    0x00404900 addiu sp, sp, 0x50            |     
    0x00404904 jr ra                         |     return v1;
                                             | }
    ; assembly                               | /* r2dec pseudo code output */
                                             | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/usr/bin/iperf @ 0x404510 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) sym.reporter_printstats ()       | void reporter_printstats () {
    0x00404510 addiu sp, sp, -0x50           |     
    0x00404514 sw s2, 0x48(sp)               |     *(var_48h) = s2;
    0x00404518 move s2, a0                   |     s2 = a0;
    0x0040451c lw a1, 0x1c(s2)               |     a1 = *((s2 + 7));
    0x00404520 lw a0, 0x18(a0)               |     a0 = *((a0 + 6));
    0x00404524 sw ra, 0x4c(sp)               |     *(var_4ch) = ra;
    0x00404528 sw s1, 0x44(sp)               |     *(var_44h) = s1;
    0x0040452c sw s0, 0x40(sp)               |     *(var_40h) = s0;
    0x00404530 jal 0x40e270                  |     fcn_0040e270 ();
    0x00404534 lb v0, 0x38(s2)               |     v0 = *((s2 + 56));
    0x00404538 lui v1, 0x42                  |     v1 = 0x420000;
    0x0040453c lw v1, -0x1a30(v1)            |     v1 = *((v1 - 1676));
    0x00404540 sll v0, v0, 1                 |     v0 <<= 1;
    0x00404544 mfc1 a2, f0                   |     __asm ("mfc1 a2, f0");
    0x00404548 addu v0, v1, v0               |     v0 = v1 + v0;
    0x0040454c lb v0, (v0)                   |     v0 = *(v0);
    0x00404550 mfc1 a3, f1                   |     __asm ("mfc1 a3, f1");
    0x00404554 lui s1, 0x42                  |     s1 = 0x420000;
    0x00404558 sw v0, 0x10(sp)               |     *(var_10h) = v0;
                                             |     /* obj.buffer */
    0x0040455c addiu a0, s1, -0x1900         |     a0 = s1 + -0x1900;
    0x00404560 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00404564 jal 0x40a10c                  |     sym_byte_snprintf ()
    0x00404568 lw a0, 0x18(s2)               |     a0 = *((s2 + 6));
    0x0040456c lw a1, 0x1c(s2)               |     a1 = *((s2 + 7));
    0x00404570 lui s0, 0x42                  |     s0 = 0x420000;
    0x00404574 jal 0x40e270                  |     fcn_0040e270 ();
    0x00404578 ldc1 f2, 0x28(s2)             |     __asm ("ldc1 f2, 0x28(s2)");
    0x0040457c ldc1 f4, 0x30(s2)             |     __asm ("ldc1 f4, 0x30(s2)");
    0x00404580 lb v0, 0x38(s2)               |     v0 = *((s2 + 56));
    0x00404584 addiu a0, s0, -0x18e0         |     a0 = s0 + -0x18e0;
    0x00404588 sub.d f6, f4, f2              |     __asm ("sub.d f6, f4, f2");
    0x0040458c sw v0, 0x10(sp)               |     *(var_10h) = v0;
    0x00404590 addiu a1, zero, 0x20          |     a1 = 0x20;
    0x00404594 mfc1 a2, f6                   |     __asm ("mfc1 a2, f6");
    0x00404598 mfc1 a3, f7                   |     __asm ("mfc1 a3, f7");
    0x0040459c mtc1 a2, f2                   |     __asm ("mtc1 a2, f2");
    0x004045a0 mtc1 a3, f3                   |     __asm ("mtc1 a3, f3");
    0x004045a4 div.d f2, f0, f2              |     __asm ("div.d f2, f0, f2");
    0x004045a8 mfc1 a2, f2                   |     __asm ("mfc1 a2, f2");
    0x004045ac mfc1 a3, f3                   |     __asm ("mfc1 a3, f3");
    0x004045b0 jal 0x40a10c                  |     sym_byte_snprintf ()
    0x004045b4 lb v1, 0x3a(s2)               |     v1 = *((s2 + 58));
    0x004045b8 addiu v0, zero, 1             |     v0 = 1;
    0x004045bc lui a0, 0x41                  |     a0 = 0x410000;
                                             |     if (v1 == v0) {
    0x004045c0 beq v1, v0, 0x404620          |         goto label_1;
                                             |     }
    0x004045c4 ldc1 f2, 0x28(s2)             |     __asm ("ldc1 f2, 0x28(s2)");
    0x004045c8 ldc1 f0, 0x30(s2)             |     __asm ("ldc1 f0, 0x30(s2)");
    0x004045cc lw a1, 4(s2)                  |     a1 = *((s2 + 1));
                                             |     /* obj.buffer */
    0x004045d0 addiu s1, s1, -0x1900         |     s1 += -0x1900;
    0x004045d4 addiu s0, s0, -0x18e0         |     s0 += -0x18e0;
    0x004045d8 mfc1 a2, f2                   |     __asm ("mfc1 a2, f2");
    0x004045dc mfc1 a3, f3                   |     __asm ("mfc1 a3, f3");
    0x004045e0 sdc1 f0, 0x10(sp)             |     __asm ("sdc1 f0, 0x10(sp)");
    0x004045e4 sw s1, 0x18(sp)               |     *(var_18h) = s1;
    0x004045e8 sw s0, 0x1c(sp)               |     *(var_1ch) = s0;
                                             |     /* obj.report_bw_format */
    0x004045ec addiu a0, a0, -0x4914         |     a0 += -0x4914;
    0x004045f0 jal 0x40e330                  |     fcn_0040e330 ();
                                             |     do {
    0x004045f4 lw v1, 0x38(s2)               |         v1 = *((s2 + 14));
    0x004045f8 lui v0, 0xffff                |         v0 = 0xffff0000;
    0x004045fc and v1, v1, v0                |         v1 &= v0;
    0x00404600 lui v0, 0x102                 |         v0 = 0x1020000;
    0x00404604 lw ra, 0x4c(sp)               |         ra = *(var_4ch);
                                             |         if (v1 == v0) {
    0x00404608 beq v1, v0, 0x4046e8          |             goto label_2;
                                             |         }
                                             | label_0:
    0x0040460c lw s2, 0x48(sp)               |         s2 = *(var_48h);
    0x00404610 lw s1, 0x44(sp)               |         s1 = *(var_44h);
    0x00404614 lw s0, 0x40(sp)               |         s0 = *(var_40h);
    0x00404618 addiu sp, sp, 0x50            |         
    0x0040461c jr ra                         |         return v1;
                                             | label_1:
    0x00404620 lw v1, 0xc(s2)                |         v1 = *((s2 + 3));
    0x00404624 lui a0, 0x41                  |         a0 = 0x410000;
    0x00404628 ldc1 f0, -0x5180(a0)          |         __asm ("ldc1 f0, -0x5180(a0)");
    0x0040462c mtc1 v1, f3                   |         __asm ("mtc1 v1, f3");
    0x00404630 lw v0, 0x14(s2)               |         v0 = *((s2 + 5));
    0x00404634 cvt.d.w f4, f3                |         __asm ("cvt.d.w f4, f3");
    0x00404638 mul.d f4, f4, f0              |         __asm ("mul.d f4, f4, f0");
    0x0040463c mtc1 v0, f6                   |         __asm ("mtc1 v0, f6");
    0x00404640 lui a0, 0x41                  |         a0 = 0x410000;
    0x00404644 cvt.d.w f8, f6                |         __asm ("cvt.d.w f8, f6");
    0x00404648 ldc1 f0, 0x20(s2)             |         __asm ("ldc1 f0, 0x20(s2)");
    0x0040464c ldc1 f6, -0x3ca8(a0)          |         __asm ("ldc1 f6, -0x3ca8(a0)");
    0x00404650 ldc1 f2, 0x28(s2)             |         __asm ("ldc1 f2, 0x28(s2)");
    0x00404654 lw a1, 4(s2)                  |         a1 = *((s2 + 1));
    0x00404658 div.d f4, f4, f8              |         __asm ("div.d f4, f4, f8");
    0x0040465c mul.d f6, f0, f6              |         __asm ("mul.d f6, f0, f6");
    0x00404660 ldc1 f0, 0x30(s2)             |         __asm ("ldc1 f0, 0x30(s2)");
                                             |         /* obj.buffer */
    0x00404664 addiu s1, s1, -0x1900         |         s1 += -0x1900;
    0x00404668 addiu s0, s0, -0x18e0         |         s0 += -0x18e0;
    0x0040466c mfc1 a2, f2                   |         __asm ("mfc1 a2, f2");
    0x00404670 mfc1 a3, f3                   |         __asm ("mfc1 a3, f3");
    0x00404674 lui a0, 0x41                  |         a0 = 0x410000;
    0x00404678 sdc1 f0, 0x10(sp)             |         __asm ("sdc1 f0, 0x10(sp)");
    0x0040467c sw s1, 0x18(sp)               |         *(var_18h) = s1;
    0x00404680 sw s0, 0x1c(sp)               |         *(var_1ch) = s0;
    0x00404684 sdc1 f6, 0x20(sp)             |         __asm ("sdc1 f6, 0x20(sp)");
    0x00404688 sw v1, 0x28(sp)               |         *(var_28h) = v1;
    0x0040468c sw v0, 0x2c(sp)               |         *(var_2ch) = v0;
                                             |         /* obj.report_bw_jitter_loss_format */
    0x00404690 addiu a0, a0, -0x49d0         |         a0 += -0x49d0;
    0x00404694 sdc1 f4, 0x30(sp)             |         __asm ("sdc1 f4, 0x30(sp)");
    0x00404698 jal 0x40e330                  |         fcn_0040e330 ();
    0x0040469c lw v0, 0x10(s2)               |         v0 = *((s2 + 4));
    0x004046a0 blez v0, 0x4045f4             |         
                                             |     } while (v0 <= 0);
    0x004046a4 nop                           |     
    0x004046a8 ldc1 f2, 0x28(s2)             |     __asm ("ldc1 f2, 0x28(s2)");
    0x004046ac ldc1 f0, 0x30(s2)             |     __asm ("ldc1 f0, 0x30(s2)");
    0x004046b0 lw a1, 4(s2)                  |     a1 = *((s2 + 1));
    0x004046b4 mfc1 a2, f2                   |     __asm ("mfc1 a2, f2");
    0x004046b8 mfc1 a3, f3                   |     __asm ("mfc1 a3, f3");
    0x004046bc lui a0, 0x41                  |     a0 = 0x410000;
    0x004046c0 sdc1 f0, 0x10(sp)             |     __asm ("sdc1 f0, 0x10(sp)");
    0x004046c4 sw v0, 0x18(sp)               |     *(var_18h) = v0;
                                             |     /* obj.report_outoforder */
    0x004046c8 addiu a0, a0, -0x4a4c         |     a0 += -0x4a4c;
    0x004046cc jal 0x40e330                  |     fcn_0040e330 ();
    0x004046d0 lw v1, 0x38(s2)               |     v1 = *((s2 + 14));
    0x004046d4 lui v0, 0xffff                |     v0 = 0xffff0000;
    0x004046d8 and v1, v1, v0                |     v1 &= v0;
    0x004046dc lui v0, 0x102                 |     v0 = 0x1020000;
    0x004046e0 lw ra, 0x4c(sp)               |     ra = *(var_4ch);
                                             |     if (v1 != v0) {
    0x004046e4 bne v1, v0, 0x40460c          |         goto label_0;
                                             |     }
                                             | label_2:
    0x004046e8 lw a1, 4(s2)                  |     a1 = *((s2 + 1));
    0x004046ec lw a2, 0x14(s2)               |     a2 = *((s2 + 5));
    0x004046f0 lui a0, 0x41                  |     a0 = "[%3d] Sent %d datagrams\n";
                                             |     /* obj.report_datagrams */
    0x004046f4 addiu a0, a0, -0x4b48         |     
    0x004046f8 jal 0x40e330                  |     fcn_0040e330 ();
    0x004046fc lw ra, 0x4c(sp)               |     ra = *(var_4ch);
    0x00404700 lw s2, 0x48(sp)               |     s2 = *(var_48h);
    0x00404704 lw s1, 0x44(sp)               |     s1 = *(var_44h);
    0x00404708 lw s0, 0x40(sp)               |     s0 = *(var_40h);
    0x0040470c addiu sp, sp, 0x50            |     
    0x00404710 jr ra                         |     return v1;
                                             | }
    ; assembly                                   | /* r2dec pseudo code output */
                                                 | /* /logs/firmware/unblob_extracted/firmware_extract/2097216-5451840.squashfs_v4_le_extract/usr/bin/iperf @ 0x40493c */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) sym.reporter_reportsettings ()       | void reporter_reportsettings () {
    0x0040493c lw a1, 0x38(a0)                   |     a1 = *((a0 + 14));
    0x00404940 addiu sp, sp, -0x40               |     
    0x00404944 sw s0, 0x24(sp)                   |     *(var_24h) = s0;
    0x00404948 move s0, a0                       |     s0 = a0;
    0x0040494c lw a0, 0x64(a0)                   |     a0 = *((a0 + 25));
    0x00404950 xori a1, a1, 4                    |     a1 ^= 4;
    0x00404954 sw s2, 0x2c(sp)                   |     *(var_2ch) = s2;
    0x00404958 sltu a1, zero, a1                 |     a1 = (0 < a1) ? 1 : 0;
    0x0040495c lui s2, 0x41                      |     s2 = 0x410000;
    0x00404960 sw ra, 0x3c(sp)                   |     *(var_3ch) = ra;
    0x00404964 sw s4, 0x34(sp)                   |     *(var_34h) = s4;
    0x00404968 sw s1, 0x28(sp)                   |     *(var_28h) = s1;
    0x0040496c sw s5, 0x38(sp)                   |     *(var_38h) = s5;
    0x00404970 sw s3, 0x30(sp)                   |     *(var_30h) = s3;
    0x00404974 jal 0x40a3e4                      |     sym_getsock_tcp_windowsize ();
                                                 |     /* obj.seperator_line */
    0x00404978 addiu a0, s2, -0x46fc             |     a0 = s2 + -0x46fc;
    0x0040497c move s4, v0                       |     s4 = v0;
    0x00404980 lw s1, 0x30(s0)                   |     s1 = *((s0 + 12));
    0x00404984 jal 0x40e330                      |     fcn_0040e330 ();
    0x00404988 lw v1, 0x38(s0)                   |     v1 = *((s0 + 14));
    0x0040498c addiu v0, zero, 4                 |     v0 = 4;
                                                 |     if (v1 == v0) {
    0x00404990 beq v1, v0, 0x404b50              |         goto label_6;
                                                 |     }
    0x00404994 nop                               |     
    0x00404998 lw v0, 0x34(s0)                   |     v0 = *((s0 + 13));
    0x0040499c andi v0, v0, 0x800                |     v0 &= 0x800;
    0x004049a0 lw a1, (s0)                       |     a1 = *(s0);
                                                 |     if (v0 != 0) {
    0x004049a4 bnez v0, 0x404b0c                 |         goto label_7;
                                                 |     }
    0x004049a8 lui a2, 0x41                      |     a2 = 0x40c360;
                                                 |     /* esilref: 'TCP' */
    0x004049ac addiu a2, a2, -0x3ca0             |     
                                                 |     do {
    0x004049b0 lhu a3, 0x58(s0)                  |         a3 = *((s0 + 44));
    0x004049b4 lui a0, 0x41                      |         a0 = "Client connecting to %s, %s port %d\n";
                                                 |         /* obj.client_port */
    0x004049b8 addiu a0, a0, -0x4744             |         
    0x004049bc jal 0x40e330                      |         fcn_0040e330 ();
    0x004049c0 lw a1, 4(s0)                      |         a1 = *((s0 + 1));
                                                 |         if (a1 != 0) {
                                                 | label_2:
    0x004049c4 beqz a1, 0x4049e8                 |             
    0x004049c8 nop                               |             
    0x004049cc lui a0, 0x41                      |             a0 = "Binding to local address %s\n";
                                                 |             /* obj.bind_address */
    0x004049d0 addiu a0, a0, -0x4764             |             
    0x004049d4 jal 0x40e330                      |             fcn_0040e330 ();
    0x004049d8 addiu a0, s0, 0x124               |             a0 = s0 + 0x124;
    0x004049dc jal 0x4088a0                      |             sym_SockAddr_isMulticast ();
                                                 |             if (v0 != 0) {
    0x004049e0 bnez v0, 0x404b80                 |                 goto label_8;
                                                 |             }
    0x004049e4 nop                               |             
                                                 |         }
    0x004049e8 lw v0, 0x34(s0)                   |         v0 = *((s0 + 13));
                                                 | label_3:
    0x004049ec andi v0, v0, 0x800                |         v0 &= 0x800;
    0x004049f0 addiu v0, zero, 4                 |         v0 = 4;
                                                 |         if (v0 != 0) {
    0x004049f4 beqz v0, 0x404a24                 |             
    0x004049f8 lw v1, 0x38(s0)                   |             v1 = *((s0 + 14));
                                                 |             if (v1 == v0) {
    0x004049fc beq v1, v0, 0x404bb8              |                 goto label_9;
                                                 |             }
    0x00404a00 nop                               |             
    0x00404a04 lui a0, 0x41                      |             a0 = "Sending %d byte datagrams\n";
                                                 |             /* obj.client_datagram_size */
    0x00404a08 addiu a0, a0, -0x47c0             |             
                                                 | label_5:
    0x00404a0c lw a1, 0x28(s0)                   |             a1 = *((s0 + 10));
    0x00404a10 jal 0x40e330                      |             fcn_0040e330 ();
    0x00404a14 addiu a0, s0, 0xa0                |             a0 = s0 + 0xa0;
    0x00404a18 jal 0x4088a0                      |             sym_SockAddr_isMulticast ();
    0x00404a1c lui a0, 0x41                      |             a0 = 0x410000;
                                                 |             if (v0 != 0) {
    0x00404a20 bnez v0, 0x404ba4                 |                 goto label_10;
                                                 |             }
                                                 |         }
    0x00404a24 lb v0, 0x98(s0)                   |         v0 = *((s0 + 152));
                                                 | label_4:
    0x00404a28 lui s5, 0x42                      |         s5 = 0x420000;
    0x00404a2c lw v1, -0x1a30(s5)                |         v1 = *((s5 - 1676));
    0x00404a30 sll v0, v0, 1                     |         v0 <<= 1;
    0x00404a34 mtc1 s4, f1                       |         __asm ("mtc1 s4, f1");
    0x00404a38 addu v0, v1, v0                   |         v0 = v1 + v0;
    0x00404a3c lb v0, (v0)                       |         v0 = *(v0);
    0x00404a40 cvt.d.w f0, f1                    |         __asm ("cvt.d.w f0, f1");
    0x00404a44 lui s3, 0x42                      |         s3 = 0x420000;
    0x00404a48 mfc1 a2, f0                       |         __asm ("mfc1 a2, f0");
    0x00404a4c mfc1 a3, f1                       |         __asm ("mfc1 a3, f1");
    0x00404a50 sw v0, 0x10(sp)                   |         *(var_10h) = v0;
                                                 |         /* obj.buffer */
    0x00404a54 addiu a0, s3, -0x1900             |         a0 = s3 + -0x1900;
    0x00404a58 addiu a1, zero, 0x40              |         a1 = 0x40;
    0x00404a5c jal 0x40a10c                      |         sym_byte_snprintf ()
    0x00404a60 lw v0, 0x34(s0)                   |         v0 = *((s0 + 13));
    0x00404a64 andi v0, v0, 0x800                |         v0 &= 0x800;
    0x00404a68 lui a1, 0x41                      |         a1 = 0x410000;
                                                 |         if (v0 == 0) {
    0x00404a6c beqz v0, 0x404b18                 |             goto label_11;
                                                 |         }
    0x00404a70 lui a1, 0x41                      |         a1 = 0x410000;
    0x00404a74 lui a0, 0x41                      |         a0 = 0x410000;
                                                 |         /* obj.buffer */
    0x00404a78 addiu a2, s3, -0x1900             |         a2 = s3 + -0x1900;
                                                 |         /* obj.udp_buffer_size */
    0x00404a7c addiu a1, a1, -0x4800             |         a1 += -0x4800;
                                                 |         /* str._s:__s */
    0x00404a80 addiu a0, a0, -0x3c9c             |         a0 += -0x3c9c;
    0x00404a84 jal 0x40e330                      |         fcn_0040e330 ();
    0x00404a88 lui s3, 0x42                      |         s3 = 0x420000;
                                                 |         if (s1 == 0) {
    0x00404a8c beqz s1, 0x404b34                 |             goto label_12;
                                                 |         }
                                                 | label_0:
    0x00404a90 lw v1, -0x1a30(s5)                |         v1 = *((s5 - 1676));
                                                 |         if (s4 != s1) {
    0x00404a94 beq s4, s1, 0x404ad8              |             
    0x00404a98 lb v0, 0x98(s0)                   |             v0 = *((s0 + 152));
    0x00404a9c mtc1 s1, f1                       |             __asm ("mtc1 s1, f1");
    0x00404aa0 sll v0, v0, 1                     |             v0 <<= 1;
    0x00404aa4 addu v0, v1, v0                   |             v0 = v1 + v0;
    0x00404aa8 lb v0, (v0)                       |             v0 = *(v0);
    0x00404aac cvt.d.w f0, f1                    |             __asm ("cvt.d.w f0, f1");
    0x00404ab0 mfc1 a2, f0                       |             __asm ("mfc1 a2, f0");
    0x00404ab4 mfc1 a3, f1                       |             __asm ("mfc1 a3, f1");
                                                 |             /* obj.buffer */
    0x00404ab8 addiu a0, s3, -0x1900             |             a0 = s3 + -0x1900;
    0x00404abc addiu a1, zero, 0x40              |             a1 = 0x40;
    0x00404ac0 sw v0, 0x10(sp)                   |             *(var_10h) = v0;
    0x00404ac4 jal 0x40a10c                      |             sym_byte_snprintf ()
    0x00404ac8 lui a0, 0x41                      |             a0 = " (WARNING: requested %s)";
                                                 |             /* obj.warn_window_requested */
    0x00404acc addiu a0, a0, -0x4bf0             |             
                                                 |             /* obj.buffer */
    0x00404ad0 addiu a1, s3, -0x1900             |             a1 = s3 + -0x1900;
    0x00404ad4 jal 0x40e330                      |             fcn_0040e330 ();
                                                 |         }
                                                 | label_1:
    0x00404ad8 addiu a0, zero, 0xa               |         a0 = 0xa;
    0x00404adc jal 0x40df40                      |         fcn_0040df40 ();
                                                 |         /* obj.seperator_line */
    0x00404ae0 addiu a0, s2, -0x46fc             |         a0 = s2 + -0x46fc;
    0x00404ae4 jal 0x40e330                      |         fcn_0040e330 ();
    0x00404ae8 lw ra, 0x3c(sp)                   |         ra = *(var_3ch);
    0x00404aec lw s5, 0x38(sp)                   |         s5 = *(var_38h);
    0x00404af0 lw s4, 0x34(sp)                   |         s4 = *(var_34h);
    0x00404af4 lw s3, 0x30(sp)                   |         s3 = *(var_30h);
    0x00404af8 lw s2, 0x2c(sp)                   |         s2 = *(var_2ch);
    0x00404afc lw s1, 0x28(sp)                   |         s1 = *(var_28h);
    0x00404b00 lw s0, 0x24(sp)                   |         s0 = *(var_24h);
    0x00404b04 addiu sp, sp, 0x40                |         
    0x00404b08 jr ra                             |         return v0;
                                                 | label_7:
    0x00404b0c lui a2, 0x41                      |         a2 = 0x40af34;
                                                 |         /* esilref: 'UDP' */
    0x00404b10 addiu a2, a2, -0x50cc             |         
    0x00404b14 b 0x4049b0                        |         
                                                 |     } while (1);
                                                 | label_11:
    0x00404b18 lui a0, 0x41                      |     a0 = 0x410000;
                                                 |     /* obj.buffer */
    0x00404b1c addiu a2, s3, -0x1900             |     a2 = s3 + -0x1900;
                                                 |     /* obj.tcp_window_size */
    0x00404b20 addiu a1, a1, -0x47f0             |     a1 += -0x47f0;
                                                 |     /* str._s:__s */
    0x00404b24 addiu a0, a0, -0x3c9c             |     a0 += -0x3c9c;
    0x00404b28 jal 0x40e330                      |     fcn_0040e330 ();
    0x00404b2c lui s3, 0x42                      |     s3 = 0x420000;
                                                 |     if (s1 != 0) {
    0x00404b30 bnez s1, 0x404a90                 |         goto label_0;
                                                 |     }
                                                 | label_12:
    0x00404b34 lui a0, 0x41                      |     a0 = 0x410000;
    0x00404b38 lui a1, 0x41                      |     a1 = 0x410000;
                                                 |     /* esilref: ' &s' */
    0x00404b3c addiu a0, a0, -0x3c94             |     a0 += -0x3c94;
                                                 |     /* obj.window_default */
    0x00404b40 addiu a1, a1, -0x480c             |     a1 += -0x480c;
    0x00404b44 jal 0x40e330                      |     fcn_0040e330 ();
    0x00404b48 b 0x404ad8                        |     goto label_1;
    0x00404b4c nop                               |     
                                                 | label_6:
    0x00404b50 lw v0, 0x34(s0)                   |     v0 = *((s0 + 13));
    0x00404b54 andi v0, v0, 0x800                |     v0 &= 0x800;
                                                 |     if (v0 != 0) {
    0x00404b58 bnez v0, 0x404b98                 |         goto label_13;
                                                 |     }
    0x00404b5c nop                               |     
    0x00404b60 lui a1, 0x41                      |     a1 = 0x40c360;
                                                 |     /* esilref: 'TCP' */
    0x00404b64 addiu a1, a1, -0x3ca0             |     
                                                 |     do {
    0x00404b68 lhu a2, 0x58(s0)                  |         a2 = *((s0 + 44));
    0x00404b6c lui a0, 0x41                      |         a0 = "Server listening on %s port %d\n";
                                                 |         /* obj.server_port */
    0x00404b70 addiu a0, a0, -0x471c             |         
    0x00404b74 jal 0x40e330                      |         fcn_0040e330 ();
    0x00404b78 lw a1, 4(s0)                      |         a1 = *((s0 + 1));
    0x00404b7c b 0x4049c4                        |         goto label_2;
                                                 | label_8:
    0x00404b80 lw a1, 4(s0)                      |         a1 = *((s0 + 1));
    0x00404b84 lui a0, 0x41                      |         a0 = "Joining multicast group  %s\n";
                                                 |         /* obj.join_multicast */
    0x00404b88 addiu a0, a0, -0x47a4             |         
    0x00404b8c jal 0x40e330                      |         fcn_0040e330 ();
    0x00404b90 lw v0, 0x34(s0)                   |         v0 = *((s0 + 13));
    0x00404b94 b 0x4049ec                        |         goto label_3;
                                                 | label_13:
    0x00404b98 lui a1, 0x41                      |         a1 = 0x40af34;
                                                 |         /* esilref: 'UDP' */
    0x00404b9c addiu a1, a1, -0x50cc             |         
    0x00404ba0 b 0x404b68                        |         
                                                 |     } while (1);
                                                 | label_10:
    0x00404ba4 lbu a1, 0x99(s0)                  |     a1 = *((s0 + 153));
                                                 |     /* obj.multicast_ttl */
    0x00404ba8 addiu a0, a0, -0x4784             |     a0 += -0x4784;
    0x00404bac jal 0x40e330                      |     fcn_0040e330 ();
    0x00404bb0 lb v0, 0x98(s0)                   |     v0 = *((s0 + 152));
    0x00404bb4 b 0x404a28                        |     goto label_4;
                                                 | label_9:
    0x00404bb8 lui a0, 0x41                      |     a0 = "Receiving %d byte datagrams\n";
                                                 |     /* obj.server_datagram_size */
    0x00404bbc addiu a0, a0, -0x47e0             |     
    0x00404bc0 b 0x404a0c                        |     goto label_5;
                                                 | }

[*] Function printf used 7 times iperf