user: What would the C source look like for the assembly code provided here:

```asm
<scgi_header_status_get_string>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D315(%rip),%rsi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L328
  lea    D279(%rip),%rbx
L676:
  mov    %rbx,%rdi
  call   <strdup@plt>
  pop    %rbx
  ret
L328:
  lea    D797(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L51
  lea    D256(%rip),%rbx
  jmp    L676
L51:
  lea    D40(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L338
  lea    D312(%rip),%rbx
  jmp    L676
L338:
  lea    D486(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L68
  lea    D361(%rip),%rbx
  jmp    L676
L68:
  lea    D229(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L592
  lea    D746(%rip),%rbx
  jmp    L676
L592:
  lea    D35(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L370
  lea    D654(%rip),%rbx
  jmp    L676
L370:
  lea    D300(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L3
  lea    D339(%rip),%rbx
  jmp    L676
L3:
  lea    D307(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L575
  lea    D815(%rip),%rbx
  jmp    L676
L575:
  lea    D801(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L240
  lea    D483(%rip),%rbx
  jmp    L676
L240:
  lea    D665(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L419
  lea    D284(%rip),%rbx
  jmp    L676
L419:
  lea    D21(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L234
  lea    D448(%rip),%rbx
  jmp    L676
L234:
  lea    D477(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L113
  lea    D653(%rip),%rbx
  jmp    L676
L113:
  lea    D773(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L360
  lea    D683(%rip),%rbx
  jmp    L676
L360:
  lea    D772(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L711
  lea    D168(%rip),%rbx
  jmp    L676
L711:
  lea    D420(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L1
  lea    D127(%rip),%rbx
  jmp    L676
L1:
  lea    D299(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L786
  lea    D592(%rip),%rbx
  jmp    L676
L786:
  lea    D449(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L677
  lea    D701(%rip),%rbx
  jmp    L676
L677:
  lea    D441(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L769
  lea    D265(%rip),%rbx
  jmp    L676
L769:
  lea    D522(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L331
  lea    D605(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L557
  lea    D333(%rip),%rbx
  jmp    L676
L557:
  lea    D488(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L65
  lea    D754(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L733
  lea    D784(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L644
  lea    D574(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L366
  lea    D112(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L339
  lea    D538(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L74
  lea    D573(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L88
  lea    D637(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L746
  lea    D680(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L479
  lea    D348(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L518
  lea    D34(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L8
  lea    D641(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L48
  lea    D390(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L321
  lea    D634(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L56
  lea    D393(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L697
  lea    D221(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L166
  lea    D86(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L178
  lea    D94(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L589
  lea    D400(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L313
  lea    D460(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L141
  lea    D711(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  lea    D274(%rip),%rax
  cmove  %rax,%rbx
  jmp    L676
L331:
  lea    D281(%rip),%rbx
  jmp    L676
L65:
  lea    D241(%rip),%rbx
  jmp    L676
L733:
  lea    D29(%rip),%rbx
  jmp    L676
L644:
  lea    D745(%rip),%rbx
  jmp    L676
L366:
  lea    D444(%rip),%rbx
  jmp    L676
L339:
  lea    D559(%rip),%rbx
  jmp    L676
L74:
  lea    D638(%rip),%rbx
  jmp    L676
L88:
  lea    D49(%rip),%rbx
  jmp    L676
L746:
  lea    D431(%rip),%rbx
  jmp    L676
L479:
  lea    D734(%rip),%rbx
  jmp    L676
L518:
  lea    D502(%rip),%rbx
  jmp    L676
L8:
  lea    D766(%rip),%rbx
  jmp    L676
L48:
  lea    D674(%rip),%rbx
  jmp    L676
L321:
  lea    D16(%rip),%rbx
  jmp    L676
L56:
  lea    D303(%rip),%rbx
  jmp    L676
L697:
  lea    D529(%rip),%rbx
  jmp    L676
L166:
  lea    D565(%rip),%rbx
  jmp    L676
L178:
  lea    D88(%rip),%rbx
  jmp    L676
L589:
  lea    D365(%rip),%rbx
  jmp    L676
L313:
  lea    D280(%rip),%rbx
  jmp    L676
L141:
  lea    D593(%rip),%rbx
  jmp    L676
```

