{
  "asm": [
    {
      "text": "main:",
      "source": null
    },
    {
      "text": "  lea edx, [0+rdi*8]",
      "source": {
        "file": null,
        "line": 5
      }
    },
    {
      "text": "  test edx, edx",
      "source": {
        "file": null,
        "line": 5
      }
    },
    {
      "text": "  je .L10",
      "source": {
        "file": null,
        "line": 5
      }
    },
    {
      "text": "  add edx, edi",
      "source": {
        "file": null,
        "line": 8
      }
    },
    {
      "text": "  je .L14",
      "source": {
        "file": null,
        "line": 8
      }
    },
    {
      "text": "  imul edx, edi, 223",
      "source": {
        "file": null,
        "line": 11
      }
    },
    {
      "text": "  mov eax, 1",
      "source": {
        "file": null,
        "line": 11
      }
    },
    {
      "text": "  cmp edx, eax",
      "source": {
        "file": null,
        "line": 11
      }
    },
    {
      "text": "  je .L15",
      "source": {
        "file": null,
        "line": 11
      }
    },
    {
      "text": "  lea edx, [rdi+rax]",
      "source": {
        "file": null,
        "line": 18
      }
    },
    {
      "text": "  cmp edi, edx",
      "source": {
        "file": null,
        "line": 22
      }
    },
    {
      "text": "  jl .L16",
      "source": {
        "file": null,
        "line": 22
      }
    },
    {
      "text": "  imul edi, edx",
      "source": {
        "file": null,
        "line": 24
      }
    },
    {
      "text": "  imul eax, edi",
      "source": {
        "file": null,
        "line": 24
      }
    },
    {
      "text": "  ret",
      "source": {
        "file": null,
        "line": 24
      }
    },
    {
      "text": ".L14:",
      "source": null
    },
    {
      "text": "  imul edx, edi",
      "source": {
        "file": null,
        "line": 9
      }
    },
    {
      "text": "  imul eax, edx, 78",
      "source": {
        "file": null,
        "line": 9
      }
    },
    {
      "text": "  ret",
      "source": {
        "file": null,
        "line": 9
      }
    },
    {
      "text": ".L15:",
      "source": null
    },
    {
      "text": "  test edi, edi",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jle .L1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  lea edx, [rdi-1]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  mov esi, edx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  shr esi",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  add esi, 1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  cmp edx, 11",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jbe .L11",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  mov DWORD PTR [rsp-12], edi",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  pxor xmm3, xmm3",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  movd xmm7, DWORD PTR [rsp-12]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  mov ecx, esi",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  xor edx, edx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  movdqa xmm2, XMMWORD PTR .LC0[rip]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  shr ecx, 2",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  pshufd xmm4, xmm7, 0",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  movdqa xmm6, XMMWORD PTR .LC1[rip]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  movdqa xmm5, xmm4",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  psrlq xmm5, 32",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": ".L6:",
      "source": null
    },
    {
      "text": "  movdqa xmm0, xmm2",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add edx, 1",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  movdqa xmm1, xmm2",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  cmp ecx, edx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  paddd xmm2, xmm6",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  pmuludq xmm0, xmm4",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  pshufd xmm0, xmm0, 8",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  psrlq xmm1, 32",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  pmuludq xmm1, xmm5",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  pshufd xmm1, xmm1, 8",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  punpckldq xmm0, xmm1",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  paddd xmm3, xmm0",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  ja .L6",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  movdqa xmm0, xmm3",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  mov r8d, esi",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  and r8d, -4",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  psrldq xmm0, 8",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  paddd xmm3, xmm0",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  movdqa xmm0, xmm3",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  psrldq xmm0, 4",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  paddd xmm3, xmm0",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  movd edx, xmm3",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add eax, edx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  lea edx, [r8+r8]",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  cmp esi, r8d",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  lea ecx, [rdx+1]",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  je .L17",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": ".L5:",
      "source": null
    },
    {
      "text": "  imul ecx, edi",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add eax, ecx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  lea ecx, [rdx+3]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  cmp edi, ecx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jl .L1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  imul ecx, edi",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add eax, ecx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  lea ecx, [rdx+5]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  cmp edi, ecx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jl .L1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  imul ecx, edi",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add eax, ecx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  lea ecx, [rdx+7]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  cmp edi, ecx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jl .L1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  imul ecx, edi",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add eax, ecx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  lea ecx, [rdx+9]",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  cmp edi, ecx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jl .L1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  imul ecx, edi",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add edx, 11",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  add eax, ecx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  cmp edi, edx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jl .L1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  imul edx, edi",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  add eax, edx",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": "  ret",
      "source": {
        "file": null,
        "line": 13
      }
    },
    {
      "text": ".L10:",
      "source": null
    },
    {
      "text": "  mov eax, 78",
      "source": {
        "file": null,
        "line": 6
      }
    },
    {
      "text": ".L1:",
      "source": null
    },
    {
      "text": "  rep ret",
      "source": {
        "file": null,
        "line": 25
      }
    },
    {
      "text": ".L16:",
      "source": null
    },
    {
      "text": "  mov rax, QWORD PTR [rsi]",
      "source": {
        "file": null,
        "line": 23
      }
    },
    {
      "text": "  movsx eax, BYTE PTR [rax]",
      "source": {
        "file": null,
        "line": 23
      }
    },
    {
      "text": "  ret",
      "source": {
        "file": null,
        "line": 23
      }
    },
    {
      "text": ".L17:",
      "source": null
    },
    {
      "text": "  ret",
      "source": {
        "file": null,
        "line": 23
      }
    },
    {
      "text": ".L11:",
      "source": null
    },
    {
      "text": "  mov ecx, 1",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  xor edx, edx",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "  jmp .L5",
      "source": {
        "file": null,
        "line": 12
      }
    },
    {
      "text": "_GLOBAL__sub_I_main:",
      "source": null
    },
    {
      "text": "  sub rsp, 8",
      "source": {
        "file": null,
        "line": 25
      }
    },
    {
      "text": "  mov edi, OFFSET FLAT:std::__ioinit",
      "source": {
        "file": "/usr/include/c++/7/iostream",
        "line": 74
      }
    },
    {
      "text": "  call std::ios_base::Init::Init()",
      "source": {
        "file": "/usr/include/c++/7/iostream",
        "line": 74
      }
    },
    {
      "text": "  mov edx, OFFSET FLAT:__dso_handle",
      "source": {
        "file": "/usr/include/c++/7/iostream",
        "line": 74
      }
    },
    {
      "text": "  mov esi, OFFSET FLAT:std::__ioinit",
      "source": {
        "file": "/usr/include/c++/7/iostream",
        "line": 74
      }
    },
    {
      "text": "  mov edi, OFFSET FLAT:std::ios_base::Init::~Init()",
      "source": {
        "file": "/usr/include/c++/7/iostream",
        "line": 74
      }
    },
    {
      "text": "  add rsp, 8",
      "source": {
        "file": null,
        "line": 25
      }
    },
    {
      "text": "  jmp __cxa_atexit",
      "source": {
        "file": "/usr/include/c++/7/iostream",
        "line": 74
      }
    },
    {
      "text": ".LC0:",
      "source": null
    },
    {
      "text": "  .long 1",
      "source": null
    },
    {
      "text": "  .long 3",
      "source": null
    },
    {
      "text": "  .long 5",
      "source": null
    },
    {
      "text": "  .long 7",
      "source": null
    },
    {
      "text": ".LC1:",
      "source": null
    },
    {
      "text": "  .long 8",
      "source": null
    },
    {
      "text": "  .long 8",
      "source": null
    },
    {
      "text": "  .long 8",
      "source": null
    },
    {
      "text": "  .long 8",
      "source": null
    },
    {
      "text": "",
      "source": null
    }
  ],
  "cfg": {
    "main:": {
      "nodes": [
        {
          "id": "main:",
          "label": "main:\n  lea edx, [0+rdi*8]\n  test edx, edx\n  je .L10"
        },
        {
          "id": "main:@4",
          "label": "main:@4\n  add edx, edi\n  je .L14"
        },
        {
          "id": "main:@6",
          "label": "main:@6\n  imul edx, edi, 223\n  mov eax, 1\n  cmp edx, eax\n  je .L15"
        },
        {
          "id": "main:@10",
          "label": "main:@10\n  lea edx, [rdi+rax]\n  cmp edi, edx\n  jl .L16"
        },
        {
          "id": "main:@13",
          "label": "main:@13\n  imul edi, edx\n  imul eax, edi\n  ret"
        },
        {
          "id": ".L14:",
          "label": ".L14:\n  imul edx, edi\n  imul eax, edx, 78\n  ret"
        },
        {
          "id": ".L15:",
          "label": ".L15:\n  test edi, edi\n  jle .L1"
        },
        {
          "id": ".L15:@23",
          "label": ".L15:@23\n  lea edx, [rdi-1]\n  mov esi, edx\n  shr esi\n  add esi, 1\n  cmp edx, 11\n  jbe .L11"
        },
        {
          "id": ".L15:@29",
          "label": ".L15:@29\n  mov DWORD PTR [rsp-12], edi\n  pxor xmm3, xmm3\n  movd xmm7, DWORD PTR [rsp-12]\n  mov ecx, esi\n  xor edx, edx\n  movdqa xmm2, XMMWORD PTR .LC0[rip]\n  shr ecx, 2\n  pshufd xmm4, xmm7, 0\n  movdqa xmm6, XMMWORD PTR .LC1[rip]\n  movdqa xmm5, xmm4\n  psrlq xmm5, 32"
        },
        {
          "id": ".L6:",
          "label": ".L6:\n  movdqa xmm0, xmm2\n  add edx, 1\n  movdqa xmm1, xmm2\n  cmp ecx, edx\n  paddd xmm2, xmm6\n  pmuludq xmm0, xmm4\n  pshufd xmm0, xmm0, 8\n  psrlq xmm1, 32\n  pmuludq xmm1, xmm5\n  pshufd xmm1, xmm1, 8\n  punpckldq xmm0, xmm1\n  paddd xmm3, xmm0\n  ja .L6"
        },
        {
          "id": ".L6:@54",
          "label": ".L6:@54\n  movdqa xmm0, xmm3\n  mov r8d, esi\n  and r8d, -4\n  psrldq xmm0, 8\n  paddd xmm3, xmm0\n  movdqa xmm0, xmm3\n  psrldq xmm0, 4\n  paddd xmm3, xmm0\n  movd edx, xmm3\n  add eax, edx\n  lea edx, [r8+r8]\n  cmp esi, r8d\n  lea ecx, [rdx+1]\n  je .L17"
        },
        {
          "id": ".L5:",
          "label": ".L5:\n  imul ecx, edi\n  add eax, ecx\n  lea ecx, [rdx+3]\n  cmp edi, ecx\n  jl .L1"
        },
        {
          "id": ".L5:@74",
          "label": ".L5:@74\n  imul ecx, edi\n  add eax, ecx\n  lea ecx, [rdx+5]\n  cmp edi, ecx\n  jl .L1"
        },
        {
          "id": ".L5:@79",
          "label": ".L5:@79\n  imul ecx, edi\n  add eax, ecx\n  lea ecx, [rdx+7]\n  cmp edi, ecx\n  jl .L1"
        },
        {
          "id": ".L5:@84",
          "label": ".L5:@84\n  imul ecx, edi\n  add eax, ecx\n  lea ecx, [rdx+9]\n  cmp edi, ecx\n  jl .L1"
        },
        {
          "id": ".L5:@89",
          "label": ".L5:@89\n  imul ecx, edi\n  add edx, 11\n  add eax, ecx\n  cmp edi, edx\n  jl .L1"
        },
        {
          "id": ".L5:@94",
          "label": ".L5:@94\n  imul edx, edi\n  add eax, edx\n  ret"
        },
        {
          "id": ".L10:",
          "label": ".L10:\n  mov eax, 78"
        },
        {
          "id": ".L1:",
          "label": ".L1:\n  rep ret"
        },
        {
          "id": ".L16:",
          "label": ".L16:\n  mov rax, QWORD PTR [rsi]\n  movsx eax, BYTE PTR [rax]\n  ret"
        },
        {
          "id": ".L17:",
          "label": ".L17:\n  ret"
        },
        {
          "id": ".L11:",
          "label": ".L11:\n  mov ecx, 1\n  xor edx, edx\n  jmp .L5"
        }
      ],
      "edges": [
        {
          "from": "main:",
          "to": ".L10:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": "main:",
          "to": "main:@4",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": "main:@4",
          "to": ".L14:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": "main:@4",
          "to": "main:@6",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": "main:@6",
          "to": ".L15:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": "main:@6",
          "to": "main:@10",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": "main:@10",
          "to": ".L16:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": "main:@10",
          "to": "main:@13",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L15:",
          "to": ".L1:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L15:",
          "to": ".L15:@23",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L15:@23",
          "to": ".L11:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L15:@23",
          "to": ".L15:@29",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L15:@29",
          "to": ".L6:",
          "arrows": "to",
          "color": "grey"
        },
        {
          "from": ".L6:",
          "to": ".L6:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L6:",
          "to": ".L6:@54",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L6:@54",
          "to": ".L17:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L6:@54",
          "to": ".L5:",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L5:",
          "to": ".L1:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L5:",
          "to": ".L5:@74",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L5:@74",
          "to": ".L1:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L5:@74",
          "to": ".L5:@79",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L5:@79",
          "to": ".L1:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L5:@79",
          "to": ".L5:@84",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L5:@84",
          "to": ".L1:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L5:@84",
          "to": ".L5:@89",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L5:@89",
          "to": ".L1:",
          "arrows": "to",
          "color": "green"
        },
        {
          "from": ".L5:@89",
          "to": ".L5:@94",
          "arrows": "to",
          "color": "red"
        },
        {
          "from": ".L10:",
          "to": ".L1:",
          "arrows": "to",
          "color": "grey"
        },
        {
          "from": ".L11:",
          "to": ".L5:",
          "arrows": "to",
          "color": "blue"
        }
      ]
    },
    "_GLOBAL__sub_I_main:": {
      "nodes": [
        {
          "id": "_GLOBAL__sub_I_main:",
          "label": "_GLOBAL__sub_I_main:\n  sub rsp, 8\n  mov edi, OFFSET FLAT:std::__ioinit\n  call std::ios_base::Init::Init()\n  mov edx, OFFSET FLAT:__dso_handle\n  mov esi, OFFSET FLAT:std::__ioinit\n  mov edi, OFFSET FLAT:std::ios_base::Init::~Init()\n  add rsp, 8\n  jmp __cxa_atexit"
        }
      ],
      "edges": [
        {
          "from": "_GLOBAL__sub_I_main:",
          "to": "null:",
          "arrows": "to",
          "color": "blue"
        }
      ]
    }
  }
}
