// File: /workspace/github_cpp_makefile_star2_O1/greenpau[P]mnpa/main.cpp
// Function: help(int)
void help(int code) {
    cout << endl;
    cout << APP_NAME << " - " << APP_DESCR << endl;
    cout << endl;
    cout << "usage: " << APP_NAME << " [-h] [-d] [--sender PATTERN] ";
    cout << "[--sender PATTERN] [--receiver PATTERN] [--threads THREADS]" << endl;
    cout << endl;
    cout << "examples:" << endl;
    cout << endl;
    cout << "  " << APP_NAME << " --threads 5 --sender ";
    cout << "eth1/1000/64-127/0/0/239.1.2.4/5001/TEST1 --verbose" << endl;
    cout << "  " << APP_NAME << " --threads 5 ";
    cout << "--sender eth1/5/64-128/60/0/224.0.0.1/5001/TEST2 ";
    cout << "--sender eth1/5/64-128/60/0/224.0.0.1/5001/TEST3" << endl;
    cout << "  " << APP_NAME << " --threads 1 ";
    cout << "--receiver 10.254.0.12/239.1.1.1/5001/600" << endl;
    cout << "  " << APP_NAME << " --help" << endl;
    cout << "  " << endl;
    cout << "arguments:" << endl;
    cout << endl;
    cout << "  -s, --sender          sourcing pattern" << endl;
    cout << endl;
    cout << "    A multicast sourcing traffic pattern consists of:" << endl;
    cout << endl;
    cout << "      1. interface name, default: eth0" << endl;
    cout << "      2. number of packets, default: 5" << endl;
    cout << "      3. packet size, e.g. 64, 64-127, 128-255, 300-312" << endl;
    cout << "      4. traffic duration in seconds, default: 2" << endl;
    cout << "      5. thread start offset in seconds, default: 0" << endl;
    cout << "      6. destination ip address, default: 224.0.0.1" << endl;
    cout << "      7. destination port, default: 5001" << endl;
    cout << "      8. traffic tag, default: MNPA" << endl;
    cout << endl;
    cout << "  -r, --receiver      subscription pattern" << endl;
    cout << endl;
    cout << "    A multicast subscription pattern consists of:" << endl;
    cout << endl;
    cout << "      1. interface ip address, e.g 127.0.0.1, or name, e.g. eth1" << endl;
    cout << "      2. multicast group ip address, e.g. 239.1.1.1" << endl;
    cout << "      3. destination port, e.g. 5001" << endl;
    cout << "      4. subscription duration in seconds, default: unlimited (0)" << endl;
    cout << endl;
    cout << "  --igmp-v2-report      send IGMPv2 membership report only" << endl;
    cout << "  --igmp-v3-report      send IGMPv3 membership report only" << endl;
    cout << endl;
    cout << "    The above IGMP v2 or v3 Membership Report switches are used" << endl;
    cout << "    with the --receiver argument. Also, when one of the switches" << endl;
    cout << "    is enabled, the application sends raw membership report packets," << endl;
    cout << "    without responding to membership queries." << endl;
    cout << endl;
    cout << "  -t, --threads         number of concurrent threads, default: 1" << endl;
    cout << "  -p, --priority        program scheduling priority, default: 0" << endl;
    cout << "  -d, --daemonize       run in background, default: disabled" << endl;
    cout << "  -v, --verbose         enable logging, default: disabled" << endl;
    cout << "  --random-payload      enable payload randomization, default: disabled" << endl;
    cout << "  --packet-storm        send packets w/out waiting for conditions, default: disabled" << endl;
    cout << endl;
    cout << "  --stop                stop service" << endl;
    cout << "  --status              status service" << endl;
    cout << endl;
    cout << "documentation: https://github.com/greenpau/mnpa" <<endl;
    cout << endl;
    exit(code);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movl %edi, %ebx
leaq 0x1154e3(%rip), %r14    # 0x12f980
movq %r14, %rdi
callq 0xa1970
leaq 0xca584(%rip), %r15     # 0xe4a30
movq %r14, %rdi
movq %r15, %rsi
callq 0xa2090
leaq 0xc9d59(%rip), %rsi     # 0xe4217
movq %rax, %rdi
callq 0xa2090
leaq 0xc9d4e(%rip), %rsi     # 0xe421b
movq %rax, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9d56(%rip), %rsi     # 0xe4242
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
movq %r15, %rsi
callq 0xa2090
leaq 0xc9d44(%rip), %rsi     # 0xe424a
movq %rax, %rdi
callq 0xa2090
leaq 0xc9d54(%rip), %rsi     # 0xe4269
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9d71(%rip), %rsi     # 0xe42a5
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xcae88(%rip), %r12     # 0xe53db
movq %r14, %rdi
movq %r12, %rsi
callq 0xa2090
movq %rax, %rdi
movq %r15, %rsi
callq 0xa2090
leaq 0xc9d3f(%rip), %rsi     # 0xe42af
movq %rax, %rdi
callq 0xa2090
leaq 0xc9d47(%rip), %rsi     # 0xe42c6
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
movq %r12, %rsi
callq 0xa2090
movq %rax, %rdi
movq %r15, %rsi
callq 0xa2090
leaq 0xc9d4e(%rip), %rsi     # 0xe42fa
movq %rax, %rdi
callq 0xa2090
leaq 0xc9d4d(%rip), %rsi     # 0xe4308
movq %r14, %rdi
callq 0xa2090
leaq 0xc9d70(%rip), %rsi     # 0xe433a
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
movq %r12, %rsi
callq 0xa2090
movq %rax, %rdi
movq %r15, %rsi
callq 0xa2090
leaq 0xc9d74(%rip), %rsi     # 0xe436b
movq %rax, %rdi
callq 0xa2090
leaq 0xc9d73(%rip), %rsi     # 0xe4379
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
movq %r12, %rsi
callq 0xa2090
movq %rax, %rdi
movq %r15, %rsi
callq 0xa2090
leaq 0xc9d70(%rip), %rsi     # 0xe43a3
movq %rax, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
movq %r12, %rsi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9d4e(%rip), %rsi     # 0xe43ab
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9d3a(%rip), %rsi     # 0xe43b6
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9d44(%rip), %rsi     # 0xe43df
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9d5b(%rip), %rsi     # 0xe4415
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9d6b(%rip), %rsi     # 0xe443c
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9d7b(%rip), %rsi     # 0xe4463
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9d9c(%rip), %rsi     # 0xe449b
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9db6(%rip), %rsi     # 0xe44cc
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9dd3(%rip), %rsi     # 0xe4500
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9df0(%rip), %rsi     # 0xe4534
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9e02(%rip), %rsi     # 0xe455d
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9e07(%rip), %rsi     # 0xe4581
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9e13(%rip), %rsi     # 0xe45ac
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9e26(%rip), %rsi     # 0xe45de
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9e50(%rip), %rsi     # 0xe461f
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9e6d(%rip), %rsi     # 0xe4653
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9e7b(%rip), %rsi     # 0xe4678
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9e9e(%rip), %rsi     # 0xe46ba
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9ec2(%rip), %rsi     # 0xe46f5
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9ede(%rip), %rsi     # 0xe4730
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9f07(%rip), %rsi     # 0xe4770
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9f31(%rip), %rsi     # 0xe47b1
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9f5f(%rip), %rsi     # 0xe47f6
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xc9f6e(%rip), %rsi     # 0xe4824
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9f98(%rip), %rsi     # 0xe4865
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9fc1(%rip), %rsi     # 0xe48a5
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xc9fe7(%rip), %rsi     # 0xe48e2
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xca00a(%rip), %rsi     # 0xe491c
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xca03b(%rip), %rsi     # 0xe4964
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xca071(%rip), %rsi     # 0xe49b9
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
leaq 0xca07f(%rip), %rsi     # 0xe49de
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
leaq 0xca087(%rip), %rsi     # 0xe4a05
movq %r14, %rdi
callq 0xa2090
movq %rax, %rdi
callq 0xa1970
movq %r14, %rdi
callq 0xa1970
movl %ebx, %edi
callq 0x161a0