user: Demonstrate the C code that generates the assembly output below:

```asm
<key>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %edi,-0x14(%rbp)
  mov    %esi,-0x18(%rbp)
  movl   $0x0,-0x4(%rbp)
  cmpl   $0xe003,-0x14(%rbp)
  je     L448
  cmpl   $0xe003,-0x14(%rbp)
  jg     L421
  cmpl   $0xe002,-0x14(%rbp)
  je     L122
  cmpl   $0xe002,-0x14(%rbp)
  jg     L421
  cmpl   $0xe001,-0x14(%rbp)
  je     L533
  cmpl   $0xe001,-0x14(%rbp)
  jg     L421
  cmpl   $0x7a,-0x14(%rbp)
  jg     L518
  cmpl   $0x20,-0x14(%rbp)
  jl     L421
  mov    -0x14(%rbp),%eax
  sub    $0x20,%eax
  cmp    $0x5a,%eax
  ja     L421
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D16(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D16(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L518:
  cmpl   $0xe000,-0x14(%rbp)
  je     L530
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder2Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder2Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder1Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder1Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder3Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder4Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder3Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <shoulder4Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <lat2Raise@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <lat2Lower@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <lat1Raise@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <lat1Lower@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <elbow2Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <elbow2Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <elbow1Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <elbow1Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <RotateAdd@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <RotateSubtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <MechTiltAdd@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <MechTiltSubtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <RaiseLeg2Forward@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LowerLeg2Backwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <RaiseLeg2Outwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LowerLeg2Inwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <RaiseLeg1Forward@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LowerLeg1Backwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <RaiseLeg1Outwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LowerLeg1Inwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Heel2Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Heel2Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Heel1Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Heel1Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Ankle2Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Ankle2Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Ankle1Add@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Ankle1Subtract@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LightTurnRight@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LightTurnLeft@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LightForwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <LightBackwards@plt>
  addl   $0x1,-0x4(%rbp)
  jmp    L421
  mov    $0x0,%eax
  call   <Toggle@plt>
  jmp    L421
L122:
  mov    $0x0,%eax
  call   <TurnLeft@plt>
  jmp    L421
L448:
  mov    $0x0,%eax
  call   <TurnRight@plt>
  jmp    L421
L530:
  mov    $0x0,%eax
  call   <TurnBackwards@plt>
  jmp    L421
L533:
  mov    $0x0,%eax
  call   <TurnForwards@plt>
  jmp    L421
  mov    $0x0,%eax
  call   <FireCannon@plt>
L421:
  mov    $0x0,%eax
  leave
  ret
```

assistant: ```c
GLenum key(int key, GLenum mask) {
  int i = 0;
  switch (key) {
  case 'q': {
    shoulder2Subtract();
    i++;
  } break;
  case 'a': {
    shoulder2Add();
    i++;
  } break;
  case 'w': {
    shoulder1Subtract();
    i++;
  } break;
  case 's': {
    shoulder1Add();
    i++;
  } break;
  case '2': {
    shoulder3Add();
    i++;
  } break;
  case '1': {
    shoulder4Add();
    i++;
  } break;
  case '4': {
    shoulder3Subtract();
    i++;
  } break;
  case '3': {
    shoulder4Subtract();
    i++;
  } break;
  case 'z': {
    lat2Raise();
    i++;
  } break;
  case 'Z': {
    lat2Lower();
    i++;
  } break;
  case 'x': {
    lat1Raise();
    i++;
  } break;
  case 'X': {
    lat1Lower();
    i++;
  } break;
  case 'A': {
    elbow2Add();
    i++;
  } break;
  case 'Q': {
    elbow2Subtract();
    i++;
  } break;
  case 'S': {
    elbow1Add();
    i++;
  } break;
  case 'W': {
    elbow1Subtract();
    i++;
  } break;
  case 'd': {
    RotateAdd();
    i++;
  } break;
  case 'g': {
    RotateSubtract();
    i++;
  } break;
  case 'r': {
    MechTiltAdd();
    i++;
  } break;
  case 'f': {
    MechTiltSubtract();
    i++;
  } break;
  case 'h': {
    RaiseLeg2Forward();
    i++;
  } break;
  case 'y': {
    LowerLeg2Backwards();
    i++;
  } break;
  case 'Y': {
    RaiseLeg2Outwards();
    i++;
  } break;
  case 'H': {
    LowerLeg2Inwards();
    i++;
  } break;
  case 'j': {
    RaiseLeg1Forward();
    i++;
  } break;
  case 'u': {
    LowerLeg1Backwards();
    i++;
  } break;
  case 'U': {
    RaiseLeg1Outwards();
    i++;
  } break;
  case 'J': {
    LowerLeg1Inwards();
    i++;
  } break;
  case 'N': {
    Heel2Add();
    i++;
  } break;
  case 'n': {
    Heel2Subtract();
    i++;
  } break;
  case 'M': {
    Heel1Add();
    i++;
  } break;
  case 'm': {
    Heel1Subtract();
    i++;
  } break;
  case 'k': {
    Ankle2Add();
    i++;
  } break;
  case 'K': {
    Ankle2Subtract();
    i++;
  } break;
  case 'l': {
    Ankle1Add();
    i++;
  } break;
  case 'L': {
    Ankle1Subtract();
    i++;
  } break;
  case 'p': {
    LightTurnRight();
    i++;
  } break;
  case 'i': {
    LightTurnLeft();
    i++;
  } break;
  case 'o': {
    LightForwards();
    i++;
  } break;
  case '9': {
    LightBackwards();
    i++;
  } break;
  case 't':
    Toggle();
    break;
  case 0xe002:
    TurnLeft();
    break;
  case 0xe003:
    TurnRight();
    break;
  case 0xe000:
    TurnBackwards();
    break;
  case 0xe001:
    TurnForwards();
    break;
  case ' ':
    FireCannon();
  }
  return 0;
}
```