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

```asm
<beaglebone_pruio_get_gpio_number>:
  endbr64
  push   %rbp
  lea    D350(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x42,%eax
  test   %r8,%r8
  je     L155
  lea    D18(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x43,%eax
  test   %r8,%r8
  je     L155
  lea    D38(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x45,%eax
  test   %r8,%r8
  je     L155
  lea    D154(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x44,%eax
  test   %r8,%r8
  je     L155
  lea    D382(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2d,%eax
  test   %r8,%r8
  je     L155
  lea    D236(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2c,%eax
  test   %r8,%r8
  je     L155
  lea    D296(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x17,%eax
  test   %r8,%r8
  je     L155
  lea    D463(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1a,%eax
  test   %r8,%r8
  je     L155
  lea    D112(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2f,%eax
  test   %r8,%r8
  je     L155
  lea    D271(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x2e,%eax
  test   %r8,%r8
  je     L155
  lea    D287(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x1b,%eax
  test   %r8,%r8
  je     L155
  lea    D249(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x41,%eax
  test   %r8,%r8
  je     L155
  lea    D347(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x16,%eax
  test   %r8,%r8
  je     L155
  lea    D160(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x3d,%eax
  test   %r8,%r8
  je     L155
  lea    D256(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x56,%eax
  test   %r8,%r8
  je     L155
  lea    D406(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  mov    $0x58,%eax
  test   %r8,%r8
  je     L155
  lea    D367(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L449
  lea    D57(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L396
  lea    D42(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L158
  lea    D3(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L282
  lea    D35(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L447
  lea    D390(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L382
  lea    D325(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L119
  lea    D398(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L385
  lea    D184(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L112
  lea    D391(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L395
  lea    D353(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L35
  lea    D251(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L69
  lea    D448(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L285
  lea    D468(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L383
  lea    D328(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L367
  lea    D400(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L225
  lea    D204(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L455
  lea    D226(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L325
  lea    D64(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L97
  lea    D46(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L68
  lea    D34(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L303
  lea    D96(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L418
  lea    D217(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L253
  lea    D380(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L349
  lea    D337(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L379
  lea    D142(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L84
  lea    D331(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L315
  lea    D366(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L341
  lea    D229(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L78
  lea    D30(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L227
  lea    D56(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x8,%eax
  sub    $0x1,%eax
L155:
  pop    %rbp
  ret
L449:
  mov    $0x57,%eax
  pop    %rbp
  ret
L396:
  mov    $0x59,%eax
  pop    %rbp
  ret
L158:
  mov    $0xa,%eax
  pop    %rbp
  ret
L282:
  mov    $0xb,%eax
  pop    %rbp
  ret
L227:
  mov    $0x14,%eax
  pop    %rbp
  ret
L447:
  mov    $0x9,%eax
  pop    %rbp
  ret
L379:
  mov    $0x31,%eax
  pop    %rbp
  ret
L349:
  mov    $0x2,%eax
  pop    %rbp
  ret
L253:
  mov    $0x3,%eax
  pop    %rbp
  ret
L418:
  mov    $0x33,%eax
  pop    %rbp
  ret
L303:
  mov    $0x30,%eax
  pop    %rbp
  ret
L68:
  mov    $0x32,%eax
  pop    %rbp
  ret
L97:
  mov    $0x3c,%eax
  pop    %rbp
  ret
L325:
  mov    $0x47,%eax
  pop    %rbp
  ret
L78:
  mov    $0x70,%eax
  pop    %rbp
  ret
L341:
  mov    $0x73,%eax
  pop    %rbp
  ret
L315:
  mov    $0xe,%eax
  pop    %rbp
  ret
L84:
  mov    $0xf,%eax
  pop    %rbp
  ret
L112:
  mov    $0x4e,%eax
  pop    %rbp
  ret
L385:
  mov    $0x50,%eax
  pop    %rbp
  ret
L119:
  mov    $0x8,%eax
  pop    %rbp
  ret
L382:
  mov    $0x51,%eax
  pop    %rbp
  ret
L455:
  mov    $0x46,%eax
  pop    %rbp
  ret
L225:
  mov    $0x49,%eax
  pop    %rbp
  ret
L367:
  mov    $0x48,%eax
  pop    %rbp
  ret
L383:
  mov    $0x4b,%eax
  pop    %rbp
  ret
L285:
  mov    $0x4a,%eax
  pop    %rbp
  ret
L69:
  mov    $0x4d,%eax
  pop    %rbp
  ret
L35:
  mov    $0x4c,%eax
  pop    %rbp
  ret
L395:
  mov    $0x4f,%eax
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D350
data_type: string
name: retrieve_data
arguments: data_tag: D18
data_type: string
name: retrieve_data
arguments: data_tag: D38
data_type: string
name: retrieve_data
arguments: data_tag: D154
data_type: string
name: retrieve_data
arguments: data_tag: D382
data_type: string
name: retrieve_data
arguments: data_tag: D236
data_type: string
name: retrieve_data
arguments: data_tag: D296
data_type: string
name: retrieve_data
arguments: data_tag: D463
data_type: string
name: retrieve_data
arguments: data_tag: D112
data_type: string
name: retrieve_data
arguments: data_tag: D271
data_type: string
name: retrieve_data
arguments: data_tag: D287
data_type: string
name: retrieve_data
arguments: data_tag: D249
data_type: string
name: retrieve_data
arguments: data_tag: D347
data_type: string
name: retrieve_data
arguments: data_tag: D160
data_type: string
name: retrieve_data
arguments: data_tag: D256
data_type: string
name: retrieve_data
arguments: data_tag: D406
data_type: string
name: retrieve_data
arguments: data_tag: D367
data_type: string
name: retrieve_data
arguments: data_tag: D57
data_type: string
name: retrieve_data
arguments: data_tag: D42
data_type: string
name: retrieve_data
arguments: data_tag: D3
data_type: string
name: retrieve_data
arguments: data_tag: D35
data_type: string
name: retrieve_data
arguments: data_tag: D390
data_type: string
name: retrieve_data
arguments: data_tag: D325
data_type: string
name: retrieve_data
arguments: data_tag: D398
data_type: string
name: retrieve_data
arguments: data_tag: D184
data_type: string
name: retrieve_data
arguments: data_tag: D391
data_type: string
name: retrieve_data
arguments: data_tag: D353
data_type: string
name: retrieve_data
arguments: data_tag: D251
data_type: string
name: retrieve_data
arguments: data_tag: D448
data_type: string
name: retrieve_data
arguments: data_tag: D468
data_type: string
name: retrieve_data
arguments: data_tag: D328
data_type: string
name: retrieve_data
arguments: data_tag: D400
data_type: string
name: retrieve_data
arguments: data_tag: D204
data_type: string
name: retrieve_data
arguments: data_tag: D226
data_type: string
name: retrieve_data
arguments: data_tag: D64
data_type: string
name: retrieve_data
arguments: data_tag: D46
data_type: string
name: retrieve_data
arguments: data_tag: D34
data_type: string
name: retrieve_data
arguments: data_tag: D96
data_type: string
name: retrieve_data
arguments: data_tag: D217
data_type: string
name: retrieve_data
arguments: data_tag: D380
data_type: string
name: retrieve_data
arguments: data_tag: D337
data_type: string
name: retrieve_data
arguments: data_tag: D142
data_type: string
name: retrieve_data
arguments: data_tag: D331
data_type: string
name: retrieve_data
arguments: data_tag: D366
data_type: string
name: retrieve_data
arguments: data_tag: D229
data_type: string
name: retrieve_data
arguments: data_tag: D30
data_type: string
name: retrieve_data
arguments: data_tag: D56
data_type: string

tool: D350: P8_07

tool: D18: P8_08

tool: D38: P8_09

tool: D154: P8_10

tool: D382: P8_11

tool: D236: P8_12

tool: D296: P8_13

tool: D463: P8_14

tool: D112: P8_15

tool: D271: P8_16

tool: D287: P8_17

tool: D249: P8_18

tool: D347: P8_19

tool: D160: P8_26

tool: D256: P8_27

tool: D406: P8_28

tool: D367: P8_29

tool: D57: P8_30

tool: D42: P8_31

tool: D3: P8_32

tool: D35: P8_33

tool: D390: P8_34

tool: D325: P8_35

tool: D398: P8_36

tool: D184: P8_37

tool: D391: P8_38

tool: D353: P8_39

tool: D251: P8_40

tool: D448: P8_41

tool: D468: P8_42

tool: D328: P8_43

tool: D400: P8_44

tool: D204: P8_45

tool: D226: P8_46

tool: D64: P9_12

tool: D46: P9_14

tool: D34: P9_15

tool: D96: P9_16

tool: D217: P9_21

tool: D380: P9_22

tool: D337: P9_23

tool: D142: P9_24

tool: D331: P9_26

tool: D366: P9_27

tool: D229: P9_30

tool: D30: P9_41A

tool: D56: P9_42A

assistant: ```c
int beaglebone_pruio_get_gpio_number(char *pin_name) {
  if (strcmp(pin_name, "P8_07") == 0) {
    return 66;
  } else if (strcmp(pin_name, "P8_08") == 0) {
    return 67;
  } else if (strcmp(pin_name, "P8_09") == 0) {
    return 69;
  } else if (strcmp(pin_name, "P8_10") == 0) {
    return 68;
  } else if (strcmp(pin_name, "P8_11") == 0) {
    return 45;
  } else if (strcmp(pin_name, "P8_12") == 0) {
    return 44;
  } else if (strcmp(pin_name, "P8_13") == 0) {
    return 23;
  } else if (strcmp(pin_name, "P8_14") == 0) {
    return 26;
  } else if (strcmp(pin_name, "P8_15") == 0) {
    return 47;
  } else if (strcmp(pin_name, "P8_16") == 0) {
    return 46;
  } else if (strcmp(pin_name, "P8_17") == 0) {
    return 27;
  } else if (strcmp(pin_name, "P8_18") == 0) {
    return 65;
  } else if (strcmp(pin_name, "P8_19") == 0) {
    return 22;
  } else if (strcmp(pin_name, "P8_26") == 0) {
    return 61;
  } else if (strcmp(pin_name, "P8_27") == 0) {
    return 86;
  } else if (strcmp(pin_name, "P8_28") == 0) {
    return 88;
  } else if (strcmp(pin_name, "P8_29") == 0) {
    return 87;
  } else if (strcmp(pin_name, "P8_30") == 0) {
    return 89;
  } else if (strcmp(pin_name, "P8_31") == 0) {
    return 10;
  } else if (strcmp(pin_name, "P8_32") == 0) {
    return 11;
  } else if (strcmp(pin_name, "P8_33") == 0) {
    return 9;
  } else if (strcmp(pin_name, "P8_34") == 0) {
    return 81;
  } else if (strcmp(pin_name, "P8_35") == 0) {
    return 8;
  } else if (strcmp(pin_name, "P8_36") == 0) {
    return 80;
  } else if (strcmp(pin_name, "P8_37") == 0) {
    return 78;
  } else if (strcmp(pin_name, "P8_38") == 0) {
    return 79;
  } else if (strcmp(pin_name, "P8_39") == 0) {
    return 76;
  } else if (strcmp(pin_name, "P8_40") == 0) {
    return 77;
  } else if (strcmp(pin_name, "P8_41") == 0) {
    return 74;
  } else if (strcmp(pin_name, "P8_42") == 0) {
    return 75;
  } else if (strcmp(pin_name, "P8_43") == 0) {
    return 72;
  } else if (strcmp(pin_name, "P8_44") == 0) {
    return 73;
  } else if (strcmp(pin_name, "P8_45") == 0) {
    return 70;
  } else if (strcmp(pin_name, "P8_46") == 0) {
    return 71;
  } else if (strcmp(pin_name, "P9_12") == 0) {
    return 60;
  } else if (strcmp(pin_name, "P9_14") == 0) {
    return 50;
  } else if (strcmp(pin_name, "P9_15") == 0) {
    return 48;
  } else if (strcmp(pin_name, "P9_16") == 0) {
    return 51;
  } else if (strcmp(pin_name, "P9_21") == 0) {
    return 3;
  } else if (strcmp(pin_name, "P9_22") == 0) {
    return 2;
  } else if (strcmp(pin_name, "P9_23") == 0) {
    return 49;
  } else if (strcmp(pin_name, "P9_24") == 0) {
    return 15;
  } else if (strcmp(pin_name, "P9_26") == 0) {
    return 14;
  } else if (strcmp(pin_name, "P9_27") == 0) {
    return 115;
  } else if (strcmp(pin_name, "P9_30") == 0) {
    return 112;
  } else if (strcmp(pin_name, "P9_41A") == 0) {
    return 20;
  } else if (strcmp(pin_name, "P9_42A") == 0) {
    return 7;
  }
  return -1;
}
```