user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<playMario>:
  endbr64
  sub    $0x8,%rsp
  xor    %esi,%esi
  mov    $0xc3,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0xc3,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x105,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x105,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x149,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x149,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  mov    $0x1,%esi
  mov    $0x187,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x2c,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x187,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x20b,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x20b,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x293,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x293,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  mov    $0x1,%esi
  mov    $0x30f,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x2c,%edi
  call   <wait1Msec@plt>
  mov    $0x2d,%esi
  mov    $0x30f,%edi
  call   <PlayImmediateTone@plt>
  mov    $0xdc,%edi
  call   <wait1Msec@plt>
  mov    $0x2,%esi
  mov    $0x293,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x30,%edi
  call   <wait1Msec@plt>
  mov    $0x2d,%esi
  mov    $0x293,%edi
  call   <PlayImmediateTone@plt>
  mov    $0xdc,%edi
  call   <wait1Msec@plt>
  mov    $0x2,%esi
  mov    $0xcf,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x30,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0xcf,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x105,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x105,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x137,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x137,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  mov    $0x1,%esi
  mov    $0x19f,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x2c,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x19f,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x20b,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x20b,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x26e,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x26e,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  mov    $0x1,%esi
  mov    $0x33e,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x2c,%edi
  call   <wait1Msec@plt>
  mov    $0x2d,%esi
  mov    $0x33e,%edi
  call   <PlayImmediateTone@plt>
  mov    $0xdc,%edi
  call   <wait1Msec@plt>
  mov    $0x2,%esi
  mov    $0x26e,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x30,%edi
  call   <wait1Msec@plt>
  mov    $0x2d,%esi
  mov    $0x26e,%edi
  call   <PlayImmediateTone@plt>
  mov    $0xdc,%edi
  call   <wait1Msec@plt>
  mov    $0x2,%esi
  mov    $0xe9,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x30,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0xe9,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x125,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x125,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x15d,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x15d,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  mov    $0x1,%esi
  mov    $0x1d2,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x2c,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x1d2,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x24b,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x24b,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x2ba,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x2ba,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  mov    $0x1,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x2c,%edi
  call   <wait1Msec@plt>
  mov    $0x2d,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0xdc,%edi
  call   <wait1Msec@plt>
  mov    $0x2,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x30,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  xor    %esi,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x28,%edi
  call   <wait1Msec@plt>
  mov    $0xf,%esi
  mov    $0x3a4,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x64,%edi
  call   <wait1Msec@plt>
  mov    $0x1,%esi
  mov    $0x407,%edi
  call   <PlayImmediateTone@plt>
  mov    $0x2c,%edi
  call   <wait1Msec@plt>
  mov    $0x407,%edi
  mov    $0x2d,%esi
  call   <PlayImmediateTone@plt>
  mov    $0xdc,%edi
  add    $0x8,%rsp
  jmp    1070 <wait1Msec@plt>
```

assistant: ```c
void playMario() {
  PlayImmediateTone(195, 0);
  wait1Msec(40);
  PlayImmediateTone(195, 15);
  wait1Msec(100);
  PlayImmediateTone(261, 0);
  wait1Msec(40);
  PlayImmediateTone(261, 15);
  wait1Msec(100);
  PlayImmediateTone(329, 0);
  wait1Msec(40);
  PlayImmediateTone(329, 15);
  wait1Msec(100);
  PlayImmediateTone(391, 1);
  wait1Msec(44);
  PlayImmediateTone(391, 15);
  wait1Msec(100);
  PlayImmediateTone(523, 0);
  wait1Msec(40);
  PlayImmediateTone(523, 15);
  wait1Msec(100);
  PlayImmediateTone(659, 0);
  wait1Msec(40);
  PlayImmediateTone(659, 15);
  wait1Msec(100);
  PlayImmediateTone(783, 1);
  wait1Msec(44);
  PlayImmediateTone(783, 45);
  wait1Msec(220);
  PlayImmediateTone(659, 2);
  wait1Msec(48);
  PlayImmediateTone(659, 45);
  wait1Msec(220);
  PlayImmediateTone(207, 2);
  wait1Msec(48);
  PlayImmediateTone(207, 15);
  wait1Msec(100);
  PlayImmediateTone(261, 0);
  wait1Msec(40);
  PlayImmediateTone(261, 15);
  wait1Msec(100);
  PlayImmediateTone(311, 0);
  wait1Msec(40);
  PlayImmediateTone(311, 15);
  wait1Msec(100);
  PlayImmediateTone(415, 1);
  wait1Msec(44);
  PlayImmediateTone(415, 15);
  wait1Msec(100);
  PlayImmediateTone(523, 0);
  wait1Msec(40);
  PlayImmediateTone(523, 15);
  wait1Msec(100);
  PlayImmediateTone(622, 0);
  wait1Msec(40);
  PlayImmediateTone(622, 15);
  wait1Msec(100);
  PlayImmediateTone(830, 1);
  wait1Msec(44);
  PlayImmediateTone(830, 45);
  wait1Msec(220);
  PlayImmediateTone(622, 2);
  wait1Msec(48);
  PlayImmediateTone(622, 45);
  wait1Msec(220);
  PlayImmediateTone(233, 2);
  wait1Msec(48);
  PlayImmediateTone(233, 15);
  wait1Msec(100);
  PlayImmediateTone(293, 0);
  wait1Msec(40);
  PlayImmediateTone(293, 15);
  wait1Msec(100);
  PlayImmediateTone(349, 0);
  wait1Msec(40);
  PlayImmediateTone(349, 15);
  wait1Msec(100);
  PlayImmediateTone(466, 1);
  wait1Msec(44);
  PlayImmediateTone(466, 15);
  wait1Msec(100);
  PlayImmediateTone(587, 0);
  wait1Msec(40);
  PlayImmediateTone(587, 15);
  wait1Msec(100);
  PlayImmediateTone(698, 0);
  wait1Msec(40);
  PlayImmediateTone(698, 15);
  wait1Msec(100);
  PlayImmediateTone(932, 1);
  wait1Msec(44);
  PlayImmediateTone(932, 45);
  wait1Msec(220);
  PlayImmediateTone(932, 2);
  wait1Msec(48);
  PlayImmediateTone(932, 15);
  wait1Msec(100);
  PlayImmediateTone(932, 0);
  wait1Msec(40);
  PlayImmediateTone(932, 15);
  wait1Msec(100);
  PlayImmediateTone(932, 0);
  wait1Msec(40);
  PlayImmediateTone(932, 15);
  wait1Msec(100);
  PlayImmediateTone(1031, 1);
  wait1Msec(44);
  PlayImmediateTone(1031, 45);
  wait1Msec(220);
}
```