[*] 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