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

```asm
<main>:
  endbr64
  sub    $0x8,%rsp
  mov    $0xff000000,%edx
  mov    $0xb,%esi
  mov    $0xffffffff,%edi
  call   <ShrTest1@plt>
  lea    D126(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0x1,%edx
  mov    $0xb,%esi
  mov    $0xffffffb7,%edi
  call   <ShrTest2@plt>
  lea    D145(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xffffffb7,%edi
  call   <ShrTest3@plt>
  lea    D139(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xffffffb7,%edi
  call   <ShrTest4@plt>
  lea    D110(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xb,%esi
  mov    $0x1e5d,%edi
  call   <ShrTest5@plt>
  lea    D99(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xb,%esi
  mov    $0xffffffb7,%edi
  call   <ShrTest6@plt>
  lea    D95(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xfffffd1f,%edi
  call   <ShrTest7@plt>
  lea    D105(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0x49,%edi
  call   <ShrTest8@plt>
  lea    D5(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xb,%edx
  mov    $0x1e5d,%esi
  mov    $0xd,%edi
  call   <ShrTest9@plt>
  lea    D136(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xb,%edx
  mov    $0x1e5d,%esi
  mov    $0xd,%edi
  call   <ShrTest10@plt>
  lea    D74(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xb,%edx
  mov    $0x1e5d,%esi
  mov    $0xd,%edi
  call   <ShrTest11@plt>
  lea    D71(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xebd,%ecx
  mov    $0xb,%edx
  mov    $0xffffffb7,%esi
  mov    $0x1e5d,%edi
  call   <ShrTest12@plt>
  lea    D4(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xebd,%ecx
  mov    $0xb,%edx
  mov    $0xffffffb7,%esi
  mov    $0x1e5d,%edi
  call   <ShrTest13@plt>
  lea    D130(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xebd,%ecx
  mov    $0xb,%edx
  mov    $0xffffffb7,%esi
  mov    $0x1e5d,%edi
  call   <ShrTest14@plt>
  lea    D56(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xb,%edx
  mov    $0xd,%esi
  mov    $0x1e5d,%edi
  call   <ShrTest15@plt>
  lea    D37(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  mov    $0xd,%edx
  mov    $0xb,%esi
  mov    $0xffffffb7,%edi
  call   <ShrTest16@plt>
  lea    D63(%rip),%rdi
  mov    %eax,%esi
  call   <printf@plt>
  xor    %eax,%eax
  add    $0x8,%rsp
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D126
data_type: string
name: disassemble_data
arguments: data_tag: D145
data_type: string
name: disassemble_data
arguments: data_tag: D139
data_type: string
name: disassemble_data
arguments: data_tag: D110
data_type: string
name: disassemble_data
arguments: data_tag: D99
data_type: string
name: disassemble_data
arguments: data_tag: D95
data_type: string
name: disassemble_data
arguments: data_tag: D105
data_type: string
name: disassemble_data
arguments: data_tag: D5
data_type: string
name: disassemble_data
arguments: data_tag: D136
data_type: string
name: disassemble_data
arguments: data_tag: D74
data_type: string
name: disassemble_data
arguments: data_tag: D71
data_type: string
name: disassemble_data
arguments: data_tag: D4
data_type: string
name: disassemble_data
arguments: data_tag: D130
data_type: string
name: disassemble_data
arguments: data_tag: D56
data_type: string
name: disassemble_data
arguments: data_tag: D37
data_type: string
name: disassemble_data
arguments: data_tag: D63
data_type: string

tool: D126: ShrTest1(-1, 11, 0xFF000000) = %d


tool: D145: ShrTest2(-73, 11, 1) = %d


tool: D139: ShrTest3(-73) = %d


tool: D110: ShrTest4(-73) = %d


tool: D99: ShrTest5(7773, 11) = %d


tool: D95: ShrTest6(-73, 11) = %d


tool: D105: ShrTest7(-737) = %d


tool: D5: ShrTest8(73) = %d


tool: D136: ShrTest9(13, 7773, 11) = %d


tool: D74: ShrTest10(13, 7773, 11) = %d


tool: D71: ShrTest11(13, 7773, 11) = %d


tool: D4: ShrTest12(7773, -73, 11, 3773) = %d


tool: D130: ShrTest13(7773, -73, 11, 3773) = %d


tool: D56: ShrTest14(7773, -73, 11, 3773) = %d


tool: D37: ShrTest15(7773, 13, 11) = %d


tool: D63: ShrTest16(-73, 11, 13) = %d


assistant: ```c
int main(int argc, char **argv) {
  printf("ShrTest1(-1, 11, 0xFF000000) = %d\n", ShrTest1(0xFFFFFFFF, 11, 0xFF000000));
  printf("ShrTest2(-73, 11, 1) = %d\n", ShrTest2(-73, 11, 1));
  printf("ShrTest3(-73) = %d\n", ShrTest3(-73));
  printf("ShrTest4(-73) = %d\n", ShrTest4(-73));
  printf("ShrTest5(7773, 11) = %d\n", ShrTest5(7773, 11));
  printf("ShrTest6(-73, 11) = %d\n", ShrTest6(-73, 11));
  printf("ShrTest7(-737) = %d\n", ShrTest7(-737));
  printf("ShrTest8(73) = %d\n", ShrTest8(73));
  printf("ShrTest9(13, 7773, 11) = %d\n", ShrTest9(13, 7773, 11));
  printf("ShrTest10(13, 7773, 11) = %d\n", ShrTest10(13, 7773, 11));
  printf("ShrTest11(13, 7773, 11) = %d\n", ShrTest11(13, 7773, 11));
  printf("ShrTest12(7773, -73, 11, 3773) = %d\n", ShrTest12(7773, -73, 11, 3773));
  printf("ShrTest13(7773, -73, 11, 3773) = %d\n", ShrTest13(7773, -73, 11, 3773));
  printf("ShrTest14(7773, -73, 11, 3773) = %d\n", ShrTest14(7773, -73, 11, 3773));
  printf("ShrTest15(7773, 13, 11) = %d\n", ShrTest15(7773, 13, 11));
  printf("ShrTest16(-73, 11, 13) = %d\n", ShrTest16(-73, 11, 13));
  return 0;
}
```