// File: /workspace/github_c_makefile_star2_O0/SimpleDoger[P]Darknet_CPU_Only/parser.c
// Function: load_convolutional_weights_binary
void load_convolutional_weights_binary(layer l, FILE *fp)
{
    fread(l.biases, sizeof(float), l.n, fp);
    if (l.batch_normalize && (!l.dontloadscales)){
        fread(l.scales, sizeof(float), l.n, fp);
        fread(l.rolling_mean, sizeof(float), l.n, fp);
        fread(l.rolling_variance, sizeof(float), l.n, fp);
    }
    int size = l.c*l.size*l.size;
    int i, j, k;
    for(i = 0; i < l.n; ++i){
        float mean = 0;
        fread(&mean, sizeof(float), 1, fp);
        for(j = 0; j < size/8; ++j){
            int index = i*size + j*8;
            unsigned char c = 0;
            fread(&c, sizeof(char), 1, fp);
            for(k = 0; k < 8; ++k){
                if (j*8 + k >= size) break;
                l.weights[index + k] = (c & 1<<k) ? mean : -mean;
            }
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq %rdi, -0x8(%rbp)
movq 0x230(%rax), %rdi
movslq 0x84(%rax), %rdx
movq -0x8(%rbp), %rcx
movl $0x4, %esi
callq 0x30a0
movq -0x30(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x41c77
movq -0x30(%rbp), %rax
cmpl $0x0, 0x184(%rax)
jne 0x41c77
movq -0x30(%rbp), %rax
movq 0x240(%rax), %rdi
movslq 0x84(%rax), %rdx
movq -0x8(%rbp), %rcx
movl $0x4, %esi
callq 0x30a0
movq -0x30(%rbp), %rax
movq 0x2b0(%rax), %rdi
movslq 0x84(%rax), %rdx
movq -0x8(%rbp), %rcx
movl $0x4, %esi
callq 0x30a0
movq -0x30(%rbp), %rax
movq 0x2b8(%rax), %rdi
movslq 0x84(%rax), %rdx
movq -0x8(%rbp), %rcx
movl $0x4, %esi
callq 0x30a0
movq -0x30(%rbp), %rcx
movl 0x74(%rcx), %eax
imull 0x90(%rcx), %eax
imull 0x90(%rcx), %eax
movl %eax, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movq -0x30(%rbp), %rcx
movl -0x10(%rbp), %eax
cmpl 0x84(%rcx), %eax
jge 0x41db8
xorps %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x8(%rbp), %rcx
leaq -0x1c(%rbp), %rdi
movl $0x4, %esi
movl $0x1, %edx
callq 0x30a0
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0xc(%rbp), %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x34(%rbp), %eax
cmpl %ecx, %eax
jge 0x41da8
movl -0x10(%rbp), %eax
imull -0xc(%rbp), %eax
movl -0x14(%rbp), %ecx
shll $0x3, %ecx
addl %ecx, %eax
movl %eax, -0x20(%rbp)
movb $0x0, -0x21(%rbp)
movq -0x8(%rbp), %rcx
leaq -0x21(%rbp), %rdi
movl $0x1, %edx
movq %rdx, %rsi
callq 0x30a0
movl $0x0, -0x18(%rbp)
cmpl $0x8, -0x18(%rbp)
jge 0x41d98
movl -0x14(%rbp), %eax
shll $0x3, %eax
addl -0x18(%rbp), %eax
cmpl -0xc(%rbp), %eax
jl 0x41d35
jmp 0x41d98
movzbl -0x21(%rbp), %eax
movl -0x18(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x41d58
movss -0x1c(%rbp), %xmm0
movss %xmm0, -0x38(%rbp)
jmp 0x41d6f
movss -0x1c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x38(%rbp)
movq -0x30(%rbp), %rax
movss -0x38(%rbp), %xmm0
movq 0x250(%rax), %rax
movl -0x20(%rbp), %ecx
addl -0x18(%rbp), %ecx
movslq %ecx, %rcx
movss %xmm0, (%rax,%rcx,4)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x41d1f
jmp 0x41d9a
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x41ccf
jmp 0x41daa
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x41c96
addq $0x40, %rsp
popq %rbp
retq
nop