// File: /workspace/github_c_makefile_star2_O2/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 0x2a33a(%rip), %rsi     # 0x502a0
pushq $0x1
popq %r12
movq %r14, %rdi
movl %r12d, %edx
callq 0x2977d
movl %eax, %r15d
leaq 0x2a26c(%rip), %rsi     # 0x501eb
movq %r14, %rdi
movl %r12d, %edx
callq 0x2977d
movl %eax, %ebp
leaq 0x2a350(%rip), %rsi     # 0x502e3
movq %r14, %rdi
xorl %edx, %edx
callq 0x2977d
movl %eax, %r13d
leaq 0x2a24c(%rip), %rsi     # 0x501f3
movq %r14, %rdi
movl %r12d, %edx
callq 0x2977d
movl %eax, %r12d
leaq 0x2a37e(%rip), %rsi     # 0x5033a
pushq $0x7
popq %rdx
movq %r14, %rdi
callq 0x2977d
movl 0x40(%rsp), %esi
movl 0x44(%rsp), %edx
movq %rbx, %rdi
movl %r12d, %ecx
movl %eax, %r8d
movl %ebp, %r9d
pushq %r13
pushq %r15
callq 0x29918
popq %rax
popq %rcx
leaq 0x29ca4(%rip), %rsi     # 0x4fc91
movq %r14, %rdi
xorl %edx, %edx
callq 0x2977d
movl %eax, 0xf8(%rbx)
leaq 0x2a2cf(%rip), %rsi     # 0x502d3
movq %r14, %rdi
xorl %edx, %edx
callq 0x2977d
movl %eax, 0xac(%rbx)
leaq 0x29c7a(%rip), %rsi     # 0x4fc95
pushq $0x5a
popq %rdx
movq %r14, %rdi
callq 0x29884
movl %eax, 0x88(%rbx)
leaq 0x2a2ca(%rip), %rsi     # 0x502fd
movss 0x25fcd(%rip), %xmm0    # 0x4c008
movq %r14, %rdi
callq 0x298c3
movss %xmm0, 0x140(%rbx)
leaq 0x2a2ed(%rip), %rsi     # 0x5033f
movq %r14, %rdi
xorl %edx, %edx
callq 0x2977d
movl %eax, 0x4c(%rbx)
leaq 0x2a2a5(%rip), %rsi     # 0x5030b
movq %r14, %rdi
movss 0x25f97(%rip), %xmm0    # 0x4c008
callq 0x298c3
movss %xmm0, 0x144(%rbx)
leaq 0x2a284(%rip), %rsi     # 0x50309
movq %r14, %rdi
movss 0x25f78(%rip), %xmm0    # 0x4c008
callq 0x298c3
movss %xmm0, 0x148(%rbx)
leaq 0x2a27f(%rip), %rsi     # 0x50323
movq %r14, %rdi
movss 0x25f59(%rip), %xmm0    # 0x4c008
callq 0x298c3
movss %xmm0, 0x150(%rbx)
leaq 0x2a17e(%rip), %rsi     # 0x50241
movss 0x29de5(%rip), %xmm0    # 0x4feb0
movq %r14, %rdi
callq 0x298c3
movss %xmm0, 0xd8(%rbx)
leaq 0x2a181(%rip), %rsi     # 0x50263
movq %r14, %rdi
xorl %edx, %edx
callq 0x29884
movl %eax, 0x158(%rbx)
leaq 0x29b8a(%rip), %rsi     # 0x4fc83
movq %r14, %rdi
xorl %edx, %edx
callq 0x29884
movl %eax, 0x118(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq