user: Translate the below assembly code into C programming language:

```asm
<_Send1>:
  endbr64
  push   %rbx
  xor    %eax,%eax
  mov    %edi,%ebx
  test   %dil,%dil
  js     L79
  call   <LCD_CLR_SDA_IN@plt>
L69:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x40,%bl
  je     L96
  call   <LCD_SET_SDA_IN@plt>
L112:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x20,%bl
  je     L121
  call   <LCD_SET_SDA_IN@plt>
L35:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x10,%bl
  je     L42
  call   <LCD_SET_SDA_IN@plt>
L24:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x8,%bl
  je     L139
  call   <LCD_SET_SDA_IN@plt>
L18:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x4,%bl
  je     L136
  call   <LCD_SET_SDA_IN@plt>
L19:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x2,%bl
  je     L28
  call   <LCD_SET_SDA_IN@plt>
L125:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  and    $0x1,%ebx
  je     L159
  call   <LCD_SET_SDA_IN@plt>
L117:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  pop    %rbx
  jmp    10a0 <LCD_CLR_SCL@plt>
  xchg   %ax,%ax
L96:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L112
  nopw   0x0(%rax,%rax,1)
L159:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L117
  nopw   0x0(%rax,%rax,1)
L28:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L125
  nopw   0x0(%rax,%rax,1)
L136:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L19
  nopw   0x0(%rax,%rax,1)
L139:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L18
  nopw   0x0(%rax,%rax,1)
L42:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L24
  nopw   0x0(%rax,%rax,1)
L121:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L35
  nopw   0x0(%rax,%rax,1)
L79:
  call   <LCD_SET_SDA_IN@plt>
  jmp    L69
```

assistant: ```c
void _Send1(unsigned char Data) {
  if (Data & (1 << 7)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  if (Data & (1 << 6)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  if (Data & (1 << 5)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  if (Data & (1 << 4)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  if (Data & (1 << 3)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  if (Data & (1 << 2)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  if (Data & (1 << 1)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  if (Data & (1 << 0)) {
    LCD_SET_SDA_IN();
  } else {
    LCD_CLR_SDA_IN();
  };
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
  ;
  LCD_SET_SCL();
  ;
  LCD_CLR_SCL();
}
```