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

```asm
<_Send1>:
  endbr64
  push   %rbx
  mov    %edi,%ebx
  test   %dil,%dil
  js     L45
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
L122:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  test   $0x40,%bl
  je     L98
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
L80:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  test   $0x20,%bl
  je     L93
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
L31:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  test   $0x10,%bl
  je     L10
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
L126:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  test   $0x8,%bl
  je     L116
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
L85:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  test   $0x4,%bl
  je     L147
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
L104:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  test   $0x2,%bl
  je     L62
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
L74:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  test   $0x1,%bl
  je     L40
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
L117:
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_SET_SCL@plt>
  mov    $0x0,%eax
  call   <LCD_CLR_SCL@plt>
  pop    %rbx
  ret
L45:
  mov    $0x0,%eax
  call   <LCD_SET_SDA_IN@plt>
  jmp    L122
L98:
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L80
L93:
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L31
L10:
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L126
L116:
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L85
L147:
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L104
L62:
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L74
L40:
  mov    $0x0,%eax
  call   <LCD_CLR_SDA_IN@plt>
  jmp    L117
```

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