user: What is the c source code of the assembly code below:

```asm
<beaglebone_pruio_get_gpio_number>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D132(%rip),%rsi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x42,%eax
  test   %rdx,%rdx
  je     L64
  lea    D157(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x43,%eax
  test   %rdx,%rdx
  je     L64
  lea    D41(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x45,%eax
  test   %rdx,%rdx
  je     L64
  lea    D229(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x44,%eax
  test   %rdx,%rdx
  je     L64
  lea    D452(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x2d,%eax
  test   %rdx,%rdx
  je     L64
  lea    D197(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x2c,%eax
  test   %rdx,%rdx
  je     L64
  lea    D335(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x17,%eax
  test   %rdx,%rdx
  je     L64
  lea    D37(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1a,%eax
  test   %rdx,%rdx
  je     L64
  lea    D145(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x2f,%eax
  test   %rdx,%rdx
  je     L64
  lea    D249(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x2e,%eax
  test   %rdx,%rdx
  je     L64
  lea    D302(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1b,%eax
  test   %rdx,%rdx
  je     L64
  lea    D445(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x41,%eax
  test   %rdx,%rdx
  je     L64
  lea    D274(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x16,%eax
  test   %rdx,%rdx
  je     L64
  lea    D397(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x3d,%eax
  test   %rdx,%rdx
  je     L64
  lea    D327(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x56,%eax
  test   %rdx,%rdx
  je     L64
  lea    D59(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x58,%eax
  test   %rdx,%rdx
  je     L64
  lea    D446(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L585
  lea    D194(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L108
  lea    D148(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L490
  lea    D363(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L467
  lea    D312(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L582
  lea    D184(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L528
  lea    D286(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L57
  lea    D188(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L558
  lea    D115(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L476
  lea    D45(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L357
  lea    D186(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L723
  lea    D46(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L48
  lea    D237(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L260
  lea    D295(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L87
  lea    D256(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L45
  lea    D261(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L541
  lea    D110(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L358
  lea    D364(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L750
  lea    D213(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L422
  lea    D311(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L494
  lea    D303(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L131
  lea    D15(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L6
  lea    D179(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L622
  lea    D187(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L162
  lea    D315(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L325
  lea    D147(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L385
  lea    D50(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L323
  lea    D225(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L653
  lea    D435(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L372
  lea    D32(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  je     L657
  lea    D447(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0x8,%eax
  sub    $0x1,%eax
  jmp    L64
L585:
  mov    $0x57,%eax
L64:
  pop    %rbx
  ret
L108:
  mov    $0x59,%eax
  jmp    L64
L490:
  mov    $0xa,%eax
  jmp    L64
L467:
  mov    $0xb,%eax
  jmp    L64
L582:
  mov    $0x9,%eax
  jmp    L64
L528:
  mov    $0x51,%eax
  jmp    L64
L57:
  mov    $0x8,%eax
  jmp    L64
L558:
  mov    $0x50,%eax
  jmp    L64
L476:
  mov    $0x4e,%eax
  jmp    L64
L357:
  mov    $0x4f,%eax
  jmp    L64
L723:
  mov    $0x4c,%eax
  jmp    L64
L48:
  mov    $0x4d,%eax
  jmp    L64
L260:
  mov    $0x4a,%eax
  jmp    L64
L87:
  mov    $0x4b,%eax
  jmp    L64
L45:
  mov    $0x48,%eax
  jmp    L64
L541:
  mov    $0x49,%eax
  jmp    L64
L358:
  mov    $0x46,%eax
  jmp    L64
L750:
  mov    $0x47,%eax
  jmp    L64
L422:
  mov    $0x3c,%eax
  jmp    L64
L494:
  mov    $0x32,%eax
  jmp    L64
L131:
  mov    $0x30,%eax
  jmp    L64
L6:
  mov    $0x33,%eax
  jmp    L64
L622:
  mov    $0x3,%eax
  jmp    L64
L162:
  mov    $0x2,%eax
  jmp    L64
L325:
  mov    $0x31,%eax
  jmp    L64
L385:
  mov    $0xf,%eax
  jmp    L64
L323:
  mov    $0xe,%eax
  jmp    L64
L653:
  mov    $0x73,%eax
  jmp    L64
L372:
  mov    $0x70,%eax
  jmp    L64
L657:
  mov    $0x14,%eax
  jmp    L64
```