tool_calls: name: disassemble_data
arguments: tag: D315
type: string
name: disassemble_data
arguments: tag: D279
type: string
name: disassemble_data
arguments: tag: D797
type: string
name: disassemble_data
arguments: tag: D256
type: string
name: disassemble_data
arguments: tag: D40
type: string
name: disassemble_data
arguments: tag: D312
type: string
name: disassemble_data
arguments: tag: D486
type: string
name: disassemble_data
arguments: tag: D361
type: string
name: disassemble_data
arguments: tag: D229
type: string
name: disassemble_data
arguments: tag: D746
type: string
name: disassemble_data
arguments: tag: D35
type: string
name: disassemble_data
arguments: tag: D654
type: string
name: disassemble_data
arguments: tag: D300
type: string
name: disassemble_data
arguments: tag: D339
type: string
name: disassemble_data
arguments: tag: D307
type: string
name: disassemble_data
arguments: tag: D815
type: string
name: disassemble_data
arguments: tag: D801
type: string
name: disassemble_data
arguments: tag: D483
type: string
name: disassemble_data
arguments: tag: D665
type: string
name: disassemble_data
arguments: tag: D284
type: string
name: disassemble_data
arguments: tag: D21
type: string
name: disassemble_data
arguments: tag: D448
type: string
name: disassemble_data
arguments: tag: D477
type: string
name: disassemble_data
arguments: tag: D653
type: string
name: disassemble_data
arguments: tag: D773
type: string
name: disassemble_data
arguments: tag: D683
type: string
name: disassemble_data
arguments: tag: D772
type: string
name: disassemble_data
arguments: tag: D168
type: string
name: disassemble_data
arguments: tag: D420
type: string
name: disassemble_data
arguments: tag: D127
type: string
name: disassemble_data
arguments: tag: D299
type: string
name: disassemble_data
arguments: tag: D592
type: string
name: disassemble_data
arguments: tag: D449
type: string
name: disassemble_data
arguments: tag: D701
type: string
name: disassemble_data
arguments: tag: D441
type: string
name: disassemble_data
arguments: tag: D265
type: string
name: disassemble_data
arguments: tag: D522
type: string
name: disassemble_data
arguments: tag: D605
type: string
name: disassemble_data
arguments: tag: D333
type: string
name: disassemble_data
arguments: tag: D488
type: string
name: disassemble_data
arguments: tag: D754
type: string
name: disassemble_data
arguments: tag: D784
type: string
name: disassemble_data
arguments: tag: D574
type: string
name: disassemble_data
arguments: tag: D112
type: string
name: disassemble_data
arguments: tag: D538
type: string
name: disassemble_data
arguments: tag: D573
type: string
name: disassemble_data
arguments: tag: D637
type: string
name: disassemble_data
arguments: tag: D680
type: string
name: disassemble_data
arguments: tag: D348
type: string
name: disassemble_data
arguments: tag: D34
type: string
name: disassemble_data
arguments: tag: D641
type: string
name: disassemble_data
arguments: tag: D390
type: string
name: disassemble_data
arguments: tag: D634
type: string
name: disassemble_data
arguments: tag: D393
type: string
name: disassemble_data
arguments: tag: D221
type: string
name: disassemble_data
arguments: tag: D86
type: string
name: disassemble_data
arguments: tag: D94
type: string
name: disassemble_data
arguments: tag: D400
type: string
name: disassemble_data
arguments: tag: D460
type: string
name: disassemble_data
arguments: tag: D711
type: string
name: disassemble_data
arguments: tag: D274
type: string
name: disassemble_data
arguments: tag: D281
type: string
name: disassemble_data
arguments: tag: D241
type: string
name: disassemble_data
arguments: tag: D29
type: string
name: disassemble_data
arguments: tag: D745
type: string
name: disassemble_data
arguments: tag: D444
type: string
name: disassemble_data
arguments: tag: D559
type: string
name: disassemble_data
arguments: tag: D638
type: string
name: disassemble_data
arguments: tag: D49
type: string
name: disassemble_data
arguments: tag: D431
type: string
name: disassemble_data
arguments: tag: D734
type: string
name: disassemble_data
arguments: tag: D502
type: string
name: disassemble_data
arguments: tag: D766
type: string
name: disassemble_data
arguments: tag: D674
type: string
name: disassemble_data
arguments: tag: D16
type: string
name: disassemble_data
arguments: tag: D303
type: string
name: disassemble_data
arguments: tag: D529
type: string
name: disassemble_data
arguments: tag: D565
type: string
name: disassemble_data
arguments: tag: D88
type: string
name: disassemble_data
arguments: tag: D365
type: string
name: disassemble_data
arguments: tag: D280
type: string
name: disassemble_data
arguments: tag: D593
type: string

tool: D315: 100

tool: D279: 100 Continue

tool: D797: 101

tool: D256: 101 Switching Protocols

tool: D40: 200

tool: D312: 200 OK

tool: D486: 201

tool: D361: 201 Created

tool: D229: 202

tool: D746: 202 Accepted

tool: D35: 203

tool: D654: 203 Non-Authoritative Information

tool: D300: 204

tool: D339: 204 No Content

tool: D307: 205

tool: D815: 205 Reset Content

tool: D801: 206

tool: D483: 206 Partial Content

tool: D665: 300

tool: D284: 300 Multiple Choices

tool: D21: 301

tool: D448: 301 Moved Permanently

tool: D477: 302

tool: D653: 302 Found

tool: D773: 303

tool: D683: 303 See Other

tool: D772: 304

tool: D168: 304 Not Modified

tool: D420: 305

tool: D127: 305 Use Proxy

tool: D299: 306

tool: D592: 306 (Unused)

tool: D449: 307

tool: D701: 307 Temporary Redirect

tool: D441: 400

tool: D265: 400 Bad Request

tool: D522: 401

tool: D605: 402

tool: D333: 402 Payment Required

tool: D488: 403

tool: D754: 404

tool: D784: 405

tool: D574: 406

