// File: /workspace/github_c_makefile_star2_O0/neovim[P]libvterm/src/state.c
// Function: request_dec_mode
static void request_dec_mode(VTermState *state, int num)
{
  int reply;

  switch(num) {
    case 1:
      reply = state->mode.cursor;
      break;

    case 5:
      reply = state->mode.screen;
      break;

    case 6:
      reply = state->mode.origin;
      break;

    case 7:
      reply = state->mode.autowrap;
      break;

    case 12:
      reply = state->mode.cursor_blink;
      break;

    case 25:
      reply = state->mode.cursor_visible;
      break;

    case 69:
      reply = state->mode.leftrightmargin;
      break;

    case 1000:
      reply = state->mouse_flags == MOUSE_WANT_CLICK;
      break;

    case 1002:
      reply = state->mouse_flags == (MOUSE_WANT_CLICK|MOUSE_WANT_DRAG);
      break;

    case 1003:
      reply = state->mouse_flags == (MOUSE_WANT_CLICK|MOUSE_WANT_MOVE);
      break;

    case 1004:
      reply = state->mode.report_focus;
      break;

    case 1005:
      reply = state->mouse_protocol == MOUSE_UTF8;
      break;

    case 1006:
      reply = state->mouse_protocol == MOUSE_SGR;
      break;

    case 1015:
      reply = state->mouse_protocol == MOUSE_RXVT;
      break;

    case 1047:
      reply = state->mode.alt_screen;
      break;

    case 2004:
      reply = state->mode.bracketpaste;
      break;

    default:
      vterm_push_output_sprintf_ctrl(state->vt, C1_CSI, "?%d;%d$y", num, 0);
      return;
  }

  vterm_push_output_sprintf_ctrl(state->vt, C1_CSI, "?%d;%d$y", num, reply ? 1 : 2);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x14(%rbp)
subl $0x1, %eax
je 0x10407
jmp 0x10320
movl -0x14(%rbp), %eax
subl $0x5, %eax
je 0x10424
jmp 0x1032e
movl -0x14(%rbp), %eax
subl $0x6, %eax
je 0x10442
jmp 0x1033c
movl -0x14(%rbp), %eax
subl $0x7, %eax
je 0x10460
jmp 0x1034a
movl -0x14(%rbp), %eax
subl $0xc, %eax
je 0x1047e
jmp 0x10358
movl -0x14(%rbp), %eax
subl $0x19, %eax
je 0x1049c
jmp 0x10366
movl -0x14(%rbp), %eax
subl $0x45, %eax
je 0x104ba
jmp 0x10374
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
je 0x104d8
jmp 0x10384
movl -0x14(%rbp), %eax
subl $0x3ea, %eax            # imm = 0x3EA
je 0x104f3
jmp 0x10394
movl -0x14(%rbp), %eax
subl $0x3eb, %eax            # imm = 0x3EB
je 0x1050e
jmp 0x103a4
movl -0x14(%rbp), %eax
subl $0x3ec, %eax            # imm = 0x3EC
je 0x10529
jmp 0x103b4
movl -0x14(%rbp), %eax
subl $0x3ed, %eax            # imm = 0x3ED
je 0x10547
jmp 0x103c4
movl -0x14(%rbp), %eax
subl $0x3ee, %eax            # imm = 0x3EE
je 0x10562
jmp 0x103d4
movl -0x14(%rbp), %eax
subl $0x3f7, %eax            # imm = 0x3F7
je 0x1057a
jmp 0x103e4
movl -0x14(%rbp), %eax
subl $0x417, %eax            # imm = 0x417
je 0x10592
jmp 0x103f4
movl -0x14(%rbp), %eax
subl $0x7d4, %eax            # imm = 0x7D4
je 0x105ad
jmp 0x105c8
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0xb, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0xa, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0x2, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0x6, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0x5, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0xc, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
cmpl $0x1, 0x84(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
cmpl $0x3, 0x84(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
cmpl $0x5, 0x84(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0xe, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
cmpl $0x1, 0x88(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
cmpl $0x2, 0x88(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
cmpl $0x3, 0x88(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0x9, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
shrw $0xd, %ax
andw $0x1, %ax
movzwl %ax, %eax
movl %eax, -0x10(%rbp)
jmp 0x105ea
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movl -0xc(%rbp), %ecx
movl $0x9b, %esi
leaq 0x3308(%rip), %rdx      # 0x138e6
xorl %r8d, %r8d
movb $0x0, %al
callq 0x11e00
jmp 0x1061c
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movl -0xc(%rbp), %ecx
movl -0x10(%rbp), %edx
movl $0x2, %r8d
movl $0x1, %eax
cmpl $0x0, %edx
cmovnel %eax, %r8d
movl $0x9b, %esi
leaq 0x32d1(%rip), %rdx      # 0x138e6
movb $0x0, %al
callq 0x11e00
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)