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

```asm
<xmss_str_to_oid>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    -0x10(%rbp),%rax
  lea    D108(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L191
  mov    -0x8(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L91
L191:
  mov    -0x10(%rbp),%rax
  lea    D106(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L242
  mov    -0x8(%rbp),%rax
  movl   $0x2,(%rax)
  jmp    L91
L242:
  mov    -0x10(%rbp),%rax
  lea    D116(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L197
  mov    -0x8(%rbp),%rax
  movl   $0x3,(%rax)
  jmp    L91
L197:
  mov    -0x10(%rbp),%rax
  lea    D49(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L83
  mov    -0x8(%rbp),%rax
  movl   $0x4,(%rax)
  jmp    L91
L83:
  mov    -0x10(%rbp),%rax
  lea    D51(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L345
  mov    -0x8(%rbp),%rax
  movl   $0x5,(%rax)
  jmp    L91
L345:
  mov    -0x10(%rbp),%rax
  lea    D102(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L230
  mov    -0x8(%rbp),%rax
  movl   $0x6,(%rax)
  jmp    L91
L230:
  mov    -0x10(%rbp),%rax
  lea    D11(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L114
  mov    -0x8(%rbp),%rax
  movl   $0x7,(%rax)
  jmp    L91
L114:
  mov    -0x10(%rbp),%rax
  lea    D74(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L306
  mov    -0x8(%rbp),%rax
  movl   $0x8,(%rax)
  jmp    L91
L306:
  mov    -0x10(%rbp),%rax
  lea    D143(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L88
  mov    -0x8(%rbp),%rax
  movl   $0x9,(%rax)
  jmp    L91
L88:
  mov    -0x10(%rbp),%rax
  lea    D86(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L265
  mov    -0x8(%rbp),%rax
  movl   $0xa,(%rax)
  jmp    L91
L265:
  mov    -0x10(%rbp),%rax
  lea    D191(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L390
  mov    -0x8(%rbp),%rax
  movl   $0xb,(%rax)
  jmp    L91
L390:
  mov    -0x10(%rbp),%rax
  lea    D37(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L349
  mov    -0x8(%rbp),%rax
  movl   $0xc,(%rax)
  jmp    L91
L349:
  mov    -0x10(%rbp),%rax
  lea    D193(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L279
  mov    -0x8(%rbp),%rax
  movl   $0xd,(%rax)
  jmp    L91
L279:
  mov    -0x10(%rbp),%rax
  lea    D19(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L115
  mov    -0x8(%rbp),%rax
  movl   $0xe,(%rax)
  jmp    L91
L115:
  mov    -0x10(%rbp),%rax
  lea    D8(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L154
  mov    -0x8(%rbp),%rax
  movl   $0xf,(%rax)
  jmp    L91
L154:
  mov    -0x10(%rbp),%rax
  lea    D152(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L28
  mov    -0x8(%rbp),%rax
  movl   $0x10,(%rax)
  jmp    L91
L28:
  mov    -0x10(%rbp),%rax
  lea    D131(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L328
  mov    -0x8(%rbp),%rax
  movl   $0x11,(%rax)
  jmp    L91
L328:
  mov    -0x10(%rbp),%rax
  lea    D76(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L124
  mov    -0x8(%rbp),%rax
  movl   $0x12,(%rax)
  jmp    L91
L124:
  mov    -0x10(%rbp),%rax
  lea    D167(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L303
  mov    -0x8(%rbp),%rax
  movl   $0x13,(%rax)
  jmp    L91
L303:
  mov    -0x10(%rbp),%rax
  lea    D159(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L229
  mov    -0x8(%rbp),%rax
  movl   $0x14,(%rax)
  jmp    L91
L229:
  mov    -0x10(%rbp),%rax
  lea    D151(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L18
  mov    -0x8(%rbp),%rax
  movl   $0x15,(%rax)
  jmp    L91
L18:
  mov    $0xffffffff,%eax
  jmp    L216
L91:
  mov    $0x0,%eax
L216:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D108
datatype: string
name: retrieve_data
arguments: data_label: D106
datatype: string
name: retrieve_data
arguments: data_label: D116
datatype: string
name: retrieve_data
arguments: data_label: D49
datatype: string
name: retrieve_data
arguments: data_label: D51
datatype: string
name: retrieve_data
arguments: data_label: D102
datatype: string
name: retrieve_data
arguments: data_label: D11
datatype: string
name: retrieve_data
arguments: data_label: D74
datatype: string
name: retrieve_data
arguments: data_label: D143
datatype: string
name: retrieve_data
arguments: data_label: D86
datatype: string
name: retrieve_data
arguments: data_label: D191
datatype: string
name: retrieve_data
arguments: data_label: D37
datatype: string
name: retrieve_data
arguments: data_label: D193
datatype: string
name: retrieve_data
arguments: data_label: D19
datatype: string
name: retrieve_data
arguments: data_label: D8
datatype: string
name: retrieve_data
arguments: data_label: D152
datatype: string
name: retrieve_data
arguments: data_label: D131
datatype: string
name: retrieve_data
arguments: data_label: D76
datatype: string
name: retrieve_data
arguments: data_label: D167
datatype: string
name: retrieve_data
arguments: data_label: D159
datatype: string
name: retrieve_data
arguments: data_label: D151
datatype: string

tool: D108: XMSS-SHA2_10_256

tool: D106: XMSS-SHA2_16_256

tool: D116: XMSS-SHA2_20_256

tool: D49: XMSS-SHA2_10_512

tool: D51: XMSS-SHA2_16_512

tool: D102: XMSS-SHA2_20_512

tool: D11: XMSS-SHAKE_10_256

tool: D74: XMSS-SHAKE_16_256

tool: D143: XMSS-SHAKE_20_256

tool: D86: XMSS-SHAKE_10_512

tool: D191: XMSS-SHAKE_16_512

tool: D37: XMSS-SHAKE_20_512

tool: D193: XMSS-SHA2_10_192

tool: D19: XMSS-SHA2_16_192

tool: D8: XMSS-SHA2_20_192

tool: D152: XMSS-SHAKE256_10_256

tool: D131: XMSS-SHAKE256_16_256

tool: D76: XMSS-SHAKE256_20_256

tool: D167: XMSS-SHAKE256_10_192

tool: D159: XMSS-SHAKE256_16_192

tool: D151: XMSS-SHAKE256_20_192

assistant: ```c
int xmss_str_to_oid(uint32_t *oid, const char *s) {
  if (!strcmp(s, "XMSS-SHA2_10_256")) {
    *oid = 0x00000001;
  } else if (!strcmp(s, "XMSS-SHA2_16_256")) {
    *oid = 0x00000002;
  } else if (!strcmp(s, "XMSS-SHA2_20_256")) {
    *oid = 0x00000003;
  } else if (!strcmp(s, "XMSS-SHA2_10_512")) {
    *oid = 0x00000004;
  } else if (!strcmp(s, "XMSS-SHA2_16_512")) {
    *oid = 0x00000005;
  } else if (!strcmp(s, "XMSS-SHA2_20_512")) {
    *oid = 0x00000006;
  } else if (!strcmp(s, "XMSS-SHAKE_10_256")) {
    *oid = 0x00000007;
  } else if (!strcmp(s, "XMSS-SHAKE_16_256")) {
    *oid = 0x00000008;
  } else if (!strcmp(s, "XMSS-SHAKE_20_256")) {
    *oid = 0x00000009;
  } else if (!strcmp(s, "XMSS-SHAKE_10_512")) {
    *oid = 0x0000000a;
  } else if (!strcmp(s, "XMSS-SHAKE_16_512")) {
    *oid = 0x0000000b;
  } else if (!strcmp(s, "XMSS-SHAKE_20_512")) {
    *oid = 0x0000000c;
  } else if (!strcmp(s, "XMSS-SHA2_10_192")) {
    *oid = 0x0000000d;
  } else if (!strcmp(s, "XMSS-SHA2_16_192")) {
    *oid = 0x0000000e;
  } else if (!strcmp(s, "XMSS-SHA2_20_192")) {
    *oid = 0x0000000f;
  } else if (!strcmp(s, "XMSS-SHAKE256_10_256")) {
    *oid = 0x00000010;
  } else if (!strcmp(s, "XMSS-SHAKE256_16_256")) {
    *oid = 0x00000011;
  } else if (!strcmp(s, "XMSS-SHAKE256_20_256")) {
    *oid = 0x00000012;
  } else if (!strcmp(s, "XMSS-SHAKE256_10_192")) {
    *oid = 0x00000013;
  } else if (!strcmp(s, "XMSS-SHAKE256_16_192")) {
    *oid = 0x00000014;
  } else if (!strcmp(s, "XMSS-SHAKE256_20_192")) {
    *oid = 0x00000015;
  } else {
    return -1;
  }
  return 0;
}
```