// File: /workspace/github_c_makefile_star2_O0/SimpleDoger[P]Darknet_CPU_Only/parser.c
// Function: parse_net_options
void parse_net_options(list *options, network *net)
{
    net->batch = option_find_int(options, "batch",1);
    net->learning_rate = option_find_float(options, "learning_rate", .001);
    net->momentum = option_find_float(options, "momentum", .9);
    net->decay = option_find_float(options, "decay", .0001);
    int subdivs = option_find_int(options, "subdivisions",1);
    net->time_steps = option_find_int_quiet(options, "time_steps",1);
    net->notruth = option_find_int_quiet(options, "notruth",0);
    net->batch /= subdivs;
    net->batch *= net->time_steps;
    net->subdivisions = subdivs;
    net->random = option_find_int_quiet(options, "random", 0);

    net->adam = option_find_int_quiet(options, "adam", 0);
    if(net->adam){
        net->B1 = option_find_float(options, "B1", .9);
        net->B2 = option_find_float(options, "B2", .999);
        net->eps = option_find_float(options, "eps", .0000001);
    }

    net->h = option_find_int_quiet(options, "height",0);
    net->w = option_find_int_quiet(options, "width",0);
    net->c = option_find_int_quiet(options, "channels",0);
    net->inputs = option_find_int_quiet(options, "inputs", net->h * net->w * net->c);
    net->max_crop = option_find_int_quiet(options, "max_crop",net->w*2);
    net->min_crop = option_find_int_quiet(options, "min_crop",net->w);
    net->max_ratio = option_find_float_quiet(options, "max_ratio", (float) net->max_crop / net->w);
    net->min_ratio = option_find_float_quiet(options, "min_ratio", (float) net->min_crop / net->w);
    net->center = option_find_int_quiet(options, "center",0);
    net->clip = option_find_float_quiet(options, "clip", 0);

    net->angle = option_find_float_quiet(options, "angle", 0);
    net->aspect = option_find_float_quiet(options, "aspect", 1);
    net->saturation = option_find_float_quiet(options, "saturation", 1);
    net->exposure = option_find_float_quiet(options, "exposure", 1);
    net->hue = option_find_float_quiet(options, "hue", 0);

    if(!net->inputs && !(net->h && net->w && net->c)) error("No input parameters supplied");

    char *policy_s = option_find_str(options, "policy", "constant");
    net->policy = get_policy(policy_s);
    net->burn_in = option_find_int_quiet(options, "burn_in", 0);
    net->power = option_find_float_quiet(options, "power", 4);
    if(net->policy == STEP){
        net->step = option_find_int(options, "step", 1);
        net->scale = option_find_float(options, "scale", 1);
    } else if (net->policy == STEPS){
        char *l = option_find(options, "steps");
        char *p = option_find(options, "scales");
        if(!l || !p) error("STEPS policy must have steps and scales in cfg file");

        int len = strlen(l);
        int n = 1;
        int i;
        for(i = 0; i < len; ++i){
            if (l[i] == ',') ++n;
        }
        int *steps = calloc(n, sizeof(int));
        float *scales = calloc(n, sizeof(float));
        for(i = 0; i < n; ++i){
            int step    = atoi(l);
            float scale = atof(p);
            l = strchr(l, ',')+1;
            p = strchr(p, ',')+1;
            steps[i] = step;
            scales[i] = scale;
        }
        net->scales = scales;
        net->steps = steps;
        net->num_steps = n;
    } else if (net->policy == EXP){
        net->gamma = option_find_float(options, "gamma", 1);
    } else if (net->policy == SIG){
        net->gamma = option_find_float(options, "gamma", 1);
        net->step = option_find_int(options, "step", 1);
    } else if (net->policy == POLY || net->policy == RANDOM){
    }
    net->max_batches = option_find_int(options, "max_batches", 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x353da(%rip), %rsi     # 0x74d55
movl $0x1, %edx
callq 0x42990
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x8(%rbp), %rdi
leaq 0x353c2(%rip), %rsi     # 0x74d5b
movss 0x3473f(%rip), %xmm0    # 0x740e0
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x34(%rax)
movq -0x8(%rbp), %rdi
leaq 0x3716b(%rip), %rsi     # 0x76b25
movss 0x34e2a(%rip), %xmm0    # 0x747ec
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x38(%rax)
movq -0x8(%rbp), %rdi
leaq 0x3538e(%rip), %rsi     # 0x74d69
movss 0x34e05(%rip), %xmm0    # 0x747e8
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x3c(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35373(%rip), %rsi     # 0x74d6f
movl $0x1, %edx
callq 0x42990
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x35368(%rip), %rsi     # 0x74d7c
movl $0x1, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x4c(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35355(%rip), %rsi     # 0x74d87
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8c(%rax)
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
movl 0x4(%rax), %eax
cltd
idivl %ecx
movl %eax, %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
movl 0x4c(%rax), %ecx
movq -0x10(%rbp), %rax
imull 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35049(%rip), %rsi     # 0x74acf
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xc4(%rax)
movq -0x8(%rbp), %rdi
leaq 0x352eb(%rip), %rsi     # 0x74d8f
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x70(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x70(%rax)
je 0x3fb21
movq -0x8(%rbp), %rdi
leaq 0x352cb(%rip), %rsi     # 0x74d94
movss 0x34d1b(%rip), %xmm0    # 0x747ec
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x74(%rax)
movq -0x8(%rbp), %rdi
leaq 0x352ad(%rip), %rsi     # 0x74d97
movss 0x34d02(%rip), %xmm0    # 0x747f4
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x78(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35278(%rip), %rsi     # 0x74d83
movss 0x34cdd(%rip), %xmm0    # 0x747f0
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x7c(%rax)
movq -0x8(%rbp), %rdi
leaq 0x33952(%rip), %rsi     # 0x7347e
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x90(%rax)
movq -0x8(%rbp), %rdi
leaq 0x338d3(%rip), %rsi     # 0x7341d
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x94(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35232(%rip), %rsi     # 0x74d9a
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x98(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x90(%rax), %edx
movq -0x10(%rbp), %rax
imull 0x94(%rax), %edx
movq -0x10(%rbp), %rax
imull 0x98(%rax), %edx
leaq 0x354b4(%rip), %rsi     # 0x7505a
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x80(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x94(%rax), %edx
shll %edx
leaq 0x351d5(%rip), %rsi     # 0x74da3
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x9c(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x94(%rax), %edx
leaq 0x351b8(%rip), %rsi     # 0x74dac
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xa0(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
cvtsi2ssl 0x9c(%rax), %xmm0
movq -0x10(%rbp), %rax
cvtsi2ssl 0x94(%rax), %xmm1
divss %xmm1, %xmm0
leaq 0x35189(%rip), %rsi     # 0x74db5
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0xa4(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
cvtsi2ssl 0xa0(%rax), %xmm0
movq -0x10(%rbp), %rax
cvtsi2ssl 0x94(%rax), %xmm1
divss %xmm1, %xmm0
leaq 0x3515b(%rip), %rsi     # 0x74dbf
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0xa8(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35149(%rip), %rsi     # 0x74dc9
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xac(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35132(%rip), %rsi     # 0x74dd0
xorps %xmm0, %xmm0
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0x108(%rax)
movq -0x8(%rbp), %rdi
leaq 0x34f17(%rip), %rsi     # 0x74bd4
xorps %xmm0, %xmm0
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0xb0(%rax)
movq -0x8(%rbp), %rdi
leaq 0x350f9(%rip), %rsi     # 0x74dd5
movss 0x31328(%rip), %xmm0    # 0x7100c
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0xb4(%rax)
movq -0x8(%rbp), %rdi
leaq 0x34eda(%rip), %rsi     # 0x74bda
movss 0x31304(%rip), %xmm0    # 0x7100c
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0xbc(%rax)
movq -0x8(%rbp), %rdi
leaq 0x34ec1(%rip), %rsi     # 0x74be5
movss 0x312e0(%rip), %xmm0    # 0x7100c
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0xb8(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35094(%rip), %rsi     # 0x74ddc
xorps %xmm0, %xmm0
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0xc0(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x80(%rax)
jne 0x3fd9c
movq -0x10(%rbp), %rax
cmpl $0x0, 0x90(%rax)
je 0x3fd90
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
je 0x3fd90
movq -0x10(%rbp), %rax
cmpl $0x0, 0x98(%rax)
jne 0x3fd9c
leaq 0x35049(%rip), %rdi     # 0x74de0
callq 0x4c50
movq -0x8(%rbp), %rdi
leaq 0x35056(%rip), %rsi     # 0x74dfd
leaq 0x34f5f(%rip), %rdx     # 0x74d0d
callq 0x42920
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x3f840
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x8(%rbp), %rdi
leaq 0x35030(%rip), %rsi     # 0x74e04
xorl %edx, %edx
callq 0x42b50
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x6c(%rax)
movq -0x8(%rbp), %rdi
leaq 0x3501d(%rip), %rsi     # 0x74e0c
movss 0x31435(%rip), %xmm0    # 0x7122c
callq 0x42ba0
movq -0x10(%rbp), %rax
movss %xmm0, 0x48(%rax)
movq -0x10(%rbp), %rax
cmpl $0x1, 0x30(%rax)
jne 0x3fe53
movq -0x8(%rbp), %rdi
leaq 0x34efc(%rip), %rsi     # 0x74d16
movl $0x1, %edx
callq 0x42990
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x50(%rax)
movq -0x8(%rbp), %rdi
leaq 0x34d37(%rip), %rsi     # 0x74b6f
movss 0x311cc(%rip), %xmm0    # 0x7100c
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x44(%rax)
jmp 0x40051
movq -0x10(%rbp), %rax
cmpl $0x4, 0x30(%rax)
jne 0x3ffbb
movq -0x8(%rbp), %rdi
leaq 0x34f15(%rip), %rsi     # 0x74d81
callq 0x42ad0
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x350ba(%rip), %rsi     # 0x74f3a
callq 0x42ad0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x3fe97
cmpq $0x0, -0x30(%rbp)
jne 0x3fea3
leaq 0x34f74(%rip), %rdi     # 0x74e12
callq 0x4c50
movq -0x28(%rbp), %rdi
callq 0x3110
movl %eax, -0x34(%rbp)
movl $0x1, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x3feec
movq -0x28(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2c, %eax
jne 0x3fedf
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x3fee1
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x3febd
movslq -0x38(%rbp), %rdi
movl $0x4, %esi
callq 0x3220
movq %rax, -0x48(%rbp)
movslq -0x38(%rbp), %rdi
movl $0x4, %esi
callq 0x3220
movq %rax, -0x50(%rbp)
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x38(%rbp), %eax
jge 0x3ff94
movq -0x28(%rbp), %rdi
callq 0x33d0
movl %eax, -0x54(%rbp)
movq -0x30(%rbp), %rdi
callq 0x30c0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x58(%rbp)
movq -0x28(%rbp), %rdi
movl $0x2c, %esi
callq 0x3120
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rdi
movl $0x2c, %esi
callq 0x3120
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movl -0x54(%rbp), %edx
movq -0x48(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movss -0x58(%rbp), %xmm0
movq -0x50(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x3ff17
movq -0x50(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x58(%rax)
movq -0x48(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x60(%rax)
movl -0x38(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x68(%rax)
jmp 0x4004f
movq -0x10(%rbp), %rax
cmpl $0x2, 0x30(%rax)
jne 0x3ffe8
movq -0x8(%rbp), %rdi
leaq 0x34e76(%rip), %rsi     # 0x74e46
movss 0x31034(%rip), %xmm0    # 0x7100c
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x40(%rax)
jmp 0x4004d
movq -0x10(%rbp), %rax
cmpl $0x5, 0x30(%rax)
jne 0x40033
movq -0x8(%rbp), %rdi
leaq 0x34e49(%rip), %rsi     # 0x74e46
movss 0x31007(%rip), %xmm0    # 0x7100c
callq 0x42c00
movq -0x10(%rbp), %rax
movss %xmm0, 0x40(%rax)
movq -0x8(%rbp), %rdi
leaq 0x34cf8(%rip), %rsi     # 0x74d16
movl $0x1, %edx
callq 0x42990
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x50(%rax)
jmp 0x4004b
movq -0x10(%rbp), %rax
cmpl $0x3, 0x30(%rax)
je 0x40047
movq -0x10(%rbp), %rax
cmpl $0x6, 0x30(%rax)
jne 0x40049
jmp 0x40049
jmp 0x4004b
jmp 0x4004d
jmp 0x4004f
jmp 0x40051
movq -0x8(%rbp), %rdi
leaq 0x34df0(%rip), %rsi     # 0x74e4c
xorl %edx, %edx
callq 0x42990
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x54(%rax)
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)