tool_calls: name: disassemble_data
arguments: data_tag: D132
datatype: string
name: disassemble_data
arguments: data_tag: D157
datatype: string
name: disassemble_data
arguments: data_tag: D41
datatype: string
name: disassemble_data
arguments: data_tag: D229
datatype: string
name: disassemble_data
arguments: data_tag: D452
datatype: string
name: disassemble_data
arguments: data_tag: D197
datatype: string
name: disassemble_data
arguments: data_tag: D335
datatype: string
name: disassemble_data
arguments: data_tag: D37
datatype: string
name: disassemble_data
arguments: data_tag: D145
datatype: string
name: disassemble_data
arguments: data_tag: D249
datatype: string
name: disassemble_data
arguments: data_tag: D302
datatype: string
name: disassemble_data
arguments: data_tag: D445
datatype: string
name: disassemble_data
arguments: data_tag: D274
datatype: string
name: disassemble_data
arguments: data_tag: D397
datatype: string
name: disassemble_data
arguments: data_tag: D327
datatype: string
name: disassemble_data
arguments: data_tag: D59
datatype: string
name: disassemble_data
arguments: data_tag: D446
datatype: string
name: disassemble_data
arguments: data_tag: D194
datatype: string
name: disassemble_data
arguments: data_tag: D148
datatype: string
name: disassemble_data
arguments: data_tag: D363
datatype: string
name: disassemble_data
arguments: data_tag: D312
datatype: string
name: disassemble_data
arguments: data_tag: D184
datatype: string
name: disassemble_data
arguments: data_tag: D286
datatype: string
name: disassemble_data
arguments: data_tag: D188
datatype: string
name: disassemble_data
arguments: data_tag: D115
datatype: string
name: disassemble_data
arguments: data_tag: D45
datatype: string
name: disassemble_data
arguments: data_tag: D186
datatype: string
name: disassemble_data
arguments: data_tag: D46
datatype: string
name: disassemble_data
arguments: data_tag: D237
datatype: string
name: disassemble_data
arguments: data_tag: D295
datatype: string
name: disassemble_data
arguments: data_tag: D256
datatype: string
name: disassemble_data
arguments: data_tag: D261
datatype: string
name: disassemble_data
arguments: data_tag: D110
datatype: string
name: disassemble_data
arguments: data_tag: D364
datatype: string
name: disassemble_data
arguments: data_tag: D213
datatype: string
name: disassemble_data
arguments: data_tag: D311
datatype: string
name: disassemble_data
arguments: data_tag: D303
datatype: string
name: disassemble_data
arguments: data_tag: D15
datatype: string
name: disassemble_data
arguments: data_tag: D179
datatype: string
name: disassemble_data
arguments: data_tag: D187
datatype: string
name: disassemble_data
arguments: data_tag: D315
datatype: string
name: disassemble_data
arguments: data_tag: D147
datatype: string
name: disassemble_data
arguments: data_tag: D50
datatype: string
name: disassemble_data
arguments: data_tag: D225
datatype: string
name: disassemble_data
arguments: data_tag: D435
datatype: string
name: disassemble_data
arguments: data_tag: D32
datatype: string
name: disassemble_data
arguments: data_tag: D447
datatype: string

tool: D132: P8_07

tool: D157: P8_08

tool: D41: P8_09

tool: D229: P8_10

tool: D452: P8_11

tool: D197: P8_12

tool: D335: P8_13

tool: D37: P8_14

tool: D145: P8_15

tool: D249: P8_16

tool: D302: P8_17

tool: D445: P8_18

tool: D274: P8_19

tool: D397: P8_26

tool: D327: P8_27

tool: D59: P8_28

tool: D446: P8_29

tool: D194: P8_30

tool: D148: P8_31

tool: D363: P8_32

tool: D312: P8_33

tool: D184: P8_34

tool: D286: P8_35

tool: D188: P8_36

tool: D115: P8_37

tool: D45: P8_38

tool: D186: P8_39

tool: D46: P8_40

tool: D237: P8_41

tool: D295: P8_42

tool: D256: P8_43

tool: D261: P8_44

tool: D110: P8_45

tool: D364: P8_46

tool: D213: P9_12

tool: D311: P9_14

tool: D303: P9_15

tool: D15: P9_16

tool: D179: P9_21

tool: D187: P9_22

tool: D315: P9_23

tool: D147: P9_24

tool: D50: P9_26

tool: D225: P9_27

tool: D435: P9_30

tool: D32: P9_41A

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