// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x30(%rbp)
movq %rdi, -0x28(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x360e5(%rip), %rsi     # 0x74b0c
movl $0x1, %edx
callq 0x42990
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x36018(%rip), %rsi     # 0x74a57
movl $0x1, %edx
callq 0x42990
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x360f8(%rip), %rsi     # 0x74b4f
xorl %edx, %edx
callq 0x42990
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x35ff3(%rip), %rsi     # 0x74a5f
movl $0x1, %edx
callq 0x42990
movl %eax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x36122(%rip), %rsi     # 0x74ba6
movl $0x7, %edx
callq 0x42990
movq -0x30(%rbp), %rdi
movl %eax, %ecx
movq -0x38(%rbp), %rax
movl %ecx, -0x1c(%rbp)
movl (%rax), %esi
movl 0x4(%rax), %edx
movl -0x18(%rbp), %ecx
movl -0x1c(%rbp), %r8d
movl -0x10(%rbp), %r9d
movl -0xc(%rbp), %r10d
movl -0x14(%rbp), %eax
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x42c80
movq -0x8(%rbp), %rdi
leaq 0x35afb(%rip), %rsi     # 0x745c5
xorl %edx, %edx
callq 0x42990
movq -0x30(%rbp), %rdi
movl %eax, 0xf8(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x36059(%rip), %rsi     # 0x74b3f
xorl %edx, %edx
callq 0x42990
movq -0x30(%rbp), %rdi
movl %eax, 0xac(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x35ac7(%rip), %rsi     # 0x745c9
movl $0x5a, %edx
callq 0x42b50
movq -0x30(%rbp), %rdi
movl %eax, 0x88(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x36048(%rip), %rsi     # 0x74b69
movss 0x324e3(%rip), %xmm0    # 0x7100c
callq 0x42c00
movq -0x30(%rbp), %rdi
movss %xmm0, 0x140(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x36066(%rip), %rsi     # 0x74bab
xorl %edx, %edx
callq 0x42990
movq -0x30(%rbp), %rdi
movl %eax, 0x4c(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x36019(%rip), %rsi     # 0x74b77
movss 0x324a6(%rip), %xmm0    # 0x7100c
callq 0x42c00
movq -0x30(%rbp), %rdi
movss %xmm0, 0x144(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x35ff3(%rip), %rsi     # 0x74b75
movss 0x32482(%rip), %xmm0    # 0x7100c
callq 0x42c00
movq -0x30(%rbp), %rdi
movss %xmm0, 0x148(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x35fe9(%rip), %rsi     # 0x74b8f
movss 0x3245e(%rip), %xmm0    # 0x7100c
callq 0x42c00
movq -0x30(%rbp), %rdi
movss %xmm0, 0x150(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x35ee3(%rip), %rsi     # 0x74aad
movss 0x35c0e(%rip), %xmm0    # 0x747e0
callq 0x42c00
movq -0x30(%rbp), %rdi
movss %xmm0, 0xd8(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x35ee1(%rip), %rsi     # 0x74acf
xorl %edx, %edx
callq 0x42b50
movq -0x30(%rbp), %rdi
movl %eax, 0x158(%rdi)
movq -0x8(%rbp), %rdi
leaq 0x359ad(%rip), %rsi     # 0x745b7
xorl %edx, %edx
callq 0x42b50
movq -0x30(%rbp), %rdi
movl %eax, %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x118(%rdi)
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)