// File: /workspace/github_c_makefile_star2_O0/stanfordnlp[P]GloVe/src/vocab_count.c
// Function: main
int main(int argc, char **argv) {
    if (argc == 2 &&
        (!scmp(argv[1], "-h") || !scmp(argv[1], "-help") || !scmp(argv[1], "--help"))) {
        printf("Simple tool to extract unigram counts\n");
        printf("Author: Jeffrey Pennington (jpennin@stanford.edu)\n\n");
        printf("Usage options:\n");
        printf("\t-verbose <int>\n");
        printf("\t\tSet verbosity: 0, 1, or 2 (default)\n");
        printf("\t-max-vocab <int>\n");
        printf("\t\tUpper bound on vocabulary size, i.e. keep the <int> most frequent words. The minimum frequency words are randomly sampled so as to obtain an even distribution over the alphabet.\n");
        printf("\t-min-count <int>\n");
        printf("\t\tLower limit such that words which occur fewer than <int> times are discarded.\n");
        printf("\nExample usage:\n");
        printf("./vocab_count -verbose 2 -max-vocab 100000 -min-count 10 < corpus.txt > vocab.txt\n");
        return 0;
    }

    int i;
    if ((i = find_arg((char *)"-verbose", argc, argv)) > 0) verbose = atoi(argv[i + 1]);
    if ((i = find_arg((char *)"-max-vocab", argc, argv)) > 0) max_vocab = atoll(argv[i + 1]);
    if ((i = find_arg((char *)"-min-count", argc, argv)) > 0) min_count = atoll(argv[i + 1]);
    return get_counts();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x2, -0x8(%rbp)
jne 0x19c5
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a2(%rip), %rsi       # 0x2181
callq 0x1a80
cmpl $0x0, %eax
je 0x191f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x88d(%rip), %rsi       # 0x2185
callq 0x1a80
cmpl $0x0, %eax
je 0x191f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x873(%rip), %rsi       # 0x2184
callq 0x1a80
cmpl $0x0, %eax
jne 0x19c5
leaq 0x865(%rip), %rdi       # 0x218b
movb $0x0, %al
callq 0x10a0
leaq 0x87e(%rip), %rdi       # 0x21b2
movb $0x0, %al
callq 0x10a0
leaq 0x8a4(%rip), %rdi       # 0x21e6
movb $0x0, %al
callq 0x10a0
leaq 0x8a6(%rip), %rdi       # 0x21f6
movb $0x0, %al
callq 0x10a0
leaq 0x8a9(%rip), %rdi       # 0x2207
movb $0x0, %al
callq 0x10a0
leaq 0x8c2(%rip), %rdi       # 0x222e
movb $0x0, %al
callq 0x10a0
leaq 0x8c7(%rip), %rdi       # 0x2241
movb $0x0, %al
callq 0x10a0
leaq 0x96e(%rip), %rdi       # 0x22f6
movb $0x0, %al
callq 0x10a0
leaq 0x973(%rip), %rdi       # 0x2309
movb $0x0, %al
callq 0x10a0
leaq 0x9b6(%rip), %rdi       # 0x235a
movb $0x0, %al
callq 0x10a0
leaq 0x9b9(%rip), %rdi       # 0x236b
movb $0x0, %al
callq 0x10a0
movl $0x0, -0x4(%rbp)
jmp 0x1a74
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x9eb(%rip), %rdi       # 0x23be
callq 0x1d50
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jle 0x19fc
movq -0x10(%rbp), %rax
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x1130
movl %eax, 0x26bc(%rip)      # 0x40b8
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x9bd(%rip), %rdi       # 0x23c7
callq 0x1d50
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jle 0x1a34
movq -0x10(%rbp), %rax
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10c0
movq %rax, 0x269c(%rip)      # 0x40d0
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0x990(%rip), %rdi       # 0x23d2
callq 0x1d50
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jle 0x1a6c
movq -0x10(%rbp), %rax
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
callq 0x10c0
movq %rax, 0x2654(%rip)      # 0x40c0
callq 0x1470
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)