Skip to content

Instantly share code, notes, and snippets.

@mrphrazer
Created October 29, 2015 04:04
Show Gist options
  • Save mrphrazer/c3b303b4830e4475d8ea to your computer and use it in GitHub Desktop.
Save mrphrazer/c3b303b4830e4475d8ea to your computer and use it in GitHub Desktop.
Mipsel assembly
digraph asm_graph {
loc_0000000000400710 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400710</td></tr> <tr><td align="left">ADDIU SP, SP, 0xFFFFFFC8</td></tr><tr><td align="left">SW RA, 0x34(SP)</td></tr><tr><td align="left">SW FP, 0x30(SP)</td></tr><tr><td align="left">ADDU FP, SP, ZERO</td></tr><tr><td align="left">SW A0, 0x38(FP)</td></tr><tr><td align="left">SW A1, 0x3C(FP)</td></tr><tr><td align="left">SW A2, 0x40(FP)</td></tr><tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LW V0, 0x40(FP)</td></tr><tr><td align="left">ADDU V0, V1, V0</td></tr><tr><td align="left">SW V0, 0x20(FP)</td></tr><tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">SW V0, 0x24(FP)</td></tr><tr><td align="left">LW V1, 0x20(FP)</td></tr><tr><td align="left">LW A0, 0x24(FP)</td></tr><tr><td align="left">LW V0, 0x40(FP)</td></tr><tr><td align="left">MULT A0, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LW A0, 0x3C(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">MULT A0, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">SUBU V0, V1, V0</td></tr><tr><td align="left">ADDIU V0, V0, 0x1</td></tr><tr><td align="left">SW V0, 0x28(FP)</td></tr><tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO V1</td></tr><tr><td align="left">LW V0, 0x40(FP)</td></tr><tr><td align="left">SLLV V0, V1, V0</td></tr><tr><td align="left">SW V0, 0x1C(FP)</td></tr><tr><td align="left">LW V1, 0x28(FP)</td></tr><tr><td align="left">LW A0, 0x24(FP)</td></tr><tr><td align="left">LW V0, 0x40(FP)</td></tr><tr><td align="left">MULT A0, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LW V0, 0x38(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LW V0, 0x1C(FP)</td></tr><tr><td align="left">ADDIU V0, V0, 0x539</td></tr><tr><td align="left">BNE V1, V0, loc_0000000000400A2C:0x00400a2c</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004007D8 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004007D8</td></tr> <tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">SW V0, 0x38(FP)</td></tr><tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x40(FP)</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">SW V0, 0x3C(FP)</td></tr><tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LW V0, 0x1C(FP)</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">SW V0, 0x40(FP)</td></tr><tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">ADDIU V0, ZERO, 0xC8</td></tr><tr><td align="left">BNE V1, V0, loc_0000000000400834:0x00400834</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400A2C [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400A2C</td></tr> <tr><td align="left">ADDU V0, ZERO, ZERO</td></tr></table>> ];
loc_0000000000400828 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400828</td></tr> <tr><td align="left">ADDIU V0, ZERO, 0x2</td></tr><tr><td align="left">J loc_0000000000400A30:0x00400a30</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400834 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400834</td></tr> <tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LUI V0, 0x6666</td></tr><tr><td align="left">ORI V0, V0, 0x6667</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO A0</td></tr><tr><td align="left">MFHI A1</td></tr><tr><td align="left">SRA A0, A1, 0x2</td></tr><tr><td align="left">SRA V0, V1, 0x1F</td></tr><tr><td align="left">SUBU V0, A0, V0</td></tr><tr><td align="left">SLL V0, V0, 0x1</td></tr><tr><td align="left">SLL A0, V0, 0x2</td></tr><tr><td align="left">ADDU V0, V0, A0</td></tr><tr><td align="left">SUBU V0, V1, V0</td></tr><tr><td align="left">ADDIU V1, ZERO, 0x2</td></tr><tr><td align="left">BNE V0, V1, loc_0000000000400A20:0x00400a20</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400A20 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400A20</td></tr> <tr><td align="left">ADDIU V0, ZERO, 0x1</td></tr><tr><td align="left">J loc_0000000000400A30:0x00400a30</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_000000000040087C [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_000000000040087C</td></tr> <tr><td align="left">LW V0, 0x40(FP)</td></tr><tr><td align="left">ADDIU V0, V0, 0x1</td></tr><tr><td align="left">SW V0, 0x40(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">ADDIU V0, V0, 0x2</td></tr><tr><td align="left">SW V0, 0x1C(FP)</td></tr><tr><td align="left">LW V1, 0x3C(FP)</td></tr><tr><td align="left">LW V0, 0x1C(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LW V0, 0x38(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LW A0, 0x40(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">MULT A0, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">ADDIU V0, V0, 0x12C</td></tr><tr><td align="left">BNE V1, V0, loc_0000000000400A20:0x00400a20</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004008C4 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004008C4</td></tr> <tr><td align="left">SW ZERO, 0x18(FP)</td></tr><tr><td align="left">J loc_0000000000400910:0x00400910</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400910 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400910</td></tr> <tr><td align="left">LW V0, 0x18(FP)</td></tr><tr><td align="left">SLTI V0, V0, 0x4</td></tr><tr><td align="left">BNE V0, ZERO, loc_00000000004008D0:0x004008d0</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004008D0 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004008D0</td></tr> <tr><td align="left">LW V0, 0x18(FP)</td></tr><tr><td align="left">ADDIU V0, V0, 0x1</td></tr><tr><td align="left">SW V0, 0x18(FP)</td></tr><tr><td align="left">LW V1, 0x18(FP)</td></tr><tr><td align="left">LW V0, 0x40(FP)</td></tr><tr><td align="left">ADDU V0, V1, V0</td></tr><tr><td align="left">SLTI V0, V0, 0x65</td></tr><tr><td align="left">BNE V0, ZERO, loc_0000000000400910:0x00400910</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400920 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400920</td></tr> <tr><td align="left">LW V1, 0x28(FP)</td></tr><tr><td align="left">LW V0, 0x24(FP)</td></tr><tr><td align="left">ADDU V1, V1, V0</td></tr><tr><td align="left">LUI V0, 0x6666</td></tr><tr><td align="left">ORI V0, V0, 0x6667</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO A0</td></tr><tr><td align="left">MFHI A1</td></tr><tr><td align="left">SRA A0, A1, 0x2</td></tr><tr><td align="left">SRA V0, V1, 0x1F</td></tr><tr><td align="left">SUBU A0, A0, V0</td></tr><tr><td align="left">ADDU V0, A0, ZERO</td></tr><tr><td align="left">SLL V0, V0, 0x1</td></tr><tr><td align="left">SLL A0, V0, 0x2</td></tr><tr><td align="left">ADDU V0, V0, A0</td></tr><tr><td align="left">SUBU A0, V1, V0</td></tr><tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO V1</td></tr><tr><td align="left">LUI V0, 0x6666</td></tr><tr><td align="left">ORI V0, V0, 0x6667</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO A2</td></tr><tr><td align="left">MFHI A3</td></tr><tr><td align="left">SRA A1, A3, 0x2</td></tr><tr><td align="left">SRA V0, V1, 0x1F</td></tr><tr><td align="left">SUBU V0, A1, V0</td></tr><tr><td align="left">SLL V0, V0, 0x1</td></tr><tr><td align="left">SLL A1, V0, 0x2</td></tr><tr><td align="left">ADDU V0, V0, A1</td></tr><tr><td align="left">SUBU V0, V1, V0</td></tr><tr><td align="left">BNE A0, V0, loc_00000000004009F4:0x004009f4</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004008F4 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004008F4</td></tr> <tr><td align="left">LW V0, 0x18(FP)</td></tr><tr><td align="left">SLTI V0, V0, 0x3</td></tr><tr><td align="left">BNE V0, ZERO, loc_0000000000400910:0x00400910</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004009A8 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004009A8</td></tr> <tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">SLT V0, V1, V0</td></tr><tr><td align="left">BNE V0, ZERO, loc_00000000004009D0:0x004009d0</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004009F4 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004009F4</td></tr> <tr><td align="left">LW V1, 0x38(FP)</td></tr><tr><td align="left">LW V0, 0x3C(FP)</td></tr><tr><td align="left">SLT V0, V1, V0</td></tr><tr><td align="left">BEQ V0, ZERO, loc_0000000000400A14:0x00400a14</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400904 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400904</td></tr> <tr><td align="left">ADDIU V0, ZERO, 0x3</td></tr><tr><td align="left">J loc_0000000000400A30:0x00400a30</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004009D0 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004009D0</td></tr> <tr><td align="left">LW A0, 0x38(FP)</td></tr><tr><td align="left">LW A1, 0x3C(FP)</td></tr><tr><td align="left">JAL loc_0000000000400A48:0x00400a48</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004009BC [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004009BC</td></tr> <tr><td align="left">LW V1, 0x40(FP)</td></tr><tr><td align="left">LW V0, 0x1C(FP)</td></tr><tr><td align="left">SLT V0, V0, V1</td></tr><tr><td align="left">BEQ V0, ZERO, loc_00000000004009E8:0x004009e8</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400A08 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400A08</td></tr> <tr><td align="left">ADDIU V0, ZERO, 0x6</td></tr><tr><td align="left">J loc_0000000000400A30:0x00400a30</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400A14 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400A14</td></tr> <tr><td align="left">ADDIU V0, ZERO, 0x7</td></tr><tr><td align="left">J loc_0000000000400A30:0x00400a30</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400A48 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400A48</td></tr> <tr><td align="left">ADDIU SP, SP, 0xFFFFFFE8</td></tr><tr><td align="left">SW FP, 0x14(SP)</td></tr><tr><td align="left">ADDU FP, SP, ZERO</td></tr><tr><td align="left">SW A0, 0x18(FP)</td></tr><tr><td align="left">SW A1, 0x1C(FP)</td></tr><tr><td align="left">LW V1, 0x18(FP)</td></tr><tr><td align="left">LW V0, 0x1C(FP)</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">SW V0, 0x8(FP)</td></tr><tr><td align="left">LW V1, 0x1C(FP)</td></tr><tr><td align="left">LW V0, 0x1C(FP)</td></tr><tr><td align="left">MULT V1, V0</td></tr><tr><td align="left">MFLO V0</td></tr><tr><td align="left">SW V0, 0x18(FP)</td></tr><tr><td align="left">ADDIU V0, ZERO, 0x2</td></tr><tr><td align="left">SW V0, 0x8(FP)</td></tr><tr><td align="left">LW V0, 0x8(FP)</td></tr><tr><td align="left">SLL V0, V0, 0x1</td></tr><tr><td align="left">SW V0, 0x1C(FP)</td></tr><tr><td align="left">LW V0, 0x1C(FP)</td></tr><tr><td align="left">ADDU SP, FP, ZERO</td></tr><tr><td align="left">LW FP, 0x14(SP)</td></tr><tr><td align="left">ADDIU SP, SP, 0x18</td></tr><tr><td align="left">JR RA</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004009E0 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004009E0</td></tr> <tr><td align="left">J loc_0000000000400A30:0x00400a30</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_00000000004009E8 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_00000000004009E8</td></tr> <tr><td align="left">ADDIU V0, ZERO, 0x5</td></tr><tr><td align="left">J loc_0000000000400A30:0x00400a30</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400A30 [
shape="Mrecord" fontname="Courier New" label =<<table border="0" cellborder="0" cellpadding="3"><tr><td colspan="2" align="center" bgcolor="grey">loc_0000000000400A30</td></tr> <tr><td align="left">ADDU SP, FP, ZERO</td></tr><tr><td align="left">LW RA, 0x34(SP)</td></tr><tr><td align="left">LW FP, 0x30(SP)</td></tr><tr><td align="left">ADDIU SP, SP, 0x38</td></tr><tr><td align="left">JR RA</td></tr><tr><td align="left">OR AT, AT, ZERO</td></tr></table>> ];
loc_0000000000400710 -> loc_0000000000400A2C[label = "c_to" color="limegreen" style="bold"];
loc_0000000000400710 -> loc_00000000004007D8[label = "c_next" color="red" style="bold"];
loc_00000000004007D8 -> loc_0000000000400834[label = "c_to" color="limegreen" style="bold"];
loc_00000000004007D8 -> loc_0000000000400828[label = "c_next" color="red" style="bold"];
loc_0000000000400A2C -> loc_0000000000400A30[label = "c_next" color="blue" style="bold"];
loc_0000000000400828 -> loc_0000000000400A30[label = "c_to" color="blue" style="bold"];
loc_0000000000400834 -> loc_0000000000400A20[label = "c_to" color="limegreen" style="bold"];
loc_0000000000400834 -> loc_000000000040087C[label = "c_next" color="red" style="bold"];
loc_0000000000400A20 -> loc_0000000000400A30[label = "c_to" color="blue" style="bold"];
loc_000000000040087C -> loc_0000000000400A20[label = "c_to" color="limegreen" style="bold"];
loc_000000000040087C -> loc_00000000004008C4[label = "c_next" color="red" style="bold"];
loc_00000000004008C4 -> loc_0000000000400910[label = "c_to" color="blue" style="bold"];
loc_0000000000400910 -> loc_00000000004008D0[label = "c_to" color="limegreen" style="bold"];
loc_0000000000400910 -> loc_0000000000400920[label = "c_next" color="red" style="bold"];
loc_00000000004008D0 -> loc_0000000000400910[label = "c_to" color="limegreen" style="bold"];
loc_00000000004008D0 -> loc_00000000004008F4[label = "c_next" color="red" style="bold"];
loc_0000000000400920 -> loc_00000000004009F4[label = "c_to" color="limegreen" style="bold"];
loc_0000000000400920 -> loc_00000000004009A8[label = "c_next" color="red" style="bold"];
loc_00000000004008F4 -> loc_0000000000400910[label = "c_to" color="limegreen" style="bold"];
loc_00000000004008F4 -> loc_0000000000400904[label = "c_next" color="red" style="bold"];
loc_00000000004009A8 -> loc_00000000004009D0[label = "c_to" color="limegreen" style="bold"];
loc_00000000004009A8 -> loc_00000000004009BC[label = "c_next" color="red" style="bold"];
loc_00000000004009F4 -> loc_0000000000400A14[label = "c_to" color="limegreen" style="bold"];
loc_00000000004009F4 -> loc_0000000000400A08[label = "c_next" color="red" style="bold"];
loc_0000000000400904 -> loc_0000000000400A30[label = "c_to" color="blue" style="bold"];
loc_00000000004009D0 -> loc_0000000000400A48[label = "c_to" color="limegreen" style="bold"];
loc_00000000004009D0 -> loc_00000000004009E0[label = "c_next" color="red" style="bold"];
loc_00000000004009BC -> loc_00000000004009D0[label = "c_next" color="red" style="bold"];
loc_00000000004009BC -> loc_00000000004009E8[label = "c_to" color="limegreen" style="bold"];
loc_0000000000400A08 -> loc_0000000000400A30[label = "c_to" color="blue" style="bold"];
loc_0000000000400A14 -> loc_0000000000400A30[label = "c_to" color="blue" style="bold"];
loc_00000000004009E0 -> loc_0000000000400A30[label = "c_to" color="blue" style="bold"];
loc_00000000004009E8 -> loc_0000000000400A30[label = "c_to" color="blue" style="bold"];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment