// File: /workspace/github_c_makefile_star2_O0/SimpleDoger[P]Darknet_CPU_Only/region_layer.c
// Function: forward_region_layer
void forward_region_layer(const layer l, network net)
{
    int i,j,b,t,n;
    memcpy(l.output, net.input, l.outputs*l.batch*sizeof(float));

    for (b = 0; b < l.batch; ++b){
        for(n = 0; n < l.n; ++n){
            int index = entry_index(l, b, n*l.w*l.h, 0);
            activate_array(l.output + index, 2*l.w*l.h, LOGISTIC);
            index = entry_index(l, b, n*l.w*l.h, l.coords);
            if(!l.background) activate_array(l.output + index,   l.w*l.h, LOGISTIC);
            index = entry_index(l, b, n*l.w*l.h, l.coords + 1);
            if(!l.softmax && !l.softmax_tree) activate_array(l.output + index, l.classes*l.w*l.h, LOGISTIC);
        }
    }
    if (l.softmax_tree){
        int i;
        int count = l.coords + 1;
        for (i = 0; i < l.softmax_tree->groups; ++i) {
            int group_size = l.softmax_tree->group_size[i];
            softmax_cpu(net.input + count, group_size, l.batch, l.inputs, l.n*l.w*l.h, 1, l.n*l.w*l.h, l.temperature, l.output + count);
            count += group_size;
        }
    } else if (l.softmax){
        int index = entry_index(l, 0, 0, l.coords + !l.background);
        softmax_cpu(net.input + index, l.classes + l.background, l.batch*l.n, l.inputs/l.n, l.w*l.h, 1, l.w*l.h, 1, l.output + index);
    }

    memset(l.delta, 0, l.outputs * l.batch * sizeof(float));
    if(!net.train) return;
    float avg_iou = 0;
    float recall = 0;
    float avg_cat = 0;
    float avg_obj = 0;
    float avg_anyobj = 0;
    int count = 0;
    int class_count = 0;
    *(l.cost) = 0;
    for (b = 0; b < l.batch; ++b) {
        if(l.softmax_tree){
            int onlyclass = 0;
            for(t = 0; t < 30; ++t){
                box truth = float_to_box(net.truth + t*(l.coords + 1) + b*l.truths, 1);
                if(!truth.x) break;
                int class = net.truth[t*(l.coords + 1) + b*l.truths + l.coords];
                float maxp = 0;
                int maxi = 0;
                if(truth.x > 100000 && truth.y > 100000){
                    for(n = 0; n < l.n*l.w*l.h; ++n){
                        int class_index = entry_index(l, b, n, l.coords + 1);
                        int obj_index = entry_index(l, b, n, l.coords);
                        float scale =  l.output[obj_index];
                        l.delta[obj_index] = l.noobject_scale * (0 - l.output[obj_index]);
                        float p = scale*get_hierarchy_probability(l.output + class_index, l.softmax_tree, class, l.w*l.h);
                        if(p > maxp){
                            maxp = p;
                            maxi = n;
                        }
                    }
                    int class_index = entry_index(l, b, maxi, l.coords + 1);
                    int obj_index = entry_index(l, b, maxi, l.coords);
                    delta_region_class(l.output, l.delta, class_index, class, l.classes, l.softmax_tree, l.class_scale, l.w*l.h, &avg_cat, !l.softmax);
                    if(l.output[obj_index] < .3) l.delta[obj_index] = l.object_scale * (.3 - l.output[obj_index]);
                    else  l.delta[obj_index] = 0;
                    l.delta[obj_index] = 0;
                    ++class_count;
                    onlyclass = 1;
                    break;
                }
            }
            if(onlyclass) continue;
        }
        for (j = 0; j < l.h; ++j) {
            for (i = 0; i < l.w; ++i) {
                for (n = 0; n < l.n; ++n) {
                    int box_index = entry_index(l, b, n*l.w*l.h + j*l.w + i, 0);
                    box pred = get_region_box(l.output, l.biases, n, box_index, i, j, l.w, l.h, l.w*l.h);
                    float best_iou = 0;
                    for(t = 0; t < 30; ++t){
                        box truth = float_to_box(net.truth + t*(l.coords + 1) + b*l.truths, 1);
                        if(!truth.x) break;
                        float iou = box_iou(pred, truth);
                        if (iou > best_iou) {
                            best_iou = iou;
                        }
                    }
                    int obj_index = entry_index(l, b, n*l.w*l.h + j*l.w + i, l.coords);
                    avg_anyobj += l.output[obj_index];
                    l.delta[obj_index] = l.noobject_scale * (0 - l.output[obj_index]);
                    if(l.background) l.delta[obj_index] = l.noobject_scale * (1 - l.output[obj_index]);
                    if (best_iou > l.thresh) {
                        l.delta[obj_index] = 0;
                    }

                    if(*(net.seen) < 12800){
                        box truth = {0};
                        truth.x = (i + .5)/l.w;
                        truth.y = (j + .5)/l.h;
                        truth.w = l.biases[2*n]/l.w;
                        truth.h = l.biases[2*n+1]/l.h;
                        delta_region_box(truth, l.output, l.biases, n, box_index, i, j, l.w, l.h, l.delta, .01, l.w*l.h);
                    }
                }
            }
        }
        for(t = 0; t < 30; ++t){
            box truth = float_to_box(net.truth + t*(l.coords + 1) + b*l.truths, 1);

            if(!truth.x) break;
            float best_iou = 0;
            int best_n = 0;
            i = (truth.x * l.w);
            j = (truth.y * l.h);
            box truth_shift = truth;
            truth_shift.x = 0;
            truth_shift.y = 0;
            for(n = 0; n < l.n; ++n){
                int box_index = entry_index(l, b, n*l.w*l.h + j*l.w + i, 0);
                box pred = get_region_box(l.output, l.biases, n, box_index, i, j, l.w, l.h, l.w*l.h);
                if(l.bias_match){
                    pred.w = l.biases[2*n]/l.w;
                    pred.h = l.biases[2*n+1]/l.h;
                }
                pred.x = 0;
                pred.y = 0;
                float iou = box_iou(pred, truth_shift);
                if (iou > best_iou){
                    best_iou = iou;
                    best_n = n;
                }
            }

            int box_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, 0);
            float iou = delta_region_box(truth, l.output, l.biases, best_n, box_index, i, j, l.w, l.h, l.delta, l.coord_scale *  (2 - truth.w*truth.h), l.w*l.h);
            if(l.coords > 4){
                int mask_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, 4);
                delta_region_mask(net.truth + t*(l.coords + 1) + b*l.truths + 5, l.output, l.coords - 4, mask_index, l.delta, l.w*l.h, l.mask_scale);
            }
            if(iou > .5) recall += 1;
            avg_iou += iou;

            int obj_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, l.coords);
            avg_obj += l.output[obj_index];
            l.delta[obj_index] = l.object_scale * (1 - l.output[obj_index]);
            if (l.rescore) {
                l.delta[obj_index] = l.object_scale * (iou - l.output[obj_index]);
            }
            if(l.background){
                l.delta[obj_index] = l.object_scale * (0 - l.output[obj_index]);
            }

            int class = net.truth[t*(l.coords + 1) + b*l.truths + l.coords];
            if (l.map) class = l.map[class];
            int class_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, l.coords + 1);
            delta_region_class(l.output, l.delta, class_index, class, l.classes, l.softmax_tree, l.class_scale, l.w*l.h, &avg_cat, !l.softmax);
            ++count;
            ++class_count;
        }
    }
    *(l.cost) = pow(mag_array(l.delta, l.outputs * l.batch), 2);
    printf("Region Avg IOU: %f, Class: %f, Obj: %f, No Obj: %f, Avg Recall: %f,  count: %d\n", avg_iou/count, avg_cat/class_count, avg_obj/count, avg_anyobj/(l.w*l.h*l.n*l.batch), recall/count, count);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x640, %rsp            # imm = 0x640
leaq 0x4b0(%rbp), %rax
movq %rax, -0x138(%rbp)
leaq 0x10(%rbp), %rcx
movq %rcx, -0x130(%rbp)
movq 0x268(%rcx), %rdi
movq 0xd8(%rax), %rsi
movl 0x58(%rcx), %eax
imull 0x48(%rcx), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
callq 0x3280
movl $0x0, -0x1c(%rbp)
movq -0x130(%rbp), %rcx
movl -0x1c(%rbp), %eax
cmpl 0x48(%rcx), %eax
jge 0x4bff7
movl $0x0, -0x24(%rbp)
movq -0x130(%rbp), %rcx
movl -0x24(%rbp), %eax
cmpl 0x84(%rcx), %eax
jge 0x4bfe7
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x144(%rbp)
movl -0x24(%rbp), %eax
imull 0x70(%rsi), %eax
imull 0x6c(%rsi), %eax
movl %eax, -0x148(%rbp)
xorl %eax, %eax
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x148(%rbp), %esi
movl -0x144(%rbp), %edi
xorl %edx, %edx
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x28(%rbp)
movq 0x268(%rax), %rdi
movslq -0x28(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rdi
movl 0x70(%rax), %esi
shll %esi
imull 0x6c(%rax), %esi
xorl %edx, %edx
callq 0x2dfa0
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x13c(%rbp)
movl -0x24(%rbp), %eax
imull 0x70(%rsi), %eax
imull 0x6c(%rsi), %eax
movl %eax, -0x140(%rbp)
movl 0x100(%rsi), %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x140(%rbp), %esi
movl -0x13c(%rbp), %edi
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x28(%rbp)
cmpl $0x0, 0x104(%rax)
jne 0x4bf3d
movq -0x130(%rbp), %rax
movq 0x268(%rax), %rdi
movslq -0x28(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rdi
movl 0x70(%rax), %esi
imull 0x6c(%rax), %esi
xorl %edx, %edx
callq 0x2dfa0
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x14c(%rbp)
movl -0x24(%rbp), %eax
imull 0x70(%rsi), %eax
imull 0x6c(%rsi), %eax
movl %eax, -0x150(%rbp)
movl 0x100(%rsi), %edx
addl $0x1, %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x150(%rbp), %esi
movl -0x14c(%rbp), %edi
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x28(%rbp)
cmpl $0x0, 0xf8(%rax)
jne 0x4bfd7
movq -0x130(%rbp), %rax
cmpq $0x0, 0x490(%rax)
jne 0x4bfd7
movq -0x130(%rbp), %rax
movq 0x268(%rax), %rdi
movslq -0x28(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rdi
movl 0xfc(%rax), %esi
imull 0x70(%rax), %esi
imull 0x6c(%rax), %esi
xorl %edx, %edx
callq 0x2dfa0
jmp 0x4bfd9
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x4be39
jmp 0x4bfe9
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4be1f
movq -0x130(%rbp), %rax
cmpq $0x0, 0x490(%rax)
je 0x4c0ea
movq -0x130(%rbp), %rax
movl 0x100(%rax), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movl $0x0, -0x2c(%rbp)
movq -0x130(%rbp), %rcx
movl -0x2c(%rbp), %eax
movq 0x490(%rcx), %rcx
cmpl 0x30(%rcx), %eax
jge 0x4c0e5
movq -0x130(%rbp), %rax
movq -0x138(%rbp), %rcx
movq 0x490(%rax), %rdx
movq 0x38(%rdx), %rdx
movslq -0x2c(%rbp), %rsi
movl (%rdx,%rsi,4), %edx
movl %edx, -0x34(%rbp)
movq 0xd8(%rcx), %rdi
movslq -0x30(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rdi
movl -0x34(%rbp), %esi
movl 0x48(%rax), %edx
movl 0x54(%rax), %ecx
movl 0x84(%rax), %r8d
imull 0x70(%rax), %r8d
imull 0x6c(%rax), %r8d
movl 0x84(%rax), %r10d
imull 0x70(%rax), %r10d
imull 0x6c(%rax), %r10d
movss 0x18c(%rax), %xmm0
movq 0x268(%rax), %rax
movslq -0x30(%rbp), %r9
shlq $0x2, %r9
addq %r9, %rax
movl $0x1, %r9d
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x30010
movl -0x34(%rbp), %eax
addl -0x30(%rbp), %eax
movl %eax, -0x30(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x4c026
jmp 0x4c1d0
movq -0x130(%rbp), %rax
cmpl $0x0, 0xf8(%rax)
je 0x4c1ce
movq -0x130(%rbp), %rsi
movl 0x100(%rsi), %edx
cmpl $0x0, 0x104(%rsi)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
addl %eax, %edx
xorl %eax, %eax
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
xorl %esi, %esi
movl %esi, %edi
callq 0x4db20
movq -0x130(%rbp), %rcx
movl %eax, %edx
movq -0x138(%rbp), %rax
movl %edx, -0x38(%rbp)
movq 0xd8(%rax), %rdi
movslq -0x38(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movl 0xfc(%rcx), %esi
addl 0x104(%rcx), %esi
movl 0x48(%rcx), %eax
imull 0x84(%rcx), %eax
movl %eax, -0x154(%rbp)
movl 0x54(%rcx), %eax
cltd
idivl 0x84(%rcx)
movl -0x154(%rbp), %edx
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl 0x70(%rax), %r8d
imull 0x6c(%rax), %r8d
movl 0x70(%rax), %r10d
imull 0x6c(%rax), %r10d
movq 0x268(%rax), %rax
movslq -0x38(%rbp), %r9
shlq $0x2, %r9
addq %r9, %rax
movl $0x1, %r9d
movss 0x24e4c(%rip), %xmm0    # 0x7100c
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x30010
jmp 0x4c1d0
movq -0x130(%rbp), %rcx
movq 0x260(%rcx), %rdi
movl 0x58(%rcx), %eax
imull 0x48(%rcx), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
xorl %esi, %esi
callq 0x3190
movq -0x138(%rbp), %rax
cmpl $0x0, 0xf8(%rax)
jne 0x4c208
jmp 0x4d33b
movq -0x130(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, -0x3c(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x44(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x48(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x4c(%rbp)
movl $0x0, -0x50(%rbp)
movl $0x0, -0x54(%rbp)
movq 0x1d8(%rax), %rax
xorps %xmm0, %xmm0
movss %xmm0, (%rax)
movl $0x0, -0x1c(%rbp)
movq -0x130(%rbp), %rcx
movl -0x1c(%rbp), %eax
cmpl 0x48(%rcx), %eax
jge 0x4d27e
movq -0x130(%rbp), %rax
cmpq $0x0, 0x490(%rax)
je 0x4c6b8
movl $0x0, -0x58(%rbp)
movl $0x0, -0x20(%rbp)
cmpl $0x1e, -0x20(%rbp)
jge 0x4c6ab
movq -0x130(%rbp), %rsi
movq -0x138(%rbp), %rax
movq 0xe0(%rax), %rax
movl -0x20(%rbp), %ecx
movl 0x68(%rsi), %edx
movl 0x100(%rsi), %esi
incl %esi
imull %esi, %ecx
movslq %ecx, %rcx
leaq (%rax,%rcx,4), %rax
movl -0x1c(%rbp), %ecx
imull %edx, %ecx
movslq %ecx, %rcx
leaq (%rax,%rcx,4), %rdi
movl $0x1, %esi
callq 0x44f70
movlpd %xmm0, -0x68(%rbp)
movlpd %xmm1, -0x60(%rbp)
movss -0x68(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x4c2fc
jp 0x4c2fc
jmp 0x4c6ab
movq -0x130(%rbp), %rdx
movq -0x138(%rbp), %rax
movq 0xe0(%rax), %rax
movl -0x20(%rbp), %ecx
movl 0x100(%rdx), %esi
addl $0x1, %esi
imull %esi, %ecx
movl -0x1c(%rbp), %esi
imull 0x68(%rdx), %esi
addl %esi, %ecx
addl 0x100(%rdx), %ecx
movslq %ecx, %rcx
cvttss2si (%rax,%rcx,4), %eax
movl %eax, -0x6c(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x70(%rbp)
movl $0x0, -0x74(%rbp)
movss -0x68(%rbp), %xmm0
movss 0x2923a(%rip), %xmm1    # 0x75590
ucomiss %xmm1, %xmm0
jbe 0x4c69b
movss -0x64(%rbp), %xmm0
movss 0x29224(%rip), %xmm1    # 0x75590
ucomiss %xmm1, %xmm0
jbe 0x4c69b
movl $0x0, -0x24(%rbp)
movq -0x130(%rbp), %rdx
movl -0x24(%rbp), %eax
movl 0x84(%rdx), %ecx
imull 0x70(%rdx), %ecx
imull 0x6c(%rdx), %ecx
cmpl %ecx, %eax
jge 0x4c4e5
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x164(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x168(%rbp)
movl 0x100(%rsi), %edx
addl $0x1, %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x168(%rbp), %esi
movl -0x164(%rbp), %edi
callq 0x4db20
movq -0x130(%rbp), %rsi
movl %eax, -0x78(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x15c(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x160(%rbp)
movl 0x100(%rsi), %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x160(%rbp), %esi
movl -0x15c(%rbp), %edi
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x7c(%rbp)
movq 0x268(%rax), %rcx
movslq -0x7c(%rbp), %rdx
movss (%rcx,%rdx,4), %xmm0
movss %xmm0, -0x80(%rbp)
movss 0x148(%rax), %xmm0
movq 0x268(%rax), %rcx
movslq -0x7c(%rbp), %rdx
xorps %xmm1, %xmm1
subss (%rcx,%rdx,4), %xmm1
mulss %xmm1, %xmm0
movq 0x260(%rax), %rcx
movslq -0x7c(%rbp), %rdx
movss %xmm0, (%rcx,%rdx,4)
movss -0x80(%rbp), %xmm0
movss %xmm0, -0x158(%rbp)
movq 0x268(%rax), %rdi
movslq -0x78(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rdi
movq 0x490(%rax), %rsi
movl -0x6c(%rbp), %edx
movl 0x70(%rax), %ecx
imull 0x6c(%rax), %ecx
callq 0x4ef50
movaps %xmm0, %xmm1
movss -0x158(%rbp), %xmm0
mulss %xmm1, %xmm0
movss %xmm0, -0x84(%rbp)
movss -0x84(%rbp), %xmm0
ucomiss -0x70(%rbp), %xmm0
jbe 0x4c4d5
movss -0x84(%rbp), %xmm0
movss %xmm0, -0x70(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x74(%rbp)
jmp 0x4c4d7
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x4c37c
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x174(%rbp)
movl -0x74(%rbp), %eax
movl %eax, -0x178(%rbp)
movl 0x100(%rsi), %edx
addl $0x1, %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x178(%rbp), %esi
movl -0x174(%rbp), %edi
callq 0x4db20
movq -0x130(%rbp), %rsi
movl %eax, -0x88(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x16c(%rbp)
movl -0x74(%rbp), %eax
movl %eax, -0x170(%rbp)
movl 0x100(%rsi), %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x170(%rbp), %esi
movl -0x16c(%rbp), %edi
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x8c(%rbp)
movq 0x268(%rax), %rdi
movq 0x260(%rax), %rsi
movl -0x88(%rbp), %edx
movl -0x6c(%rbp), %ecx
movl 0xfc(%rax), %r8d
movq 0x490(%rax), %r9
movss 0x150(%rax), %xmm0
movl 0x70(%rax), %r11d
imull 0x6c(%rax), %r11d
cmpl $0x0, 0xf8(%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
leaq -0x44(%rbp), %r10
movl %r11d, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
callq 0x4d830
movq -0x130(%rbp), %rax
movq 0x268(%rax), %rax
movslq -0x8c(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x28fa2(%rip), %xmm0    # 0x75598
ucomisd %xmm1, %xmm0
jbe 0x4c64f
movq -0x130(%rbp), %rax
movss 0x144(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movq 0x268(%rax), %rcx
movslq -0x8c(%rbp), %rdx
movss (%rcx,%rdx,4), %xmm1
cvtss2sd %xmm1, %xmm2
movsd 0x28f6a(%rip), %xmm1    # 0x75598
subsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movq 0x260(%rax), %rax
movslq -0x8c(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
jmp 0x4c66c
movq -0x130(%rbp), %rax
movq 0x260(%rax), %rax
movslq -0x8c(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
movq -0x130(%rbp), %rax
movq 0x260(%rax), %rax
movslq -0x8c(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
movl $0x1, -0x58(%rbp)
jmp 0x4c6ab
jmp 0x4c69d
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x4c290
cmpl $0x0, -0x58(%rbp)
je 0x4c6b6
jmp 0x4d270
jmp 0x4c6b8
movl $0x0, -0x18(%rbp)
movq -0x130(%rbp), %rcx
movl -0x18(%rbp), %eax
cmpl 0x6c(%rcx), %eax
jge 0x4cb15
movl $0x0, -0x14(%rbp)
movq -0x130(%rbp), %rcx
movl -0x14(%rbp), %eax
cmpl 0x70(%rcx), %eax
jge 0x4cb05
movl $0x0, -0x24(%rbp)
movq -0x130(%rbp), %rcx
movl -0x24(%rbp), %eax
cmpl 0x84(%rcx), %eax
jge 0x4caf5
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x17c(%rbp)
movl -0x24(%rbp), %eax
movl 0x6c(%rsi), %ecx
movl 0x70(%rsi), %edx
imull %edx, %eax
imull %ecx, %eax
movl -0x18(%rbp), %ecx
imull %edx, %ecx
addl %ecx, %eax
movl -0x14(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x180(%rbp)
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x180(%rbp), %esi
movl -0x17c(%rbp), %edi
xorl %edx, %edx
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x90(%rbp)
movq 0x268(%rax), %rdi
movq 0x230(%rax), %rsi
movl -0x24(%rbp), %edx
movl -0x90(%rbp), %ecx
movl -0x14(%rbp), %r8d
movl -0x18(%rbp), %r9d
movl 0x6c(%rax), %r11d
movl 0x70(%rax), %r10d
movl %r10d, %ebx
imull %r11d, %ebx
movq %rsp, %rax
movl %ebx, 0x10(%rax)
movl %r11d, 0x8(%rax)
movl %r10d, (%rax)
callq 0x4d440
movlpd %xmm0, -0xa0(%rbp)
movlpd %xmm1, -0x98(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xa4(%rbp)
movl $0x0, -0x20(%rbp)
cmpl $0x1e, -0x20(%rbp)
jge 0x4c89a
movq -0x130(%rbp), %rsi
movq -0x138(%rbp), %rax
movq 0xe0(%rax), %rax
movl -0x20(%rbp), %ecx
movl 0x68(%rsi), %edx
movl 0x100(%rsi), %esi
incl %esi
imull %esi, %ecx
movslq %ecx, %rcx
leaq (%rax,%rcx,4), %rax
movl -0x1c(%rbp), %ecx
imull %edx, %ecx
movslq %ecx, %rcx
leaq (%rax,%rcx,4), %rdi
movl $0x1, %esi
callq 0x44f70
movlpd %xmm0, -0xb4(%rbp)
movlpd %xmm1, -0xac(%rbp)
movss -0xb4(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x4c83c
jp 0x4c83c
jmp 0x4c89a
movsd -0xa0(%rbp), %xmm0
movsd -0x98(%rbp), %xmm1
movsd -0xb4(%rbp), %xmm2
movsd -0xac(%rbp), %xmm3
callq 0x44cd0
movss %xmm0, -0xb8(%rbp)
movss -0xb8(%rbp), %xmm0
ucomiss -0xa4(%rbp), %xmm0
jbe 0x4c88a
movss -0xb8(%rbp), %xmm0
movss %xmm0, -0xa4(%rbp)
jmp 0x4c88c
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x4c7ca
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x184(%rbp)
movl -0x24(%rbp), %eax
imull 0x70(%rsi), %eax
imull 0x6c(%rsi), %eax
movl -0x18(%rbp), %ecx
imull 0x70(%rsi), %ecx
addl %ecx, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x188(%rbp)
movl 0x100(%rsi), %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x188(%rbp), %esi
movl -0x184(%rbp), %edi
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0xbc(%rbp)
movq 0x268(%rax), %rcx
movslq -0xbc(%rbp), %rdx
movss (%rcx,%rdx,4), %xmm0
addss -0x4c(%rbp), %xmm0
movss %xmm0, -0x4c(%rbp)
movss 0x148(%rax), %xmm0
movq 0x268(%rax), %rcx
movslq -0xbc(%rbp), %rdx
xorps %xmm1, %xmm1
subss (%rcx,%rdx,4), %xmm1
mulss %xmm1, %xmm0
movq 0x260(%rax), %rcx
movslq -0xbc(%rbp), %rdx
movss %xmm0, (%rcx,%rdx,4)
cmpl $0x0, 0x104(%rax)
je 0x4c994
movq -0x130(%rbp), %rax
movss 0x148(%rax), %xmm0
movq 0x268(%rax), %rcx
movslq -0xbc(%rbp), %rdx
movss 0x24694(%rip), %xmm1    # 0x7100c
subss (%rcx,%rdx,4), %xmm1
mulss %xmm1, %xmm0
movq 0x260(%rax), %rax
movslq -0xbc(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
movq -0x130(%rbp), %rax
movss -0xa4(%rbp), %xmm0
ucomiss 0x164(%rax), %xmm0
jbe 0x4c9c9
movq -0x130(%rbp), %rax
movq 0x260(%rax), %rax
movslq -0xbc(%rbp), %rcx
xorps %xmm0, %xmm0
movss %xmm0, (%rax,%rcx,4)
movq -0x138(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x3200, (%rax)         # imm = 0x3200
jae 0x4cae5
movq -0x130(%rbp), %rax
xorps %xmm0, %xmm0
movaps %xmm0, -0xd0(%rbp)
cvtsi2sdl -0x14(%rbp), %xmm0
movsd 0x26449(%rip), %xmm1    # 0x72e48
addsd %xmm1, %xmm0
cvtsi2sdl 0x70(%rax), %xmm2
divsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xd0(%rbp)
cvtsi2sdl -0x18(%rbp), %xmm0
addsd %xmm1, %xmm0
cvtsi2sdl 0x6c(%rax), %xmm1
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xcc(%rbp)
movq 0x230(%rax), %rcx
movl -0x24(%rbp), %edx
addl %edx, %edx
movslq %edx, %rdx
movss (%rcx,%rdx,4), %xmm0
cvtsi2ssl 0x70(%rax), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0xc8(%rbp)
movq 0x230(%rax), %rcx
movl -0x24(%rbp), %edx
addl %edx, %edx
movslq %edx, %rdx
movss 0x4(%rcx,%rdx,4), %xmm0
cvtsi2ssl 0x6c(%rax), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0xc4(%rbp)
movq 0x268(%rax), %rdi
movq 0x230(%rax), %rsi
movl -0x24(%rbp), %edx
movl -0x90(%rbp), %ecx
movl -0x14(%rbp), %r8d
movl -0x18(%rbp), %r9d
movl 0x6c(%rax), %r11d
movl 0x70(%rax), %r10d
movq 0x260(%rax), %rbx
movl %r10d, %r14d
imull %r11d, %r14d
movsd -0xd0(%rbp), %xmm0
movsd -0xc8(%rbp), %xmm1
movq %rsp, %rax
movl %r14d, 0x18(%rax)
movq %rbx, 0x10(%rax)
movl %r11d, 0x8(%rax)
movl %r10d, (%rax)
movss 0x28a4c(%rip), %xmm2    # 0x7552c
callq 0x4d570
jmp 0x4cae7
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x4c6f3
jmp 0x4caf7
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x4c6d9
jmp 0x4cb07
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x4c6bf
movl $0x0, -0x20(%rbp)
cmpl $0x1e, -0x20(%rbp)
jge 0x4d26e
movq -0x130(%rbp), %rsi
movq -0x138(%rbp), %rax
movq 0xe0(%rax), %rax
movl -0x20(%rbp), %ecx
movl 0x68(%rsi), %edx
movl 0x100(%rsi), %esi
incl %esi
imull %esi, %ecx
movslq %ecx, %rcx
leaq (%rax,%rcx,4), %rax
movl -0x1c(%rbp), %ecx
imull %edx, %ecx
movslq %ecx, %rcx
leaq (%rax,%rcx,4), %rdi
movl $0x1, %esi
callq 0x44f70
movlpd %xmm0, -0xe0(%rbp)
movlpd %xmm1, -0xd8(%rbp)
movss -0xe0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x4cb91
jp 0x4cb91
jmp 0x4d26e
movq -0x130(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, -0xe4(%rbp)
movl $0x0, -0xe8(%rbp)
movss -0xe0(%rbp), %xmm0
cvtsi2ssl 0x70(%rax), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %ecx
movl %ecx, -0x14(%rbp)
movss -0xdc(%rbp), %xmm0
cvtsi2ssl 0x6c(%rax), %xmm1
mulss %xmm1, %xmm0
cvttss2si %xmm0, %eax
movl %eax, -0x18(%rbp)
movq -0xe0(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0xf0(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xf8(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0xf4(%rbp)
movl $0x0, -0x24(%rbp)
movq -0x130(%rbp), %rcx
movl -0x24(%rbp), %eax
cmpl 0x84(%rcx), %eax
jge 0x4cdba
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x18c(%rbp)
movl -0x24(%rbp), %eax
movl 0x6c(%rsi), %ecx
movl 0x70(%rsi), %edx
imull %edx, %eax
imull %ecx, %eax
movl -0x18(%rbp), %ecx
imull %edx, %ecx
addl %ecx, %eax
movl -0x14(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x190(%rbp)
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x190(%rbp), %esi
movl -0x18c(%rbp), %edi
xorl %edx, %edx
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0xfc(%rbp)
movq 0x268(%rax), %rdi
movq 0x230(%rax), %rsi
movl -0x24(%rbp), %edx
movl -0xfc(%rbp), %ecx
movl -0x14(%rbp), %r8d
movl -0x18(%rbp), %r9d
movl 0x6c(%rax), %r11d
movl 0x70(%rax), %r10d
movl %r10d, %ebx
imull %r11d, %ebx
movq %rsp, %rax
movl %ebx, 0x10(%rax)
movl %r11d, 0x8(%rax)
movl %r10d, (%rax)
callq 0x4d440
movq -0x130(%rbp), %rax
movlpd %xmm0, -0x10c(%rbp)
movlpd %xmm1, -0x104(%rbp)
cmpl $0x0, 0x154(%rax)
je 0x4cd3f
movq -0x130(%rbp), %rax
movq 0x230(%rax), %rcx
movl -0x24(%rbp), %edx
shll %edx
movslq %edx, %rdx
movss (%rcx,%rdx,4), %xmm0
cvtsi2ssl 0x70(%rax), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0x104(%rbp)
movq 0x230(%rax), %rcx
movl -0x24(%rbp), %edx
shll %edx
addl $0x1, %edx
movslq %edx, %rdx
movss (%rcx,%rdx,4), %xmm0
cvtsi2ssl 0x6c(%rax), %xmm1
divss %xmm1, %xmm0
movss %xmm0, -0x100(%rbp)
movl $0x0, -0x10c(%rbp)
movl $0x0, -0x108(%rbp)
movsd -0x10c(%rbp), %xmm0
movsd -0x104(%rbp), %xmm1
movsd -0xf8(%rbp), %xmm2
movsd -0xf0(%rbp), %xmm3
callq 0x44cd0
movss %xmm0, -0x110(%rbp)
movss -0x110(%rbp), %xmm0
ucomiss -0xe4(%rbp), %xmm0
jbe 0x4cdaa
movss -0x110(%rbp), %xmm0
movss %xmm0, -0xe4(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0xe8(%rbp)
jmp 0x4cdac
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x4cc16
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x194(%rbp)
movl -0xe8(%rbp), %eax
movl 0x6c(%rsi), %ecx
movl 0x70(%rsi), %edx
imull %edx, %eax
imull %ecx, %eax
movl -0x18(%rbp), %ecx
imull %edx, %ecx
addl %ecx, %eax
movl -0x14(%rbp), %ecx
addl %ecx, %eax
movl %eax, -0x198(%rbp)
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x198(%rbp), %esi
movl -0x194(%rbp), %edi
xorl %edx, %edx
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x114(%rbp)
movq 0x268(%rax), %rdi
movq 0x230(%rax), %rsi
movl -0xe8(%rbp), %edx
movl -0x114(%rbp), %ecx
movl -0x14(%rbp), %r8d
movl -0x18(%rbp), %r9d
movl 0x6c(%rax), %r11d
movl 0x70(%rax), %r10d
movq 0x260(%rax), %rbx
movss 0x140(%rax), %xmm2
movss -0xd8(%rbp), %xmm1
movss -0xd4(%rbp), %xmm0
mulss %xmm0, %xmm1
movss 0x2439f(%rip), %xmm0    # 0x71210
subss %xmm1, %xmm0
mulss %xmm0, %xmm2
movl %r10d, %r14d
imull %r11d, %r14d
movsd -0xe0(%rbp), %xmm0
movsd -0xd8(%rbp), %xmm1
movq %rsp, %rax
movl %r14d, 0x18(%rax)
movq %rbx, 0x10(%rax)
movl %r11d, 0x8(%rax)
movl %r10d, (%rax)
callq 0x4d570
movq -0x130(%rbp), %rax
movss %xmm0, -0x118(%rbp)
cmpl $0x4, 0x100(%rax)
jle 0x4cf95
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x19c(%rbp)
movl -0xe8(%rbp), %eax
imull 0x70(%rsi), %eax
imull 0x6c(%rsi), %eax
movl -0x18(%rbp), %ecx
imull 0x70(%rsi), %ecx
addl %ecx, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x1a0(%rbp)
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x1a0(%rbp), %esi
movl -0x19c(%rbp), %edi
movl $0x4, %edx
callq 0x4db20
movq -0x138(%rbp), %rcx
movl %eax, %edx
movq -0x130(%rbp), %rax
movl %edx, -0x11c(%rbp)
movq 0xe0(%rcx), %rdi
movl -0x20(%rbp), %ecx
movl 0x100(%rax), %edx
addl $0x1, %edx
imull %edx, %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rdi
movl -0x1c(%rbp), %ecx
imull 0x68(%rax), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rdi
addq $0x14, %rdi
movq 0x268(%rax), %rsi
movl 0x100(%rax), %edx
subl $0x4, %edx
movl -0x11c(%rbp), %ecx
movq 0x260(%rax), %r8
movl 0x70(%rax), %r9d
imull 0x6c(%rax), %r9d
cvttss2si 0x14c(%rax), %eax
movl %eax, (%rsp)
callq 0x4d7b0
movss -0x118(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x25e9f(%rip), %xmm1    # 0x72e48
ucomisd %xmm1, %xmm0
jbe 0x4cfc1
movss 0x24055(%rip), %xmm0    # 0x7100c
addss -0x40(%rbp), %xmm0
movss %xmm0, -0x40(%rbp)
movq -0x130(%rbp), %rsi
movss -0x118(%rbp), %xmm0
addss -0x3c(%rbp), %xmm0
movss %xmm0, -0x3c(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x1a4(%rbp)
movl -0xe8(%rbp), %eax
imull 0x70(%rsi), %eax
imull 0x6c(%rsi), %eax
movl -0x18(%rbp), %ecx
imull 0x70(%rsi), %ecx
addl %ecx, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x1a8(%rbp)
movl 0x100(%rsi), %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x1a8(%rbp), %esi
movl -0x1a4(%rbp), %edi
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x120(%rbp)
movq 0x268(%rax), %rcx
movslq -0x120(%rbp), %rdx
movss (%rcx,%rdx,4), %xmm0
addss -0x48(%rbp), %xmm0
movss %xmm0, -0x48(%rbp)
movss 0x144(%rax), %xmm0
movq 0x268(%rax), %rcx
movslq -0x120(%rbp), %rdx
movss 0x23f9d(%rip), %xmm1    # 0x7100c
subss (%rcx,%rdx,4), %xmm1
mulss %xmm1, %xmm0
movq 0x260(%rax), %rcx
movslq -0x120(%rbp), %rdx
movss %xmm0, (%rcx,%rdx,4)
cmpl $0x0, 0x108(%rax)
je 0x4d0d5
movq -0x130(%rbp), %rax
movss 0x144(%rax), %xmm0
movss -0x118(%rbp), %xmm1
movq 0x268(%rax), %rcx
movslq -0x120(%rbp), %rdx
subss (%rcx,%rdx,4), %xmm1
mulss %xmm1, %xmm0
movq 0x260(%rax), %rax
movslq -0x120(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
movq -0x130(%rbp), %rax
cmpl $0x0, 0x104(%rax)
je 0x4d121
movq -0x130(%rbp), %rax
movss 0x144(%rax), %xmm0
movq 0x268(%rax), %rcx
movslq -0x120(%rbp), %rdx
xorps %xmm1, %xmm1
subss (%rcx,%rdx,4), %xmm1
mulss %xmm1, %xmm0
movq 0x260(%rax), %rax
movslq -0x120(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
movq -0x130(%rbp), %rax
movq -0x138(%rbp), %rcx
movq 0xe0(%rcx), %rcx
movl -0x20(%rbp), %edx
movl 0x100(%rax), %esi
addl $0x1, %esi
imull %esi, %edx
movl -0x1c(%rbp), %esi
imull 0x68(%rax), %esi
addl %esi, %edx
addl 0x100(%rax), %edx
movslq %edx, %rdx
cvttss2si (%rcx,%rdx,4), %ecx
movl %ecx, -0x124(%rbp)
cmpq $0x0, 0x1b8(%rax)
je 0x4d18a
movq -0x130(%rbp), %rax
movq 0x1b8(%rax), %rax
movslq -0x124(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x124(%rbp)
movq -0x130(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x1ac(%rbp)
movl -0xe8(%rbp), %eax
imull 0x70(%rsi), %eax
imull 0x6c(%rsi), %eax
movl -0x18(%rbp), %ecx
imull 0x70(%rsi), %ecx
addl %ecx, %eax
addl -0x14(%rbp), %eax
movl %eax, -0x1b0(%rbp)
movl 0x100(%rsi), %edx
addl $0x1, %edx
movq %rsp, %rdi
movl $0x94, %ecx
rep  movsq (%rsi), %es:(%rdi)
movl -0x1b0(%rbp), %esi
movl -0x1ac(%rbp), %edi
callq 0x4db20
movl %eax, %ecx
movq -0x130(%rbp), %rax
movl %ecx, -0x128(%rbp)
movq 0x268(%rax), %rdi
movq 0x260(%rax), %rsi
movl -0x128(%rbp), %edx
movl -0x124(%rbp), %ecx
movl 0xfc(%rax), %r8d
movq 0x490(%rax), %r9
movss 0x150(%rax), %xmm0
movl 0x70(%rax), %r11d
imull 0x6c(%rax), %r11d
cmpl $0x0, 0xf8(%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
leaq -0x44(%rbp), %r10
movl %r11d, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
callq 0x4d830
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x4cb1c
jmp 0x4d270
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4c25a
movq -0x130(%rbp), %rax
movq 0x260(%rax), %rdi
movl 0x58(%rax), %esi
imull 0x48(%rax), %esi
callq 0x59b0
cvtss2sd %xmm0, %xmm0
movsd 0x23db4(%rip), %xmm1    # 0x71058
callq 0x30e0
movq -0x130(%rbp), %rcx
cvtsd2ss %xmm0, %xmm0
movq 0x1d8(%rcx), %rax
movss %xmm0, (%rax)
movss -0x3c(%rbp), %xmm0
cvtsi2ssl -0x50(%rbp), %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x44(%rbp), %xmm1
cvtsi2ssl -0x54(%rbp), %xmm2
divss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x48(%rbp), %xmm2
cvtsi2ssl -0x50(%rbp), %xmm3
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movss -0x4c(%rbp), %xmm3
movl 0x70(%rcx), %eax
imull 0x6c(%rcx), %eax
imull 0x84(%rcx), %eax
imull 0x48(%rcx), %eax
cvtsi2ss %eax, %xmm4
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movss -0x40(%rbp), %xmm4
cvtsi2ssl -0x50(%rbp), %xmm5
divss %xmm5, %xmm4
cvtss2sd %xmm4, %xmm4
movl -0x50(%rbp), %esi
leaq 0x28277(%rip), %rdi     # 0x755ab
movb $0x5, %al
callq 0x3130
addq $0x640, %rsp            # imm = 0x640
popq %rbx
popq %r14
popq %rbp
retq
nopw (%rax,%rax)