// File: /workspace/github_c_makefile_star2_O0/SimpleDoger[P]Darknet_CPU_Only/classifier.c
// Function: run_classifier
void run_classifier(int argc, char **argv)
{
    if(argc < 4){
        fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
        return;
    }

    char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
    int ngpus;
    int *gpus = read_intlist(gpu_list, &ngpus, gpu_index);


    int cam_index = find_int_arg(argc, argv, "-c", 0);
    int top = find_int_arg(argc, argv, "-t", 0);
    int clear = find_arg(argc, argv, "-clear");
    char *data = argv[3];
    char *cfg = argv[4];
    char *weights = (argc > 5) ? argv[5] : 0;
    char *filename = (argc > 6) ? argv[6]: 0;
    char *layer_s = (argc > 7) ? argv[7]: 0;
    int layer = layer_s ? atoi(layer_s) : -1;
    if(0==strcmp(argv[2], "predict")) predict_classifier(data, cfg, weights, filename, top);
    else if(0==strcmp(argv[2], "fout")) file_output_classifier(data, cfg, weights, filename);
    else if(0==strcmp(argv[2], "try")) try_classifier(data, cfg, weights, filename, atoi(layer_s));
    else if(0==strcmp(argv[2], "train")) train_classifier(data, cfg, weights, gpus, ngpus, clear);
    else if(0==strcmp(argv[2], "demo")) demo_classifier(data, cfg, weights, cam_index, filename);
    else if(0==strcmp(argv[2], "gun")) gun_classifier(data, cfg, weights, cam_index, filename);
    else if(0==strcmp(argv[2], "threat")) threat_classifier(data, cfg, weights, cam_index, filename);
    else if(0==strcmp(argv[2], "test")) test_classifier(data, cfg, weights, layer);
    else if(0==strcmp(argv[2], "csv")) csv_classifier(data, cfg, weights);
    else if(0==strcmp(argv[2], "label")) label_classifier(data, cfg, weights);
    else if(0==strcmp(argv[2], "valid")) validate_classifier_single(data, cfg, weights);
    else if(0==strcmp(argv[2], "validmulti")) validate_classifier_multi(data, cfg, weights);
    else if(0==strcmp(argv[2], "valid10")) validate_classifier_10(data, cfg, weights);
    else if(0==strcmp(argv[2], "validcrop")) validate_classifier_crop(data, cfg, weights);
    else if(0==strcmp(argv[2], "validfull")) validate_classifier_full(data, cfg, weights);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x4, -0x4(%rbp)
jge 0x64f94
movq 0x1e089(%rip), %rax     # 0x82ff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0x10908(%rip), %rsi     # 0x75890
movb $0x0, %al
callq 0x3240
jmp 0x65438
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x111c4(%rip), %rdx     # 0x76166
xorl %eax, %eax
movl %eax, %ecx
callq 0x47a0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq 0x1ee86(%rip), %rax     # 0x83e40
movl (%rax), %edx
leaq -0x1c(%rbp), %rsi
callq 0x3f60
movq %rax, -0x28(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x10a18(%rip), %rdx     # 0x759ef
xorl %ecx, %ecx
callq 0x4630
movl %eax, -0x2c(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x114f3(%rip), %rdx     # 0x764e2
xorl %ecx, %ecx
callq 0x4630
movl %eax, -0x30(%rbp)
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x108fe(%rip), %rdx     # 0x75905
callq 0x45a0
movl %eax, -0x34(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
cmpl $0x5, -0x4(%rbp)
jle 0x6503b
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0x65043
xorl %eax, %eax
movq %rax, -0x70(%rbp)
jmp 0x65043
movq -0x70(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpl $0x6, -0x4(%rbp)
jle 0x6505f
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x78(%rbp)
jmp 0x65067
xorl %eax, %eax
movq %rax, -0x78(%rbp)
jmp 0x65067
movq -0x78(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpl $0x7, -0x4(%rbp)
jle 0x65083
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0x6508b
xorl %eax, %eax
movq %rax, -0x80(%rbp)
jmp 0x6508b
movq -0x80(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0x650ab
movq -0x60(%rbp), %rdi
callq 0x33d0
movl %eax, -0x84(%rbp)
jmp 0x650b8
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0x84(%rbp)
jmp 0x650b8
movl -0x84(%rbp), %eax
movl %eax, -0x64(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x11415(%rip), %rsi     # 0x764e5
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x650fb
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
movl -0x30(%rbp), %r8d
callq 0x63fb0
jmp 0x65438
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x113e3(%rip), %rsi     # 0x764ed
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x65131
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
callq 0x64c40
jmp 0x65436
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x113b2(%rip), %rsi     # 0x764f2
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x651ab
movq -0x40(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x60(%rbp), %rdi
callq 0x33d0
movq -0xa8(%rbp), %rdi
movq -0xa0(%rbp), %rsi
movq -0x98(%rbp), %rdx
movq -0x90(%rbp), %rcx
movl %eax, %r8d
callq 0x63b00
jmp 0x65434
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x10a02(%rip), %rsi     # 0x75bbc
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x651e9
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x28(%rbp), %rcx
movl -0x1c(%rbp), %r8d
movl -0x34(%rbp), %r9d
callq 0x618e0
jmp 0x65432
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x111ef(%rip), %rsi     # 0x763e7
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x65222
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movl -0x2c(%rbp), %ecx
movq -0x58(%rbp), %r8
callq 0x64f30
jmp 0x65430
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x112c5(%rip), %rsi     # 0x764f6
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x6525b
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movl -0x2c(%rbp), %ecx
movq -0x58(%rbp), %r8
callq 0x64f10
jmp 0x6542e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x11290(%rip), %rsi     # 0x764fa
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x65294
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movl -0x2c(%rbp), %ecx
movq -0x58(%rbp), %r8
callq 0x64ef0
jmp 0x6542c
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x116f6(%rip), %rsi     # 0x76999
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x652c9
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
movl -0x64(%rbp), %ecx
callq 0x64850
jmp 0x6542a
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x108cd(%rip), %rsi     # 0x75ba5
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x652fb
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x645b0
jmp 0x65428
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x111f7(%rip), %rsi     # 0x76501
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x6532d
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x64320
jmp 0x65426
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0xe637(%rip), %rsi      # 0x73973
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x6535f
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x632b0
jmp 0x65424
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x11199(%rip), %rsi     # 0x76507
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x65391
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x63680
jmp 0x65422
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x11172(%rip), %rsi     # 0x76512
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x653c0
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x62710
jmp 0x65420
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x1114b(%rip), %rsi     # 0x7651a
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x653ef
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x622e0
jmp 0x6541e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x11126(%rip), %rsi     # 0x76524
callq 0x3230
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x6541c
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x62f50
jmp 0x6541e
jmp 0x65420
jmp 0x65422
jmp 0x65424
jmp 0x65426
jmp 0x65428
jmp 0x6542a
jmp 0x6542c
jmp 0x6542e
jmp 0x65430
jmp 0x65432
jmp 0x65434
jmp 0x65436
jmp 0x65438
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)