// File: /workspace/github_c_makefile_star2_O2/SimpleDoger[P]Darknet_CPU_Only/darknet.c
// Function: main
int main(int argc, char **argv)
{
    //test_resize("data/bad.jpg");
    //test_box();
    //test_convolutional_layer();
    if(argc < 2){
        fprintf(stderr, "usage: %s <function>\n", argv[0]);
        return 0;
    }
    gpu_index = find_int_arg(argc, argv, "-i", 0);
    if(find_arg(argc, argv, "-nogpu")) {
        gpu_index = -1;
    }

    gpu_index = -1;

    if (0 == strcmp(argv[1], "average")){
        average(argc, argv);
    } else if (0 == strcmp(argv[1], "yolo")){
        run_yolo(argc, argv);
    } else if (0 == strcmp(argv[1], "super")){
        run_super(argc, argv);
    } else if (0 == strcmp(argv[1], "lsd")){
        run_lsd(argc, argv);
    } else if (0 == strcmp(argv[1], "detector")){
        run_detector(argc, argv);
    } else if (0 == strcmp(argv[1], "detect")){
        float thresh = find_float_arg(argc, argv, "-thresh", .5);
        char *filename = (argc > 4) ? argv[4]: 0;
        char *outfile = find_char_arg(argc, argv, "-out", 0);
        int fullscreen = find_arg(argc, argv, "-fullscreen");
        test_detector("cfg/coco.data", argv[2], argv[3], filename, thresh, .5, outfile, fullscreen);
    } else if (0 == strcmp(argv[1], "cifar")){
        run_cifar(argc, argv);
    } else if (0 == strcmp(argv[1], "go")){
        run_go(argc, argv);
    } else if (0 == strcmp(argv[1], "rnn")){
        run_char_rnn(argc, argv);
    } else if (0 == strcmp(argv[1], "coco")){
        run_coco(argc, argv);
    } else if (0 == strcmp(argv[1], "classify")){
        predict_classifier("cfg/imagenet1k.data", argv[2], argv[3], argv[4], 5);
    } else if (0 == strcmp(argv[1], "classifier")){
        run_classifier(argc, argv);
    } else if (0 == strcmp(argv[1], "regressor")){
        run_regressor(argc, argv);
    } else if (0 == strcmp(argv[1], "isegmenter")){
        run_isegmenter(argc, argv);
    } else if (0 == strcmp(argv[1], "segmenter")){
        run_segmenter(argc, argv);
    } else if (0 == strcmp(argv[1], "art")){
        run_art(argc, argv);
    } else if (0 == strcmp(argv[1], "tag")){
        run_tag(argc, argv);
    } else if (0 == strcmp(argv[1], "3d")){
        composite_3d(argv[2], argv[3], argv[4], (argc > 5) ? atof(argv[5]) : 0);
    } else if (0 == strcmp(argv[1], "test")){
        test_resize(argv[2]);
    } else if (0 == strcmp(argv[1], "nightmare")){
        run_nightmare(argc, argv);
    } else if (0 == strcmp(argv[1], "rgbgr")){
        rgbgr_net(argv[2], argv[3], argv[4]);
    } else if (0 == strcmp(argv[1], "reset")){
        reset_normalize_net(argv[2], argv[3], argv[4]);
    } else if (0 == strcmp(argv[1], "denormalize")){
        denormalize_net(argv[2], argv[3], argv[4]);
    } else if (0 == strcmp(argv[1], "statistics")){
        statistics_net(argv[2], argv[3]);
    } else if (0 == strcmp(argv[1], "normalize")){
        normalize_net(argv[2], argv[3], argv[4]);
    } else if (0 == strcmp(argv[1], "rescale")){
        rescale_net(argv[2], argv[3], argv[4]);
    } else if (0 == strcmp(argv[1], "ops")){
        operations(argv[2]);
    } else if (0 == strcmp(argv[1], "speed")){
        speed(argv[2], (argc > 3 && argv[3]) ? atoi(argv[3]) : 0);
    } else if (0 == strcmp(argv[1], "oneoff")){
        oneoff(argv[2], argv[3], argv[4]);
    } else if (0 == strcmp(argv[1], "oneoff2")){
        oneoff2(argv[2], argv[3], argv[4], atoi(argv[5]));
    } else if (0 == strcmp(argv[1], "print")){
        print_weights(argv[2], argv[3], atoi(argv[4]));
    } else if (0 == strcmp(argv[1], "partial")){
        partial(argv[2], argv[3], argv[4], atoi(argv[5]));
    } else if (0 == strcmp(argv[1], "average")){
        average(argc, argv);
    } else if (0 == strcmp(argv[1], "visualize")){
        visualize(argv[2], (argc > 3) ? argv[3] : 0);
    } else if (0 == strcmp(argv[1], "mkimg")){
        mkimg(argv[2], argv[3], atoi(argv[4]), atoi(argv[5]), atoi(argv[6]), argv[7]);
    } else if (0 == strcmp(argv[1], "imtest")){
        test_resize(argv[2]);
    } else {
        fprintf(stderr, "Not an option: %s\n", argv[1]);
    }
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
cmpl $0x1, %edi
jle 0x4b664
movl %edi, %ebp
leaq 0x72d4(%rip), %rdx      # 0x52597
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x4041
leaq 0x194ec(%rip), %r14     # 0x647c0
movl %eax, (%r14)
leaq 0x72bc(%rip), %rdx      # 0x5259a
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3fdd
orl $-0x1, (%r14)
movq 0x8(%rbx), %r14
leaq 0x72aa(%rip), %rsi      # 0x525a1
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b628
leaq 0x4992(%rip), %rsi      # 0x4fca0
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b637
leaq 0x7284(%rip), %rsi      # 0x525a9
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b646
leaq 0x7273(%rip), %rsi      # 0x525af
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b655
leaq 0x7260(%rip), %rsi      # 0x525b3
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b684
leaq 0x7252(%rip), %rsi      # 0x525bc
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b693
leaq 0x7250(%rip), %rsi      # 0x525d1
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b6bd
movb (%r14), %r15b
cmpb $0x67, %r15b
jne 0x4b3ac
cmpb $0x6f, 0x1(%r14)
jne 0x4b3ac
cmpb $0x0, 0x2(%r14)
je 0x4b765
leaq 0x48c4(%rip), %rsi      # 0x4fc77
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b726
leaq 0x6db6(%rip), %rsi      # 0x52180
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b735
leaq 0x71f6(%rip), %rsi      # 0x525d7
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b744
leaq 0x71fc(%rip), %rsi      # 0x525f4
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b774
leaq 0x71f0(%rip), %rsi      # 0x525ff
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b783
leaq 0x71e3(%rip), %rsi      # 0x52609
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b792
leaq 0x71cd(%rip), %rsi      # 0x5260a
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b7a1
leaq 0x71c0(%rip), %rsi      # 0x52614
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b7b0
leaq 0x6715(%rip), %rsi      # 0x51b80
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b7bf
cmpb $0x33, %r15b
jne 0x4b493
cmpb $0x64, 0x1(%r14)
jne 0x4b493
cmpb $0x0, 0x2(%r14)
je 0x4b7f3
leaq 0x6c7b(%rip), %rsi      # 0x52115
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b61a
leaq 0x7167(%rip), %rsi      # 0x52618
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b7ce
leaq 0x715a(%rip), %rsi      # 0x52622
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b7dd
leaq 0x7149(%rip), %rsi      # 0x52628
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b826
leaq 0x7138(%rip), %rsi      # 0x5262e
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b83c
leaq 0x712d(%rip), %rsi      # 0x5263a
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b852
leaq 0x4c1d(%rip), %rsi      # 0x50141
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b864
leaq 0x710a(%rip), %rsi      # 0x52645
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b87a
leaq 0x70fb(%rip), %rsi      # 0x5264d
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b890
leaq 0x70e8(%rip), %rsi      # 0x52651
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b89e
leaq 0x70d7(%rip), %rsi      # 0x52657
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b8c6
leaq 0x70c7(%rip), %rsi      # 0x5265e
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b8dc
leaq 0x70b8(%rip), %rsi      # 0x52666
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b906
leaq 0x70a7(%rip), %rsi      # 0x5266c
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b926
leaq 0x7098(%rip), %rsi      # 0x52674
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b94d
leaq 0x708b(%rip), %rsi      # 0x5267e
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x4b95c
leaq 0x707a(%rip), %rsi      # 0x52684
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
jne 0x4b9b3
movq 0x10(%rbx), %rdi
callq 0xfe08
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x49bb4
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x455f5
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x37ec6
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x377f7
jmp 0x4b9a4
movq 0x1898d(%rip), %rax     # 0x63ff8
movq (%rax), %rdi
movq (%rbx), %rdx
leaq 0x6f09(%rip), %rsi      # 0x52581
xorl %eax, %eax
callq 0x3270
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x47b63
jmp 0x4b9a4
leaq 0x6985(%rip), %rdx      # 0x5201f
movss 0xb92(%rip), %xmm0      # 0x4c234
movl %ebp, %edi
movq %rbx, %rsi
callq 0x40c0
movss %xmm0, 0xc(%rsp)
cmpl $0x5, %ebp
jb 0x4b6cc
movq 0x20(%rbx), %r14
jmp 0x4b6cf
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3968b
jmp 0x4b9a4
xorl %r14d, %r14d
leaq 0x6aff(%rip), %rdx      # 0x521d5
movl %ebp, %edi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x4151
movq %rax, %r15
leaq 0x6aee(%rip), %rdx      # 0x521da
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3fdd
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x6ebe(%rip), %rdi      # 0x525c3
movss 0xb27(%rip), %xmm1      # 0x4c234
movq %r14, %rcx
movss 0xc(%rsp), %xmm0
movq %r15, %r8
movl %eax, %r9d
callq 0x478eb
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3e8cd
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4421c
jmp 0x4b9a4
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
movq 0x20(%rbx), %rcx
leaq 0x6e89(%rip), %rdi      # 0x525e0
pushq $0x5
popq %r8
callq 0x4200d
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3d026
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x42c79
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3fe8d
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x49a3c
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3f589
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x37f91
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x386fb
jmp 0x4b9a4
movl %ebp, %edi
movq %rbx, %rsi
callq 0x48733
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x4a743
jmp 0x4b9a4
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
xorl %ecx, %ecx
cmpl $0x6, %ebp
jb 0x4b813
movq 0x28(%rbx), %rdi
callq 0x30f0
cvttsd2si %xmm0, %ecx
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0xe499
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x4a7b4
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x4ae3d
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x4ac6b
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x4a9e4
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x4a6c2
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
callq 0x4a312
jmp 0x4b9a4
movq 0x10(%rbx), %r14
xorl %esi, %esi
cmpl $0x4, %ebp
jb 0x4b8b9
movq 0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x4b8b9
callq 0x3400
movl %eax, %esi
movq %r14, %rdi
callq 0x4a1e6
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x4a35e
jmp 0x4b9a4
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
movq 0x28(%rbx), %rdi
callq 0x3400
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movl %eax, %ecx
callq 0x4a562
jmp 0x4b9a4
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %rdi
callq 0x3400
movq %r14, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x4a5f7
jmp 0x4b9a4
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
movq 0x28(%rbx), %rdi
callq 0x3400
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movl %eax, %ecx
callq 0x4a5c8
jmp 0x4b9a4
movq 0x10(%rbx), %rdi
cmpl $0x4, %ebp
jb 0x4b99d
movq 0x18(%rbx), %rsi
jmp 0x4b99f
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %rdi
callq 0x3400
movl %eax, %ebp
movq 0x28(%rbx), %rdi
callq 0x3400
movl %eax, %r12d
movq 0x30(%rbx), %rdi
callq 0x3400
movq 0x38(%rbx), %r9
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
movl %r12d, %ecx
movl %eax, %r8d
callq 0x4b041
jmp 0x4b9a4
xorl %esi, %esi
callq 0x4b291
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x1863e(%rip), %rax     # 0x63ff8
movq (%rax), %rdi
leaq 0x6cc7(%rip), %rsi      # 0x5268b
movq %r14, %rdx
jmp 0x4b678