// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/phpspy.c
// Function: usage
void usage(FILE *fp, int exit_code) {
    fprintf(fp, "Usage:\n");
    fprintf(fp, "  phpspy [options] -p <pid>\n");
    fprintf(fp, "  phpspy [options] -P <pgrep-args>\n");
    fprintf(fp, "  phpspy [options] [--] <cmd>\n");
    fprintf(fp, "\n");
    fprintf(fp, "Options:\n");
    fprintf(fp, "  -h, --help                         Show this help\n");
    fprintf(fp, "  -p, --pid=<pid>                    Trace PHP process at `pid`\n");
    fprintf(fp, "  -P, --pgrep=<args>                 Concurrently trace processes that\n");
    fprintf(fp, "                                       match pgrep `args` (see also `-T`)\n");
    fprintf(fp, "  -T, --threads=<num>                Set number of threads to use with `-P`\n");
    fprintf(fp, "                                       (default: %d)\n", opt_num_workers);
    fprintf(fp, "  -s, --sleep-ns=<ns>                Sleep `ns` nanoseconds between traces\n");
    fprintf(fp, "                                       (see also `-H`) (default: %ld)\n", opt_sleep_ns);
    fprintf(fp, "  -H, --rate-hz=<hz>                 Trace `hz` times per second\n");
    fprintf(fp, "                                       (see also `-s`) (default: %lu)\n", 1000000000UL/opt_sleep_ns);
    fprintf(fp, "  -V, --php-version=<ver>            Set PHP version\n");
    fprintf(fp, "                                       (default: %s;\n", opt_phpv);
    fprintf(fp, "                                       supported: 70 71 72 73 74 80 81 82 83)\n");
    fprintf(fp, "  -l, --limit=<num>                  Limit total number of traces to capture\n");
    fprintf(fp, "                                       (approximate limit in pgrep mode)\n");
    fprintf(fp, "                                       (default: %lu; 0=unlimited)\n", opt_trace_limit);
    fprintf(fp, "  -i, --time-limit-ms=<ms>           Stop tracing after `ms` milliseconds\n");
    fprintf(fp, "                                       (second granularity in pgrep mode)\n");
    fprintf(fp, "                                       (default: %lu; 0=unlimited)\n", opt_time_limit_ms);
    fprintf(fp, "  -n, --max-depth=<max>              Set max stack trace depth\n");
    fprintf(fp, "                                       (default: %d; -1=unlimited)\n", opt_max_stack_depth);
    fprintf(fp, "  -r, --request-info=<opts>          Set request info parts to capture\n");
    fprintf(fp, "                                       (q=query c=cookie u=uri p=path\n");
    fprintf(fp, "                                       capital=negation)\n");
    fprintf(fp, "                                       (default: QCUP; none)\n");
    fprintf(fp, "  -m, --memory-usage                 Capture peak and current memory usage\n");
    fprintf(fp, "                                       with each trace (requires target PHP\n");
    fprintf(fp, "                                       process to have debug symbols)\n");
    fprintf(fp, "  -o, --output=<path>                Write phpspy output to `path`\n");
    fprintf(fp, "                                       (default: %s; -=stdout)\n", opt_path_output);
    fprintf(fp, "  -O, --child-stdout=<path>          Write child stdout to `path`\n");
    fprintf(fp, "                                       (default: %s)\n", opt_path_child_out);
    fprintf(fp, "  -E, --child-stderr=<path>          Write child stderr to `path`\n");
    fprintf(fp, "                                       (default: %s)\n", opt_path_child_err);
    fprintf(fp, "  -x, --addr-executor-globals=<hex>  Set address of executor_globals in hex\n");
    fprintf(fp, "                                       (default: %lu; 0=find dynamically)\n", opt_sapi_globals_addr);
    fprintf(fp, "  -a, --addr-sapi-globals=<hex>      Set address of sapi_globals in hex\n");
    fprintf(fp, "                                       (default: %lu; 0=find dynamically)\n", opt_executor_globals_addr);
    fprintf(fp, "  -1, --single-line                  Output in single-line mode\n");
    fprintf(fp, "  -b, --buffer-size=<size>           Set output buffer size to `size`.\n");
    fprintf(fp, "                                       Note: In `-P` mode, setting this\n");
    fprintf(fp, "                                       above PIPE_BUF (4096) may lead to\n");
    fprintf(fp, "                                       interlaced writes across threads\n");
    fprintf(fp, "                                       unless `-J m` is specified.\n");
    fprintf(fp, "                                       (default: %d)\n", opt_fout_buffer_size);
    fprintf(fp, "  -f, --filter=<regex>               Filter output by POSIX regex\n");
    fprintf(fp, "                                       (default: none)\n");
    fprintf(fp, "  -F, --filter-negate=<regex>        Same as `-f` except negated\n");
    fprintf(fp, "  -d, --verbose-fields=<opts>        Set verbose output fields\n");
    fprintf(fp, "                                       (p=pid t=timestamp\n");
    fprintf(fp, "                                       capital=negation)\n");
    fprintf(fp, "                                       (default: PT; none)\n");
    fprintf(fp, "  -c, --continue-on-error            Attempt to continue tracing after\n");
    fprintf(fp, "                                       encountering an error\n");
    fprintf(fp, "  -w, --libname-awk-patt=<patt>      Awk pattern to match name of PHP lib\n");
    fprintf(fp, "                                       (default: %s)\n", opt_libname_awk_patt);
    fprintf(fp, "  -#, --comment=<any>                Ignored; intended for self-documenting\n");
    fprintf(fp, "                                       commands\n");
    fprintf(fp, "  -@, --nothing                      Ignored\n");
    fprintf(fp, "  -v, --version                      Print phpspy version and exit\n");
    fprintf(fp, "\n");
    fprintf(fp, "Experimental options:\n");
    fprintf(fp, "  -j, --event-handler=<handler>      Set event handler (fout, callgrind)\n");
    fprintf(fp, "                                       (default: fout)\n");
    fprintf(fp, "  -J, --event-handler-opts=<opts>    Set event handler options\n");
    fprintf(fp, "                                       (fout: m=use mutex to prevent\n");
    fprintf(fp, "                                       interlaced writes on stdout in `-P`\n");
    fprintf(fp, "                                       mode)\n");
    fprintf(fp, "  -S, --pause-process                Pause process while reading stacktrace\n");
    fprintf(fp, "                                       (unsafe for production!)\n");
    fprintf(fp, "  -e, --peek-var=<varspec>           Peek at the contents of the var located\n");
    fprintf(fp, "                                       at `varspec`, which has the format:\n");
    fprintf(fp, "                                       <varname>@<path>:<lineno>\n");
    fprintf(fp, "                                       <varname>@<path>:<start>-<end>\n");
    fprintf(fp, "                                       e.g., xyz@/path/to.php:10-20\n");
    fprintf(fp, "  -g, --peek-global=<glospec>        Peek at the contents of a global var\n");
    fprintf(fp, "                                       located at `glospec`, which has\n");
    fprintf(fp, "                                       the format: <global>.<key>\n");
    fprintf(fp, "                                       where <global> is one of:\n");
    fprintf(fp, "                                       post|get|cookie|server|files|globals\n");
    fprintf(fp, "                                       e.g., server.REQUEST_TIME\n");
    fprintf(fp, "  -t, --top                          Show dynamic top-like output\n");
    cleanup();
    exit(exit_code);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x28dcb(%rip), %rsi     # 0x32b55
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28dc1(%rip), %rsi     # 0x32b5d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28dcc(%rip), %rsi     # 0x32b7a
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28dde(%rip), %rsi     # 0x32b9e
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2acd9(%rip), %rsi     # 0x34aab
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28dd9(%rip), %rsi     # 0x32bbd
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28dd1(%rip), %rsi     # 0x32bc7
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28df4(%rip), %rsi     # 0x32bfc
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28e23(%rip), %rsi     # 0x32c3d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28e59(%rip), %rsi     # 0x32c85
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28e92(%rip), %rsi     # 0x32cd0
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movl 0x304d5(%rip), %edx     # 0x3a324
leaq 0x28ec7(%rip), %rsi     # 0x32d1d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28eeb(%rip), %rsi     # 0x32d53
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x304ae(%rip), %rdx     # 0x3a328
leaq 0x28f1e(%rip), %rsi     # 0x32d9f
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28f53(%rip), %rsi     # 0x32de6
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movl $0x3b9aca00, %eax       # imm = 0x3B9ACA00
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x3047a(%rip)           # 0x3a328
movq %rax, %rdx
leaq 0x28f70(%rip), %rsi     # 0x32e28
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28fa5(%rip), %rsi     # 0x32e6f
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x30474(%rip), %rdx     # 0x3a350
leaq 0x28fc2(%rip), %rsi     # 0x32ea5
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28fe6(%rip), %rsi     # 0x32edb
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29023(%rip), %rsi     # 0x32f2a
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2905f(%rip), %rsi     # 0x32f78
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x325dd(%rip), %rdx     # 0x3c508
leaq 0x29090(%rip), %rsi     # 0x32fc2
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x290c2(%rip), %rsi     # 0x33006
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x290fb(%rip), %rsi     # 0x33051
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x325a8(%rip), %rdx     # 0x3c510
leaq 0x29053(%rip), %rsi     # 0x32fc2
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2911b(%rip), %rsi     # 0x3309c
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movl 0x3039e(%rip), %edx     # 0x3a330
leaq 0x29143(%rip), %rsi     # 0x330dc
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29175(%rip), %rsi     # 0x33120
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x291ab(%rip), %rsi     # 0x33168
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x291e0(%rip), %rsi     # 0x331af
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29208(%rip), %rsi     # 0x331e9
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29234(%rip), %rsi     # 0x33227
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2926e(%rip), %rsi     # 0x33273
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x292a9(%rip), %rsi     # 0x332c0
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x292de(%rip), %rsi     # 0x33307
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x302fd(%rip), %rdx     # 0x3a338
leaq 0x29309(%rip), %rsi     # 0x3334b
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29337(%rip), %rsi     # 0x3338b
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x302da(%rip), %rdx     # 0x3a340
leaq 0x29361(%rip), %rsi     # 0x333ce
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29385(%rip), %rsi     # 0x33404
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x302b7(%rip), %rdx     # 0x3a348
leaq 0x29336(%rip), %rsi     # 0x333ce
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2939d(%rip), %rsi     # 0x33447
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x3242c(%rip), %rdx     # 0x3c4e8
leaq 0x293d1(%rip), %rsi     # 0x33494
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2940a(%rip), %rsi     # 0x334df
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x323f9(%rip), %rdx     # 0x3c4e0
leaq 0x293a6(%rip), %rsi     # 0x33494
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29428(%rip), %rsi     # 0x33528
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29457(%rip), %rsi     # 0x33569
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2948d(%rip), %rsi     # 0x335b1
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x294c4(%rip), %rsi     # 0x335fa
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x294fc(%rip), %rsi     # 0x33644
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29533(%rip), %rsi     # 0x3368d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movl 0x301f5(%rip), %edx     # 0x3a360
leaq 0x28bab(%rip), %rsi     # 0x32d1d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2954d(%rip), %rsi     # 0x336d1
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2957e(%rip), %rsi     # 0x33714
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x295a4(%rip), %rsi     # 0x3374c
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x295d4(%rip), %rsi     # 0x3378e
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29602(%rip), %rsi     # 0x337ce
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x28fd1(%rip), %rsi     # 0x331af
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29619(%rip), %rsi     # 0x33809
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29643(%rip), %rsi     # 0x33845
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29679(%rip), %rsi     # 0x3388d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x296a5(%rip), %rsi     # 0x338cb
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
movq 0x30130(%rip), %rdx     # 0x3a368
leaq 0x2918f(%rip), %rsi     # 0x333ce
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x296c5(%rip), %rsi     # 0x33916
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29700(%rip), %rsi     # 0x33963
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2971f(%rip), %rsi     # 0x33994
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2973b(%rip), %rsi     # 0x339c2
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2a812(%rip), %rsi     # 0x34aab
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2975b(%rip), %rsi     # 0x33a06
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29760(%rip), %rsi     # 0x33a1d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29798(%rip), %rsi     # 0x33a67
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x297be(%rip), %rsi     # 0x33a9f
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x297ec(%rip), %rsi     # 0x33adf
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29820(%rip), %rsi     # 0x33b25
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2985a(%rip), %rsi     # 0x33b71
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29876(%rip), %rsi     # 0x33b9f
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x298b1(%rip), %rsi     # 0x33bec
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x298e0(%rip), %rsi     # 0x33c2d
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x2991c(%rip), %rsi     # 0x33c7b
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29956(%rip), %rsi     # 0x33cc7
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29986(%rip), %rsi     # 0x33d09
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x299bb(%rip), %rsi     # 0x33d50
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x299ee(%rip), %rsi     # 0x33d95
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29a27(%rip), %rsi     # 0x33de0
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29a5d(%rip), %rsi     # 0x33e28
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29a8e(%rip), %rsi     # 0x33e6b
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29abe(%rip), %rsi     # 0x33ead
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29af9(%rip), %rsi     # 0x33efa
movb $0x0, %al
callq 0x6320
movq -0x8(%rbp), %rdi
leaq 0x29b29(%rip), %rsi     # 0x33f3c
movb $0x0, %al
callq 0x6320
callq 0x11ec0
movl -0xc(%rbp), %edi
callq 0x6580
nopw (%rax,%rax)