user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<main>:
  endbr64
  movabs $0x314000000007a125,%rax
  push   %r14
  movabs $0x3160000000000001,%r14
  push   %rbx
  movq   %rax,%xmm0
  mov    $0x1,%eax
  movabs $0x31c0000000000000,%rbx
  sub    $0x8,%rsp
  call   <eedtr@plt>
  movabs $0xb14000000007a125,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <eedtr@plt>
  movq   %rbx,%xmm0
  mov    $0x1,%eax
  call   <eedtr@plt>
  movdqa D305(%rip),%xmm3
  mov    $0x1,%eax
  movdqa %xmm3,%xmm0
  call   <eextr@plt>
  movdqa D109(%rip),%xmm1
  mov    $0x1,%eax
  movdqa %xmm1,%xmm0
  call   <eextr@plt>
  movdqa D277(%rip),%xmm2
  mov    $0x1,%eax
  movdqa %xmm2,%xmm0
  call   <eextr@plt>
  movabs $0x314000000007a125,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <esdtr@plt>
  movabs $0xb14000000007a125,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <esdtr@plt>
  movq   %rbx,%xmm0
  mov    $0x1,%eax
  call   <esdtr@plt>
  movdqa D305(%rip),%xmm3
  mov    $0x1,%eax
  movdqa %xmm3,%xmm0
  call   <esxtr@plt>
  movdqa D109(%rip),%xmm1
  mov    $0x1,%eax
  movdqa %xmm1,%xmm0
  call   <esxtr@plt>
  movdqa D277(%rip),%xmm2
  mov    $0x1,%eax
  movdqa %xmm2,%xmm0
  call   <esxtr@plt>
  movabs $0x314000000007a125,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <ltdtr@plt>
  movabs $0xb14000000007a125,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <ltdtr@plt>
  movabs $0x31a0000000000000,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <ltdtr@plt>
  movdqa D305(%rip),%xmm3
  mov    $0x1,%eax
  movdqa %xmm3,%xmm0
  call   <ltxtr@plt>
  movdqa D109(%rip),%xmm1
  mov    $0x1,%eax
  movdqa %xmm1,%xmm0
  call   <ltxtr@plt>
  movdqa D377(%rip),%xmm0
  mov    $0x1,%eax
  call   <ltxtr@plt>
  mov    $0xa,%edi
  movabs $0x3120011f71fa78f1,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <sldt@plt>
  mov    $0x2,%edi
  movabs $0xb120011f71fa78f1,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <sldt@plt>
  movq   %rbx,%xmm0
  mov    $0x2,%edi
  mov    $0x1,%eax
  call   <sldt@plt>
  mov    $0x2,%edi
  movabs $0xb1c0000000000000,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <sldt@plt>
  mov    $0x5,%edi
  movabs $0x3120011f71fa78f1,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <srdt@plt>
  mov    $0x2,%edi
  movabs $0xb120011f71fa78f1,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <srdt@plt>
  movq   %rbx,%xmm0
  mov    $0x2,%edi
  mov    $0x1,%eax
  call   <srdt@plt>
  mov    $0x2,%edi
  movabs $0xb1c0000000000000,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <srdt@plt>
  mov    $0xa,%edi
  mov    $0x1,%eax
  movdqa D359(%rip),%xmm5
  movdqa %xmm5,%xmm0
  call   <slxt@plt>
  mov    $0x2,%edi
  mov    $0x1,%eax
  movdqa D269(%rip),%xmm4
  movdqa %xmm4,%xmm0
  call   <slxt@plt>
  mov    $0x2,%edi
  mov    $0x1,%eax
  movdqa D277(%rip),%xmm2
  movdqa %xmm2,%xmm0
  call   <slxt@plt>
  mov    $0x2,%edi
  mov    $0x1,%eax
  movdqa D84(%rip),%xmm3
  movdqa %xmm3,%xmm0
  call   <slxt@plt>
  mov    $0xa,%edi
  mov    $0x1,%eax
  movdqa D359(%rip),%xmm5
  movdqa %xmm5,%xmm0
  call   <srxt@plt>
  mov    $0x2,%edi
  mov    $0x1,%eax
  movdqa D269(%rip),%xmm4
  movdqa %xmm4,%xmm0
  call   <srxt@plt>
  mov    $0x2,%edi
  mov    $0x1,%eax
  movdqa D277(%rip),%xmm2
  movdqa %xmm2,%xmm0
  call   <srxt@plt>
  mov    $0x2,%edi
  mov    $0x1,%eax
  movdqa D84(%rip),%xmm3
  movdqa %xmm3,%xmm0
  call   <srxt@plt>
  mov    $0x187,%edi
  movabs $0x31000000004c4b45,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x188,%edi
  movabs $0x31000000004c4b45,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x189,%edi
  movabs $0x31000000004c4b45,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x187,%edi
  movabs $0xb1000000004c4b45,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x188,%edi
  movabs $0xb1000000004c4b45,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x189,%edi
  movabs $0xb1000000004c4b45,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  movq   %rbx,%xmm0
  mov    $0x189,%edi
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x189,%edi
  movabs $0xb1c0000000000000,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x189,%edi
  movabs $0x31c0000000000001,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <iedtr@plt>
  mov    $0x1819,%edi
  mov    $0x1,%eax
  movdqa D286(%rip),%xmm0
  call   <iextr@plt>
  mov    $0x181a,%edi
  mov    $0x1,%eax
  movdqa D286(%rip),%xmm0
  call   <iextr@plt>
  mov    $0x181b,%edi
  mov    $0x1,%eax
  movdqa D286(%rip),%xmm0
  call   <iextr@plt>
  mov    $0x1819,%edi
  mov    $0x1,%eax
  movdqa D9(%rip),%xmm0
  call   <iextr@plt>
  mov    $0x181a,%edi
  mov    $0x1,%eax
  movdqa D9(%rip),%xmm0
  call   <iextr@plt>
  mov    $0x181b,%edi
  mov    $0x1,%eax
  movdqa D9(%rip),%xmm0
  call   <iextr@plt>
  mov    $0x181b,%edi
  mov    $0x1,%eax
  movdqa D277(%rip),%xmm2
  movdqa %xmm2,%xmm0
  call   <iextr@plt>
  mov    $0x181b,%edi
  mov    $0x1,%eax
  movdqa D84(%rip),%xmm3
  movdqa %xmm3,%xmm0
  call   <iextr@plt>
  mov    $0x181b,%edi
  mov    $0x1,%eax
  movdqa D135(%rip),%xmm0
  call   <iextr@plt>
  movq   %r14,%xmm1
  movabs $0x3100000000212162,%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <quantize64@plt>
  movq   %r14,%xmm1
  movabs $0xb100000000212162,%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <quantize64@plt>
  movq   %rbx,%xmm1
  movabs $0xb100000000212162,%rax
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <quantize64@plt>
  movq   %r14,%xmm1
  movq   %rbx,%xmm0
  mov    $0x2,%eax
  call   <quantize64@plt>
  movdqa D275(%rip),%xmm4
  mov    $0x2,%eax
  movdqa D263(%rip),%xmm1
  movdqa %xmm4,%xmm0
  call   <quantize128@plt>
  movdqa D263(%rip),%xmm1
  mov    $0x2,%eax
  movdqa D319(%rip),%xmm0
  call   <quantize128@plt>
  movdqa D277(%rip),%xmm2
  mov    $0x2,%eax
  movdqa D275(%rip),%xmm4
  movdqa %xmm2,%xmm1
  movdqa %xmm4,%xmm0
  call   <quantize128@plt>
  movdqa D84(%rip),%xmm3
  mov    $0x2,%eax
  movdqa D263(%rip),%xmm1
  movdqa %xmm3,%xmm0
  call   <quantize128@plt>
  mov    $0x3,%edi
  movabs $0x3100000000212e86,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <reround64@plt>
  mov    $0x4,%edi
  movabs $0x3100000000212e86,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <reround64@plt>
  mov    $0x5,%edi
  movabs $0x3100000000212e86,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <reround64@plt>
  mov    $0x3,%edi
  movabs $0xb100000000212e86,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <reround64@plt>
  mov    $0x4,%edi
  movabs $0xb100000000212e86,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <reround64@plt>
  mov    $0x5,%edi
  movabs $0xb100000000212e86,%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <reround64@plt>
  movq   %rbx,%xmm0
  xor    %edi,%edi
  mov    $0x1,%eax
  call   <reround64@plt>
  mov    $0x3,%edi
  mov    $0x1,%eax
  movdqa D260(%rip),%xmm0
  call   <reround128@plt>
  mov    $0x4,%edi
  mov    $0x1,%eax
  movdqa D260(%rip),%xmm0
  call   <reround128@plt>
  mov    $0x5,%edi
  mov    $0x1,%eax
  movdqa D260(%rip),%xmm0
  call   <reround128@plt>
  mov    $0x3,%edi
  mov    $0x1,%eax
  movdqa D180(%rip),%xmm0
  call   <reround128@plt>
  mov    $0x4,%edi
  mov    $0x1,%eax
  movdqa D180(%rip),%xmm0
  call   <reround128@plt>
  mov    $0x5,%edi
  mov    $0x1,%eax
  movdqa D180(%rip),%xmm0
  call   <reround128@plt>
  movdqa D277(%rip),%xmm2
  xor    %edi,%edi
  mov    $0x1,%eax
  movdqa %xmm2,%xmm0
  call   <reround128@plt>
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %r14
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D305
data_type: byte[16]
name: disassemble_data
arguments: data_label: D109
data_type: byte[16]
name: disassemble_data
arguments: data_label: D277
data_type: byte[16]
name: disassemble_data
arguments: data_label: D377
data_type: byte[16]
name: disassemble_data
arguments: data_label: D359
data_type: byte[16]
name: disassemble_data
arguments: data_label: D269
data_type: byte[16]
name: disassemble_data
arguments: data_label: D84
data_type: byte[16]
name: disassemble_data
arguments: data_label: D286
data_type: byte[16]
name: disassemble_data
arguments: data_label: D9
data_type: byte[16]
name: disassemble_data
arguments: data_label: D135
data_type: byte[16]
name: disassemble_data
arguments: data_label: D275
data_type: byte[16]
name: disassemble_data
arguments: data_label: D263
data_type: byte[16]
name: disassemble_data
arguments: data_label: D319
data_type: byte[16]
name: disassemble_data
arguments: data_label: D260
data_type: byte[16]
name: disassemble_data
arguments: data_label: D180
data_type: byte[16]

tool: {"D305": [0x25,0xa1,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x30]}

tool: {"D109": [0x25,0xa1,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xb0]}

tool: {"D277": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x30]}

tool: {"D377": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x30]}

tool: {"D359": [0xf1,0x78,0xfa,0x71,0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x30]}

tool: {"D269": [0xf1,0x78,0xfa,0x71,0x1f,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0xb0]}

tool: {"D84": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xb0]}

tool: {"D286": [0x45,0x4b,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x30]}

tool: {"D9": [0x45,0x4b,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0xb0]}

tool: {"D135": [0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x30]}

tool: {"D275": [0xe2,0xc4,0x87,0xee,0x23,0xab,0x5d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x30]}

tool: {"D263": [0xd9,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x30]}

tool: {"D319": [0xe2,0xc4,0x87,0xee,0x23,0xab,0x5d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0xb0]}

tool: {"D260": [0x86,0x2e,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x30]}

tool: {"D180": [0x86,0x2e,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0xb0]}

assistant: ```c
int main() {
  _Decimal64 d64 = 50.0005DD;
  _Decimal128 d128 = 50.0005DL;
  eedtr(d64);
  eedtr(-d64);
  eedtr(0.DD);
  eextr(d128);
  eextr(-d128);
  eextr(0.DL);
  esdtr(d64);
  esdtr(-d64);
  esdtr(0.DD);
  esxtr(d128);
  esxtr(-d128);
  esxtr(0.DL);
  ltdtr(d64);
  ltdtr(-d64);
  ltdtr(0.0DD);
  ltxtr(d128);
  ltxtr(-d128);
  ltxtr(0.0DL);
  d64 = 12345678.54321DD;
  sldt(d64, 10);
  sldt(-d64, 2);
  sldt(0.DD, 2);
  sldt(-0.DD, 2);
  srdt(d64, 5);
  srdt(-d64, 2);
  srdt(0.DD, 2);
  srdt(-0.DD, 2);
  d128 = 12345678.54321DL;
  slxt(d128, 10);
  slxt(-d128, 2);
  slxt(0.DL, 2);
  slxt(-0.DL, 2);
  srxt(d128, 10);
  srxt(-d128, 2);
  srxt(0.DL, 2);
  srxt(-0.DL, 2);
  d64 = 5.000005DD;
  iedtr(d64, 391);
  iedtr(d64, 392);
  iedtr(d64, 393);
  iedtr(-d64, 391);
  iedtr(-d64, 392);
  iedtr(-d64, 393);
  iedtr(0.DD, 393);
  iedtr(-0.DD, 393);
  iedtr(1.DD, 393);
  d128 = 5.000005DL;
  iextr(d128, 6169);
  iextr(d128, 6170);
  iextr(d128, 6171);
  iextr(-d128, 6169);
  iextr(-d128, 6170);
  iextr(-d128, 6171);
  iextr(0.DL, 6171);
  iextr(-0.DL, 6171);
  iextr(1.DL, 6171);
  d64 = 2.171234DD;
  quantize64(d64, 0.001DD);
  quantize64(-d64, 0.001DD);
  quantize64(-d64, 0.DD);
  quantize64(0.DD, 0.001DD);
  d128 = 26365343648.171234DL;
  quantize128(d128, 230.01DL);
  quantize128(-d128, 230.01DL);
  quantize128(d128, 0.DL);
  quantize128(-0.DL, 230.01DL);
  d64 = 2.174598DD;
  reround64(d64, 3);
  reround64(d64, 4);
  reround64(d64, 5);
  reround64(-d64, 3);
  reround64(-d64, 4);
  reround64(-d64, 5);
  reround64(0.DD, 0);
  d128 = 2.174598DL;
  reround128(d128, 3);
  reround128(d128, 4);
  reround128(d128, 5);
  reround128(-d128, 3);
  reround128(-d128, 4);
  reround128(-d128, 5);
  reround128(0.DL, 0);
  return 0;
}
```