// File: /workspace/github_c_makefile_star2_O3/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 0x242c8(%rip), %rsi     # 0x59350
movq %r14, %rdi
movl $0x1, %edx
callq 0x36eed
movl %eax, %r15d
leaq 0x241fc(%rip), %rsi     # 0x5929b
movq %r14, %rdi
movl $0x1, %edx
callq 0x36eed
movl %eax, %ebp
leaq 0x242de(%rip), %rsi     # 0x59393
movq %r14, %rdi
xorl %edx, %edx
callq 0x36eed
movl %eax, %r12d
leaq 0x241da(%rip), %rsi     # 0x592a3
movq %r14, %rdi
movl $0x1, %edx
callq 0x36eed
movl %eax, %r13d
leaq 0x2430a(%rip), %rsi     # 0x593ea
movq %r14, %rdi
movl $0x7, %edx
callq 0x36eed
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 0x37148
addq $0x10, %rsp
leaq 0x23c2c(%rip), %rsi     # 0x58d41
movq %r14, %rdi
xorl %edx, %edx
callq 0x36eed
movl %eax, 0xf8(%rbx)
leaq 0x24257(%rip), %rsi     # 0x59383
movq %r14, %rdi
xorl %edx, %edx
callq 0x36eed
movl %eax, 0xac(%rbx)
leaq 0x23c02(%rip), %rsi     # 0x58d45
movq %r14, %rdi
movl $0x5a, %edx
callq 0x37008
movl %eax, 0x88(%rbx)
leaq 0x24250(%rip), %rsi     # 0x593ad
movss 0x1fea3(%rip), %xmm0    # 0x55008
movq %r14, %rdi
callq 0x370c5
movss %xmm0, 0x140(%rbx)
leaq 0x24273(%rip), %rsi     # 0x593ef
movq %r14, %rdi
xorl %edx, %edx
callq 0x36eed
movl %eax, 0x4c(%rbx)
leaq 0x2422b(%rip), %rsi     # 0x593bb
movq %r14, %rdi
movss 0x1fe6d(%rip), %xmm0    # 0x55008
callq 0x370c5
movss %xmm0, 0x144(%rbx)
leaq 0x2420a(%rip), %rsi     # 0x593b9
movq %r14, %rdi
movss 0x1fe4e(%rip), %xmm0    # 0x55008
callq 0x370c5
movss %xmm0, 0x148(%rbx)
leaq 0x24205(%rip), %rsi     # 0x593d3
movq %r14, %rdi
movss 0x1fe2f(%rip), %xmm0    # 0x55008
callq 0x370c5
movss %xmm0, 0x150(%rbx)
leaq 0x24104(%rip), %rsi     # 0x592f1
movss 0x23d6b(%rip), %xmm0    # 0x58f60
movq %r14, %rdi
callq 0x370c5
movss %xmm0, 0xd8(%rbx)
leaq 0x24107(%rip), %rsi     # 0x59313
movq %r14, %rdi
xorl %edx, %edx
callq 0x37008
movl %eax, 0x158(%rbx)
leaq 0x23b10(%rip), %rsi     # 0x58d33
movq %r14, %rdi
xorl %edx, %edx
callq 0x37008
movl %eax, 0x118(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq