user: 请从给定的汇编指令推导出C源代码:

```asm
<main>:
  endbr64
  sub    $0x8,%rsp
  xor    %edi,%edi
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  je     L256
L97:
  mov    $0x1,%eax
L263:
  add    $0x8,%rsp
  ret
L256:
  movsd  D197(%rip),%xmm0
  mov    $0x1,%edi
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D152(%rip),%xmm0
  mov    $0x2,%edi
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D255(%rip),%xmm0
  mov    $0x14,%edi
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0xffffff,%edi
  movsd  D121(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x27,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D139(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x7ffffffffffff800,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x7fffff,%edi
  movsd  D261(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x28,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D195(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x7ffffffffffff000,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x1000001,%edi
  movsd  D2(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x27,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D237(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x8000000000000800,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x800001,%edi
  movsd  D35(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x28,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D126(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x8000000000001000,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x1,%edi
  movsd  D95(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x3f,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D95(%rip),%rax
  movabs $0x8000000000000001,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0xff6e5d,%edi
  movsd  D111(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x1b,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x3fdb975,%edi
  movsd  D87(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x19,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x7fb72eb,%edi
  movsd  D42(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x18,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D47(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x7fb72ebffffff,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x1fedcbb,%edi
  movsd  D134(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x1a,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D233(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x7fb72e8000001,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x3fdb973,%edi
  movsd  D157(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x19,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x7fb72e7,%edi
  movsd  D249(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x18,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D16(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x7fb72e7ffffff,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D266(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x7fb72e4000001,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    $0x1fedcb9,%edi
  movsd  D43(%rip),%xmm0
  mov    $0x1,%eax
  shl    $0x1a,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092dc0,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D186(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x23479fd0e092da1,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092db0,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092db8,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092db6,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092dbf,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092dc1,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092dc7,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092dc8,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092dcf,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D384(%rip),%rax
  movabs $0x23479fd0e092dd0,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  movsd  D234(%rip),%xmm0
  mov    $0x1,%eax
  movabs $0x23479fd0e092dd1,%rdi
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D234(%rip),%rax
  movabs $0x23479fd0e092dd8,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D234(%rip),%rax
  movabs $0x23479fd0e092ddf,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  jne    L97
  mov    D234(%rip),%rax
  movabs $0x23479fd0e092de0,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <test__floatundidf@plt>
  test   %eax,%eax
  setne  %al
  movzbl %al,%eax
  jmp    L263
```

tool_calls: name: read_data
arguments: label: D197
type_guessed: f64
name: read_data
arguments: label: D152
type_guessed: f64
name: read_data
arguments: label: D255
type_guessed: f64
name: read_data
arguments: label: D121
type_guessed: byte[8]
name: read_data
arguments: label: D139
type_guessed: byte[8]
name: read_data
arguments: label: D261
type_guessed: byte[8]
name: read_data
arguments: label: D195
type_guessed: byte[8]
name: read_data
arguments: label: D2
type_guessed: byte[8]
name: read_data
arguments: label: D237
type_guessed: byte[8]
name: read_data
arguments: label: D35
type_guessed: byte[8]
name: read_data
arguments: label: D126
type_guessed: byte[8]
name: read_data
arguments: label: D95
type_guessed: f32[2]
name: read_data
arguments: label: D111
type_guessed: byte[8]
name: read_data
arguments: label: D87
type_guessed: byte[8]
name: read_data
arguments: label: D42
type_guessed: byte[8]
name: read_data
arguments: label: D47
type_guessed: byte[8]
name: read_data
arguments: label: D134
type_guessed: byte[8]
name: read_data
arguments: label: D233
type_guessed: byte[8]
name: read_data
arguments: label: D157
type_guessed: byte[8]
name: read_data
arguments: label: D249
type_guessed: byte[8]
name: read_data
arguments: label: D16
type_guessed: byte[8]
name: read_data
arguments: label: D266
type_guessed: byte[8]
name: read_data
arguments: label: D43
type_guessed: byte[8]
name: read_data
arguments: label: D384
type_guessed: byte[8]
name: read_data
arguments: label: D186
type_guessed: byte[8]
name: read_data
arguments: label: D234
type_guessed: byte[8]

tool: D197: 1

tool: D152: 2

tool: D255: 20

tool: {"D121": [0x00,0x00,0x00,0xe0,0xff,0xff,0xdf,0x43]}

tool: {"D139": [0xfe,0xff,0xff,0xff,0xff,0xff,0xdf,0x43]}

tool: {"D261": [0x00,0x00,0x00,0xc0,0xff,0xff,0xdf,0x43]}

tool: {"D195": [0xfc,0xff,0xff,0xff,0xff,0xff,0xdf,0x43]}

tool: {"D2": [0x00,0x00,0x00,0x10,0x00,0x00,0xe0,0x43]}

tool: {"D237": [0x01,0x00,0x00,0x00,0x00,0x00,0xe0,0x43]}

tool: {"D35": [0x00,0x00,0x00,0x20,0x00,0x00,0xe0,0x43]}

tool: {"D126": [0x02,0x00,0x00,0x00,0x00,0x00,0xe0,0x43]}

