// File: /workspace/github_c_makefile_star2_O1/SimpleDoger[P]Darknet_CPU_Only/parser.c
// Function: parse_detection
detection_layer parse_detection(list *options, size_params params)
{
    int coords = option_find_int(options, "coords", 1);
    int classes = option_find_int(options, "classes", 1);
    int rescore = option_find_int(options, "rescore", 0);
    int num = option_find_int(options, "num", 1);
    int side = option_find_int(options, "side", 7);
    detection_layer layer = make_detection_layer(params.batch, params.inputs, num, side, classes, coords, rescore);

    layer.softmax = option_find_int(options, "softmax", 0);
    layer.sqrt = option_find_int(options, "sqrt", 0);

    layer.max_boxes = option_find_int_quiet(options, "max",90);
    layer.coord_scale = option_find_float(options, "coord_scale", 1);
    layer.forced = option_find_int(options, "forced", 0);
    layer.object_scale = option_find_float(options, "object_scale", 1);
    layer.noobject_scale = option_find_float(options, "noobject_scale", 1);
    layer.class_scale = option_find_float(options, "class_scale", 1);
    layer.jitter = option_find_float(options, "jitter", .2);
    layer.random = option_find_int_quiet(options, "random", 0);
    layer.reorg = option_find_int_quiet(options, "reorg", 0);
    return layer;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x24182(%rip), %rsi     # 0x57250
movq %r14, %rdi
movl $0x1, %edx
callq 0x34d9f
movl %eax, %r15d
leaq 0x240b6(%rip), %rsi     # 0x5719b
movq %r14, %rdi
movl $0x1, %edx
callq 0x34d9f
movl %eax, %ebp
leaq 0x24198(%rip), %rsi     # 0x57293
movq %r14, %rdi
xorl %edx, %edx
callq 0x34d9f
movl %eax, %r12d
leaq 0x24094(%rip), %rsi     # 0x571a3
movq %r14, %rdi
movl $0x1, %edx
callq 0x34d9f
movl %eax, %r13d
leaq 0x241c4(%rip), %rsi     # 0x572ea
movq %r14, %rdi
movl $0x7, %edx
callq 0x34d9f
movl 0x40(%rsp), %esi
movl 0x44(%rsp), %edx
movq %rbx, %rdi
movl %r13d, %ecx
movl %eax, %r8d
movl %ebp, %r9d
pushq %r12
pushq %r15
callq 0x34f28
addq $0x10, %rsp
leaq 0x23ae6(%rip), %rsi     # 0x56c41
movq %r14, %rdi
xorl %edx, %edx
callq 0x34d9f
movl %eax, 0xf8(%rbx)
leaq 0x24111(%rip), %rsi     # 0x57283
movq %r14, %rdi
xorl %edx, %edx
callq 0x34d9f
movl %eax, 0xac(%rbx)
leaq 0x23abc(%rip), %rsi     # 0x56c45
movq %r14, %rdi
movl $0x5a, %edx
callq 0x34e93
movl %eax, 0x88(%rbx)
leaq 0x2410a(%rip), %rsi     # 0x572ad
movss 0x1fe5d(%rip), %xmm0    # 0x53008
movq %r14, %rdi
callq 0x34ed2
movss %xmm0, 0x140(%rbx)
leaq 0x2412d(%rip), %rsi     # 0x572ef
movq %r14, %rdi
xorl %edx, %edx
callq 0x34d9f
movl %eax, 0x4c(%rbx)
leaq 0x240e5(%rip), %rsi     # 0x572bb
movq %r14, %rdi
movss 0x1fe27(%rip), %xmm0    # 0x53008
callq 0x34ed2
movss %xmm0, 0x144(%rbx)
leaq 0x240c4(%rip), %rsi     # 0x572b9
movq %r14, %rdi
movss 0x1fe08(%rip), %xmm0    # 0x53008
callq 0x34ed2
movss %xmm0, 0x148(%rbx)
leaq 0x240bf(%rip), %rsi     # 0x572d3
movq %r14, %rdi
movss 0x1fde9(%rip), %xmm0    # 0x53008
callq 0x34ed2
movss %xmm0, 0x150(%rbx)
leaq 0x23fbe(%rip), %rsi     # 0x571f1
movss 0x23c25(%rip), %xmm0    # 0x56e60
movq %r14, %rdi
callq 0x34ed2
movss %xmm0, 0xd8(%rbx)
leaq 0x23fc1(%rip), %rsi     # 0x57213
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e93
movl %eax, 0x158(%rbx)
leaq 0x239ca(%rip), %rsi     # 0x56c33
movq %r14, %rdi
xorl %edx, %edx
callq 0x34e93
movl %eax, 0x118(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq