user: 请将以下的汇编代码转换成C语言代码:

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D320(%rip),%rax
  mov    %rax,%rdx
  lea    D343(%rip),%rax
  mov    %rax,%rsi
  lea    D541(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D244(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D505(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D623(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D332(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D425(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D894(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D300(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D638(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D782(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D504(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D423(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D422(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D485(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D520(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D504(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D853(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D229(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D504(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D902(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D232(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D642(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D504(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D672(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D643(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D692(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D804(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D896(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D504(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D931(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D591(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D374(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D418(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D323(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D843(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D457(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D411(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D518(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D310(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D872(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D883(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D127(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D654(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D876(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D295(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D479(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D119(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D471(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D842(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D124(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D455(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D143(%rip),%rax
  mov    %rax,%rdx
  lea    D412(%rip),%rax
  mov    %rax,%rsi
  lea    D618(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D532(%rip),%rax
  mov    %rax,%rsi
  lea    D593(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D314(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x0,%esi
  lea    D838(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D776(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x0,%esi
  lea    D329(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D182(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D324(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D494(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D678(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D670(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D599(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D230(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D656(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x1,%esi
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x93a80,%esi
  lea    D54(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D553(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D38(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D832(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D720(%rip),%rax
  mov    %rax,%rsi
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xfa,%esi
  lea    D635(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0x1,%esi
  lea    D856(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D601(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D223(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x1,%esi
  lea    D480(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D547(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movsd  D227(%rip),%xmm0
  mov    D697(%rip),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  lea    D442(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  lea    D508(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D274(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D285(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_tag: D320
type: string
name: read_data
arguments: data_tag: D343
type: string
name: read_data
arguments: data_tag: D541
type: string
name: read_data
arguments: data_tag: D244
type: string
name: read_data
arguments: data_tag: D505
type: string
name: read_data
arguments: data_tag: D623
type: string
name: read_data
arguments: data_tag: D332
type: string
name: read_data
arguments: data_tag: D425
type: string
name: read_data
arguments: data_tag: D894
type: string
name: read_data
arguments: data_tag: D300
type: string
name: read_data
arguments: data_tag: D638
type: string
name: read_data
arguments: data_tag: D782
type: string
name: read_data
arguments: data_tag: D504
type: string
name: read_data
arguments: data_tag: D184
type: string
name: read_data
arguments: data_tag: D7
type: string
name: read_data
arguments: data_tag: D423
type: string
name: read_data
arguments: data_tag: D422
type: string
name: read_data
arguments: data_tag: D485
type: string
name: read_data
arguments: data_tag: D520
type: string
name: read_data
arguments: data_tag: D853
type: string
name: read_data
arguments: data_tag: D186
type: string
name: read_data
arguments: data_tag: D229
type: string
name: read_data
arguments: data_tag: D902
type: string
name: read_data
arguments: data_tag: D232
type: string
name: read_data
arguments: data_tag: D642
type: string
name: read_data
arguments: data_tag: D672
type: string
name: read_data
arguments: data_tag: D43
type: string
name: read_data
arguments: data_tag: D643
type: string
name: read_data
arguments: data_tag: D692
type: string
name: read_data
arguments: data_tag: D804
type: string
name: read_data
arguments: data_tag: D896
type: string
name: read_data
arguments: data_tag: D931
type: string
name: read_data
arguments: data_tag: D591
type: string
name: read_data
arguments: data_tag: D16
type: string
name: read_data
arguments: data_tag: D374
type: string
name: read_data
arguments: data_tag: D418
type: string
name: read_data
arguments: data_tag: D323
type: string
name: read_data
arguments: data_tag: D843
type: string
name: read_data
arguments: data_tag: D457
type: string
name: read_data
arguments: data_tag: D411
type: string
name: read_data
arguments: data_tag: D518
type: string
name: read_data
arguments: data_tag: D310
type: string
name: read_data
arguments: data_tag: D872
type: string
name: read_data
arguments: data_tag: D883
type: string
name: read_data
arguments: data_tag: D127
type: string
name: read_data
arguments: data_tag: D654
type: string
name: read_data
arguments: data_tag: D876
type: string
name: read_data
arguments: data_tag: D295
type: string
name: read_data
arguments: data_tag: D479
type: string
name: read_data
arguments: data_tag: D119
type: string
name: read_data
arguments: data_tag: D471
type: string
name: read_data
arguments: data_tag: D842
type: string
name: read_data
arguments: data_tag: D124
type: string
name: read_data
arguments: data_tag: D455
type: string
name: read_data
arguments: data_tag: D143
type: string
name: read_data
arguments: data_tag: D412
type: string
name: read_data
arguments: data_tag: D618
type: string
name: read_data
arguments: data_tag: D532
type: string
name: read_data
arguments: data_tag: D593
type: string
name: read_data
arguments: data_tag: D314
type: string
name: read_data
arguments: data_tag: D838
type: string
name: read_data
arguments: data_tag: D776
type: string
name: read_data
arguments: data_tag: D329
type: string
name: read_data
arguments: data_tag: D182
type: string
name: read_data
arguments: data_tag: D324
type: string
name: read_data
arguments: data_tag: D494
type: string
name: read_data
arguments: data_tag: D678
type: string
name: read_data
arguments: data_tag: D670
type: string
name: read_data
arguments: data_tag: D599
type: string
name: read_data
arguments: data_tag: D230
type: string
name: read_data
arguments: data_tag: D656
type: string
name: read_data
arguments: data_tag: D42
type: string
name: read_data
arguments: data_tag: D54
type: string
name: read_data
arguments: data_tag: D553
type: string
name: read_data
arguments: data_tag: D38
type: string
name: read_data
arguments: data_tag: D832
type: string
name: read_data
arguments: data_tag: D720
type: string
name: read_data
arguments: data_tag: D3
type: string
name: read_data
arguments: data_tag: D635
type: string
name: read_data
arguments: data_tag: D856
type: string
name: read_data
arguments: data_tag: D601
type: string
name: read_data
arguments: data_tag: D223
type: string
name: read_data
arguments: data_tag: D480
type: string
name: read_data
arguments: data_tag: D547
type: string
name: read_data
arguments: data_tag: D227
type: byte[8]
name: read_data
arguments: data_tag: D697
type: byte[8]
name: read_data
arguments: data_tag: D442
type: string
name: read_data
arguments: data_tag: D508
type: string
name: read_data
arguments: data_tag: D274
type: string
name: read_data
arguments: data_tag: D285
type: string

tool: D320: March 2, 2007

tool: D343: 0.1

tool: D541: 
Repair Sender Version %s, %s



tool: D244:   Copyright (c) 2003-2007 TUT - Tampere University of Technology

tool: D505:   main authors/contacts: jani.peltotalo@tut.fi and sami.peltotalo@tut.fi

tool: D623:   web site: http://www.atm.tut.fi/mad


tool: D332:   This is free software, and you are welcome to redistribute it

tool: D425:   under certain conditions; See the GNU General Public License

tool: D894:   as published by the Free Software Foundation, version 2 or later,

tool: D300:   for more details.

tool: D638:   * mad_rlc.c & mad_rlc.h -- Portions of code derived from MCL library by

tool: D782:   * Vincent Roca et al. (http://www.inrialpes.fr/planete/people/roca/mcl/)

tool: D504:   *

tool: D184:   * Copyright (c) 1999-2004 INRIA - Universite Paris 6 - All rights reserved

tool: D7:   * (main author: Julien Laboure - julien.laboure@inrialpes.fr

tool: D423:   *               Vincent Roca - vincent.roca@inrialpes.fr)

tool: D422:   * fec.c & fec.h -- forward error correction based on Vandermonde matrices

tool: D485:   * 980624

tool: D520:   * (C) 1997-98 Luigi Rizzo (luigi@iet.unipi.it)

tool: D853:   * Portions derived from code by Phil Karn (karn@ka9q.ampr.org),

tool: D186:   * Robert Morelos-Zaragoza (robert@spectra.eng.hawaii.edu) and

tool: D229:   * Hari Thirumoorthy (harit@spectra.eng.hawaii.edu), Aug 1995

tool: D902:   * Redistribution and use in source and binary forms, with or without

tool: D232:   * modification, are permitted provided that the following conditions

tool: D642:   * are met:

tool: D672:   * 1. Redistributions of source code must retain the above copyright

tool: D43:   *    notice, this list of conditions and the following disclaimer.

tool: D643:   * 2. Redistributions in binary form must reproduce the above

tool: D692:   *    copyright notice, this list of conditions and the following

tool: D804:   *    disclaimer in the documentation and/or other materials

tool: D896:   *    provided with the distribution.

tool: D931:   * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND

tool: D591:   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,

tool: D16:   * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A

tool: D374:   * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS

tool: D418:   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,

tool: D323:   * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,

tool: D843:   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,

tool: D457:   * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

tool: D411:   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR

tool: D518:   * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

tool: D310:   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY

tool: D872:   * OF SUCH DAMAGE.

tool: D883: 
Usage: repair_sender [-m:str] [-p:int] [-i:str] [-c:int] [-t:ull] [-e:int]

tool: D127:                      [-K:str] [-a:str] [-h] [[-n:int] | [-C]] [-f:str] [-r:int]

tool: D654:                      [-v:int] [-D:ull] [-V:str] [-T:int] [-P:float,float]

tool: D876:                      [-H] [-B:str]

tool: D295:  [-d:str]

tool: D479:  [-w:int]

tool: D119: 


tool: D471: Options:


tool: D842:    -m:str           IP4 or IP6 address for base channel,

tool: D124:    -e:int           FEC-OTI for file objects

tool: D455:                     [0 = FEC-OTI in FDT, 1 = FEC-OTI in EXT_FTI], default: 0

tool: D143: ff1a::1

tool: D412: 226.10.40.1

tool: D618:                     default: %s or %s


tool: D532: 4001

tool: D593:    -p:int           Port number for base channel, default: %s


tool: D314:    -i:str           Local interface to bind to, default: INADDR_ANY

tool: D838:    -t:ull           TSI for this session, default: %i


tool: D776:    -w:int           Congestion control scheme [0 = Null, 1 = RLC],

tool: D329:                     default: %i; the number of channels, defined by -c option,


tool: D182:                     are used with both schemes and bitrate of each channel is

tool: D324:                     set according to RLC rules

tool: D494:    -a:str           Address family (IP4 or IP6), default: IP4

tool: D678:    -v:int           Verbosity level, [0 = low, 1 = high] default: 1

tool: D670:    -V:str           Print logs to 'str' file, default: print to stdout

tool: D599:    -d:str           SDP file (start FLUTE session based on SDP file),

tool: D230:                     default: no

tool: D656:    -h               Print this help

tool: D42:    -c:int           Number of used channels, default: %i


tool: D54:    -D:ull           Duration of the session in seconds, default: %i


tool: D553:    -f:str           FDT file of the FLUTE session to be repaired, default: no

tool: D38:    -B:str           Base directory for files of the FLUTE session to be

tool: D832:                     repaired, default: no

tool: D720: repair_sender.conf

tool: D3:    -K:str           Repair configuration file, default: %s


tool: D635:    -r:int           Transmission rate at base channel in kbits/s, default: %i


tool: D856:    -T:int           Time To Live or Hop Limit for this session, default: %i


tool: D601:    -e:int           Use EXT_FTI extensions header for file objects

tool: D223:                     [0 = no, 1 = yes], default: 1

tool: D480:    -n:int           Number of transmissions, default: %i


tool: D547:    -C               Continuous transmission, default: not used

tool: {"D227": [0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x40]}

tool: {"D697": [0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x40]}

tool: D442:    -P[:float,float] Simulate packet losses, default: %.1f,%.1f


tool: D508:    -H               Use Half-word (if used TSI field could be 16, 32 or 48

tool: D274:                     bits long and TOI field could be 16, 32, 48 or 64 bits

tool: D285:                     long), default: not used

assistant: ```c
void usage(void) {
  printf("\nRepair Sender Version %s, %s\n\n", "0.1", "March 2, 2007");
  printf("  Copyright (c) 2003-2007 TUT - Tampere University of Technology\n");
  printf("  main authors/contacts: jani.peltotalo@tut.fi and sami.peltotalo@tut.fi\n");
  printf("  web site: http://www.atm.tut.fi/mad\n\n");
  printf("  This is free software, and you are welcome to redistribute it\n");
  printf("  under certain conditions; See the GNU General Public License\n");
  printf("  as published by the Free Software Foundation, version 2 or later,\n");
  printf("  for more details.\n");
  printf("  * mad_rlc.c & mad_rlc.h -- Portions of code derived from MCL library by\n");
  printf("  * Vincent Roca et al. (http://www.inrialpes.fr/planete/people/roca/mcl/)\n");
  printf("  *\n");
  printf("  * Copyright (c) 1999-2004 INRIA - Universite Paris 6 - All rights reserved\n");
  printf("  * (main author: Julien Laboure - julien.laboure@inrialpes.fr\n");
  printf("  *               Vincent Roca - vincent.roca@inrialpes.fr)\n");
  printf("  * fec.c & fec.h -- forward error correction based on Vandermonde matrices\n");
  printf("  * 980624\n");
  printf("  * (C) 1997-98 Luigi Rizzo (luigi@iet.unipi.it)\n");
  printf("  *\n");
  printf("  * Portions derived from code by Phil Karn (karn@ka9q.ampr.org),\n");
  printf("  * Robert Morelos-Zaragoza (robert@spectra.eng.hawaii.edu) and\n");
  printf("  * Hari Thirumoorthy (harit@spectra.eng.hawaii.edu), Aug 1995\n");
  printf("  *\n");
  printf("  * Redistribution and use in source and binary forms, with or without\n");
  printf("  * modification, are permitted provided that the following conditions\n");
  printf("  * are met:\n");
  printf("  *\n");
  printf("  * 1. Redistributions of source code must retain the above copyright\n");
  printf("  *    notice, this list of conditions and the following disclaimer.\n");
  printf("  * 2. Redistributions in binary form must reproduce the above\n");
  printf("  *    copyright notice, this list of conditions and the following\n");
  printf("  *    disclaimer in the documentation and/or other materials\n");
  printf("  *    provided with the distribution.\n");
  printf("  *\n");
  printf("  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND\n");
  printf("  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n");
  printf("  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\n");
  printf("  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS\n");
  printf("  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n");
  printf("  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n");
  printf("  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n");
  printf("  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n");
  printf("  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n");
  printf("  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\n");
  printf("  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\n");
  printf("  * OF SUCH DAMAGE.\n");
  printf("\nUsage: repair_sender [-m:str] [-p:int] [-i:str] [-c:int] [-t:ull] [-e:int]\n");
  printf("                     [-K:str] [-a:str] [-h] [[-n:int] | [-C]] [-f:str] [-r:int]\n");
  printf("                     [-v:int] [-D:ull] [-V:str] [-T:int] [-P:float,float]\n");
  printf("                     [-H] [-B:str]");
  printf(" [-d:str]");
  printf(" [-w:int]");
  printf("\n\n");
  printf("Options:\n\n");
  printf("   -m:str           IP4 or IP6 address for base channel,\n");
  printf("   -e:int           FEC-OTI for file objects\n");
  printf("                    [0 = FEC-OTI in FDT, 1 = FEC-OTI in EXT_FTI], default: 0\n");
  printf("                    default: %s or %s\n", "226.10.40.1", "ff1a::1");
  printf("   -p:int           Port number for base channel, default: %s\n", "4001");
  printf("   -i:str           Local interface to bind to, default: INADDR_ANY\n");
  printf("   -t:ull           TSI for this session, default: %i\n", 0);
  printf("   -w:int           Congestion control scheme [0 = Null, 1 = RLC],\n");
  printf("                    default: %i; the number of channels, defined by -c option,\n", 0);
  printf("                    are used with both schemes and bitrate of each channel is\n");
  printf("                    set according to RLC rules\n");
  printf("   -a:str           Address family (IP4 or IP6), default: IP4\n");
  printf("   -v:int           Verbosity level, [0 = low, 1 = high] default: 1\n");
  printf("   -V:str           Print logs to 'str' file, default: print to stdout\n");
  printf("   -d:str           SDP file (start FLUTE session based on SDP file),\n");
  printf("                    default: no\n");
  printf("   -h               Print this help\n");
  printf("   -c:int           Number of used channels, default: %i\n", 1);
  printf("   -D:ull           Duration of the session in seconds, default: %i\n", 604800);
  printf("   -f:str           FDT file of the FLUTE session to be repaired, default: no\n");
  printf("   -B:str           Base directory for files of the FLUTE session to be\n");
  printf("                    repaired, default: no\n");
  printf("   -K:str           Repair configuration file, default: %s\n", "repair_sender.conf");
  printf("   -r:int           Transmission rate at base channel in kbits/s, default: %i\n", 250);
  printf("   -T:int           Time To Live or Hop Limit for this session, default: %i\n", 1);
  printf("   -e:int           Use EXT_FTI extensions header for file objects\n");
  printf("                    [0 = no, 1 = yes], default: 1\n");
  printf("   -n:int           Number of transmissions, default: %i\n", 1);
  printf("   -C               Continuous transmission, default: not used\n");
  printf("   -P[:float,float] Simulate packet losses, default: %.1f,%.1f\n", (float)5, (float)50);
  printf("   -H               Use Half-word (if used TSI field could be 16, 32 or 48\n");
  printf("                    bits long and TOI field could be 16, 32, 48 or 64 bits\n");
  printf("                    long), default: not used\n");
  exit(1);
}
```