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

```asm
<TneGvcMobile>:
  endbr64
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    $0x0,%esi
  mov    $0x2a0,%edi
  call   <RegWriteA@plt>
  mov    $0x0,%esi
  mov    $0x2a1,%edi
  call   <RegWriteA@plt>
  mov    $0x0,%esi
  mov    $0x2a2,%edi
  call   <RegWriteA@plt>
  mov    $0x0,%esi
  mov    $0x2a3,%edi
  call   <RegWriteA@plt>
  mov    $0x3f800000,%esi
  mov    $0x10f0,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f1,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f2,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f3,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f4,%edi
  call   <RamWrite32A@plt>
  mov    $0x3f800000,%esi
  mov    $0x10f5,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f6,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f7,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f8,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x10f9,%edi
  call   <RamWrite32A@plt>
  mov    $0x3f800000,%esi
  mov    $0x11f0,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f1,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f2,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f3,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f4,%edi
  call   <RamWrite32A@plt>
  mov    $0x3f800000,%esi
  mov    $0x11f5,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f6,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f7,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f8,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x11f9,%edi
  call   <RamWrite32A@plt>
  mov    $0x0,%esi
  mov    $0x194,%edi
  call   <RegWriteA@plt>
  mov    $0x0,%esi
  mov    $0x195,%edi
  call   <RegWriteA@plt>
  mov    $0x2,%esi
  mov    $0x1000,%edi
  call   <ClrGyr@plt>
  mov    $0x0,%esi
  mov    $0x144a,%edi
  call   <GenMesMobile@plt>
  mov    %rax,%rbp
  movzbl %ah,%esi
  mov    $0x2a0,%edi
  call   <RegWriteA@plt>
  movzbl %bpl,%esi
  mov    $0x2a1,%edi
  call   <RegWriteA@plt>
  mov    $0x0,%esi
  mov    $0x194,%edi
  call   <RegWriteA@plt>
  mov    $0x0,%esi
  mov    $0x195,%edi
  call   <RegWriteA@plt>
  mov    $0x2,%esi
  mov    $0x1000,%edi
  call   <ClrGyr@plt>
  mov    $0x0,%esi
  mov    $0x14ca,%edi
  call   <GenMesMobile@plt>
  mov    %rax,%rbx
  movzbl %ah,%esi
  mov    $0x2a2,%edi
  call   <RegWriteA@plt>
  movzbl %bl,%esi
  mov    $0x2a3,%edi
  call   <RegWriteA@plt>
  add    $0x28f,%bp
  cmp    $0x51f,%bp
  sbb    %eax,%eax
  and    $0xffffffc0,%eax
  add    $0x42,%eax
  add    $0x28f,%bx
  mov    %eax,%edx
  or     $0x82,%dl
  cmp    $0x51e,%bx
  cmova  %edx,%eax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

assistant: ```c
int TneGvcMobile(void) {
  int SiRsltSts;
  unsigned short UsGxoVal, UsGyoVal;
  RegWriteA(0x02A0, 0x00);
  RegWriteA(0x02A1, 0x00);
  RegWriteA(0x02A2, 0x00);
  RegWriteA(0x02A3, 0x00);
  RamWrite32A(0x10F0, 0x3F800000);
  RamWrite32A(0x10F1, 0x00000000);
  RamWrite32A(0x10F2, 0x00000000);
  RamWrite32A(0x10F3, 0x00000000);
  RamWrite32A(0x10F4, 0x00000000);
  RamWrite32A(0x10F5, 0x3F800000);
  RamWrite32A(0x10F6, 0x00000000);
  RamWrite32A(0x10F7, 0x00000000);
  RamWrite32A(0x10F8, 0x00000000);
  RamWrite32A(0x10F9, 0x00000000);
  RamWrite32A(0x11F0, 0x3F800000);
  RamWrite32A(0x11F1, 0x00000000);
  RamWrite32A(0x11F2, 0x00000000);
  RamWrite32A(0x11F3, 0x00000000);
  RamWrite32A(0x11F4, 0x00000000);
  RamWrite32A(0x11F5, 0x3F800000);
  RamWrite32A(0x11F6, 0x00000000);
  RamWrite32A(0x11F7, 0x00000000);
  RamWrite32A(0x11F8, 0x00000000);
  RamWrite32A(0x11F9, 0x00000000);
  RegWriteA(0x0194, 0x00);
  RegWriteA(0x0195, 0x00);
  ClrGyr(0x1000, 0x02);
  UsGxoVal = (unsigned short)GenMesMobile(0x144A, 0);
  RegWriteA(0x02A0, (unsigned char)(UsGxoVal >> 8));
  RegWriteA(0x02A1, (unsigned char)(UsGxoVal));
  RegWriteA(0x0194, 0x00);
  RegWriteA(0x0195, 0x00);
  ClrGyr(0x1000, 0x02);
  UsGyoVal = (unsigned short)GenMesMobile(0x14CA, 0);
  RegWriteA(0x02A2, (unsigned char)(UsGyoVal >> 8));
  RegWriteA(0x02A3, (unsigned char)(UsGyoVal));
  SiRsltSts = 0x02;
  if (((signed short)UsGxoVal < (signed short)0xFD71) || ((signed short)UsGxoVal > (signed short)0x028F)) {
    SiRsltSts |= 0x42;
  }
  if (((signed short)UsGyoVal < (signed short)0xFD71) || ((signed short)UsGyoVal > (signed short)0x028F)) {
    SiRsltSts |= 0x82;
  }
  return (SiRsltSts);
}
```