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

```asm
<beaglebone_pruio_get_gpio_number>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D415(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L742
  mov    $0x42,%eax
  jmp    L315
L742:
  mov    -0x8(%rbp),%rax
  lea    D455(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L814
  mov    $0x43,%eax
  jmp    L315
L814:
  mov    -0x8(%rbp),%rax
  lea    D276(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L483
  mov    $0x45,%eax
  jmp    L315
L483:
  mov    -0x8(%rbp),%rax
  lea    D181(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L777
  mov    $0x44,%eax
  jmp    L315
L777:
  mov    -0x8(%rbp),%rax
  lea    D284(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L591
  mov    $0x2d,%eax
  jmp    L315
L591:
  mov    -0x8(%rbp),%rax
  lea    D238(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L164
  mov    $0x2c,%eax
  jmp    L315
L164:
  mov    -0x8(%rbp),%rax
  lea    D149(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L583
  mov    $0x17,%eax
  jmp    L315
L583:
  mov    -0x8(%rbp),%rax
  lea    D137(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L75
  mov    $0x1a,%eax
  jmp    L315
L75:
  mov    -0x8(%rbp),%rax
  lea    D136(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L649
  mov    $0x2f,%eax
  jmp    L315
L649:
  mov    -0x8(%rbp),%rax
  lea    D321(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L918
  mov    $0x2e,%eax
  jmp    L315
L918:
  mov    -0x8(%rbp),%rax
  lea    D26(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L880
  mov    $0x1b,%eax
  jmp    L315
L880:
  mov    -0x8(%rbp),%rax
  lea    D412(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L215
  mov    $0x41,%eax
  jmp    L315
L215:
  mov    -0x8(%rbp),%rax
  lea    D30(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L276
  mov    $0x16,%eax
  jmp    L315
L276:
  mov    -0x8(%rbp),%rax
  lea    D442(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L26
  mov    $0x3d,%eax
  jmp    L315
L26:
  mov    -0x8(%rbp),%rax
  lea    D309(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L606
  mov    $0x56,%eax
  jmp    L315
L606:
  mov    -0x8(%rbp),%rax
  lea    D440(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L688
  mov    $0x58,%eax
  jmp    L315
L688:
  mov    -0x8(%rbp),%rax
  lea    D110(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L624
  mov    $0x57,%eax
  jmp    L315
L624:
  mov    -0x8(%rbp),%rax
  lea    D199(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L496
  mov    $0x59,%eax
  jmp    L315
L496:
  mov    -0x8(%rbp),%rax
  lea    D463(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L802
  mov    $0xa,%eax
  jmp    L315
L802:
  mov    -0x8(%rbp),%rax
  lea    D201(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L338
  mov    $0xb,%eax
  jmp    L315
L338:
  mov    -0x8(%rbp),%rax
  lea    D354(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L531
  mov    $0x9,%eax
  jmp    L315
L531:
  mov    -0x8(%rbp),%rax
  lea    D171(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L123
  mov    $0x51,%eax
  jmp    L315
L123:
  mov    -0x8(%rbp),%rax
  lea    D410(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L87
  mov    $0x8,%eax
  jmp    L315
L87:
  mov    -0x8(%rbp),%rax
  lea    D200(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L252
  mov    $0x50,%eax
  jmp    L315
L252:
  mov    -0x8(%rbp),%rax
  lea    D385(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L887
  mov    $0x4e,%eax
  jmp    L315
L887:
  mov    -0x8(%rbp),%rax
  lea    D268(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L207
  mov    $0x4f,%eax
  jmp    L315
L207:
  mov    -0x8(%rbp),%rax
  lea    D127(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L304
  mov    $0x4c,%eax
  jmp    L315
L304:
  mov    -0x8(%rbp),%rax
  lea    D214(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L663
  mov    $0x4d,%eax
  jmp    L315
L663:
  mov    -0x8(%rbp),%rax
  lea    D208(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L790
  mov    $0x4a,%eax
  jmp    L315
L790:
  mov    -0x8(%rbp),%rax
  lea    D252(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L362
  mov    $0x4b,%eax
  jmp    L315
L362:
  mov    -0x8(%rbp),%rax
  lea    D300(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L518
  mov    $0x48,%eax
  jmp    L315
L518:
  mov    -0x8(%rbp),%rax
  lea    D46(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L748
  mov    $0x49,%eax
  jmp    L315
L748:
  mov    -0x8(%rbp),%rax
  lea    D210(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L467
  mov    $0x46,%eax
  jmp    L315
L467:
  mov    -0x8(%rbp),%rax
  lea    D293(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L821
  mov    $0x47,%eax
  jmp    L315
L821:
  mov    -0x8(%rbp),%rax
  lea    D333(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L231
  mov    $0x3c,%eax
  jmp    L315
L231:
  mov    -0x8(%rbp),%rax
  lea    D250(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L598
  mov    $0x32,%eax
  jmp    L315
L598:
  mov    -0x8(%rbp),%rax
  lea    D35(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L651
  mov    $0x30,%eax
  jmp    L315
L651:
  mov    -0x8(%rbp),%rax
  lea    D324(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L754
  mov    $0x33,%eax
  jmp    L315
L754:
  mov    -0x8(%rbp),%rax
  lea    D377(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L859
  mov    $0x3,%eax
  jmp    L315
L859:
  mov    -0x8(%rbp),%rax
  lea    D319(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L662
  mov    $0x2,%eax
  jmp    L315
L662:
  mov    -0x8(%rbp),%rax
  lea    D195(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L897
  mov    $0x31,%eax
  jmp    L315
L897:
  mov    -0x8(%rbp),%rax
  lea    D459(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L174
  mov    $0xf,%eax
  jmp    L315
L174:
  mov    -0x8(%rbp),%rax
  lea    D351(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L854
  mov    $0xe,%eax
  jmp    L315
L854:
  mov    -0x8(%rbp),%rax
  lea    D7(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L901
  mov    $0x73,%eax
  jmp    L315
L901:
  mov    -0x8(%rbp),%rax
  lea    D217(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L766
  mov    $0x70,%eax
  jmp    L315
L766:
  mov    -0x8(%rbp),%rax
  lea    D79(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L404
  mov    $0x14,%eax
  jmp    L315
L404:
  mov    -0x8(%rbp),%rax
  lea    D128(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L710
  mov    $0x7,%eax
  jmp    L315
L710:
  mov    $0xffffffff,%eax
L315:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D415
type: string
name: retrieve_data
arguments: tag: D455
type: string
name: retrieve_data
arguments: tag: D276
type: string
name: retrieve_data
arguments: tag: D181
type: string
name: retrieve_data
arguments: tag: D284
type: string
name: retrieve_data
arguments: tag: D238
type: string
name: retrieve_data
arguments: tag: D149
type: string
name: retrieve_data
arguments: tag: D137
type: string
name: retrieve_data
arguments: tag: D136
type: string
name: retrieve_data
arguments: tag: D321
type: string
name: retrieve_data
arguments: tag: D26
type: string
name: retrieve_data
arguments: tag: D412
type: string
name: retrieve_data
arguments: tag: D30
type: string
name: retrieve_data
arguments: tag: D442
type: string
name: retrieve_data
arguments: tag: D309
type: string
name: retrieve_data
arguments: tag: D440
type: string
name: retrieve_data
arguments: tag: D110
type: string
name: retrieve_data
arguments: tag: D199
type: string
name: retrieve_data
arguments: tag: D463
type: string
name: retrieve_data
arguments: tag: D201
type: string
name: retrieve_data
arguments: tag: D354
type: string
name: retrieve_data
arguments: tag: D171
type: string
name: retrieve_data
arguments: tag: D410
type: string
name: retrieve_data
arguments: tag: D200
type: string
name: retrieve_data
arguments: tag: D385
type: string
name: retrieve_data
arguments: tag: D268
type: string
name: retrieve_data
arguments: tag: D127
type: string
name: retrieve_data
arguments: tag: D214
type: string
name: retrieve_data
arguments: tag: D208
type: string
name: retrieve_data
arguments: tag: D252
type: string
name: retrieve_data
arguments: tag: D300
type: string
name: retrieve_data
arguments: tag: D46
type: string
name: retrieve_data
arguments: tag: D210
type: string
name: retrieve_data
arguments: tag: D293
type: string
name: retrieve_data
arguments: tag: D333
type: string
name: retrieve_data
arguments: tag: D250
type: string
name: retrieve_data
arguments: tag: D35
type: string
name: retrieve_data
arguments: tag: D324
type: string
name: retrieve_data
arguments: tag: D377
type: string
name: retrieve_data
arguments: tag: D319
type: string
name: retrieve_data
arguments: tag: D195
type: string
name: retrieve_data
arguments: tag: D459
type: string
name: retrieve_data
arguments: tag: D351
type: string
name: retrieve_data
arguments: tag: D7
type: string
name: retrieve_data
arguments: tag: D217
type: string
name: retrieve_data
arguments: tag: D79
type: string
name: retrieve_data
arguments: tag: D128
type: string

tool: D415: P8_07

tool: D455: P8_08

tool: D276: P8_09

tool: D181: P8_10

tool: D284: P8_11

tool: D238: P8_12

tool: D149: P8_13

tool: D137: P8_14

tool: D136: P8_15

tool: D321: P8_16

tool: D26: P8_17

tool: D412: P8_18

tool: D30: P8_19

tool: D442: P8_26

tool: D309: P8_27

tool: D440: P8_28

tool: D110: P8_29

tool: D199: P8_30

tool: D463: P8_31

tool: D201: P8_32

tool: D354: P8_33

tool: D171: P8_34

tool: D410: P8_35

tool: D200: P8_36

tool: D385: P8_37

tool: D268: P8_38

tool: D127: P8_39

tool: D214: P8_40

tool: D208: P8_41

tool: D252: P8_42

tool: D300: P8_43

tool: D46: P8_44

tool: D210: P8_45

tool: D293: P8_46

tool: D333: P9_12

tool: D250: P9_14

tool: D35: P9_15

tool: D324: P9_16

tool: D377: P9_21

tool: D319: P9_22

tool: D195: P9_23

tool: D459: P9_24

tool: D351: P9_26

tool: D7: P9_27

tool: D217: P9_30

tool: D79: P9_41A

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