// File: /workspace/github_cpp_makefile_star2_O2/manikandan5[P]Image-Matching-Stitching-Warping/./CImg.h
// Function: int cimg_library::cimg::dialog<unsigned char>(char const*, char const*, char const*, char const*, char const*, char const*, char const*, char const*, cimg_library::CImg<unsigned char> const&, bool)
inline int dialog(const char *const title, const char *const msg,
                    const char *const button1_label, const char *const button2_label,
                    const char *const button3_label, const char *const button4_label,
                    const char *const button5_label, const char *const button6_label,
                    const CImg<t>& logo, const bool is_centered = false) {
#if cimg_display==0
    cimg::unused(title,msg,button1_label,button2_label,button3_label,button4_label,button5_label,button6_label,
                 logo._data,is_centered);
    throw CImgIOException("cimg::dialog(): No display available.");
#else
    const unsigned char
      black[] = { 0,0,0 }, white[] = { 255,255,255 }, gray[] = { 200,200,200 }, gray2[] = { 150,150,150 };

    // Create buttons and canvas graphics
    CImgList<unsigned char> buttons, cbuttons, sbuttons;
    if (button1_label) { CImg<unsigned char>().draw_text(0,0,button1_label,black,gray,1,13).move_to(buttons);
      if (button2_label) { CImg<unsigned char>().draw_text(0,0,button2_label,black,gray,1,13).move_to(buttons);
        if (button3_label) { CImg<unsigned char>().draw_text(0,0,button3_label,black,gray,1,13).move_to(buttons);
          if (button4_label) { CImg<unsigned char>().draw_text(0,0,button4_label,black,gray,1,13).move_to(buttons);
            if (button5_label) { CImg<unsigned char>().draw_text(0,0,button5_label,black,gray,1,13).move_to(buttons);
              if (button6_label) { CImg<unsigned char>().draw_text(0,0,button6_label,black,gray,1,13).move_to(buttons);
              }}}}}}
    if (!buttons._width)
      throw CImgArgumentException("cimg::dialog(): No buttons have been defined.");
    cimglist_for(buttons,l) buttons[l].resize(-100,-100,1,3);

    unsigned int bw = 0, bh = 0;
    cimglist_for(buttons,l) { bw = cimg::max(bw,buttons[l]._width); bh = cimg::max(bh,buttons[l]._height); }
    bw+=8; bh+=8;
    if (bw<64) bw = 64;
    if (bw>128) bw = 128;
    if (bh<24) bh = 24;
    if (bh>48) bh = 48;

    CImg<unsigned char> button(bw,bh,1,3);
    button.draw_rectangle(0,0,bw-1,bh-1,gray);
    button.draw_line(0,0,bw-1,0,white).draw_line(0,bh-1,0,0,white);
    button.draw_line(bw-1,0,bw-1,bh-1,black).draw_line(bw-1,bh-1,0,bh-1,black);
    button.draw_line(1,bh-2,bw-2,bh-2,gray2).draw_line(bw-2,bh-2,bw-2,1,gray2);
    CImg<unsigned char> sbutton(bw,bh,1,3);
    sbutton.draw_rectangle(0,0,bw-1,bh-1,gray);
    sbutton.draw_line(0,0,bw-1,0,black).draw_line(bw-1,0,bw-1,bh-1,black);
    sbutton.draw_line(bw-1,bh-1,0,bh-1,black).draw_line(0,bh-1,0,0,black);
    sbutton.draw_line(1,1,bw-2,1,white).draw_line(1,bh-2,1,1,white);
    sbutton.draw_line(bw-2,1,bw-2,bh-2,black).draw_line(bw-2,bh-2,1,bh-2,black);
    sbutton.draw_line(2,bh-3,bw-3,bh-3,gray2).draw_line(bw-3,bh-3,bw-3,2,gray2);
    sbutton.draw_line(4,4,bw-5,4,black,1,0xAAAAAAAA,true).draw_line(bw-5,4,bw-5,bh-5,black,1,0xAAAAAAAA,false);
    sbutton.draw_line(bw-5,bh-5,4,bh-5,black,1,0xAAAAAAAA,false).draw_line(4,bh-5,4,4,black,1,0xAAAAAAAA,false);
    CImg<unsigned char> cbutton(bw,bh,1,3);
    cbutton.draw_rectangle(0,0,bw-1,bh-1,black).draw_rectangle(1,1,bw-2,bh-2,gray2).draw_rectangle(2,2,bw-3,bh-3,gray);
    cbutton.draw_line(4,4,bw-5,4,black,1,0xAAAAAAAA,true).draw_line(bw-5,4,bw-5,bh-5,black,1,0xAAAAAAAA,false);
    cbutton.draw_line(bw-5,bh-5,4,bh-5,black,1,0xAAAAAAAA,false).draw_line(4,bh-5,4,4,black,1,0xAAAAAAAA,false);

    cimglist_for(buttons,ll) {
      CImg<unsigned char>(cbutton).draw_image(1+(bw-buttons[ll].width())/2,1+(bh-buttons[ll].height())/2,buttons[ll]).
        move_to(cbuttons);
      CImg<unsigned char>(sbutton).draw_image((bw-buttons[ll].width())/2,(bh-buttons[ll].height())/2,buttons[ll]).
        move_to(sbuttons);
      CImg<unsigned char>(button).draw_image((bw-buttons[ll].width())/2,(bh-buttons[ll].height())/2,buttons[ll]).
        move_to(buttons[ll]);
    }

    CImg<unsigned char> canvas;
    if (msg)
      ((CImg<unsigned char>().draw_text(0,0,"%s",gray,0,1,13,msg)*=-1)+=200).resize(-100,-100,1,3).move_to(canvas);

    const unsigned int
      bwall = (buttons._width-1)*(12+bw) + bw,
      w = cimg::max(196U,36+logo._width+canvas._width,24+bwall),
      h = cimg::max(96U,36+canvas._height+bh,36+logo._height+bh),
      lx = 12 + (canvas._data?0:((w-24-logo._width)/2)),
      ly = (h-12-bh-logo._height)/2,
      tx = lx+logo._width+12,
      ty = (h-12-bh-canvas._height)/2,
      bx = (w-bwall)/2,
      by = h-12-bh;

    if (canvas._data)
      canvas = CImg<unsigned char>(w,h,1,3).
        draw_rectangle(0,0,w-1,h-1,gray).
        draw_line(0,0,w-1,0,white).draw_line(0,h-1,0,0,white).
        draw_line(w-1,0,w-1,h-1,black).draw_line(w-1,h-1,0,h-1,black).
        draw_image(tx,ty,canvas);
    else
      canvas = CImg<unsigned char>(w,h,1,3).
        draw_rectangle(0,0,w-1,h-1,gray).
        draw_line(0,0,w-1,0,white).draw_line(0,h-1,0,0,white).
        draw_line(w-1,0,w-1,h-1,black).draw_line(w-1,h-1,0,h-1,black);
    if (logo._data) canvas.draw_image(lx,ly,logo);

    unsigned int xbuttons[6] = { 0 };
    cimglist_for(buttons,lll) { xbuttons[lll] = bx+(bw+12)*lll; canvas.draw_image(xbuttons[lll],by,buttons[lll]); }

    // Open window and enter events loop
    CImgDisplay disp(canvas,title?title:" ",0,false,is_centered?true:false);
    if (is_centered) disp.move((CImgDisplay::screen_width() - disp.width())/2,
                             (CImgDisplay::screen_height() - disp.height())/2);
    bool stop_flag = false, refresh = false;
    int oselected = -1, oclicked = -1, selected = -1, clicked = -1;
    while (!disp.is_closed() && !stop_flag) {
      if (refresh) {
        if (clicked>=0)
          CImg<unsigned char>(canvas).draw_image(xbuttons[clicked],by,cbuttons[clicked]).display(disp);
        else {
          if (selected>=0)
            CImg<unsigned char>(canvas).draw_image(xbuttons[selected],by,sbuttons[selected]).display(disp);
          else canvas.display(disp);
        }
        refresh = false;
      }
      disp.wait(15);
      if (disp.is_resized()) disp.resize(disp,false);

      if (disp.button()&1)  {
        oclicked = clicked;
        clicked = -1;
        cimglist_for(buttons,l)
          if (disp.mouse_y()>=(int)by && disp.mouse_y()<(int)(by+bh) &&
              disp.mouse_x()>=(int)xbuttons[l] && disp.mouse_x()<(int)(xbuttons[l]+bw)) {
            clicked = selected = l;
            refresh = true;
          }
        if (clicked!=oclicked) refresh = true;
      } else if (clicked>=0) stop_flag = true;

      if (disp.key()) {
        oselected = selected;
        switch (disp.key()) {
        case cimg::keyESC : selected=-1; stop_flag = true; break;
        case cimg::keyENTER : if (selected<0) selected = 0; stop_flag = true; break;
        case cimg::keyTAB :
        case cimg::keyARROWRIGHT :
        case cimg::keyARROWDOWN : selected = (selected+1)%buttons._width; break;
        case cimg::keyARROWLEFT :
        case cimg::keyARROWUP : selected = (selected+buttons._width-1)%buttons._width; break;
        }
        disp.set_key();
        if (selected!=oselected) refresh = true;
      }
    }
    if (!disp) selected = -1;
    return selected;
#endif
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x648, %rsp            # imm = 0x648
movq %rsi, 0x78(%rsp)
movq %rdi, %r13
movb $0x0, 0x1e(%rsp)
andw $0x0, 0x1c(%rsp)
movb $-0x1, 0x2a(%rsp)
orw $-0x1, 0x28(%rsp)
movb $-0x38, 0x22(%rsp)
movw $0xc8c8, 0x20(%rsp)     # imm = 0xC8C8
movb $-0x6a, 0x2e(%rsp)
movw $0x9696, 0x2c(%rsp)     # imm = 0x9696
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0xb0(%rsp)
movaps %xmm0, 0xa0(%rsp)
testq %rdx, %rdx
je 0xa78d
movq %r9, %rbx
movq %r8, %r14
movq %rcx, %r15
movq %rdx, %rcx
leaq 0x150(%rsp), %rdi
andq $0x0, 0x18(%rdi)
movaps %xmm0, (%rdi)
movb $0x0, 0x10(%rdi)
movl $0xd, (%rsp)
leaq 0x1c(%rsp), %r8
leaq 0x20(%rsp), %r9
movss 0x49cbb(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movb $0x1, %al
callq 0xb8c2
leaq 0x40(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %rax, %rdi
callq 0xb9c8
leaq 0x150(%rsp), %rdi
callq 0xb8ae
testq %r15, %r15
je 0xa78d
leaq 0x150(%rsp), %rdi
andq $0x0, 0x18(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movb $0x0, 0x10(%rdi)
movl $0xd, (%rsp)
leaq 0x1c(%rsp), %r8
leaq 0x20(%rsp), %r9
movss 0x49c5a(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movq %r15, %rcx
movb $0x1, %al
callq 0xb8c2
leaq 0x40(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %rax, %rdi
callq 0xb9c8
leaq 0x150(%rsp), %rdi
callq 0xb8ae
testq %r14, %r14
je 0xa78d
leaq 0x150(%rsp), %rdi
andq $0x0, 0x18(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movb $0x0, 0x10(%rdi)
movl $0xd, (%rsp)
leaq 0x1c(%rsp), %r8
leaq 0x20(%rsp), %r9
movss 0x49bf6(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movq %r14, %rcx
movb $0x1, %al
callq 0xb8c2
leaq 0x40(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %rax, %rdi
callq 0xb9c8
leaq 0x150(%rsp), %rdi
callq 0xb8ae
testq %rbx, %rbx
je 0xa78d
leaq 0x150(%rsp), %rdi
andq $0x0, 0x18(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movb $0x0, 0x10(%rdi)
movl $0xd, (%rsp)
leaq 0x1c(%rsp), %r8
leaq 0x20(%rsp), %r9
movss 0x49b92(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movq %rbx, %rcx
movb $0x1, %al
callq 0xb8c2
leaq 0x40(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %rax, %rdi
callq 0xb9c8
movq 0x680(%rsp), %rbx
leaq 0x150(%rsp), %rdi
callq 0xb8ae
testq %rbx, %rbx
je 0xa78d
leaq 0x150(%rsp), %rdi
andq $0x0, 0x18(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movb $0x0, 0x10(%rdi)
movl $0xd, (%rsp)
leaq 0x1c(%rsp), %r8
leaq 0x20(%rsp), %r9
movss 0x49b26(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movq %rbx, %rcx
movb $0x1, %al
callq 0xb8c2
leaq 0x40(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %rax, %rdi
callq 0xb9c8
movq 0x688(%rsp), %rbx
leaq 0x150(%rsp), %rdi
callq 0xb8ae
testq %rbx, %rbx
je 0xa78d
leaq 0x150(%rsp), %rdi
andq $0x0, 0x18(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movb $0x0, 0x10(%rdi)
movl $0xd, (%rsp)
leaq 0x1c(%rsp), %r8
leaq 0x20(%rsp), %r9
movss 0x49abe(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movq %rbx, %rcx
movb $0x1, %al
callq 0xb8c2
leaq 0x40(%rsp), %rsi
pushq $-0x1
popq %rdx
movq %rax, %rdi
callq 0xb9c8
leaq 0x150(%rsp), %rdi
callq 0xb8ae
movl 0x40(%rsp), %eax
testl %eax, %eax
je 0xb6da
xorl %r15d, %r15d
pushq $-0x64
popq %rbx
pushq $0x3
popq %rbp
pushq $0x1
popq %r14
xorl %r12d, %r12d
movslq %eax, %rcx
movq 0x48(%rsp), %rdi
cmpq %rcx, %r12
jge 0xa7e8
addq %r15, %rdi
andl $0x0, (%rsp)
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl %ebx, %esi
movl %ebx, %edx
movl %r14d, %ecx
movl %ebp, %r8d
movl %r14d, %r9d
callq 0xba08
incq %r12
movl 0x40(%rsp), %eax
addq $0x20, %r15
jmp 0xa7a9
xorl %esi, %esi
testl %eax, %eax
cmovlel %esi, %eax
shlq $0x5, %rax
xorl %ecx, %ecx
xorl %edx, %edx
cmpq %rsi, %rax
je 0xa819
movl (%rdi,%rsi), %r8d
movl 0x4(%rdi,%rsi), %r9d
cmpl %r8d, %edx
cmovbel %r8d, %edx
cmpl %r9d, %ecx
cmovbel %r9d, %ecx
addq $0x20, %rsi
jmp 0xa7f7
movq %r13, 0xe8(%rsp)
addl $0x8, %edx
addl $0x8, %ecx
movl $0x80, %eax
cmpl %eax, %edx
cmovael %eax, %edx
cmpl $0x41, %edx
pushq $0x40
popq %rbx
cmovael %edx, %ebx
cmpl $0x30, %ecx
pushq $0x30
popq %rax
cmovbl %ecx, %eax
cmpl $0x19, %eax
pushq $0x18
popq %r13
cmovael %eax, %r13d
leaq 0xf0(%rsp), %rdi
pushq $0x1
popq %rcx
pushq $0x3
popq %r8
movl %ebx, %esi
movl %r13d, %edx
callq 0xbbfa
movq %rbx, 0x38(%rsp)
decl %ebx
leal -0x1(%r13), %r8d
leaq 0xf0(%rsp), %rdi
leaq 0x20(%rsp), %r9
movss 0x49999(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
movl %r8d, 0x24(%rsp)
callq 0xbd58
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0xf0(%rsp), %rdi
leaq 0x28(%rsp), %r9
movss 0x49968(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
xorl %r8d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x28(%rsp), %r9
movss 0x49941(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %esi, %esi
movl 0x24(%rsp), %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0xf0(%rsp), %rdi
leaq 0x1c(%rsp), %r9
movss 0x4990d(%rip), %xmm0    # 0x54220
movl %ebx, %esi
xorl %edx, %edx
movl %ebx, %ecx
movl 0x24(%rsp), %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x1c(%rsp), %r9
movss 0x498e4(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ebx, %esi
movl 0x24(%rsp), %edx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0xbd78
leal -0x2(%r13), %ebp
movq 0x38(%rsp), %rax
leal -0x2(%rax), %r14d
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0xf0(%rsp), %rdi
pushq $0x1
popq %rsi
leaq 0x2c(%rsp), %r9
movss 0x498a0(%rip), %xmm0    # 0x54220
movl %ebp, %edx
movl %r14d, %ecx
movl %ebp, %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
pushq $0x1
popq %r8
leaq 0x2c(%rsp), %r9
movss 0x49876(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %r14d, %esi
movl %ebp, %edx
movl %r14d, %ecx
callq 0xbd78
movl %r14d, 0x34(%rsp)
movl %ebp, 0x30(%rsp)
leaq 0x80(%rsp), %rdi
pushq $0x1
popq %rcx
pushq $0x3
popq %r8
movq 0x38(%rsp), %rsi
movl %r13d, %edx
callq 0xbbfa
leaq 0x80(%rsp), %rdi
leaq 0x20(%rsp), %r9
movss 0x4982c(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
movl 0x24(%rsp), %r8d
callq 0xbd58
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x1c(%rsp), %r9
movss 0x497fb(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
xorl %r8d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x1c(%rsp), %r9
movss 0x497d4(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ebx, %esi
xorl %edx, %edx
movl %ebx, %ecx
movl 0x24(%rsp), %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x1c(%rsp), %r9
movss 0x497a0(%rip), %xmm0    # 0x54220
movl %ebx, %esi
movl 0x24(%rsp), %edx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x1c(%rsp), %r9
movss 0x49777(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %esi, %esi
movl 0x24(%rsp), %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x80(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x28(%rsp), %r9
movss 0x49740(%rip), %xmm0    # 0x54220
movl %edx, %esi
movl 0x34(%rsp), %ecx
movl %edx, %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
pushq $0x1
popq %rcx
leaq 0x28(%rsp), %r9
movss 0x49716(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ecx, %esi
movl 0x30(%rsp), %edx
movl %ecx, %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x80(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x1c(%rsp), %r9
movss 0x496e1(%rip), %xmm0    # 0x54220
movl 0x34(%rsp), %ecx
movl %ecx, %esi
movl 0x30(%rsp), %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
pushq $0x1
popq %rcx
leaq 0x1c(%rsp), %r9
movss 0x496b5(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl 0x34(%rsp), %esi
movl 0x30(%rsp), %edx
movl %edx, %r8d
callq 0xbd78
leal -0x3(%r13), %ebp
movq 0x38(%rsp), %rax
leal -0x3(%rax), %r15d
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
leaq 0x80(%rsp), %rdi
pushq $0x2
popq %rsi
leaq 0x2c(%rsp), %r9
movss 0x49671(%rip), %xmm0    # 0x54220
movl %ebp, %edx
movl %r15d, %ecx
movl %ebp, %r8d
callq 0xbd78
orl $-0x1, (%rsp)
movl $0x1, 0x8(%rsp)
pushq $0x2
popq %r8
leaq 0x2c(%rsp), %r9
movss 0x49647(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %r15d, %esi
movl %ebp, %edx
movl %r15d, %ecx
callq 0xbd78
movq 0x38(%rsp), %rax
leal -0x5(%rax), %r14d
movl $0x1, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
leaq 0x80(%rsp), %rdi
pushq $0x4
popq %rdx
leaq 0x1c(%rsp), %r9
movss 0x49607(%rip), %xmm0    # 0x54220
movl %edx, %esi
movl %r14d, %ecx
movl %edx, %r8d
callq 0xbd78
leal -0x5(%r13), %r12d
andl $0x0, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
pushq $0x4
popq %rdx
leaq 0x1c(%rsp), %r9
movss 0x495da(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %r14d, %esi
movl %r14d, %ecx
movl %r12d, %r8d
callq 0xbd78
andl $0x0, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
leaq 0x80(%rsp), %rdi
pushq $0x4
popq %rcx
leaq 0x1c(%rsp), %r9
movss 0x495a5(%rip), %xmm0    # 0x54220
movl %r14d, %esi
movl %r12d, %edx
movl %r12d, %r8d
callq 0xbd78
andl $0x0, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
pushq $0x4
popq %rcx
leaq 0x1c(%rsp), %r9
movss 0x4957b(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ecx, %esi
movl %r12d, %edx
movl %ecx, %r8d
callq 0xbd78
leaq 0x110(%rsp), %rdi
pushq $0x1
popq %rcx
pushq $0x3
popq %r8
movq 0x38(%rsp), %rsi
movl %r13d, %edx
callq 0xbbfa
leaq 0x110(%rsp), %rdi
leaq 0x1c(%rsp), %r9
movss 0x4953a(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movl %ebx, %ecx
movl 0x24(%rsp), %r8d
callq 0xbd58
pushq $0x1
popq %rdx
leaq 0x2c(%rsp), %r9
movss 0x4951a(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %edx, %esi
movl 0x34(%rsp), %ecx
movl 0x30(%rsp), %r8d
callq 0xbd58
pushq $0x2
popq %rdx
leaq 0x20(%rsp), %r9
movss 0x494f7(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %edx, %esi
movl %r15d, %ecx
movl %ebp, %r8d
callq 0xbd58
movl $0x1, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
leaq 0x110(%rsp), %rdi
pushq $0x4
popq %rdx
leaq 0x1c(%rsp), %r9
movss 0x494c0(%rip), %xmm0    # 0x54220
movl %edx, %esi
movl %r14d, %ecx
movl %edx, %r8d
callq 0xbd78
andl $0x0, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
pushq $0x4
popq %rdx
leaq 0x1c(%rsp), %r9
movss 0x49497(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %r14d, %esi
movl %r14d, %ecx
movl %r12d, %r8d
callq 0xbd78
andl $0x0, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
leaq 0x110(%rsp), %rdi
pushq $0x4
popq %rcx
leaq 0x1c(%rsp), %r9
movss 0x49462(%rip), %xmm0    # 0x54220
movl %r14d, %esi
movl %r12d, %edx
movl %r12d, %r8d
callq 0xbd78
andl $0x0, 0x8(%rsp)
movl $0xaaaaaaaa, (%rsp)     # imm = 0xAAAAAAAA
pushq $0x4
popq %rcx
leaq 0x1c(%rsp), %r9
movss 0x49438(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ecx, %esi
movl %r12d, %edx
movl %ecx, %r8d
callq 0xbd78
xorl %ebp, %ebp
leaq 0x150(%rsp), %r14
leaq 0xf0(%rsp), %r12
xorl %r15d, %r15d
movslq 0x40(%rsp), %rbx
cmpq %rbx, %r15
jge 0xaf2e
movq %r14, %rdi
leaq 0x110(%rsp), %rsi
callq 0xc2e0
movq 0x48(%rsp), %rax
movq 0x38(%rsp), %rcx
movl %ecx, %esi
subl (%rax,%rbp), %esi
leaq (%rax,%rbp), %rcx
shrl %esi
incl %esi
movl %r13d, %edx
subl 0x4(%rax,%rbp), %edx
shrl %edx
incl %edx
movq %r14, %rdi
movss 0x493c8(%rip), %xmm0    # 0x54220
callq 0xc48e
movq %rax, %rdi
leaq 0xb0(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xb9c8
movq %r14, %rdi
callq 0xb8ae
movq %r14, %rdi
leaq 0x80(%rsp), %rsi
callq 0xc2e0
movq 0x48(%rsp), %rax
leaq (%rax,%rbp), %rcx
movq 0x38(%rsp), %rdx
movl %edx, %esi
subl (%rax,%rbp), %esi
shrl %esi
movl %r13d, %edx
subl 0x4(%rax,%rbp), %edx
shrl %edx
movq %r14, %rdi
movss 0x4936f(%rip), %xmm0    # 0x54220
callq 0xc48e
movq %rax, %rdi
leaq 0xa0(%rsp), %rsi
pushq $-0x1
popq %rdx
callq 0xb9c8
movq %r14, %rdi
callq 0xb8ae
movq %r14, %rdi
movq %r12, %rsi
callq 0xc2e0
movq 0x48(%rsp), %rax
leaq (%rax,%rbp), %rcx
movq 0x38(%rsp), %rdx
movl %edx, %esi
subl (%rax,%rbp), %esi
shrl %esi
movl %r13d, %edx
subl 0x4(%rax,%rbp), %edx
shrl %edx
movq %r14, %rdi
movss 0x4931b(%rip), %xmm0    # 0x54220
callq 0xc48e
movq 0x48(%rsp), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0xc498
movq %r14, %rdi
callq 0xb8ae
incq %r15
addq $0x20, %rbp
jmp 0xae0d
andq $0x0, 0x68(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movb $0x0, 0x60(%rsp)
movq 0x78(%rsp), %rax
testq %rax, %rax
je 0xb002
leaq 0x150(%rsp), %rdi
andq $0x0, 0x18(%rdi)
movaps %xmm0, (%rdi)
movb $0x0, 0x10(%rdi)
movq %rax, 0x8(%rsp)
movl $0xd, (%rsp)
leaq 0x6b911(%rip), %rcx     # 0x76887
leaq 0x20(%rsp), %r8
movss 0x4929d(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
xorl %r9d, %r9d
movb $0x1, %al
callq 0xc4da
pushq $-0x1
popq %rsi
movq %rax, %rdi
callq 0xc5de
movq %rax, %rdi
movl $0xc8, %esi
callq 0xc630
andl $0x0, (%rsp)
pushq $-0x64
popq %rdx
pushq $0x3
popq %r8
pushq $0x1
popq %rcx
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movq %rax, %rdi
movl %edx, %esi
movl %ecx, %r9d
callq 0xba08
leaq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0xc498
leaq 0x150(%rsp), %rdi
callq 0xb8ae
movl 0x40(%rsp), %ebx
movl 0x50(%rsp), %ecx
movl 0x54(%rsp), %r8d
cmpq $0x0, 0x68(%rsp)
sete %al
jmp 0xb009
xorl %r8d, %r8d
movb $0x1, %al
xorl %ecx, %ecx
decl %ebx
movq 0x38(%rsp), %rdx
leal 0xc(%rdx), %esi
movl %esi, 0x24(%rsp)
imull %esi, %ebx
movq 0x690(%rsp), %rsi
movl (%rsi), %r9d
leal (%r9,%rcx), %edi
addl $0x24, %edi
leal (%rbx,%rdx), %ecx
addl $0x18, %ecx
cmpl %ecx, %edi
movl %ecx, 0x34(%rsp)
movl %edi, 0x30(%rsp)
cmoval %edi, %ecx
movl 0x4(%rsi), %edx
cmpl $0xc5, %ecx
movl $0xc4, %ebp
cmovael %ecx, %ebp
movq %r8, 0xe0(%rsp)
leal (%r8,%r13), %ecx
addl $0x24, %ecx
movq %rdx, 0x78(%rsp)
addl %r13d, %edx
addl $0x24, %edx
cmpl %edx, %ecx
cmoval %ecx, %edx
cmpl $0x61, %edx
pushq $0x60
popq %r14
cmovael %edx, %r14d
leal -0xc(%r14), %r15d
movl %r15d, %r12d
subl %r13d, %r12d
movl %ebp, %ecx
movq %r9, 0xd8(%rsp)
subl %r9d, %ecx
addl $-0x18, %ecx
shrl %ecx
addl $0xc, %ecx
testb %al, %al
pushq $0xc
popq %r13
cmovnel %ecx, %r13d
je 0xb1a6
leaq 0x150(%rsp), %rdi
pushq $0x1
popq %rcx
pushq $0x3
popq %r8
movl %ebp, %esi
movl %r14d, %edx
callq 0xbbfa
decl %ebp
decl %r14d
leaq 0x150(%rsp), %rdi
leaq 0x20(%rsp), %r9
movss 0x49144(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movl %ebp, %ecx
movl %r14d, %r8d
callq 0xbd58
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x28(%rsp), %r9
movss 0x4911d(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x28(%rsp), %r9
movss 0x490f3(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %esi, %esi
movl %r14d, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x1c(%rsp), %r9
movss 0x490c8(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ebp, %esi
xorl %edx, %edx
movl %ebp, %ecx
movl %r14d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x1c(%rsp), %r9
movss 0x4909e(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ebp, %esi
movl %r14d, %edx
xorl %ecx, %ecx
movl %r14d, %r8d
callq 0xbd78
leaq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x11034
jmp 0xb2ce
leaq 0x150(%rsp), %rdi
pushq $0x1
popq %rcx
pushq $0x3
popq %r8
movl %ebp, %esi
movl %r14d, %edx
callq 0xbbfa
decl %ebp
decl %r14d
leaq 0x150(%rsp), %rdi
leaq 0x20(%rsp), %r9
movss 0x49047(%rip), %xmm0    # 0x54220
xorl %esi, %esi
xorl %edx, %edx
movl %ebp, %ecx
movl %r14d, %r8d
callq 0xbd58
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x28(%rsp), %r9
movss 0x49020(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x28(%rsp), %r9
movss 0x48ff6(%rip), %xmm0    # 0x54220
movq %rax, %rdi
xorl %esi, %esi
movl %r14d, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x1c(%rsp), %r9
movss 0x48fcb(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ebp, %esi
xorl %edx, %edx
movl %ebp, %ecx
movl %r14d, %r8d
callq 0xbd78
movl $0x1, 0x8(%rsp)
orl $-0x1, (%rsp)
leaq 0x1c(%rsp), %r9
movss 0x48fa1(%rip), %xmm0    # 0x54220
movq %rax, %rdi
movl %ebp, %esi
movl %r14d, %edx
xorl %ecx, %ecx
movl %r14d, %r8d
callq 0xbd78
movl %r12d, %edx
subl 0xe0(%rsp), %edx
shrl %edx
movq 0xd8(%rsp), %rcx
leal (%rcx,%r13), %esi
addl $0xc, %esi
leaq 0x50(%rsp), %rcx
movss 0x48f67(%rip), %xmm0    # 0x54220
movq %rax, %rdi
callq 0xc48e
leaq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x11034
leaq 0x150(%rsp), %rdi
callq 0xb8ae
movq 0x690(%rsp), %rcx
cmpq $0x0, 0x18(%rcx)
je 0xb308
movl %r12d, %edx
subl 0x78(%rsp), %edx
shrl %edx
leaq 0x50(%rsp), %rdi
movss 0x48f20(%rip), %xmm0    # 0x54220
movl %r13d, %esi
callq 0xc48e
xorps %xmm0, %xmm0
andq $0x0, 0xd0(%rsp)
movl 0x34(%rsp), %eax
movl 0x30(%rsp), %ecx
cmpl %eax, %ecx
cmoval %ecx, %eax
cmpl $0xc5, %eax
movl $0xc4, %ebp
cmovael %eax, %ebp
movaps %xmm0, 0xc0(%rsp)
subl %ebx, %ebp
subl 0x38(%rsp), %ebp
shrl %ebp
xorl %ebx, %ebx
leaq 0x50(%rsp), %r14
xorl %r13d, %r13d
movslq 0x40(%rsp), %rax
cmpq %rax, %r13
jge 0xb384
movl %ebp, 0xc0(%rsp,%r13,4)
movq 0x48(%rsp), %rcx
addq %rbx, %rcx
movq %r14, %rdi
movl %ebp, %esi
movl %r12d, %edx
movss 0x48eae(%rip), %xmm0    # 0x54220
callq 0xc48e
incq %r13
addq $0x20, %rbx
addl 0x24(%rsp), %ebp
jmp 0xb348
movq 0xe8(%rsp), %rax
testq %rax, %rax
leaq 0x6c602(%rip), %rdx     # 0x77998
cmovneq %rax, %rdx
movb 0x698(%rsp), %bl
movzbl %bl, %r9d
leaq 0x150(%rsp), %rdi
leaq 0x50(%rsp), %rsi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xc67e
testb %bl, %bl
je 0xb3fb
callq 0xc76c
movl %eax, %ebp
movl 0x168(%rsp), %ebx
callq 0xc814
movl %eax, %ecx
subl %ebx, %ebp
movl %ebp, %eax
cltd
pushq $0x2
popq %r8
idivl %r8d
movl %eax, %esi
leaq 0x150(%rsp), %rdi
subl 0x1c(%rdi), %ecx
movl %ecx, %eax
cltd
idivl %r8d
movl %eax, %edx
callq 0xc6e2
xorl %ebx, %ebx
xorl %r13d, %r13d
pushq $-0x1
popq %rax
movl %eax, %r14d
movl %eax, 0x24(%rsp)
cmpb $0x0, 0x5b0(%rsp)
jne 0xb64c
testb $0x1, %bl
jne 0xb64c
testb $0x1, %r13b
je 0xb4e7
cmpl $0x0, 0x24(%rsp)
js 0xb483
leaq 0x130(%rsp), %rbx
movq %rbx, %rdi
leaq 0x50(%rsp), %rsi
callq 0xc2e0
movl 0x24(%rsp), %ecx
movl 0xc0(%rsp,%rcx,4), %esi
shlq $0x5, %rcx
addq 0xb8(%rsp), %rcx
movq %rbx, %rdi
movl %r12d, %edx
movss 0x48db4(%rip), %xmm0    # 0x54220
callq 0xc48e
leaq 0x150(%rsp), %rdi
movq %rax, %rsi
callq 0x29684
jmp 0xb4da
testl %r14d, %r14d
js 0xb635
leaq 0x130(%rsp), %rbx
movq %rbx, %rdi
leaq 0x50(%rsp), %rsi
callq 0xc2e0
movl %r14d, %ecx
movl 0xc0(%rsp,%rcx,4), %esi
shlq $0x5, %rcx
addq 0xa8(%rsp), %rcx
movq %rbx, %rdi
movl %r12d, %edx
movss 0x48d5b(%rip), %xmm0    # 0x54220
callq 0xc48e
leaq 0x150(%rsp), %rdi
movq %rax, %rsi
callq 0x29684
leaq 0x130(%rsp), %rdi
callq 0xb8ae
pushq $0xf
popq %rdi
leaq 0x150(%rsp), %rsi
callq 0x29753
movb 0x5b1(%rsp), %al
cmpb $0x1, %al
jne 0xb514
leaq 0x150(%rsp), %rdi
movq %rdi, %rsi
xorl %edx, %edx
callq 0xc8bc
testl $0x1, 0x198(%rsp)
jne 0xb52e
cmpl $0x0, 0x24(%rsp)
setns %bl
xorl %r13d, %r13d
jmp 0xb59e
movl 0x40(%rsp), %eax
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
xorl %esi, %esi
pushq $-0x1
popq %rdx
cmpq %rcx, %rax
je 0xb58d
movl 0x5a8(%rsp), %edi
cmpl %r12d, %edi
jl 0xb588
movl 0x5a8(%rsp), %edi
cmpl %r15d, %edi
jge 0xb588
movl 0x5a4(%rsp), %r8d
movl 0xc0(%rsp,%rcx,4), %edi
cmpl %edi, %r8d
jl 0xb588
movl 0x5a4(%rsp), %r8d
addl 0x38(%rsp), %edi
cmpl %edi, %r8d
jge 0xb588
movb $0x1, %sil
movl %ecx, %r14d
movl %ecx, %edx
incq %rcx
jmp 0xb53e
cmpl 0x24(%rsp), %edx
setne %r13b
orb %sil, %r13b
xorl %ebx, %ebx
movl %edx, 0x24(%rsp)
cmpl $0x0, 0x19c(%rsp)
je 0xb40a
movl 0x19c(%rsp), %eax
leal -0xff51(%rax), %ecx
cmpl $0x2, %ecx
jb 0xb5f4
leal -0xff53(%rax), %ecx
cmpl $0x2, %ecx
jb 0xb5e8
cmpl $0xff09, %eax           # imm = 0xFF09
je 0xb5e8
cmpl $0xff0d, %eax           # imm = 0xFF0D
je 0xb625
movl %r14d, %ebp
cmpl $0xff1b, %eax           # imm = 0xFF1B
jne 0xb604
movb $0x1, %bl
pushq $-0x1
popq %rbp
jmp 0xb604
leal 0x1(%r14), %eax
xorl %edx, %edx
divl 0x40(%rsp)
jmp 0xb602
movl 0x40(%rsp), %ecx
leal (%r14,%rcx), %eax
decl %eax
xorl %edx, %edx
divl %ecx
movl %edx, %ebp
leaq 0x150(%rsp), %rdi
callq 0xc8cc
cmpl %r14d, %ebp
setne %al
orb %r13b, %al
movl %eax, %r13d
movl %ebp, %r14d
jmp 0xb40a
testl %r14d, %r14d
movl $0x0, %ebp
cmovgl %r14d, %ebp
movb $0x1, %bl
jmp 0xb604
leaq 0x150(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x29684
jmp 0xb4e7
xorl %ebx, %ebx
leaq 0x150(%rsp), %rdi
cmpl $0x1, 0x18(%rdi)
movl $0x0, %eax
sbbl %eax, %eax
cmpl $0x1, 0x1c(%rdi)
sbbl %ebx, %ebx
orl %r14d, %ebx
orl %eax, %ebx
callq 0xcd16
leaq 0x50(%rsp), %rdi
callq 0xb8ae
leaq 0x110(%rsp), %rdi
callq 0xb8ae
leaq 0x80(%rsp), %rdi
callq 0xb8ae
leaq 0xf0(%rsp), %rdi
callq 0xb8ae
leaq 0xa0(%rsp), %rdi
callq 0xcd26
leaq 0xb0(%rsp), %rdi
callq 0xcd26
leaq 0x40(%rsp), %rdi
callq 0xcd26
movl %ebx, %eax
addq $0x648, %rsp            # imm = 0x648
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x4008, %edi           # imm = 0x4008
callq 0x4210
movq %rax, %r14
leaq 0x4a60b(%rip), %rsi     # 0x55cf9
movq %rax, %rdi
xorl %eax, %eax
callq 0x9d52
leaq 0x84561(%rip), %rsi     # 0x8fc60
movq 0x848d2(%rip), %rdx     # 0x8ffd8
movq %r14, %rdi
callq 0x4910
jmp 0xb738
jmp 0xb738
jmp 0xb738
jmp 0xb738
jmp 0xb784
jmp 0xb784
jmp 0xb792
movq %rax, %rbx
movq %r14, %rdi
callq 0x4390
jmp 0xb7e9
jmp 0xb784
jmp 0xb738
jmp 0xb784
jmp 0xb76d
jmp 0xb764
jmp 0xb792
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
jmp 0xb7e4
jmp 0xb7a8
jmp 0xb74e
jmp 0xb74e
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0xb8ae
jmp 0xb7b8
jmp 0xb7a8
jmp 0xb78d
movq %rax, %rbx
jmp 0xb7dc
jmp 0xb772
jmp 0xb7a8
movq %rax, %rbx
jmp 0xb7cf
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0xb8ae
jmp 0xb7ab
movq %rax, %rbx
jmp 0xb7b8
jmp 0xb78d
jmp 0xb78d
movq %rax, %rbx
jmp 0xb7c2
movq %rax, %rbx
jmp 0xb7e9
jmp 0xb79b
jmp 0xb79b
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
jmp 0xb7bd
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0xcd16
leaq 0x50(%rsp), %rdi
callq 0xb8ae
leaq 0x110(%rsp), %rdi
callq 0xb8ae
leaq 0x80(%rsp), %rdi
callq 0xb8ae
leaq 0xf0(%rsp), %rdi
callq 0xb8ae
leaq 0xa0(%rsp), %rdi
callq 0xcd26
leaq 0xb0(%rsp), %rdi
callq 0xcd26
leaq 0x40(%rsp), %rdi
callq 0xcd26
movq %rbx, %rdi
callq 0x4950
nop