tool: {"D95": [0.0,448.0]}

tool: {"D111": [0x00,0x00,0x00,0xa0,0xcb,0xed,0x1f,0x43]}

tool: {"D87": [0x00,0x00,0x00,0xa8,0xcb,0xed,0x1f,0x43]}

tool: {"D42": [0x00,0x00,0x00,0xac,0xcb,0xed,0x1f,0x43]}

tool: {"D47": [0xfc,0xff,0xff,0xaf,0xcb,0xed,0x1f,0x43]}

tool: {"D134": [0x00,0x00,0x00,0xb0,0xcb,0xed,0x1f,0x43]}

tool: {"D233": [0x04,0x00,0x00,0xa0,0xcb,0xed,0x1f,0x43]}

tool: {"D157": [0x00,0x00,0x00,0x98,0xcb,0xed,0x1f,0x43]}

tool: {"D249": [0x00,0x00,0x00,0x9c,0xcb,0xed,0x1f,0x43]}

tool: {"D16": [0xfc,0xff,0xff,0x9f,0xcb,0xed,0x1f,0x43]}

tool: {"D266": [0x04,0x00,0x00,0x90,0xcb,0xed,0x1f,0x43]}

tool: {"D43": [0x00,0x00,0x00,0x90,0xcb,0xed,0x1f,0x43]}

tool: {"D384": [0x6e,0x49,0x70,0xe8,0xcf,0xa3,0x81,0x43]}

tool: {"D186": [0x6d,0x49,0x70,0xe8,0xcf,0xa3,0x81,0x43]}

tool: {"D234": [0x6f,0x49,0x70,0xe8,0xcf,0xa3,0x81,0x43]}

assistant: ```c
int main() {
  if (test__floatundidf(0, 0.0))
    return 1;
  if (test__floatundidf(1, 1.0))
    return 1;
  if (test__floatundidf(2, 2.0))
    return 1;
  if (test__floatundidf(20, 20.0))
    return 1;
  if (test__floatundidf(0x7FFFFF8000000000LL, 0x1.FFFFFEp+62))
    return 1;
  if (test__floatundidf(0x7FFFFFFFFFFFF800LL, 0x1.FFFFFFFFFFFFEp+62))
    return 1;
  if (test__floatundidf(0x7FFFFF0000000000LL, 0x1.FFFFFCp+62))
    return 1;
  if (test__floatundidf(0x7FFFFFFFFFFFF000LL, 0x1.FFFFFFFFFFFFCp+62))
    return 1;
  if (test__floatundidf(0x8000008000000000LL, 0x1.000001p+63))
    return 1;
  if (test__floatundidf(0x8000000000000800LL, 0x1.0000000000001p+63))
    return 1;
  if (test__floatundidf(0x8000010000000000LL, 0x1.000002p+63))
    return 1;
  if (test__floatundidf(0x8000000000001000LL, 0x1.0000000000002p+63))
    return 1;
  if (test__floatundidf(0x8000000000000000LL, 0x1p+63))
    return 1;
  if (test__floatundidf(0x8000000000000001LL, 0x1p+63))
    return 1;
  if (test__floatundidf(0x0007FB72E8000000LL, 0x1.FEDCBAp+50))
    return 1;
  if (test__floatundidf(0x0007FB72EA000000LL, 0x1.FEDCBA8p+50))
    return 1;
  if (test__floatundidf(0x0007FB72EB000000LL, 0x1.FEDCBACp+50))
    return 1;
  if (test__floatundidf(0x0007FB72EBFFFFFFLL, 0x1.FEDCBAFFFFFFCp+50))
    return 1;
  if (test__floatundidf(0x0007FB72EC000000LL, 0x1.FEDCBBp+50))
    return 1;
  if (test__floatundidf(0x0007FB72E8000001LL, 0x1.FEDCBA0000004p+50))
    return 1;
  if (test__floatundidf(0x0007FB72E6000000LL, 0x1.FEDCB98p+50))
    return 1;
  if (test__floatundidf(0x0007FB72E7000000LL, 0x1.FEDCB9Cp+50))
    return 1;
  if (test__floatundidf(0x0007FB72E7FFFFFFLL, 0x1.FEDCB9FFFFFFCp+50))
    return 1;
  if (test__floatundidf(0x0007FB72E4000001LL, 0x1.FEDCB90000004p+50))
    return 1;
  if (test__floatundidf(0x0007FB72E4000000LL, 0x1.FEDCB9p+50))
    return 1;
  if (test__floatundidf(0x023479FD0E092DC0LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DA1LL, 0x1.1A3CFE870496Dp+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DB0LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DB8LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DB6LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DBFLL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DC1LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DC7LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DC8LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DCFLL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DD0LL, 0x1.1A3CFE870496Ep+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DD1LL, 0x1.1A3CFE870496Fp+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DD8LL, 0x1.1A3CFE870496Fp+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DDFLL, 0x1.1A3CFE870496Fp+57))
    return 1;
  if (test__floatundidf(0x023479FD0E092DE0LL, 0x1.1A3CFE870496Fp+57))
    return 1;
  return 0;
}
```