#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*/ libipt_CLUSTERIP_init();
int /*<<< orphan*/ libipt_DNAT_init();
int /*<<< orphan*/ libipt_ECN_init();
int /*<<< orphan*/ libipt_LOG_init();
int /*<<< orphan*/ libipt_MASQUERADE_init();
int /*<<< orphan*/ libipt_MIRROR_init();
int /*<<< orphan*/ libipt_NETMAP_init();
int /*<<< orphan*/ libipt_REDIRECT_init();
int /*<<< orphan*/ libipt_REJECT_init();
int /*<<< orphan*/ libipt_SAME_init();
int /*<<< orphan*/ libipt_SNAT_init();
int /*<<< orphan*/ libipt_TTL_init();
int /*<<< orphan*/ libipt_ULOG_init();
int /*<<< orphan*/ libipt_addrtype_init();
int /*<<< orphan*/ libipt_ah_init();
int /*<<< orphan*/ libipt_ecn_init();
int /*<<< orphan*/ libipt_icmp_init();
int /*<<< orphan*/ libipt_realm_init();
int /*<<< orphan*/ libipt_ttl_init();
int /*<<< orphan*/ libipt_unclean_init();
void init_extensions4(void) {
  libipt_addrtype_init();
  libipt_ah_init();
  libipt_CLUSTERIP_init();
  libipt_DNAT_init();
  libipt_ecn_init();
  libipt_ECN_init();
  libipt_icmp_init();
  libipt_LOG_init();
  libipt_MASQUERADE_init();
  libipt_MIRROR_init();
  libipt_NETMAP_init();
  libipt_realm_init();
  libipt_REDIRECT_init();
  libipt_REJECT_init();
  libipt_SAME_init();
  libipt_SNAT_init();
  libipt_ttl_init();
  libipt_TTL_init();
  libipt_ULOG_init();
  libipt_unclean_init();
}


x86 assembly (clang, -O0):
<init_extensions4>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1110 <libipt_addrtype_init@plt>
mov    $0x0,%al
call   1140 <libipt_ah_init@plt>
mov    $0x0,%al
call   10c0 <libipt_CLUSTERIP_init@plt>
mov    $0x0,%al
call   1050 <libipt_DNAT_init@plt>
mov    $0x0,%al
call   1160 <libipt_ecn_init@plt>
mov    $0x0,%al
call   10e0 <libipt_ECN_init@plt>
mov    $0x0,%al
call   1080 <libipt_icmp_init@plt>
mov    $0x0,%al
call   1060 <libipt_LOG_init@plt>
mov    $0x0,%al
call   10b0 <libipt_MASQUERADE_init@plt>
mov    $0x0,%al
call   1130 <libipt_MIRROR_init@plt>
mov    $0x0,%al
call   1090 <libipt_NETMAP_init@plt>
mov    $0x0,%al
call   1030 <libipt_realm_init@plt>
mov    $0x0,%al
call   10d0 <libipt_REDIRECT_init@plt>
mov    $0x0,%al
call   1040 <libipt_REJECT_init@plt>
mov    $0x0,%al
call   10f0 <libipt_SAME_init@plt>
mov    $0x0,%al
call   1070 <libipt_SNAT_init@plt>
mov    $0x0,%al
call   1100 <libipt_ttl_init@plt>
mov    $0x0,%al
call   1150 <libipt_TTL_init@plt>
mov    $0x0,%al
call   10a0 <libipt_ULOG_init@plt>
mov    $0x0,%al
call   1120 <libipt_unclean_init@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<init_extensions4>:
push   %rax
xor    %eax,%eax
call   1110 <libipt_addrtype_init@plt>
xor    %eax,%eax
call   1140 <libipt_ah_init@plt>
xor    %eax,%eax
call   10c0 <libipt_CLUSTERIP_init@plt>
xor    %eax,%eax
call   1050 <libipt_DNAT_init@plt>
xor    %eax,%eax
call   1160 <libipt_ecn_init@plt>
xor    %eax,%eax
call   10e0 <libipt_ECN_init@plt>
xor    %eax,%eax
call   1080 <libipt_icmp_init@plt>
xor    %eax,%eax
call   1060 <libipt_LOG_init@plt>
xor    %eax,%eax
call   10b0 <libipt_MASQUERADE_init@plt>
xor    %eax,%eax
call   1130 <libipt_MIRROR_init@plt>
xor    %eax,%eax
call   1090 <libipt_NETMAP_init@plt>
xor    %eax,%eax
call   1030 <libipt_realm_init@plt>
xor    %eax,%eax
call   10d0 <libipt_REDIRECT_init@plt>
xor    %eax,%eax
call   1040 <libipt_REJECT_init@plt>
xor    %eax,%eax
call   10f0 <libipt_SAME_init@plt>
xor    %eax,%eax
call   1070 <libipt_SNAT_init@plt>
xor    %eax,%eax
call   1100 <libipt_ttl_init@plt>
xor    %eax,%eax
call   1150 <libipt_TTL_init@plt>
xor    %eax,%eax
call   10a0 <libipt_ULOG_init@plt>
xor    %eax,%eax
pop    %rcx
jmp    1120 <libipt_unclean_init@plt>

LLVM IR (-O0):
define void @init_extensions4() {
%1 = call i32 (...) @libipt_addrtype_init()
%2 = call i32 (...) @libipt_ah_init()
%3 = call i32 (...) @libipt_CLUSTERIP_init()
%4 = call i32 (...) @libipt_DNAT_init()
%5 = call i32 (...) @libipt_ecn_init()
%6 = call i32 (...) @libipt_ECN_init()
%7 = call i32 (...) @libipt_icmp_init()
%8 = call i32 (...) @libipt_LOG_init()
%9 = call i32 (...) @libipt_MASQUERADE_init()
%10 = call i32 (...) @libipt_MIRROR_init()
%11 = call i32 (...) @libipt_NETMAP_init()
%12 = call i32 (...) @libipt_realm_init()
%13 = call i32 (...) @libipt_REDIRECT_init()
%14 = call i32 (...) @libipt_REJECT_init()
%15 = call i32 (...) @libipt_SAME_init()
%16 = call i32 (...) @libipt_SNAT_init()
%17 = call i32 (...) @libipt_ttl_init()
%18 = call i32 (...) @libipt_TTL_init()
%19 = call i32 (...) @libipt_ULOG_init()
%20 = call i32 (...) @libipt_unclean_init()
ret void
}

LLVM IR (-O2):
define void @init_extensions4() {
%1 = tail call i32 (...) @libipt_addrtype_init()
%2 = tail call i32 (...) @libipt_ah_init()
%3 = tail call i32 (...) @libipt_CLUSTERIP_init()
%4 = tail call i32 (...) @libipt_DNAT_init()
%5 = tail call i32 (...) @libipt_ecn_init()
%6 = tail call i32 (...) @libipt_ECN_init()
%7 = tail call i32 (...) @libipt_icmp_init()
%8 = tail call i32 (...) @libipt_LOG_init()
%9 = tail call i32 (...) @libipt_MASQUERADE_init()
%10 = tail call i32 (...) @libipt_MIRROR_init()
%11 = tail call i32 (...) @libipt_NETMAP_init()
%12 = tail call i32 (...) @libipt_realm_init()
%13 = tail call i32 (...) @libipt_REDIRECT_init()
%14 = tail call i32 (...) @libipt_REJECT_init()
%15 = tail call i32 (...) @libipt_SAME_init()
%16 = tail call i32 (...) @libipt_SNAT_init()
%17 = tail call i32 (...) @libipt_ttl_init()
%18 = tail call i32 (...) @libipt_TTL_init()
%19 = tail call i32 (...) @libipt_ULOG_init()
%20 = tail call i32 (...) @libipt_unclean_init()
ret void
}