tool: D112: 407

tool: D538: 408

tool: D573: 409

tool: D637: 410

tool: D680: 411

tool: D348: 412

tool: D34: 413

tool: D641: 414

tool: D390: 415

tool: D634: 416

tool: D393: 417

tool: D221: 500

tool: D86: 501

tool: D94: 502

tool: D400: 503

tool: D460: 504

tool: D711: 505

tool: D274: 505 HTTP Version Not Supported

tool: D281: 401 Unauthorized

tool: D241: 403 Forbidden

tool: D29: 404 Not Found

tool: D745: 405 Method Not Allowed

tool: D444: 406 Not Acceptable

tool: D559: 407 Proxy Authentication Required

tool: D638: 408 Request Timeout

tool: D49: 409 Conflict

tool: D431: 410 Gone

tool: D734: 411 Length Required

tool: D502: 412 Precondition Failed

tool: D766: 413 Request Entity Too Large

tool: D674: 414 Request-URI Too Long

tool: D16: 415 Unsupported Media Type

tool: D303: 416 Request Range Not Satisfiable

tool: D529: 417 Expectation Failed

tool: D565: 500 Internal Server Error

tool: D88: 501 Not Implemented

tool: D365: 502 Bad Gateway

tool: D280: 503 Service Unavailable

tool: D593: 504 Gateway Timeout

assistant: ```c
char *scgi_header_status_get_string(const char *code) {
  char *string;
  if (strcmp(code, "100") == 0) {
    string = "100 Continue";
  } else if (strcmp(code, "101") == 0) {
    string = "101 Switching Protocols";
  } else if (strcmp(code, "200") == 0) {
    string = "200 OK";
  } else if (strcmp(code, "201") == 0) {
    string = "201 Created";
  } else if (strcmp(code, "202") == 0) {
    string = "202 Accepted";
  } else if (strcmp(code, "203") == 0) {
    string = "203 Non-Authoritative Information";
  } else if (strcmp(code, "204") == 0) {
    string = "204 No Content";
  } else if (strcmp(code, "205") == 0) {
    string = "205 Reset Content";
  } else if (strcmp(code, "206") == 0) {
    string = "206 Partial Content";
  } else if (strcmp(code, "300") == 0) {
    string = "300 Multiple Choices";
  } else if (strcmp(code, "301") == 0) {
    string = "301 Moved Permanently";
  } else if (strcmp(code, "302") == 0) {
    string = "302 Found";
  } else if (strcmp(code, "303") == 0) {
    string = "303 See Other";
  } else if (strcmp(code, "304") == 0) {
    string = "304 Not Modified";
  } else if (strcmp(code, "305") == 0) {
    string = "305 Use Proxy";
  } else if (strcmp(code, "306") == 0) {
    string = "306 (Unused)";
  } else if (strcmp(code, "307") == 0) {
    string = "307 Temporary Redirect";
  } else if (strcmp(code, "400") == 0) {
    string = "400 Bad Request";
  } else if (strcmp(code, "401") == 0) {
    string = "401 Unauthorized";
  } else if (strcmp(code, "402") == 0) {
    string = "402 Payment Required";
  } else if (strcmp(code, "403") == 0) {
    string = "403 Forbidden";
  } else if (strcmp(code, "404") == 0) {
    string = "404 Not Found";
  } else if (strcmp(code, "405") == 0) {
    string = "405 Method Not Allowed";
  } else if (strcmp(code, "406") == 0) {
    string = "406 Not Acceptable";
  } else if (strcmp(code, "407") == 0) {
    string = "407 Proxy Authentication Required";
  } else if (strcmp(code, "408") == 0) {
    string = "408 Request Timeout";
  } else if (strcmp(code, "409") == 0) {
    string = "409 Conflict";
  } else if (strcmp(code, "410") == 0) {
    string = "410 Gone";
  } else if (strcmp(code, "411") == 0) {
    string = "411 Length Required";
  } else if (strcmp(code, "412") == 0) {
    string = "412 Precondition Failed";
  } else if (strcmp(code, "413") == 0) {
    string = "413 Request Entity Too Large";
  } else if (strcmp(code, "414") == 0) {
    string = "414 Request-URI Too Long";
  } else if (strcmp(code, "415") == 0) {
    string = "415 Unsupported Media Type";
  } else if (strcmp(code, "416") == 0) {
    string = "416 Request Range Not Satisfiable";
  } else if (strcmp(code, "417") == 0) {
    string = "417 Expectation Failed";
  } else if (strcmp(code, "500") == 0) {
    string = "500 Internal Server Error";
  } else if (strcmp(code, "501") == 0) {
    string = "501 Not Implemented";
  } else if (strcmp(code, "502") == 0) {
    string = "502 Bad Gateway";
  } else if (strcmp(code, "503") == 0) {
    string = "503 Service Unavailable";
  } else if (strcmp(code, "504") == 0) {
    string = "504 Gateway Timeout";
  } else if (strcmp(code, "505") == 0) {
    string = "505 HTTP Version Not Supported";
  } else {
    string = (char *)code;
  }
  return (strdup(string));
}
```