#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ ADI8BitsClear(int, int, int);
void NOROM_AUXADCDisable(void) {
  ADI8BitsClear(0x400CB000, 0x0000000A, 0x00000001 | 0x00000040 | 0x00000008);
  ADI8BitsClear(0x400CB000, 0x00000008,
                0x00000001 | 0x00000002 | 0x00000080 | 0x00000078);
  ADI8BitsClear(0x400CB000, 0x00000009, 0x00000001);
  (*((volatile unsigned long
          *)(((unsigned long)(0x400C9000 + 0x00000010) & 0xF0000000) |
             0x02000000 |
             (((unsigned long)(0x400C9000 + 0x00000010) & 0x000FFFFF) << 5) |
             ((1) << 2)))) = 1;
  (*((volatile unsigned long
          *)(((unsigned long)(0x400C9000 + 0x00000010) & 0xF0000000) |
             0x02000000 |
             (((unsigned long)(0x400C9000 + 0x00000010) & 0x000FFFFF) << 5) |
             ((1) << 2)))) = 0;
  (*((volatile unsigned long *)(0x400C6000 + 0x00000050))) = 0;
  (*((volatile unsigned long *)(0x400C9000 + 0x00000010))) = 0;
}


x86 assembly (clang, -O0):
<NOROM_AUXADCDisable>:
push   %rbp
mov    %rsp,%rbp
mov    $0x400cb000,%edi
mov    $0xa,%esi
mov    $0x49,%edx
call   1030 <ADI8BitsClear@plt>
mov    $0x400cb000,%edi
mov    $0x8,%esi
mov    $0xfb,%edx
call   1030 <ADI8BitsClear@plt>
mov    $0x400cb000,%edi
mov    $0x9,%esi
mov    $0x1,%edx
call   1030 <ADI8BitsClear@plt>
mov    $0x43920204,%eax
movq   $0x1,(%rax)
mov    $0x43920204,%eax
movq   $0x0,(%rax)
mov    $0x400c6050,%eax
movq   $0x0,(%rax)
mov    $0x400c9010,%eax
movq   $0x0,(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<NOROM_AUXADCDisable>:
push   %rax
mov    $0x400cb000,%edi
mov    $0xa,%esi
mov    $0x49,%edx
call   1030 <ADI8BitsClear@plt>
mov    $0x400cb000,%edi
mov    $0x8,%esi
mov    $0xfb,%edx
call   1030 <ADI8BitsClear@plt>
mov    $0x400cb000,%edi
mov    $0x9,%esi
mov    $0x1,%edx
call   1030 <ADI8BitsClear@plt>
movq   $0x1,0x43920204
movq   $0x0,0x43920204
movq   $0x0,0x400c6050
movq   $0x0,0x400c9010
pop    %rax
ret

LLVM IR (-O0):
define void @NOROM_AUXADCDisable() {
%1 = call i32 @ADI8BitsClear(i32 1074573312, i32 10, i32 73)
%2 = call i32 @ADI8BitsClear(i32 1074573312, i32 8, i32 251)
%3 = call i32 @ADI8BitsClear(i32 1074573312, i32 9, i32 1)
store volatile i64 1, i64* inttoptr (i64 1133642244 to i64*)
store volatile i64 0, i64* inttoptr (i64 1133642244 to i64*)
store volatile i64 0, i64* inttoptr (i64 1074552912 to i64*)
store volatile i64 0, i64* inttoptr (i64 1074565136 to i64*)
ret void
}

LLVM IR (-O2):
define void @NOROM_AUXADCDisable() {
%1 = tail call i32 @ADI8BitsClear(i32 1074573312, i32 10, i32 73)
%2 = tail call i32 @ADI8BitsClear(i32 1074573312, i32 8, i32 251)
%3 = tail call i32 @ADI8BitsClear(i32 1074573312, i32 9, i32 1)
store volatile i64 1, i64* inttoptr (i64 1133642244 to i64*)
store volatile i64 0, i64* inttoptr (i64 1133642244 to i64*)
store volatile i64 0, i64* inttoptr (i64 1074552912 to i64*)
store volatile i64 0, i64* inttoptr (i64 1074565136 to i64*)
ret void
}