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     L37
  call   <LCD_CLR_SDA_IN@plt>
L115:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x40,%bl
  je     L19
  call   <LCD_SET_SDA_IN@plt>
L67:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x20,%bl
  je     L75
  call   <LCD_SET_SDA_IN@plt>
L9:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x10,%bl
  je     L124
  call   <LCD_SET_SDA_IN@plt>
L98:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x8,%bl
  je     L135
  call   <LCD_SET_SDA_IN@plt>
L99:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x4,%bl
  je     L103
  call   <LCD_SET_SDA_IN@plt>
L88:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  test   $0x2,%bl
  je     L27
  call   <LCD_SET_SDA_IN@plt>
L39:
  xor    %eax,%eax
  call   <LCD_SET_SCL@plt>
  xor    %eax,%eax
  call   <LCD_CLR_SCL@plt>
  xor    %eax,%eax
  and    $0x1,%ebx
  je     L134
  call   <LCD_SET_SDA_IN@plt>
L2:
  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
L19:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L67
  nopw   0x0(%rax,%rax,1)
L134:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L2
  nopw   0x0(%rax,%rax,1)
L27:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L39
  nopw   0x0(%rax,%rax,1)
L103:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L88
  nopw   0x0(%rax,%rax,1)
L135:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L99
  nopw   0x0(%rax,%rax,1)
L124:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L98
  nopw   0x0(%rax,%rax,1)
L75:
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L9
  nopw   0x0(%rax,%rax,1)
L37:
  call   <LCD_SET_SDA_IN@plt>
  jmp    L115
```

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();
}
```