user: Please show me the C implementation that matches the assembly code listed below:

```asm
<InitOperatorTable>:
  endbr64
  push   %r14
  xor    %ecx,%ecx
  mov    $0xf,%r8d
  mov    $0x133,%edi
  push   %r13
  lea    D135(%rip),%rdx
  lea    D39(%rip),%rsi
  push   %r12
  lea    D316(%rip),%r14
  lea    D437(%rip),%r13
  push   %rbp
  lea    D327(%rip),%rbp
  lea    D495(%rip),%r12
  sub    $0x8,%rsp
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xf,%r8d
  lea    D305(%rip),%rdx
  lea    D276(%rip),%rsi
  mov    $0x2e,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    $0xe,%ecx
  lea    D421(%rip),%rdx
  lea    D684(%rip),%rsi
  mov    $0x21,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    $0xe,%ecx
  lea    D252(%rip),%rdx
  lea    D321(%rip),%rsi
  mov    $0x7e,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %rbp,%rsi
  mov    $0xe,%ecx
  lea    D500(%rip),%rdx
  mov    $0x134,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %rbp,%rsi
  mov    $0xe,%ecx
  lea    D80(%rip),%rdx
  mov    $0x125,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %rbp,%rsi
  mov    $0xe,%ecx
  lea    D361(%rip),%rbp
  lea    D601(%rip),%rdx
  mov    $0x127,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %rbp,%rsi
  mov    $0xe,%ecx
  lea    D648(%rip),%rdx
  mov    $0x135,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %rbp,%rsi
  mov    $0xe,%ecx
  lea    D593(%rip),%rdx
  mov    $0x126,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %rbp,%rsi
  mov    $0xe,%ecx
  lea    D415(%rip),%rdx
  mov    $0x128,%edi
  lea    D656(%rip),%rbp
  call   <SET_OP@plt>
  lea    D518(%rip),%rsi
  xor    %r8d,%r8d
  mov    $0xe,%ecx
  mov    %rsi,%rdx
  mov    $0x11b,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %rbp,%rsi
  mov    $0xe,%ecx
  lea    D509(%rip),%rdx
  mov    $0x124,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %r14,%rsi
  mov    $0xe,%ecx
  lea    D335(%rip),%rdx
  mov    $0x123,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %r13,%rsi
  mov    $0xe,%ecx
  lea    D548(%rip),%rdx
  mov    $0x121,%edi
  call   <SET_OP@plt>
  xor    %r8d,%r8d
  mov    %r12,%rsi
  mov    $0xe,%ecx
  lea    D641(%rip),%rdx
  mov    $0x122,%edi
  call   <SET_OP@plt>
  mov    %r14,%rsi
  mov    $0xd,%r8d
  xor    %ecx,%ecx
  lea    D355(%rip),%rdx
  mov    $0x2a,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xd,%r8d
  lea    D70(%rip),%rdx
  lea    D141(%rip),%rsi
  mov    $0x2f,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xd,%r8d
  lea    D608(%rip),%rdx
  lea    D595(%rip),%rsi
  mov    $0x25,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    %r13,%rsi
  mov    $0xc,%r8d
  lea    D454(%rip),%rdx
  mov    $0x2b,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    %r12,%rsi
  mov    $0xc,%r8d
  lea    D320(%rip),%rdx
  mov    $0x2d,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xb,%r8d
  lea    D688(%rip),%rdx
  lea    D187(%rip),%rsi
  mov    $0x136,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xb,%r8d
  lea    D629(%rip),%rdx
  lea    D576(%rip),%rsi
  mov    $0x137,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xa,%r8d
  lea    D565(%rip),%rdx
  lea    D62(%rip),%rsi
  mov    $0x3c,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xa,%r8d
  lea    D92(%rip),%rdx
  lea    D44(%rip),%rsi
  mov    $0x3e,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xa,%r8d
  lea    D674(%rip),%rdx
  lea    D239(%rip),%rsi
  mov    $0x138,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0xa,%r8d
  lea    D169(%rip),%rdx
  lea    D531(%rip),%rsi
  mov    $0x139,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0x9,%r8d
  lea    D356(%rip),%rdx
  lea    D230(%rip),%rsi
  mov    $0x13a,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0x9,%r8d
  lea    D69(%rip),%rdx
  lea    D20(%rip),%rsi
  mov    $0x13b,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    %rbp,%rsi
  mov    $0x8,%r8d
  lea    D219(%rip),%rdx
  mov    $0x26,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0x7,%r8d
  lea    D302(%rip),%rdx
  lea    D573(%rip),%rsi
  mov    $0x5e,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0x6,%r8d
  lea    D347(%rip),%rdx
  lea    D635(%rip),%rsi
  mov    $0x7c,%edi
  call   <SET_OP@plt>
  mov    $0x5,%r8d
  xor    %ecx,%ecx
  lea    D49(%rip),%rdx
  lea    D546(%rip),%rsi
  mov    $0x13c,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0x4,%r8d
  lea    D549(%rip),%rdx
  lea    D218(%rip),%rsi
  mov    $0x13d,%edi
  call   <SET_OP@plt>
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  lea    D342(%rip),%rdx
  lea    D243(%rip),%rsi
  mov    $0x3d,%edi
  call   <SET_OP@plt>
  mov    $0x3d,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D419(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x13f,%edi
  call   <SET_OP@plt>
  mov    $0x13f,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D364(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x140,%edi
  call   <SET_OP@plt>
  mov    $0x140,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D607(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x141,%edi
  call   <SET_OP@plt>
  mov    $0x141,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D130(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x142,%edi
  call   <SET_OP@plt>
  mov    $0x142,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D2(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x143,%edi
  call   <SET_OP@plt>
  mov    $0x143,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D422(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x144,%edi
  call   <SET_OP@plt>
  mov    $0x144,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D301(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x145,%edi
  call   <SET_OP@plt>
  mov    $0x145,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D615(%rip),%rsi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  mov    $0x146,%edi
  call   <SET_OP@plt>
  mov    $0x146,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D43(%rip),%rsi
  mov    $0x2,%r8d
  xor    %ecx,%ecx
  mov    %rsi,%rdx
  mov    $0x147,%edi
  call   <SET_OP@plt>
  mov    $0x147,%edi
  call   <RIGHT_ASSOC@plt>
  lea    D113(%rip),%rsi
  mov    $0x148,%edi
  xor    %ecx,%ecx
  mov    $0x2,%r8d
  mov    %rsi,%rdx
  call   <SET_OP@plt>
  add    $0x8,%rsp
  mov    $0x148,%edi
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  jmp    1070 <RIGHT_ASSOC@plt>
```

