// File: /workspace/github_c_makefile_star2_O3/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 0x54c11
movl %edi, %ebp
leaq 0x6e6a(%rip), %rdx      # 0x5b6d7
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0xed18
leaq 0x17f32(%rip), %r14     # 0x6c7b0
movl %eax, (%r14)
leaq 0x6e52(%rip), %rdx      # 0x5b6da
movl %ebp, %edi
movq %rbx, %rsi
callq 0xeca2
movl $0xffffffff, (%r14)     # imm = 0xFFFFFFFF
movq 0x8(%rbx), %r14
leaq 0x6e3d(%rip), %rsi      # 0x5b6e1
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54bd5
leaq 0x4495(%rip), %rsi      # 0x58d50
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54be4
leaq 0x6e17(%rip), %rsi      # 0x5b6e9
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54bf3
leaq 0x6e06(%rip), %rsi      # 0x5b6ef
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54c02
leaq 0x6df3(%rip), %rsi      # 0x5b6f3
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54c1e
leaq 0x6de5(%rip), %rsi      # 0x5b6fc
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54c2d
leaq 0x6de3(%rip), %rsi      # 0x5b711
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54c57
movb (%r14), %r15b
cmpb $0x67, %r15b
jne 0x54959
cmpb $0x6f, 0x1(%r14)
jne 0x54959
cmpb $0x0, 0x2(%r14)
je 0x54d01
leaq 0x43c7(%rip), %rsi      # 0x58d27
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54cc0
leaq 0x6949(%rip), %rsi      # 0x5b2c0
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54ccf
leaq 0x6d89(%rip), %rsi      # 0x5b717
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54cde
leaq 0x6d8f(%rip), %rsi      # 0x5b734
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d10
leaq 0x6d83(%rip), %rsi      # 0x5b73f
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d1f
leaq 0x6d76(%rip), %rsi      # 0x5b749
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d2e
leaq 0x6d60(%rip), %rsi      # 0x5b74a
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d3d
leaq 0x6d53(%rip), %rsi      # 0x5b754
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d4c
leaq 0x62a8(%rip), %rsi      # 0x5acc0
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d5b
cmpb $0x33, %r15b
jne 0x54a40
cmpb $0x64, 0x1(%r14)
jne 0x54a40
cmpb $0x0, 0x2(%r14)
je 0x54d8f
leaq 0x680e(%rip), %rsi      # 0x5b255
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54bc7
leaq 0x6cfa(%rip), %rsi      # 0x5b758
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d6a
leaq 0x6ced(%rip), %rsi      # 0x5b762
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54d79
leaq 0x6cdc(%rip), %rsi      # 0x5b768
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54dc2
leaq 0x6ccb(%rip), %rsi      # 0x5b76e
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54dd8
leaq 0x6cc0(%rip), %rsi      # 0x5b77a
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54dee
leaq 0x4720(%rip), %rsi      # 0x591f1
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54e00
leaq 0x6c9d(%rip), %rsi      # 0x5b785
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54e16
leaq 0x6c8e(%rip), %rsi      # 0x5b78d
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54e2c
leaq 0x6c7b(%rip), %rsi      # 0x5b791
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54e3a
leaq 0x6c6a(%rip), %rsi      # 0x5b797
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54e62
leaq 0x6c5a(%rip), %rsi      # 0x5b79e
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54e78
leaq 0x6c4b(%rip), %rsi      # 0x5b7a6
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54ea2
leaq 0x6c3a(%rip), %rsi      # 0x5b7ac
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54ec5
leaq 0x6c2b(%rip), %rsi      # 0x5b7b4
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54eec
leaq 0x6c1e(%rip), %rsi      # 0x5b7be
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
je 0x54efb
leaq 0x6c0d(%rip), %rsi      # 0x5b7c4
movq %r14, %rdi
callq 0x3260
testl %eax, %eax
jne 0x54f5c
movq 0x10(%rbx), %rdi
callq 0x41c6
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x52794
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4f5af
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x442e3
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x43bf2
jmp 0x54f4d
movq %rbx, %rdi
callq 0xe087
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x5066f
jmp 0x54f4d
leaq 0x652b(%rip), %rdx      # 0x5b15f
movss 0x628(%rip), %xmm0      # 0x55264
movl %ebp, %edi
movq %rbx, %rsi
callq 0xedb7
movss %xmm0, 0xc(%rsp)
cmpl $0x5, %ebp
jb 0x54c66
movq 0x20(%rbx), %r14
jmp 0x54c69
movl %ebp, %edi
movq %rbx, %rsi
callq 0x451ca
jmp 0x54f4d
xorl %r14d, %r14d
leaq 0x66a5(%rip), %rdx      # 0x5b315
movl %ebp, %edi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0xee68
movq %rax, %r15
leaq 0x6694(%rip), %rdx      # 0x5b31a
movl %ebp, %edi
movq %rbx, %rsi
callq 0xeca2
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x6a64(%rip), %rdi      # 0x5b703
movss 0x5bd(%rip), %xmm1      # 0x55264
movq %r14, %rcx
movss 0xc(%rsp), %xmm0
movq %r15, %r8
movl %eax, %r9d
callq 0x503f0
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x49c19
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4eb6b
jmp 0x54f4d
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
movq 0x20(%rbx), %rcx
leaq 0x6a2f(%rip), %rdi      # 0x5b720
movl $0x5, %r8d
callq 0x4d48d
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x48f8e
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4e0ea
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4b222
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x5262f
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4a907
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x44391
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4459f
jmp 0x54f4d
movl %ebp, %edi
movq %rbx, %rsi
callq 0x51301
jmp 0x54f4d
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x53392
jmp 0x54f4d
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
xorl %ecx, %ecx
cmpl $0x6, %ebp
jb 0x54daf
movq 0x28(%rbx), %rdi
callq 0x30f0
cvttsd2si %xmm0, %ecx
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x195b2
jmp 0x54f4d
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x533ff
jmp 0x54f4d
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x543a5
jmp 0x54f4d
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x541cb
jmp 0x54f4d
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x53722
jmp 0x54f4d
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x53315
jmp 0x54f4d
movq 0x10(%rbx), %rdi
callq 0x52f2f
jmp 0x54f4d
movq 0x10(%rbx), %r14
xorl %esi, %esi
cmpl $0x4, %ebp
jb 0x54e55
movq 0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x54e55
callq 0x3400
movl %eax, %esi
movq %r14, %rdi
callq 0x52dff
jmp 0x54f4d
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x52f7e
jmp 0x54f4d
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 0x531ac
jmp 0x54f4d
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %rdi
callq 0x3400
movq %r14, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x5324c
jmp 0x54f4d
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 0x53218
jmp 0x54f4d
movq 0x10(%rbx), %rdi
cmpl $0x4, %ebp
jb 0x54f3c
movq 0x18(%rbx), %rsi
jmp 0x54f3e
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 0x545c4
jmp 0x54f4d
xorl %esi, %esi
xorl %edx, %edx
callq 0x316bc
movq %rax, %rdi
callq 0x325eb
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x17095(%rip), %rax     # 0x6bff8
movq (%rax), %rdi
leaq 0x685e(%rip), %rsi      # 0x5b7cb
movq %r14, %rdx
xorl %eax, %eax
callq 0x3270
jmp 0x54f4d