user: Converte this assembly snippet into its equivalent C code:

```asm
<xmss_str_to_oid>:
  endbr64
  push   %rbp
  mov    %rsi,%rbp
  lea    D98(%rip),%rsi
  push   %rbx
  mov    %rdi,%rbx
  mov    %rbp,%rdi
  sub    $0x8,%rsp
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L12
  movl   $0x1,(%rbx)
L357:
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
L12:
  lea    D193(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L278
  movl   $0x2,(%rbx)
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
L278:
  lea    D40(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L317
  lea    D117(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L377
  movl   $0x4,(%rbx)
  jmp    L357
  xchg   %ax,%ax
L317:
  movl   $0x3,(%rbx)
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
  nopl   (%rax)
L377:
  lea    D31(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  je     L236
  lea    D75(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L268
  movl   $0x6,(%rbx)
  jmp    L357
  nopl   0x0(%rax)
L236:
  movl   $0x5,(%rbx)
  jmp    L357
  nopl   0x0(%rax,%rax,1)
L268:
  lea    D7(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L35
  movl   $0x7,(%rbx)
  jmp    L357
L35:
  lea    D184(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L262
  movl   $0x8,(%rbx)
  jmp    L357
L262:
  lea    D160(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L167
  movl   $0x9,(%rbx)
  jmp    L357
L167:
  lea    D11(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L201
  movl   $0xa,(%rbx)
  jmp    L357
L201:
  lea    D174(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L90
  movl   $0xb,(%rbx)
  jmp    L357
L90:
  lea    D137(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L250
  movl   $0xc,(%rbx)
  jmp    L357
L250:
  lea    D85(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L361
  movl   $0xd,(%rbx)
  jmp    L357
L361:
  lea    D138(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L323
  movl   $0xe,(%rbx)
  jmp    L357
L323:
  lea    D130(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L231
  movl   $0xf,(%rbx)
  jmp    L357
L231:
  lea    D87(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L396
  movl   $0x10,(%rbx)
  jmp    L357
L396:
  lea    D96(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L240
  movl   $0x11,(%rbx)
  jmp    L357
L240:
  lea    D152(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L17
  movl   $0x12,(%rbx)
  jmp    L357
L17:
  lea    D72(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L173
  movl   $0x13,(%rbx)
  jmp    L357
L173:
  lea    D20(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L275
  movl   $0x14,(%rbx)
  jmp    L357
L275:
  lea    D120(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %eax,%eax
  jne    L285
  movl   $0x15,(%rbx)
  jmp    L357
L285:
  or     $0xffffffff,%eax
  jmp    L357
```

tool_calls: name: retrieve_data
arguments: data_tag: D98
type: string
name: retrieve_data
arguments: data_tag: D193
type: string
name: retrieve_data
arguments: data_tag: D40
type: string
name: retrieve_data
arguments: data_tag: D117
type: string
name: retrieve_data
arguments: data_tag: D31
type: string
name: retrieve_data
arguments: data_tag: D75
type: string
name: retrieve_data
arguments: data_tag: D7
type: string
name: retrieve_data
arguments: data_tag: D184
type: string
name: retrieve_data
arguments: data_tag: D160
type: string
name: retrieve_data
arguments: data_tag: D11
type: string
name: retrieve_data
arguments: data_tag: D174
type: string
name: retrieve_data
arguments: data_tag: D137
type: string
name: retrieve_data
arguments: data_tag: D85
type: string
name: retrieve_data
arguments: data_tag: D138
type: string
name: retrieve_data
arguments: data_tag: D130
type: string
name: retrieve_data
arguments: data_tag: D87
type: string
name: retrieve_data
arguments: data_tag: D96
type: string
name: retrieve_data
arguments: data_tag: D152
type: string
name: retrieve_data
arguments: data_tag: D72
type: string
name: retrieve_data
arguments: data_tag: D20
type: string
name: retrieve_data
arguments: data_tag: D120
type: string

tool: D98: XMSS-SHA2_10_256

tool: D193: XMSS-SHA2_16_256

tool: D40: XMSS-SHA2_20_256

tool: D117: XMSS-SHA2_10_512

tool: D31: XMSS-SHA2_16_512

tool: D75: XMSS-SHA2_20_512

tool: D7: XMSS-SHAKE_10_256

tool: D184: XMSS-SHAKE_16_256

tool: D160: XMSS-SHAKE_20_256

tool: D11: XMSS-SHAKE_10_512

tool: D174: XMSS-SHAKE_16_512

tool: D137: XMSS-SHAKE_20_512

tool: D85: XMSS-SHA2_10_192

tool: D138: XMSS-SHA2_16_192

tool: D130: XMSS-SHA2_20_192

tool: D87: XMSS-SHAKE256_10_256

tool: D96: XMSS-SHAKE256_16_256

tool: D152: XMSS-SHAKE256_20_256

tool: D72: XMSS-SHAKE256_10_192

tool: D20: XMSS-SHAKE256_16_192

tool: D120: 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;
}
```