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

```asm
<test_UNSIGNED_LONGLONG_NOT_PROMOTES_TO_SIGNED_TYPE>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%edi
  call   <assert@plt>
  mov    $0x1,%eax
  add    $0x8,%rsp
  ret
```

assistant: ```c
int test_UNSIGNED_LONGLONG_NOT_PROMOTES_TO_SIGNED_TYPE() {
  assert(!((((unsigned long long)0) - (((unsigned long long)0) + 1)) < ((unsigned long long)0)));
  assert(!(((((unsigned long long)0) - ((unsigned long long)0)) - ((((unsigned long long)0) - ((unsigned long long)0)) + 1)) < (((unsigned long long)0) - ((unsigned long long)0))));
  assert(!(((((unsigned long long)-1) - ((unsigned long long)-1)) - ((((unsigned long long)-1) - ((unsigned long long)-1)) + 1)) < (((unsigned long long)-1) - ((unsigned long long)-1))));
  assert(!(((((unsigned long long)1) - ((unsigned long long)1)) - ((((unsigned long long)1) - ((unsigned long long)1)) + 1)) < (((unsigned long long)1) - ((unsigned long long)1))));
  assert(!(((((unsigned long long)2) - ((unsigned long long)2)) - ((((unsigned long long)2) - ((unsigned long long)2)) + 1)) < (((unsigned long long)2) - ((unsigned long long)2))));
  assert(!(((((unsigned long long)((((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long)(~((unsigned long)0)))) ? ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long)(~((unsigned long)0))))) - ((unsigned long long)((((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long)(~((unsigned long)0)))) ? ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long)(~((unsigned long)0)))))) - ((((unsigned long long)((((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long)(~((unsigned long)0)))) ? ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long)(~((unsigned long)0))))) - ((unsigned long long)((((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long)(~((unsigned long)0)))) ? ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long)(~((unsigned long)0)))))) + 1)) < (((unsigned long long)((((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long)(~((unsigned long)0)))) ? ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long)(~((unsigned long)0))))) - ((unsigned long long)((((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long)(~((unsigned long)0)))) ? ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long)(~((unsigned long)0))))))));
  assert(!(((((unsigned long long)((((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long)0)) ? ((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long)0))) - ((unsigned long long)((((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long)0)) ? ((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long)0)))) - ((((unsigned long long)((((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long)0)) ? ((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long)0))) - ((unsigned long long)((((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long)0)) ? ((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long)0)))) + 1)) < (((unsigned long long)((((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long)0)) ? ((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long)0))) - ((unsigned long long)((((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long)0)) ? ((unsigned long)((-((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) + ((unsigned long)(((unsigned long)(((unsigned long)1) << ((sizeof(unsigned long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long)0))))));
  assert(!(((((unsigned long long)((((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long long)(~((unsigned long long)0)))) ? ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long long)(~((unsigned long long)0))))) - ((unsigned long long)((((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long long)(~((unsigned long long)0)))) ? ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long long)(~((unsigned long long)0)))))) - ((((unsigned long long)((((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long long)(~((unsigned long long)0)))) ? ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long long)(~((unsigned long long)0))))) - ((unsigned long long)((((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long long)(~((unsigned long long)0)))) ? ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long long)(~((unsigned long long)0)))))) + 1)) < (((unsigned long long)((((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long long)(~((unsigned long long)0)))) ? ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long long)(~((unsigned long long)0))))) - ((unsigned long long)((((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) > ((unsigned long long)(~((unsigned long long)0)))) ? ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1)))) : ((unsigned long long)(~((unsigned long long)0))))))));
  assert(!(((((unsigned long long)((((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long long)0)) ? ((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long long)0))) - ((unsigned long long)((((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long long)0)) ? ((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long long)0)))) - ((((unsigned long long)((((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long long)0)) ? ((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long long)0))) - ((unsigned long long)((((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long long)0)) ? ((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long long)0)))) + 1)) < (((unsigned long long)((((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long long)0)) ? ((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long long)0))) - ((unsigned long long)((((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) < ((unsigned long long)0)) ? ((unsigned long long)((-((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) + ((unsigned long long)(((unsigned long long)(((unsigned long long)1) << ((sizeof(unsigned long long) * CHAR_BIT) - 2))) - 1))))) - 1)) : ((unsigned long long)0))))));
  return 1;
}
```