tool_calls: name: parse_data
arguments: tag: D135
data_type: string
name: parse_data
arguments: tag: D39
data_type: string
name: parse_data
arguments: tag: D316
data_type: string
name: parse_data
arguments: tag: D437
data_type: string
name: parse_data
arguments: tag: D327
data_type: string
name: parse_data
arguments: tag: D495
data_type: string
name: parse_data
arguments: tag: D305
data_type: string
name: parse_data
arguments: tag: D276
data_type: string
name: parse_data
arguments: tag: D421
data_type: string
name: parse_data
arguments: tag: D684
data_type: string
name: parse_data
arguments: tag: D252
data_type: string
name: parse_data
arguments: tag: D321
data_type: string
name: parse_data
arguments: tag: D500
data_type: string
name: parse_data
arguments: tag: D80
data_type: string
name: parse_data
arguments: tag: D361
data_type: string
name: parse_data
arguments: tag: D601
data_type: string
name: parse_data
arguments: tag: D648
data_type: string
name: parse_data
arguments: tag: D593
data_type: string
name: parse_data
arguments: tag: D415
data_type: string
name: parse_data
arguments: tag: D656
data_type: string
name: parse_data
arguments: tag: D518
data_type: string
name: parse_data
arguments: tag: D509
data_type: string
name: parse_data
arguments: tag: D335
data_type: string
name: parse_data
arguments: tag: D548
data_type: string
name: parse_data
arguments: tag: D641
data_type: string
name: parse_data
arguments: tag: D355
data_type: string
name: parse_data
arguments: tag: D70
data_type: string
name: parse_data
arguments: tag: D141
data_type: string
name: parse_data
arguments: tag: D608
data_type: string
name: parse_data
arguments: tag: D595
data_type: string
name: parse_data
arguments: tag: D454
data_type: string
name: parse_data
arguments: tag: D320
data_type: string
name: parse_data
arguments: tag: D688
data_type: string
name: parse_data
arguments: tag: D187
data_type: string
name: parse_data
arguments: tag: D629
data_type: string
name: parse_data
arguments: tag: D576
data_type: string
name: parse_data
arguments: tag: D565
data_type: string
name: parse_data
arguments: tag: D62
data_type: string
name: parse_data
arguments: tag: D92
data_type: string
name: parse_data
arguments: tag: D44
data_type: string
name: parse_data
arguments: tag: D674
data_type: string
name: parse_data
arguments: tag: D239
data_type: string
name: parse_data
arguments: tag: D169
data_type: string
name: parse_data
arguments: tag: D531
data_type: string
name: parse_data
arguments: tag: D356
data_type: string
name: parse_data
arguments: tag: D230
data_type: string
name: parse_data
arguments: tag: D69
data_type: string
name: parse_data
arguments: tag: D20
data_type: string
name: parse_data
arguments: tag: D219
data_type: string
name: parse_data
arguments: tag: D302
data_type: string
name: parse_data
arguments: tag: D573
data_type: string
name: parse_data
arguments: tag: D347
data_type: string
name: parse_data
arguments: tag: D635
data_type: string
name: parse_data
arguments: tag: D49
data_type: string
name: parse_data
arguments: tag: D546
data_type: string
name: parse_data
arguments: tag: D549
data_type: string
name: parse_data
arguments: tag: D218
data_type: string
name: parse_data
arguments: tag: D342
data_type: string
name: parse_data
arguments: tag: D243
data_type: string
name: parse_data
arguments: tag: D419
data_type: string
name: parse_data
arguments: tag: D364
data_type: string
name: parse_data
arguments: tag: D607
data_type: string
name: parse_data
arguments: tag: D130
data_type: string
name: parse_data
arguments: tag: D2
data_type: string
name: parse_data
arguments: tag: D422
data_type: string
name: parse_data
arguments: tag: D301
data_type: string
name: parse_data
arguments: tag: D615
data_type: string
name: parse_data
arguments: tag: D43
data_type: string
name: parse_data
arguments: tag: D113
data_type: string

