[*] Binary protection state of getshuttergain.cgi

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


[*] Function printf tear down of getshuttergain.cgi

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/html/axis-cgi/getshuttergain.cgi @ 0x5430 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) fcn.00005430 ()              | void fcn_00005430 () {
    0x00005430 lui gp, 2                 |     
    0x00005434 addiu gp, gp, -0x33e0     |     
    0x00005438 addu gp, gp, t9           |     gp += t9;
    0x0000543c addiu sp, sp, -0x40       |     
    0x00005440 lw t9, -0x7e54(gp)        |     t9 = sym.imp.g_array_new;
    0x00005444 sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x00005448 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x0000544c sw s4, 0x2c(sp)           |     *(var_2ch) = s4;
    0x00005450 sw s3, 0x28(sp)           |     *(var_28h) = s3;
    0x00005454 sw s2, 0x24(sp)           |     *(var_24h) = s2;
    0x00005458 sw s1, 0x20(sp)           |     *(var_20h) = s1;
    0x0000545c sw s0, 0x1c(sp)           |     *(var_1ch) = s0;
    0x00005460 move s3, a0               |     s3 = a0;
    0x00005464 move s4, a1               |     s4 = a1;
    0x00005468 addiu a0, zero, 1         |     a0 = 1;
    0x0000546c addiu a1, zero, 1         |     a1 = 1;
    0x00005470 sw s7, 0x38(sp)           |     *(var_38h) = s7;
    0x00005474 sw s6, 0x34(sp)           |     *(var_34h) = s6;
    0x00005478 sw s5, 0x30(sp)           |     *(var_30h) = s5;
    0x0000547c move s2, a2               |     s2 = a2;
    0x00005480 addiu a2, zero, 4         |     a2 = 4;
    0x00005484 jalr t9                   |     t9 ();
    0x00005488 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x0000548c lw t9, -0x7e30(gp)        |     t9 = sym.imp.g_ptr_array_new_with_free_func;
    0x00005490 lw a0, -0x7e20(gp)        |     a0 = *((gp - 8072));
    0x00005494 move s0, v0               |     s0 = v0;
    0x00005498 jalr t9                   |     t9 ();
    0x0000549c lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000054a0 move a2, s0               |     a2 = s0;
    0x000054a4 move a1, s4               |     a1 = s4;
    0x000054a8 lw t9, -0x7f54(gp)        |     t9 = sym.shutter_get_values;
    0x000054ac move a0, s3               |     a0 = s3;
    0x000054b0 move s1, v0               |     s1 = v0;
    0x000054b4 bal 0x48c4                |     sym_shutter_get_values ();
    0x000054b8 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 != 0) {
    0x000054bc bnez v0, 0x56a8           |         goto label_1;
                                         |     }
    0x000054c0 lw t9, -0x7f50(gp)        |     t9 = sym.shutter_get_labels;
    0x000054c4 move a0, s3               |     a0 = s3;
    0x000054c8 move a2, s1               |     a2 = s1;
    0x000054cc move a1, s0               |     a1 = s0;
    0x000054d0 bal 0x496c                |     sym_shutter_get_labels ();
    0x000054d4 move s3, v0               |     s3 = v0;
    0x000054d8 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 != 0) {
    0x000054dc bnez v0, 0x56a8           |         goto label_1;
                                         |     }
    0x000054e0 lw v0, 4(s0)              |     v0 = *((s0 + 1));
    0x000054e4 lw t9, -0x7e5c(gp)        |     t9 = sym.imp.g_array_free;
                                         |     if (v0 != 0) {
    0x000054e8 beqz v0, 0x54fc           |         
    0x000054ec lw v0, 4(s1)              |         v0 = *((s1 + 1));
    0x000054f0 lw v0, -0x7fc8(gp)        |         v0 = *((gp - 8178));
                                         |         if (v0 != 0) {
    0x000054f4 bnez v0, 0x554c           |             goto label_2;
                                         |         }
                                         | label_0:
    0x000054f8 lw t9, -0x7e5c(gp)        |         t9 = sym.imp.g_array_free;
                                         |     }
    0x000054fc move a0, s0               |     a0 = s0;
    0x00005500 addiu a1, zero, 1         |     a1 = 1;
    0x00005504 jalr t9                   |     t9 ();
    0x00005508 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x0000550c move a0, s1               |     a0 = s1;
    0x00005510 lw t9, -0x7ea8(gp)        |     t9 = sym.imp.g_ptr_array_free;
    0x00005514 addiu a1, zero, 1         |     a1 = 1;
    0x00005518 jalr t9                   |     t9 ();
    0x0000551c lw ra, 0x3c(sp)           |     ra = *(var_3ch);
    0x00005520 move v0, s3               |     v0 = s3;
    0x00005524 lw s7, 0x38(sp)           |     s7 = *(var_38h);
    0x00005528 lw s6, 0x34(sp)           |     s6 = *(var_34h);
    0x0000552c lw s5, 0x30(sp)           |     s5 = *(var_30h);
    0x00005530 lw s4, 0x2c(sp)           |     s4 = *(var_2ch);
    0x00005534 lw s3, 0x28(sp)           |     s3 = *(var_28h);
    0x00005538 lw s2, 0x24(sp)           |     s2 = *(var_24h);
    0x0000553c lw s1, 0x20(sp)           |     s1 = *(var_20h);
    0x00005540 lw s0, 0x1c(sp)           |     s0 = *(var_1ch);
    0x00005544 addiu sp, sp, 0x40        |     
    0x00005548 jr ra                     |     return v0;
                                         | label_2:
    0x0000554c sll s4, s4, 2             |     s4 <<= 2;
                                         |     /* section..data.rel.ro */
    0x00005550 addiu v0, v0, -0x600c     |     v0 += -0x600c;
    0x00005554 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00005558 lwx s4, s4(v0)            |     __asm ("lwx s4, s4(v0)");
    0x0000555c lw t9, -0x7f1c(gp)        |     t9 = sym.imp.g_string_append_printf
    0x00005560 move a2, s4               |     a2 = s4;
    0x00005564 addiu a1, a1, -0x6704     |     a1 += -0x6704;
    0x00005568 move a0, s2               |     a0 = s2;
    0x0000556c jalr t9                   |     t9 ();
    0x00005570 lw v0, 4(s1)              |     v0 = *((s1 + 1));
    0x00005574 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 == 0) {
    0x00005578 beqz v0, 0x55e8           |         goto label_3;
                                         |     }
    0x0000557c lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
    0x00005580 lw s5, -0x7fdc(gp)        |     s5 = *((gp - 8183));
    0x00005584 move s7, zero             |     s7 = 0;
    0x00005588 addiu s6, s6, -0x66a8     |     s6 += -0x66a8;
    0x0000558c addiu s5, s5, -0x6ccc     |     s5 += -0x6ccc;
    0x00005590 lw v0, (s1)               |     v0 = *(s1);
                                         |     do {
    0x00005594 sll a2, s7, 2             |         a2 = s7 << 2;
    0x00005598 lw t9, -0x7f1c(gp)        |         t9 = sym.imp.g_string_append_printf
    0x0000559c lwx a2, a2(v0)            |         __asm ("lwx a2, a2(v0)");
    0x000055a0 move a1, s6               |         a1 = s6;
    0x000055a4 move a0, s2               |         a0 = s2;
    0x000055a8 jalr t9                   |         t9 ();
    0x000055ac lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x000055b0 lw v0, 4(s1)              |         v0 = *((s1 + 1));
    0x000055b4 move a1, s5               |         a1 = s5;
    0x000055b8 addiu v1, v0, -1          |         v1 = v0 + -1;
    0x000055bc move a0, s2               |         a0 = s2;
    0x000055c0 lw t9, -0x7f18(gp)        |         t9 = sym.imp.g_string_append;
                                         |         if (s7 != v1) {
    0x000055c4 beq s7, v1, 0x55d8        |             
    0x000055c8 jalr t9                   |             t9 ();
    0x000055cc nop                       |             
    0x000055d0 lw gp, 0x10(sp)           |             gp = *(var_10h);
    0x000055d4 lw v0, 4(s1)              |             v0 = *((s1 + 1));
                                         |         }
    0x000055d8 addiu s7, s7, 1           |         s7++;
    0x000055dc sltu v0, s7, v0           |         v0 = (s7 < v0) ? 1 : 0;
    0x000055e0 lw v0, (s1)               |         v0 = *(s1);
    0x000055e4 bnel v0, zero, 0x5594     |         
                                         |     } while (v0 == 0);
                                         | label_3:
    0x000055e8 lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
    0x000055ec lw t9, -0x7f18(gp)        |     t9 = sym.imp.g_string_append;
    0x000055f0 addiu a1, s6, -0x66dc     |     a1 = s6 + -0x66dc;
    0x000055f4 move a0, s2               |     a0 = s2;
    0x000055f8 jalr t9                   |     t9 ();
    0x000055fc lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005600 move a2, s4               |     a2 = s4;
    0x00005604 move a0, s2               |     a0 = s2;
    0x00005608 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000560c lw t9, -0x7f1c(gp)        |     t9 = sym.imp.g_string_append_printf
    0x00005610 addiu a1, a1, -0x66d4     |     a1 += -0x66d4;
    0x00005614 jalr t9                   |     t9 ();
    0x00005618 lw v0, 4(s0)              |     v0 = *((s0 + 1));
    0x0000561c lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 == 0) {
    0x00005620 beqz v0, 0x5690           |         goto label_4;
                                         |     }
    0x00005624 lw s5, -0x7fdc(gp)        |     s5 = *((gp - 8183));
    0x00005628 lw s4, -0x7fdc(gp)        |     s4 = *((gp - 8183));
    0x0000562c move s7, zero             |     s7 = 0;
    0x00005630 addiu s5, s5, -0x6f2c     |     s5 += -0x6f2c;
    0x00005634 addiu s4, s4, -0x6ccc     |     s4 += -0x6ccc;
    0x00005638 lw v0, (s0)               |     v0 = *(s0);
                                         |     do {
    0x0000563c sll a2, s7, 2             |         a2 = s7 << 2;
    0x00005640 lw t9, -0x7f1c(gp)        |         t9 = sym.imp.g_string_append_printf
    0x00005644 lwx a2, a2(v0)            |         __asm ("lwx a2, a2(v0)");
    0x00005648 move a1, s5               |         a1 = s5;
    0x0000564c move a0, s2               |         a0 = s2;
    0x00005650 jalr t9                   |         t9 ();
    0x00005654 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00005658 lw v0, 4(s0)              |         v0 = *((s0 + 1));
    0x0000565c move a1, s4               |         a1 = s4;
    0x00005660 addiu v1, v0, -1          |         v1 = v0 + -1;
    0x00005664 move a0, s2               |         a0 = s2;
    0x00005668 lw t9, -0x7f18(gp)        |         t9 = sym.imp.g_string_append;
                                         |         if (s7 != v1) {
    0x0000566c beq s7, v1, 0x5680        |             
    0x00005670 jalr t9                   |             t9 ();
    0x00005674 nop                       |             
    0x00005678 lw gp, 0x10(sp)           |             gp = *(var_10h);
    0x0000567c lw v0, 4(s0)              |             v0 = *((s0 + 1));
                                         |         }
    0x00005680 addiu s7, s7, 1           |         s7++;
    0x00005684 sltu v0, s7, v0           |         v0 = (s7 < v0) ? 1 : 0;
    0x00005688 lw v0, (s0)               |         v0 = *(s0);
    0x0000568c bnel v0, zero, 0x563c     |         
                                         |     } while (v0 == 0);
                                         | label_4:
    0x00005690 lw t9, -0x7f18(gp)        |     t9 = sym.imp.g_string_append;
    0x00005694 addiu a1, s6, -0x66dc     |     a1 = s6 + -0x66dc;
    0x00005698 move a0, s2               |     a0 = s2;
    0x0000569c jalr t9                   |     t9 ();
    0x000056a0 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000056a4 b 0x54f8                  |     goto label_0;
                                         | label_1:
    0x000056a8 addiu s3, zero, -1        |     s3 = -1;
    0x000056ac b 0x54f8                  |     goto label_0;
                                         | }
    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/html/axis-cgi/getshuttergain.cgi @ 0x56b0 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) sym.handle_ssi_request ()    | void handle_ssi_request () {
    0x000056b0 lui gp, 2                 |     
    0x000056b4 addiu gp, gp, -0x3660     |     
    0x000056b8 addu gp, gp, t9           |     gp += t9;
    0x000056bc addiu sp, sp, -0x40       |     
    0x000056c0 lw t9, -0x7e74(gp)        |     t9 = sym.imp.g_string_sized_new;
    0x000056c4 sw ra, 0x3c(sp)           |     *(var_3ch) = ra;
    0x000056c8 sw gp, 0x10(sp)           |     *(var_10h) = gp;
    0x000056cc sw s4, 0x28(sp)           |     *(var_28h) = s4;
    0x000056d0 sw s3, 0x24(sp)           |     *(var_24h) = s3;
    0x000056d4 sw s2, 0x20(sp)           |     *(var_20h) = s2;
    0x000056d8 move s3, a0               |     s3 = a0;
    0x000056dc sw s1, 0x1c(sp)           |     *(var_1ch) = s1;
    0x000056e0 sw s0, 0x18(sp)           |     *(var_18h) = s0;
    0x000056e4 sw fp, 0x38(sp)           |     *(var_38h) = fp;
    0x000056e8 sw s7, 0x34(sp)           |     *(var_34h) = s7;
    0x000056ec sw s6, 0x30(sp)           |     *(var_30h) = s6;
    0x000056f0 sw s5, 0x2c(sp)           |     *(var_2ch) = s5;
    0x000056f4 addiu a0, zero, 0x3e8     |     a0 = aav.0x000003e8;
    0x000056f8 jalr t9                   |     t9 ();
    0x000056fc lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005700 addiu a0, zero, 0x3e8     |     a0 = aav.0x000003e8;
    0x00005704 lw t9, -0x7e74(gp)        |     t9 = sym.imp.g_string_sized_new;
    0x00005708 move s4, v0               |     s4 = v0;
    0x0000570c jalr t9                   |     t9 ();
    0x00005710 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005714 move a2, s4               |     a2 = s4;
    0x00005718 move a1, zero             |     a1 = 0;
    0x0000571c lw s1, -0x7fc0(gp)        |     s1 = *((gp - 8176));
    0x00005720 move a0, s3               |     a0 = s3;
    0x00005724 addiu s1, s1, 0x5430      |     s1 += fcn.00005430;
    0x00005728 move t9, s1               |     t9 = s1;
    0x0000572c move s0, v0               |     s0 = v0;
    0x00005730 bal 0x5430                |     fcn_00005430 ();
    0x00005734 move a2, s4               |     a2 = s4;
    0x00005738 addiu a1, zero, 1         |     a1 = 1;
    0x0000573c move a0, s3               |     a0 = s3;
    0x00005740 move t9, s1               |     t9 = s1;
    0x00005744 move s2, v0               |     s2 = v0;
    0x00005748 bal 0x5430                |     fcn_00005430 ();
    0x0000574c move a2, s4               |     a2 = s4;
    0x00005750 addiu a1, zero, 2         |     a1 = 2;
    0x00005754 move a0, s3               |     a0 = s3;
    0x00005758 move t9, s1               |     t9 = s1;
    0x0000575c or s2, s2, v0             |     s2 |= v0;
    0x00005760 bal 0x5430                |     fcn_00005430 ();
    0x00005764 or s2, s2, v0             |     s2 |= v0;
    0x00005768 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (s2 == 0) {
    0x0000576c bnez s2, 0x5790           |         
    0x00005770 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
                                         |         if (s4 != 0) {
    0x00005774 beqz s4, 0x5790           |             
    0x00005778 lw t9, -0x7e34(gp)        |             t9 = sym.imp.g_print;
    0x0000577c lw a1, (s4)               |             a1 = *(s4);
    0x00005780 addiu a0, a0, -0x66a8     |             a0 += -0x66a8;
    0x00005784 jalr t9                   |             t9 ();
    0x00005788 lw gp, 0x10(sp)           |             gp = *(var_10h);
    0x0000578c b 0x5794                  |             
                                         |         }
                                         |     } else {
    0x00005790 addiu s2, zero, -1        |         s2 = -1;
                                         |     }
    0x00005794 lw t9, -0x7e54(gp)        |     t9 = sym.imp.g_array_new;
    0x00005798 addiu a2, zero, 0xc       |     a2 = 0xc;
    0x0000579c addiu a1, zero, 1         |     a1 = 1;
    0x000057a0 addiu a0, zero, 1         |     a0 = 1;
    0x000057a4 jalr t9                   |     t9 ();
    0x000057a8 lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x000057ac move a1, v0               |     a1 = v0;
    0x000057b0 move a0, s3               |     a0 = s3;
    0x000057b4 lw t9, -0x7f4c(gp)        |     t9 = sym.gain_get_values;
    0x000057b8 move s1, v0               |     s1 = v0;
    0x000057bc bal 0x3370                |     sym_gain_get_values ();
    0x000057c0 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 != 0) {
    0x000057c4 bnez v0, 0x599c           |         goto label_0;
                                         |     }
    0x000057c8 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000057cc lw t9, -0x7ec4(gp)        |     t9 = sym.imp.g_string_assign;
    0x000057d0 addiu a1, a1, -0x66a4     |     a1 += -0x66a4;
    0x000057d4 move a0, s0               |     a0 = s0;
    0x000057d8 jalr t9                   |     t9 ();
    0x000057dc lw v0, 4(s1)              |     v0 = *((s1 + 1));
    0x000057e0 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 == 0) {
    0x000057e4 beqz v0, 0x5858           |         goto label_1;
                                         |     }
    0x000057e8 lw s3, -0x7fdc(gp)        |     s3 = *((gp - 8183));
    0x000057ec lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
    0x000057f0 move s5, zero             |     s5 = 0;
    0x000057f4 move s7, zero             |     s7 = 0;
    0x000057f8 addiu s3, s3, -0x6f2c     |     s3 += -0x6f2c;
    0x000057fc addiu s6, s6, -0x6ccc     |     s6 += -0x6ccc;
                                         |     do {
    0x00005800 lw v0, (s1)               |         v0 = *(s1);
    0x00005804 lw t9, -0x7f1c(gp)        |         t9 = sym.imp.g_string_append_printf
    0x00005808 addu v0, v0, s5           |         v0 += s5;
    0x0000580c move a1, s3               |         a1 = s3;
    0x00005810 lw a2, 4(v0)              |         a2 = *((v0 + 1));
    0x00005814 move a0, s0               |         a0 = s0;
    0x00005818 jalr t9                   |         t9 ();
    0x0000581c lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00005820 lw v0, 4(s1)              |         v0 = *((s1 + 1));
    0x00005824 move a1, s6               |         a1 = s6;
    0x00005828 addiu v1, v0, -1          |         v1 = v0 + -1;
    0x0000582c move a0, s0               |         a0 = s0;
    0x00005830 lw t9, -0x7f18(gp)        |         t9 = sym.imp.g_string_append;
                                         |         if (v1 != s7) {
    0x00005834 beq v1, s7, 0x5848        |             
    0x00005838 jalr t9                   |             t9 ();
    0x0000583c nop                       |             
    0x00005840 lw gp, 0x10(sp)           |             gp = *(var_10h);
    0x00005844 lw v0, 4(s1)              |             v0 = *((s1 + 1));
                                         |         }
    0x00005848 addiu s7, s7, 1           |         s7++;
    0x0000584c sltu v0, s7, v0           |         v0 = (s7 < v0) ? 1 : 0;
    0x00005850 addiu s5, s5, 0xc         |         s5 += 0xc;
    0x00005854 bnez v0, 0x5800           |         
                                         |     } while (v0 != 0);
                                         | label_1:
    0x00005858 lw s7, -0x7fdc(gp)        |     s7 = *((gp - 8183));
    0x0000585c lw t9, -0x7f18(gp)        |     t9 = sym.imp.g_string_append;
    0x00005860 addiu a1, s7, -0x66dc     |     a1 = s7 + -0x66dc;
    0x00005864 move a0, s0               |     a0 = s0;
    0x00005868 jalr t9                   |     t9 ();
    0x0000586c lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005870 move a0, s0               |     a0 = s0;
    0x00005874 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00005878 lw t9, -0x7f1c(gp)        |     t9 = sym.imp.g_string_append_printf
    0x0000587c addiu a1, a1, -0x6684     |     a1 += -0x6684;
    0x00005880 jalr t9                   |     t9 ();
    0x00005884 lw v0, 4(s1)              |     v0 = *((s1 + 1));
    0x00005888 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (v0 == 0) {
    0x0000588c beqz v0, 0x58fc           |         goto label_2;
                                         |     }
    0x00005890 lw s3, -0x7fdc(gp)        |     s3 = *((gp - 8183));
    0x00005894 lw s6, -0x7fdc(gp)        |     s6 = *((gp - 8183));
    0x00005898 move s5, zero             |     s5 = 0;
    0x0000589c move fp, zero             |     fp = 0;
    0x000058a0 addiu s3, s3, -0x6f2c     |     s3 += -0x6f2c;
    0x000058a4 addiu s6, s6, -0x6ccc     |     s6 += -0x6ccc;
                                         |     do {
    0x000058a8 lw a2, (s1)               |         a2 = *(s1);
    0x000058ac lw t9, -0x7f1c(gp)        |         t9 = sym.imp.g_string_append_printf
    0x000058b0 move a1, s3               |         a1 = s3;
    0x000058b4 lwx a2, s5(a2)            |         __asm ("lwx a2, s5(a2)");
    0x000058b8 move a0, s0               |         a0 = s0;
    0x000058bc jalr t9                   |         t9 ();
    0x000058c0 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x000058c4 lw v0, 4(s1)              |         v0 = *((s1 + 1));
    0x000058c8 move a1, s6               |         a1 = s6;
    0x000058cc addiu v1, v0, -1          |         v1 = v0 + -1;
    0x000058d0 move a0, s0               |         a0 = s0;
    0x000058d4 lw t9, -0x7f18(gp)        |         t9 = sym.imp.g_string_append;
                                         |         if (v1 != fp) {
    0x000058d8 beq v1, fp, 0x58ec        |             
    0x000058dc jalr t9                   |             t9 ();
    0x000058e0 nop                       |             
    0x000058e4 lw gp, 0x10(sp)           |             gp = *(var_10h);
    0x000058e8 lw v0, 4(s1)              |             v0 = *((s1 + 1));
                                         |         }
    0x000058ec addiu fp, fp, 1           |         fp++;
    0x000058f0 sltu v0, fp, v0           |         v0 = (fp < v0) ? 1 : 0;
    0x000058f4 addiu s5, s5, 0xc         |         s5 += 0xc;
    0x000058f8 bnez v0, 0x58a8           |         
                                         |     } while (v0 != 0);
                                         | label_2:
    0x000058fc lw t9, -0x7f18(gp)        |     t9 = sym.imp.g_string_append;
    0x00005900 addiu a1, s7, -0x66dc     |     a1 = s7 + -0x66dc;
    0x00005904 move a0, s0               |     a0 = s0;
    0x00005908 jalr t9                   |     t9 ();
    0x0000590c lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005910 addiu a1, zero, 1         |     a1 = 1;
    0x00005914 lw t9, -0x7e5c(gp)        |     t9 = sym.imp.g_array_free;
    0x00005918 move a0, s1               |     a0 = s1;
    0x0000591c jalr t9                   |     t9 ();
    0x00005920 lw gp, 0x10(sp)           |     gp = *(var_10h);
                                         |     if (s0 == 0) {
    0x00005924 beqz s0, 0x5944           |         goto label_3;
                                         |     }
    0x00005928 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x0000592c lw t9, -0x7e34(gp)        |     t9 = sym.imp.g_print;
    0x00005930 lw a1, (s0)               |     a1 = *(s0);
    0x00005934 addiu a0, a0, -0x66a8     |     a0 += -0x66a8;
    0x00005938 jalr t9                   |     t9 ();
    0x0000593c lw gp, 0x10(sp)           |     gp = *(var_10h);
    0x00005940 move s2, zero             |     s2 = 0;
                                         |     do {
                                         | label_3:
    0x00005944 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.g_string_free;
    0x00005948 move a0, s0               |         a0 = s0;
    0x0000594c addiu a1, zero, 1         |         a1 = 1;
    0x00005950 jalr t9                   |         t9 ();
    0x00005954 lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x00005958 move a0, s4               |         a0 = s4;
    0x0000595c lw t9, -0x7ea0(gp)        |         t9 = sym.imp.g_string_free;
    0x00005960 addiu a1, zero, 1         |         a1 = 1;
    0x00005964 jalr t9                   |         t9 ();
    0x00005968 lw ra, 0x3c(sp)           |         ra = *(var_3ch);
    0x0000596c move v0, s2               |         v0 = s2;
    0x00005970 lw fp, 0x38(sp)           |         fp = *(var_38h);
    0x00005974 lw s7, 0x34(sp)           |         s7 = *(var_34h);
    0x00005978 lw s6, 0x30(sp)           |         s6 = *(var_30h);
    0x0000597c lw s5, 0x2c(sp)           |         s5 = *(var_2ch);
    0x00005980 lw s4, 0x28(sp)           |         s4 = *(var_28h);
    0x00005984 lw s3, 0x24(sp)           |         s3 = *(var_24h);
    0x00005988 lw s2, 0x20(sp)           |         s2 = *(var_20h);
    0x0000598c lw s1, 0x1c(sp)           |         s1 = *(var_1ch);
    0x00005990 lw s0, 0x18(sp)           |         s0 = *(var_18h);
    0x00005994 addiu sp, sp, 0x40        |         
    0x00005998 jr ra                     |         return v0;
                                         | label_0:
    0x0000599c lw t9, -0x7e5c(gp)        |         t9 = sym.imp.g_array_free;
    0x000059a0 addiu a1, zero, 1         |         a1 = 1;
    0x000059a4 move a0, s1               |         a0 = s1;
    0x000059a8 jalr t9                   |         t9 ();
    0x000059ac lw gp, 0x10(sp)           |         gp = *(var_10h);
    0x000059b0 b 0x5944                  |         
                                         |     } while (1);
                                         | }

[*] Function printf used 8 times getshuttergain.cgi