user: 下面的汇编指令对应的C源代码是什么：

```asm
<is_platform>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    -0x10(%rbp),%rax
  lea    D274(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L161
  mov    -0x10(%rbp),%rax
  lea    D81(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L161
  mov    -0x10(%rbp),%rax
  lea    D75(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L161
  mov    -0x10(%rbp),%rax
  lea    D161(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L161
  mov    -0x10(%rbp),%rax
  lea    D123(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L161
  mov    -0x10(%rbp),%rax
  lea    D70(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L42
L161:
  mov    -0x8(%rbp),%rax
  lea    D275(%rip),%rdx
  mov    %rdx,(%rax)
  mov    $0x0,%eax
  jmp    L31
L42:
  mov    -0x10(%rbp),%rax
  lea    D168(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L86
  mov    -0x10(%rbp),%rax
  lea    D248(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L86
  mov    -0x10(%rbp),%rax
  lea    D19(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L86
  mov    -0x10(%rbp),%rax
  lea    D319(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L86
  mov    -0x10(%rbp),%rax
  lea    D189(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L86
  mov    -0x10(%rbp),%rax
  lea    D233(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L230
L86:
  mov    -0x8(%rbp),%rax
  lea    D299(%rip),%rdx
  mov    %rdx,(%rax)
  mov    $0x0,%eax
  jmp    L31
L230:
  mov    -0x10(%rbp),%rax
  lea    D67(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L160
  mov    -0x8(%rbp),%rax
  lea    D67(%rip),%rdx
  mov    %rdx,(%rax)
  mov    $0x0,%eax
  jmp    L31
L160:
  mov    -0x10(%rbp),%rax
  lea    D12(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L309
  mov    -0x10(%rbp),%rax
  lea    D200(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L309
  mov    -0x10(%rbp),%rax
  lea    D79(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L124
L309:
  mov    -0x8(%rbp),%rax
  lea    D9(%rip),%rdx
  mov    %rdx,(%rax)
  mov    $0x0,%eax
  jmp    L31
L124:
  mov    -0x10(%rbp),%rax
  lea    D160(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L245
  mov    -0x8(%rbp),%rax
  lea    D160(%rip),%rdx
  mov    %rdx,(%rax)
  mov    $0x0,%eax
  jmp    L31
L245:
  mov    -0x10(%rbp),%rax
  lea    D129(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L159
  mov    -0x8(%rbp),%rax
  lea    D129(%rip),%rdx
  mov    %rdx,(%rax)
  mov    $0x0,%eax
  jmp    L31
L159:
  mov    -0x10(%rbp),%rax
  lea    D229(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L100
  mov    -0x10(%rbp),%rax
  lea    D211(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L100
  mov    -0x10(%rbp),%rax
  lea    D24(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L100
  mov    -0x10(%rbp),%rax
  lea    D25(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L100
  mov    -0x10(%rbp),%rax
  lea    D61(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L100
  mov    -0x10(%rbp),%rax
  lea    D272(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L100
  mov    -0x10(%rbp),%rax
  lea    D285(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L263
L100:
  mov    -0x8(%rbp),%rax
  lea    D232(%rip),%rdx
  mov    %rdx,(%rax)
L263:
  mov    $0xffffffff,%eax
L31:
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D274
type_infered: string
name: parse_data
arguments: label: D81
type_infered: string
name: parse_data
arguments: label: D75
type_infered: string
name: parse_data
arguments: label: D161
type_infered: string
name: parse_data
arguments: label: D123
type_infered: string
name: parse_data
arguments: label: D70
type_infered: string
name: parse_data
arguments: label: D275
type_infered: string
name: parse_data
arguments: label: D168
type_infered: string
name: parse_data
arguments: label: D248
type_infered: string
name: parse_data
arguments: label: D19
type_infered: string
name: parse_data
arguments: label: D319
type_infered: string
name: parse_data
arguments: label: D189
type_infered: string
name: parse_data
arguments: label: D233
type_infered: string
name: parse_data
arguments: label: D299
type_infered: string
name: parse_data
arguments: label: D67
type_infered: string
name: parse_data
arguments: label: D12
type_infered: string
name: parse_data
arguments: label: D200
type_infered: string
name: parse_data
arguments: label: D79
type_infered: string
name: parse_data
arguments: label: D9
type_infered: string
name: parse_data
arguments: label: D160
type_infered: string
name: parse_data
arguments: label: D129
type_infered: string
name: parse_data
arguments: label: D229
type_infered: string
name: parse_data
arguments: label: D211
type_infered: string
name: parse_data
arguments: label: D24
type_infered: string
name: parse_data
arguments: label: D25
type_infered: string
name: parse_data
arguments: label: D61
type_infered: string
name: parse_data
arguments: label: D272
type_infered: string
name: parse_data
arguments: label: D285
type_infered: string
name: parse_data
arguments: label: D232
type_infered: string

tool: D274: 1710

tool: D81: 1720

tool: D75: 1721

tool: D161: 1750

tool: D123: 1751

tool: D70: 1760

tool: D275: 1700

tool: D168: 2610

tool: D248: 2611

tool: D19: 2620

tool: D319: 2621

tool: D189: 2610XM

tool: D233: 2650XM

tool: D299: 2600

tool: D67: 2691

tool: D12: 3620

tool: D200: 3640

tool: D79: 3660

tool: D9: 3600

tool: D160: 3725

tool: D129: 3745

tool: D229: npe-100

tool: D211: npe-150

tool: D24: npe-175

tool: D25: npe-200

tool: D61: npe-225

tool: D272: npe-300

tool: D285: npe-400

tool: D232: 7200

assistant: ```c
int is_platform(char **family, const char *platform) {
  if (strcmp(platform, "1710") == 0 || strcmp(platform, "1720") == 0 || strcmp(platform, "1721") == 0 || strcmp(platform, "1750") == 0 || strcmp(platform, "1751") == 0 || strcmp(platform, "1760") == 0) {
    *family = "1700";
    return 0;
  } else if (strcmp(platform, "2610") == 0 || strcmp(platform, "2611") == 0 || strcmp(platform, "2620") == 0 || strcmp(platform, "2621") == 0 || strcmp(platform, "2610XM") == 0 || strcmp(platform, "2650XM") == 0) {
    *family = "2600";
    return 0;
  } else if (strcmp(platform, "2691") == 0) {
    *family = "2691";
    return 0;
  } else if (strcmp(platform, "3620") == 0 || strcmp(platform, "3640") == 0 || strcmp(platform, "3660") == 0) {
    *family = "3600";
    return 0;
  } else if (strcmp(platform, "3725") == 0) {
    *family = "3725";
    return 0;
  } else if (strcmp(platform, "3745") == 0) {
    *family = "3745";
    return 0;
  } else if (strcmp(platform, "npe-100") == 0 || strcmp(platform, "npe-150") == 0 || strcmp(platform, "npe-175") == 0 || strcmp(platform, "npe-200") == 0 || strcmp(platform, "npe-225") == 0 || strcmp(platform, "npe-300") == 0 || strcmp(platform, "npe-400") == 0) {
    *family = "7200";
  }
  return -1;
}
```