tool: D135: ARROW

tool: D39: ->

tool: D316: *

tool: D437: +

tool: D327: ++

tool: D495: -

tool: D305: DOT

tool: D276: .

tool: D421: not

tool: D684: !

tool: D252: bitnot

tool: D321: ~

tool: D500: ICR

tool: D80: postinc

tool: D361: --

tool: D601: preinc

tool: D648: DECR

tool: D593: postdec

tool: D415: predec

tool: D656: &

tool: D518: sizeof

tool: D509: addrof

tool: D335: indir

tool: D548: UPLUS

tool: D641: neg

tool: D355: mul

tool: D70: div

tool: D141: /

tool: D608: mod

tool: D595: %

tool: D454: add

tool: D320: sub

tool: D688: lsh

tool: D187: <<

tool: D629: rsh

tool: D576: >>

tool: D565: lt

tool: D62: <

tool: D92: gt

tool: D44: >

tool: D674: le

tool: D239: <=

tool: D169: ge

tool: D531: >=

tool: D356: eq

tool: D230: ==

tool: D69: ne

tool: D20: !=

tool: D219: band

tool: D302: bxor

tool: D573: ^

tool: D347: bor

tool: D635: |

tool: D49: and

tool: D546: &&

tool: D549: or

tool: D218: ||

tool: D342: asgn

tool: D243: =

tool: D419: *=

tool: D364: /=

tool: D607: %=

tool: D130: +=

tool: D2: -=

tool: D422: <<=

tool: D301: >>=

tool: D615: &=

tool: D43: ^=

tool: D113: |=

assistant: ```c
void InitOperatorTable() {
  SET_OP(307, "->", "ARROW", 0, 15);
  SET_OP('.', ".", "DOT", 0, 15);
  SET_OP('!', "!", "not", 14, 0);
  SET_OP('~', "~", "bitnot", 14, 0);
  SET_OP(308, "++", "ICR", 14, 0);
  SET_OP(293, "++", "postinc", 14, 0);
  SET_OP(295, "++", "preinc", 14, 0);
  SET_OP(309, "--", "DECR", 14, 0);
  SET_OP(294, "--", "postdec", 14, 0);
  SET_OP(296, "--", "predec", 14, 0);
  SET_OP(283, "sizeof", "sizeof", 14, 0);
  SET_OP(292, "&", "addrof", 14, 0);
  SET_OP(291, "*", "indir", 14, 0);
  SET_OP(289, "+", "UPLUS", 14, 0);
  SET_OP(290, "-", "neg", 14, 0);
  SET_OP('*', "*", "mul", 0, 13);
  SET_OP('/', "/", "div", 0, 13);
  SET_OP('%', "%", "mod", 0, 13);
  SET_OP('+', "+", "add", 0, 12);
  SET_OP('-', "-", "sub", 0, 12);
  SET_OP(310, "<<", "lsh", 0, 11);
  SET_OP(311, ">>", "rsh", 0, 11);
  SET_OP('<', "<", "lt", 0, 10);
  SET_OP('>', ">", "gt", 0, 10);
  SET_OP(312, "<=", "le", 0, 10);
  SET_OP(313, ">=", "ge", 0, 10);
  SET_OP(314, "==", "eq", 0, 9);
  SET_OP(315, "!=", "ne", 0, 9);
  SET_OP('&', "&", "band", 0, 8);
  SET_OP('^', "^", "bxor", 0, 7);
  SET_OP('|', "|", "bor", 0, 6);
  SET_OP(316, "&&", "and", 0, 5);
  SET_OP(317, "||", "or", 0, 4);
  SET_OP('=', "=", "asgn", 0, 2);
  RIGHT_ASSOC('=');
  SET_OP(319, "*=", "*=", 0, 2);
  RIGHT_ASSOC(319);
  SET_OP(320, "/=", "/=", 0, 2);
  RIGHT_ASSOC(320);
  SET_OP(321, "%=", "%=", 0, 2);
  RIGHT_ASSOC(321);
  SET_OP(322, "+=", "+=", 0, 2);
  RIGHT_ASSOC(322);
  SET_OP(323, "-=", "-=", 0, 2);
  RIGHT_ASSOC(323);
  SET_OP(324, "<<=", "<<=", 0, 2);
  RIGHT_ASSOC(324);
  SET_OP(325, ">>=", ">>=", 0, 2);
  RIGHT_ASSOC(325);
  SET_OP(326, "&=", "&=", 0, 2);
  RIGHT_ASSOC(326);
  SET_OP(327, "^=", "^=", 0, 2);
  RIGHT_ASSOC(327);
  SET_OP(328, "|=", "|=", 0, 2);
  RIGHT_ASSOC(328);
}
```