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

```asm
<LIBRARYF>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x14(%rbp)
  mov    %esi,-0x18(%rbp)
  mov    %edx,-0x1c(%rbp)
  cmpl   $0x7,-0x1c(%rbp)
  ja     L55
  mov    -0x1c(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D83(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D83(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D69(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L55
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D94(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L55
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D31(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L55
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D22(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L55
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D5(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L55
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D82(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L55
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D98(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  jmp    L55
  mov    -0x18(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x14(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  add    %rdx,%rax
  add    %rcx,%rax
  lea    0x0(,%rax,4),%rdx
  lea    D78(%rip),%rax
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,-0x4(%rbp)
  nop
L55:
  movss  -0x4(%rbp),%xmm0
  pop    %rbp
  ret
```

assistant: ```c
float LIBRARYF(int k1, int k2, int k3) {
  float ma;
  switch (k3) {
  case (0): {
    static float Sf[7][27] = {1.4672, 1.0792, 1.2357, 1.2853, 1.2179, 1.1458, 1.2168, 1.3364, 1.5111, 1.731, 1.9692, 2.2444, 2.5284, 3.057, 3.5012, 4.6164, 5.5843, 7.474, 8.7771, 13.5415, 14.0526, 21.5598, 34.5172, 51.3414, 49.8046, 31.8318, 2169.1392, .8772, .5466, .5471, .4268, .027, .0013, .0001, .0001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.0883, 1.7083, 1.9453, 2.0082, 1.7517, 1.6307, 1.5551, 1.4932, 1.5405, 1.6324, 1.7022, 1.7424, 1.8179, 1.9787, 2.2495, 2.658, 3.2606, 4.7096, 6.3173, 10.3666, 10.6876, 18.2277, 46.3284, 49.5487, 71.1878, 23.5742, 2747.427, 1.7498, 1.4837, 1.5831, 1.5112, 1.4128, .7315, .2134, .1129, .0929, .0797, .0872, .0972, .0971, .0951, .1099, .1279, .1777, .2188, .3615, .0693, .0806, .1486, .6037, .1826, .0007, .7849, .2021, 1.8953, 1.4453, 1.5767, 1.7496, 1.5947, 1.5012, 1.5846, 1.8041, 2.0439, 2.2983, 2.4489, 2.6261, 3.1619, 3.345, 3.9969, 5.2456, 6.7218, 8.0791, 10.3619, 15.5689, 25.1802, 31.4659, 41.9803, 110.1697, 209.3141, 63.3957, 3637.0044, 1.9664, 1.767, 1.597, 1.3586, 1.358, .5353, .1321, .0498, .032, .0294, .0374, .0456, .054, .0533};
    ma = Sf[k1][k2];
  } break;
  case (1): {
    static float Nu[7][27] = {3.516, 3.036, 2.737, 2.615, 2.539, 2.493, 2.466, 2.449, 2.439, 2.433, 2.429, 2.426, 2.425, 2.424, 2.424, 2.423, 2.423, 2.423, 2.423, 2.423, 2.423, 2.423, 2.423, 2.423, 2.423, 2.423, 2.423, 3.445, 3.027, 2.76, 2.591, 2.484, 2.419, 2.38, 2.356, 2.342, 2.333, 2.328, 2.324, 2.322, 2.321, 2.321, 2.32, 2.32, 2.32, 2.32, 2.32, 2.32, 2.32, 2.32, 2.319, 2.319, 2.319, 2.319, 3.965, 3.537, 3.269, 3.112, 3.017, 2.963, 2.931, 2.911, 2.899, 2.891, 2.887, 2.884, 2.883, 2.882, 2.881, 2.881, 2.88, 2.88, 2.88, 2.88, 2.88, 2.88, 2.88, 2.88, 2.88, 2.88, 2.88, 3.611, 3.345, 3.173, 3.065, 2.995, 2.954, 2.929, 2.914, 2.904, 2.899, 2.895, 2.893, 2.892, 2.891, 2.891, 2.89, 2.89, 2.89, 2.89, 2.89, 2.89, 2.89, 2.89, 2.89, 2.89, 2.89, 2.89, 3.977, 3.593, 3.345, 3.188, 3.088, 3.028, 2.992, 2.957, 2.948, 2.944, 2.941, 2.939, 2.938, 2.937, 2.937, 2.936, 2.936, 2.936, 2.936, 2.936, 2.936, 2.936, 2.936, 2.936, 2.936, 2.936, 2.936, 3.842, 3.461, 3.214, 3.059, 2.959, 2.9, 2.864, 2.842, 2.828, 2.82, 2.816, 2.813, 2.811, 2.81, 2.809, 2.809, 2.808, 2.808, 2.808, 2.808, 2.808, 2.808, 2.808, 2.808, 2.808, 2.808, 2.808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    ma = Nu[k1][k2];
  } break;
  case (2): {
    static float Sc[7][27] = {.0101, .0191, .0339, .0578, .099, .1349, .1788, .2593, .3914, .5354, .6814, .8018, .9011, 1.0737, 1.1972, 1.5874, 1.9504, 2.9965, 4.2441, 4.9812, 5.5848, 10.8620, 15.9377, 30.1696, 42.3365, 10.9266, 381.1487, .0064, .0118, .0272, .0633, .1208, .1258, .1168, .1345, .1698, .2155, .3386, .4478, .571, .7034, .8621, 1.0654, 1.3905, 1.7771, 2.9157, 3.6587, 3.6043, 17.5936, 13.5505, 105.1859, 131.139, .6123, 9.6518, .0016, .0018, .0039, .0103, .0246, .0759, .1404, .196, .2277, .2692, .3631, .5575, .7734, 1.0681, 1.5956, 2.2419, 3.119, 3.5525, 4.6763, 7.3707, 9.6959, 17.0523, 43.8226, 40.6636, 48.1714, 7.1881, 941.2881, .0074, .0152, .0331, .0621, .1031, .144, .1631, .1849, .2239, .2858, .3709, .4839, .6263, .7871, .9826, 1.235, 1.7146, 2.4608, 3.9917, 4.2115, 7.8884, 16.2777, 75.2889, 20.7762, .5895, 4106.5117, 1012.001, .0293, .0466, .0698, .0985, .1063, .1006, .1147, .1617, .2802, .4601, .5767, .5677, .6994, .7475, .9048, 1.2077, 1.5729, 1.9218, 2.6503, 4.8596, 6.4107, 6.5071, 6.5809, 24.0136, 23.4512, 19.5237, 1577.698, .0048, .0087, .0273, .0416, .0589, .1061, .1182, .1236, .1411, .1848, .3015, .4145, .5041, .6516, .8546, 1.1331, 1.5792, 2.2935, 3.4163, 5.1487, 8.7361, 9.8075, 34.1368, 2.464, .4298, 532.2349, 65.289, .0881, .0481, .0008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    ma = Sc[k1][k2];
  } break;
  case (3): {
    static float St[7][27] = {6.5644, 7.7153, 7.6569, 6.9138, 6.7176, 7.2187, 8.3625, 9.8107, 11.0667, 11.9904, 12.8378, 13.7178, 14.0866, 15.0052, 15.6559, 17.3588, 18.7473, 21.9607, 24.6535, 30.1884, 31.0608, 44.2463, 62.7262, 93.8871, 103.5141, 54.9453, 2565.8821, 6.6325, 7.7467, 7.7315, 7.1111, 7.1618, 8.0551, 9.2195, 10.4659, 11.4997, 12.4137, 12.9847, 13.53, 14.1825, 14.9115, 16.0429, 17.8254, 19.6016, 21.9368, 23.1469, 20.5064, 19.3517, 74.0623, 36.6973, 181.6779, 145.9097, 9.1614, 18.5963, 6.6868, 7.8097, 7.7996, 7.1799, 7.2379, 8.1271, 9.1908, 10.2039, 11.2009, 12.1554, 12.961, 13.563, 13.692, 14.5774, 16.0448, 17.5645, 19.4228, 21.0334, 23.9695, 32.6466, 35.7292, 53.7108, 113.1682, 103.2008, 129.9206, 41.3679, 3697.8582, 6.6765, 7.8031, 7.7635, 7.2214, 7.2076, 7.9257, 9.0392, 10.1872, 11.2364, 12.1477, 12.9533, 13.2379, 13.9549, 14.8452, 15.9662, 16.7974, 18.8762, 22.4692, 26.5641, 20.3543, 36.9667, 45.8267, 176.7698, 31.0686, 11.9199, 4455.4375, 1015.6565, 6.6925, 7.6606, 7.7294, 7.3201, 7.9212, 9.0873, 10.1949, 11.2679, 12.27, 13.1507, 13.7167, 14.0735, 15.1198, 15.3703, 16.3629, 18.212, 20.2616, 21.9176, 25.1135, 33.5943, 45.3289, 50.5169, 60.4985, 148.7165, 243.1451, 92.6829, 5226.2617, 6.6166, 7.4205, 7.3396, 6.9782, 7.1581, 7.71, 8.547, 9.5466, 10.6704, 11.8591, 13.1268, 14.4751, 15.9067, 17.2968, 19.1572, 21.6832, 24.8872, 28.975, 34.2064, 40.9117, 53.3206, 29.607, 97.0522, 12.3886, 12.0913, 582.981, 73.6175, 1.1043, 1.8174, 1.57, 1.9695, 4.2004, 3.1948, 6.8636, 3.544, 3.5622, 3.6081, 3.6451, 3.6679, 3.6816, 3.69, 3.6954, 3.6989, 3.701, 3.7023, 3.703, 3.7034, 3.7037, 3.7039, 3.704, 3.704, 3.7039, 3.7045};
    ma = St[k1][k2];
  } break;
  case (4): {
    static float Se[7][27] = {3.7129, 4.7972, 4.604, 3.9038, 3.9944, 4.7206, 6.0204, 7.5207, 8.6762, 9.4749, 10.1268, 10.6508, 10.65, 10.8742, 10.9574, 11.155, 11.2126, 11.4903, 11.6321, 11.6657, 11.4234, 11.8245, 12.2712, 12.3762, 11.373, 12.1869, 15.594, 3.5961, 4.5923, 4.4908, 3.7446, 4.5454, 6.0861, 7.6124, 9.2107, 10.5293, 11.8316, 12.575, 13.0822, 13.6115, 14.2081, 15.1808, 16.7601, 18.2111, 20.1597, 20.2312, 16.8478, 15.7474, 56.4687, 23.1468, 76.4921, 14.7708, 8.5491, 8.9445, 3.2538, 3.9121, 3.6291, 3.2468, 3.7909, 5.1493, 6.6703, 7.8839, 8.9135, 9.8413, 10.5589, 10.9434, 10.7958, 11.253, 12.1711, 12.6647, 13.0432, 12.7714, 12.9759, 14.9094, 15.3457, 18.4307, 23.0172, 12.9884, 10.5614, 10.6056, 9.1428, 3.7902, 4.4711, 4.0411, 3.5791, 3.6627, 5.419, 7.2794, 8.7216, 9.9653, 11.1205, 12.2778, 12.6569, 13.2314, 13.9629, 14.8738, 15.4345, 16.9839, 19.7896, 22.2109, 16.0735, 28.9977, 29.4003, 100.8771, 10.1098, 11.3297, 348.1465, 3.4537, 3.1984, 4.1357, 4.0252, 3.8958, 4.4, 5.3762, 6.5457, 8.0237, 9.2228, 9.9668, 10.5279, 10.8795, 11.2585, 11.2777, 11.4611, 11.7587, 11.967, 11.9167, 12.1013, 13.1658, 13.7381, 12.5439, 11.9373, 14.5332, 10.3797, 9.7635, 11.5698, 3.1826, 3.6696, 3.7542, 3.9251, 4.5524, 5.8437, 7.1693, 8.4472, 9.8214, 11.2116, 12.6915, 14.015, 15.3486, 16.5919, 18.3026, 20.5501, 23.308, 26.6815, 30.7901, 35.763, 44.5845, 19.7995, 62.9154, 9.9246, 11.6614, 50.7463, 8.3285, .9338, 1.7693, 1.5692, 1.9698, 4.2002, 3.1948, 6.8636, 3.544, 3.5622, 3.6081, 3.6451, 3.6679, 3.6816, 3.69, 3.6954, 3.6989, 3.701, 3.7023, 3.703, 3.7034, 3.7037, 3.7039, 3.7039, 3.704, 3.704, 3.7039, 3.7039};
    ma = Se[k1][k2];
  } break;
  case (5): {
    static float Sre[7][27] = {.0281, .028, .028, .0332, .0393, .0497, .0711, .0984, .1302, .1515, .1669, .1788, .1808, .1858, .1876, .1909, .1919, .1967, .1991, .1997, .1995, .1012, .105, .1059, .0973, .0521, .0151, .025, .0232, .0255, .0271, .0406, .0644, .0923, .1236, .153, .1821, .2037, .2168, .2281, .2398, .2566, .2833, .3078, .3407, .3419, .2847, .2661, .4772, .1956, .6464, .1248, .0361, .0086, .0116, .0113, .011, .0139, .0249, .0452, .0704, .096, .1207, .143, .1628, .1747, .176, .1858, .2046, .2132, .2195, .2149, .2184, .2509, .2583, .1551, .1937, .1093, .0889, .0446, .0087, .0237, .0224, .0205, .0202, .0255, .0496, .0793, .1072, .1353, .1629, .1895, .2018, .215, .2297, .2476, .2586, .2847, .3317, .3723, .2694, .486, .2464, .8454, .0847, .0949, 1.4587, .0033, .0156, .0166, .0178, .0199, .0276, .0399, .0594, .088, .1165, .1384, .1563, .1694, .1812, .1851, .1903, .1962, .1997, .1989, .202, .2198, .2293, .1047, .0996, .1213, .0866, .0407, .0109, .0127, .0125, .0159, .0222, .0349, .058, .0821, .1071, .1354, .165, .1956, .2226, .2488, .2742, .304, .3413, .3872, .4432, .5114, .594, .7406, .1644, .5225, .0824, .0969, .2107, .0078, .4202, .457, .3777, .4377, .985, .5866, 1.7238, .9647, .913, .9035, .9007, .8989, .8977, .897, .8967, .8965, .8964, .8963, .8963, .8963, .8962, .4481, .4481, .4481, .4481, .224, .0508};
    ma = Sre[k1][k2];
  } break;
  case (6): {
    static float Mue[7][27] = {.7915, .7648, .6768, .5045, .4265, .3861, .3118, .2381, .126, .0688, .0398, .022, .0111, .0045, .0029, .0029, .0029, .0029, .0029, .0029, .0029, .0029, .0029, .0029, .0029, .0029, .0029, .8064, .7935, .6951, .5727, .4734, .3753, .2843, .208, .1427, .0918, .0441, .0225, .0112, .0044, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .9012, .8823, .8366, .7474, .6106, .4797, .3748, .2785, .1974, .1388, .0862, .0539, .0343, .0218, .004, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .8244, .7935, .7254, .6638, .5859, .455, .352, .2688, .1921, .1284, .0815, .0514, .0331, .0212, .0096, .003, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .8626, .8339, .7598, .6946, .6252, .5564, .4575, .3451, .2455, .1702, .1128, .0697, .0385, .0196, .0082, .0029, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .8878, .8587, .7683, .66, .5391, .4038, .3122, .2386, .172, .1166, .0745, .0465, .0268, .0079, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .0028, .1543, .2909, .1314, .1205, .0718, .2735, .0057, -.0778, -.0148, .0086, .0218, .0298, .0347, .0376, .0394, .0405, .0411, .0415, .0418, .0419, .042, .0421, .0421, .0421, .0422, .0422, .0422};
    ma = Mue[k1][k2];
  } break;
  case (7): {
    static float Sin[7][27] = {1.3741, 1.8198, 1.7833, 1.6669, 1.4065, 1.2174, .9465, .6943, .488, .2491, .0604, .0207, .007, .0003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.1528, 2.596, 2.6664, 2.8765, 2.4685, 1.8419, 1.4902, 1.1207, .8006, .3665, .0712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3431, 2.1874, 2.2213, 1.9146, 1.5706, 1.2712, .825, .6307, .5193, .4125, .3368, .3197, .3049, .2776, .0287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.1292, 1.8331, 2.1062, 2.069, 2.0289, 1.6313, 1.3834, 1.1678, .9543, .6617, .2173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.5696, 2.0331, 2.0577, 1.5762, 1.8202, 2.1094, 1.9498, 1.2784, .7231, .4255, .1633, .0002, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.4628, 1.9752, 1.961, 1.6528, 1.1888, 1.2249, 1.1274, .9261, .6759, .4334, .0964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, .0824};
    ma = Sin[k1][k2];
  } break;
  }
  return ma;
}
```