// File: /workspace/github_c_makefile_star2_O1/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 0x5270a
movl %edi, %ebp
leaq 0x7217(%rip), %rdx      # 0x59577
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0xe4b3
leaq 0x1844f(%rip), %r14     # 0x6a7c0
movl %eax, (%r14)
leaq 0x71ff(%rip), %rdx      # 0x5957a
movl %ebp, %edi
movq %rbx, %rsi
callq 0xe439
testl %eax, %eax
je 0x52390
movl $0xffffffff, (%r14)     # imm = 0xFFFFFFFF
movl $0xffffffff, (%r14)     # imm = 0xFFFFFFFF
movq 0x8(%rbx), %r14
leaq 0x71df(%rip), %rsi      # 0x59581
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x526ce
leaq 0x4897(%rip), %rsi      # 0x56c50
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x526dd
leaq 0x71b9(%rip), %rsi      # 0x59589
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x526ec
leaq 0x71a8(%rip), %rsi      # 0x5958f
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x526fb
leaq 0x7195(%rip), %rsi      # 0x59593
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52717
leaq 0x7187(%rip), %rsi      # 0x5959c
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52726
leaq 0x7185(%rip), %rsi      # 0x595b1
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52750
leaq 0x7174(%rip), %rsi      # 0x595b7
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x527b9
leaq 0x47cd(%rip), %rsi      # 0x56c27
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x527c8
leaq 0x6cf7(%rip), %rsi      # 0x59168
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x527d7
leaq 0x7132(%rip), %rsi      # 0x595ba
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x527e6
leaq 0x7138(%rip), %rsi      # 0x595d7
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52809
leaq 0x712c(%rip), %rsi      # 0x595e2
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52818
leaq 0x711f(%rip), %rsi      # 0x595ec
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52827
leaq 0x7109(%rip), %rsi      # 0x595ed
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52836
leaq 0x70fc(%rip), %rsi      # 0x595f7
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52845
leaq 0x663d(%rip), %rsi      # 0x58b4f
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52854
leaq 0x70d2(%rip), %rsi      # 0x595fb
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52863
leaq 0x6bbd(%rip), %rsi      # 0x590fd
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x526c0
leaq 0x70a7(%rip), %rsi      # 0x595fe
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52896
leaq 0x709a(%rip), %rsi      # 0x59608
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x528a5
leaq 0x7089(%rip), %rsi      # 0x5960e
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x528bb
leaq 0x7078(%rip), %rsi      # 0x59614
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x528d1
leaq 0x706d(%rip), %rsi      # 0x59620
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x528e7
leaq 0x4b27(%rip), %rsi      # 0x570f1
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x528f9
leaq 0x704a(%rip), %rsi      # 0x5962b
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x5290f
leaq 0x703b(%rip), %rsi      # 0x59633
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52925
leaq 0x7028(%rip), %rsi      # 0x59637
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52933
leaq 0x7017(%rip), %rsi      # 0x5963d
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x5295b
leaq 0x7007(%rip), %rsi      # 0x59644
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x52971
leaq 0x6ff8(%rip), %rsi      # 0x5964c
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x5299b
leaq 0x6fe7(%rip), %rsi      # 0x59652
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x529be
leaq 0x6fd8(%rip), %rsi      # 0x5965a
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x529e5
leaq 0x6fcb(%rip), %rsi      # 0x59664
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
je 0x529f4
leaq 0x6fba(%rip), %rsi      # 0x5966a
movq %r14, %rdi
callq 0x3270
testl %eax, %eax
jne 0x52a55
movq 0x10(%rbx), %rdi
callq 0x3ffb
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x50550
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4d309
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x420fc
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x41a06
jmp 0x52a46
movq %rbx, %rdi
callq 0xd8c7
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4e3ef
jmp 0x52a46
leaq 0x68da(%rip), %rdx      # 0x59007
movss 0xaff(%rip), %xmm0      # 0x53234
movl %ebp, %edi
movq %rbx, %rsi
callq 0xe57a
movss %xmm0, 0xc(%rsp)
cmpl $0x5, %ebp
jl 0x5275f
movq 0x20(%rbx), %r14
jmp 0x52762
movl %ebp, %edi
movq %rbx, %rsi
callq 0x42fe2
jmp 0x52a46
xorl %r14d, %r14d
leaq 0x6a54(%rip), %rdx      # 0x591bd
movl %ebp, %edi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0xe64d
movq %rax, %r15
leaq 0x6a43(%rip), %rdx      # 0x591c2
movl %ebp, %edi
movq %rbx, %rsi
callq 0xe439
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
leaq 0x6e0b(%rip), %rdi      # 0x595a3
movss 0xa94(%rip), %xmm1      # 0x53234
movq %r14, %rcx
movss 0xc(%rsp), %xmm0
movq %r15, %r8
movl %eax, %r9d
callq 0x4e170
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x46c81
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x47847
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4c89a
jmp 0x52a46
movq 0x10(%rbx), %rsi
movq 0x18(%rbx), %rdx
movq 0x20(%rbx), %rcx
leaq 0x6dca(%rip), %rdi      # 0x595c3
movl $0x5, %r8d
callq 0x4b1b8
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4be26
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x48eb5
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x503e8
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x48564
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x421a9
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x423b7
jmp 0x52a46
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
xorl %ecx, %ecx
cmpl $0x6, %ebp
jl 0x52883
movq 0x28(%rbx), %rdi
callq 0x3100
cvttsd2si %xmm0, %ecx
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x18d19
jmp 0x52a46
movl %ebp, %edi
movq %rbx, %rsi
callq 0x4f08f
jmp 0x52a46
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x511b2
jmp 0x52a46
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x5121f
jmp 0x52a46
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x51ebe
jmp 0x52a46
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
callq 0x51cf6
jmp 0x52a46
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x51431
jmp 0x52a46
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x51135
jmp 0x52a46
movq 0x10(%rbx), %rdi
callq 0x50d82
jmp 0x52a46
movq 0x10(%rbx), %r14
xorl %esi, %esi
cmpl $0x4, %ebp
jl 0x5294e
movq 0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x5294e
callq 0x3410
movl %eax, %esi
movq %r14, %rdi
callq 0x50c52
jmp 0x52a46
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rsi
movq 0x20(%rbx), %rdx
callq 0x50dd1
jmp 0x52a46
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
movq 0x28(%rbx), %rdi
callq 0x3410
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movl %eax, %ecx
callq 0x50fcc
jmp 0x52a46
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %rdi
callq 0x3410
movq %r14, %rdi
movq %r15, %rsi
movl %eax, %edx
callq 0x5106c
jmp 0x52a46
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %r12
movq 0x28(%rbx), %rdi
callq 0x3410
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movl %eax, %ecx
callq 0x51038
jmp 0x52a46
movq 0x10(%rbx), %rdi
cmpl $0x4, %ebp
jl 0x52a35
movq 0x18(%rbx), %rsi
jmp 0x52a37
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq 0x20(%rbx), %rdi
callq 0x3410
movl %eax, %ebp
movq 0x28(%rbx), %rdi
callq 0x3410
movl %eax, %r12d
movq 0x30(%rbx), %rdi
callq 0x3410
movq 0x38(%rbx), %r9
movq %r14, %rdi
movq %r15, %rsi
movl %ebp, %edx
movl %r12d, %ecx
movl %eax, %r8d
callq 0x520b7
jmp 0x52a46
xorl %esi, %esi
xorl %edx, %edx
callq 0x2f9e4
movq %rax, %rdi
callq 0x30745
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x1759c(%rip), %rax     # 0x69ff8
movq (%rax), %rdi
leaq 0x6c0b(%rip), %rsi      # 0x59671
movq %r14, %rdx
xorl %eax, %eax
callq 0x3280
jmp 0x52a46