user: Demonstrate the C code that generates the assembly output below:

```asm
<test_is_ft>:
  endbr64
  push   %rbp
  lea    D54(%rip),%rdi
  lea    D249(%rip),%rbp
  call   <is_ft@plt>
  mov    $0xff,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D132(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x100,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D121(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x101,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D282(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x102,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D118(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x103,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D239(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x104,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D264(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x105,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D28(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x106,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D88(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x107,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D248(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x108,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D72(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x109,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D6(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x10a,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D179(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x10b,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D155(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x10c,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D211(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x10d,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D210(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x10e,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D56(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x110,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_false@plt>
  lea    D125(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x111,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_false@plt>
  lea    D221(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x112,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_false@plt>
  lea    D217(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x113,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_false@plt>
  lea    D255(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x114,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_false@plt>
  lea    D87(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x116,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D10(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x117,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D164(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x118,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D175(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x119,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D59(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x11a,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_true@plt>
  lea    D57(%rip),%rdi
  call   <is_ft@plt>
  mov    $0x11b,%esi
  mov    %rbp,%rdi
  mov    %eax,%edx
  call   <expect_false@plt>
  lea    D37(%rip),%rdi
  call   <is_ft@plt>
  mov    %rbp,%rdi
  mov    $0x11c,%esi
  pop    %rbp
  mov    %eax,%edx
  jmp    1090 <expect_false@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D54
type: string
name: unpack_data
arguments: data_tag: D249
type: string
name: unpack_data
arguments: data_tag: D132
type: string
name: unpack_data
arguments: data_tag: D121
type: string
name: unpack_data
arguments: data_tag: D282
type: string
name: unpack_data
arguments: data_tag: D118
type: string
name: unpack_data
arguments: data_tag: D239
type: string
name: unpack_data
arguments: data_tag: D264
type: string
name: unpack_data
arguments: data_tag: D28
type: string
name: unpack_data
arguments: data_tag: D88
type: string
name: unpack_data
arguments: data_tag: D248
type: string
name: unpack_data
arguments: data_tag: D72
type: string
name: unpack_data
arguments: data_tag: D6
type: string
name: unpack_data
arguments: data_tag: D179
type: string
name: unpack_data
arguments: data_tag: D155
type: string
name: unpack_data
arguments: data_tag: D211
type: string
name: unpack_data
arguments: data_tag: D210
type: string
name: unpack_data
arguments: data_tag: D56
type: string
name: unpack_data
arguments: data_tag: D125
type: string
name: unpack_data
arguments: data_tag: D221
type: string
name: unpack_data
arguments: data_tag: D217
type: string
name: unpack_data
arguments: data_tag: D255
type: string
name: unpack_data
arguments: data_tag: D87
type: string
name: unpack_data
arguments: data_tag: D10
type: string
name: unpack_data
arguments: data_tag: D164
type: string
name: unpack_data
arguments: data_tag: D175
type: string
name: unpack_data
arguments: data_tag: D59
type: string
name: unpack_data
arguments: data_tag: D57
type: string
name: unpack_data
arguments: data_tag: D37
type: string

tool: D54: ada

tool: D249: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c

tool: D132: asm

tool: D121: awk

tool: D282: c

tool: D118: d

tool: D239: dte

tool: D264: java

tool: D28: javascript

tool: D88: lua

tool: D248: mail

tool: D72: make

tool: D6: pkg-config

tool: D179: rst

tool: D155: sh

tool: D211: yaml

tool: D210: zig

tool: 

tool: D125: -

tool: D221: a

tool: D217: C

tool: D255: MAKE

tool: D87: test1

tool: D10: test2

tool: D164: test3

tool: D175: test4

tool: D59: test5

tool: D57: test0

tool: D37: test

assistant: ```c
void test_is_ft(void) {
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 255, is_ft("ada"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 256, is_ft("asm"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 257, is_ft("awk"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 258, is_ft("c"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 259, is_ft("d"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 260, is_ft("dte"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 261, is_ft("java"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 262, is_ft("javascript"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 263, is_ft("lua"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 264, is_ft("mail"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 265, is_ft("make"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 266, is_ft("pkg-config"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 267, is_ft("rst"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 268, is_ft("sh"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 269, is_ft("yaml"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 270, is_ft("zig"));
  expect_false("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 272, is_ft(""));
  expect_false("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 273, is_ft("-"));
  expect_false("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 274, is_ft("a"));
  expect_false("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 275, is_ft("C"));
  expect_false("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 276, is_ft("MAKE"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 278, is_ft("test1"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 279, is_ft("test2"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 280, is_ft("test3"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 281, is_ft("test4"));
  expect_true("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 282, is_ft("test5"));
  expect_false("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 283, is_ft("test0"));
  expect_false("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/craigbarnes/dte/refs/heads/master/test/filetype.c", 284, is_ft("test"));
}
```