// File: /workspace/github_c_makefile_star2_O3/olcaytaner[P]Isell/savecode.c
// Function: generate_test_code_svm
void generate_test_code_svm(FILE* testcodefile, PROGRAMMING_LANGUAGE_TYPE language, Datasetptr d, char* algorithmname, Svm_modelptr m)
{
 /*!Last Changed 25.06.2006*/
 char st[MAXLENGTH], st2[MAXLENGTH], st3[MAXLENGTH];
 code_function_header(testcodefile, algorithmname, d->featurecount, language);
 code_constant_start(testcodefile, language);
	code_1d_array_constant_instance(testcodefile, language, d, "mean", d->multifeaturecount - 1, &mean);
	code_1d_array_constant_instance(testcodefile, language, d, "variance", d->multifeaturecount - 1, &variance);
 code_constant_real(testcodefile, language, "gamma", m->param.gamma);
 code_constant_real(testcodefile, language, "coef0", m->param.coef0);
 code_constant_integer(testcodefile, language, "degree", m->param.degree);
 code_2d_array_constant_sv(testcodefile, language, "sv", m->l, d->multifeaturecount - 1, m->SV);
	code_2d_array_constant(testcodefile, language, "sv_coef", d->classno, m->l, m->sv_coef);
 code_1d_array_constant(testcodefile, language, "nsv", d->classno, m->nSV, INTEGER_TYPE); 
 code_1d_array_constant(testcodefile, language, "rho", (int)(d->classno * (d->classno - 1) / 2), m->rho, REAL_TYPE); 
 code_variable_start(testcodefile, language); 
 code_add_array_variable(testcodefile, language, 5, REAL_VARIABLE, "kvalue", m->l, INTEGER_VARIABLE, "start", d->classno, REAL_VARIABLE, "dec_values", (int)(d->classno * (d->classno - 1) / 2), INTEGER_VARIABLE, "vote", d->classno, REAL_VARIABLE, "testdataconverted", d->multifeaturecount);
 code_add_variable(testcodefile, language, INTEGER_VARIABLE, 11, "i", "j", "k", "p", "si", "sj", "ci", "cj", "maxcount", "maxindex", "a");
 code_add_variable(testcodefile, language, REAL_VARIABLE, 7, "x_j", "sv_ij", "sum", "coef1", "kvalue_k", "coef2", "rho_p");
 code_start(testcodefile, language);
	code_realize(testcodefile, language, d, YES);
	code_for(testcodefile, language, "i", 0, m->l - 1, 1);
 code_array_index_variable(st, language, "kvalue", "i");  
	code_kernel_function(testcodefile, language, d, m->param);
	code_set_variable(testcodefile, language, st, "sum");
	code_endfor(testcodefile, language, "i");
 code_array_index_variable(st, language, "start", "0");  
	code_set_variable(testcodefile, language, st, "0");
	code_for(testcodefile, language, "i", 1, d->classno - 1, 1);
 code_array_index_variable(st, language, "start", "i");  
 code_array_index_variable(st2, language, "nsv", "i - 1");  
 code_array_index_variable(st3, language, "start", "i - 1");
	sprintf(st2, "%s + %s", st2, st3);
	code_set_variable(testcodefile, language, st, st2);
	code_endfor(testcodefile, language, "i");
	code_set_variable(testcodefile, language, "p", "0");
	code_for(testcodefile, language, "i", 0, d->classno - 1, 1);
	code_for(testcodefile, language, "j", 0, d->classno - 1, 1);
	code_if(testcodefile, language, ">", "j", "i");
	code_set_variable(testcodefile, language, "sum", "0.0");
 code_array_index_variable(st, language, "start", "i");  
	code_set_variable(testcodefile, language, "si", st);
 code_array_index_variable(st, language, "start", "j");  
	code_set_variable(testcodefile, language, "sj", st);
 code_array_index_variable(st, language, "nsv", "i");  
	code_set_variable(testcodefile, language, "ci", st);
 code_array_index_variable(st, language, "nsv", "j");  
	code_set_variable(testcodefile, language, "cj", st);
 code_for_with_string(testcodefile, language, "k", "0", "ci - 1", "1");
 code_2d_array_index_variable(st, language, "sv_coef", "j - 1", "si + k");
	code_set_variable(testcodefile, language, "coef1", st);
 code_array_index_variable(st, language, "kvalue", "si + k");  
	code_set_variable(testcodefile, language, "kvalue_k", st);
	code_set_variable(testcodefile, language, "sum", "sum + coef1 * kvalue_k");
	code_endfor(testcodefile, language, "k");
 code_for_with_string(testcodefile, language, "k", "0", "cj - 1", "1");
 code_2d_array_index_variable(st, language, "sv_coef", "i", "sj + k");
	code_set_variable(testcodefile, language, "coef2", st);
 code_array_index_variable(st, language, "kvalue", "sj + k");  
	code_set_variable(testcodefile, language, "kvalue_k", st);
	code_set_variable(testcodefile, language, "sum", "sum + coef2 * kvalue_k");
	code_endfor(testcodefile, language, "k");
 code_array_index_variable(st, language, "rho", "p");  
	code_set_variable(testcodefile, language, "rho_p", st);
	code_set_variable(testcodefile, language, "sum", "sum - rho_p");
 code_array_index_variable(st, language, "dec_values", "p");  
	code_set_variable(testcodefile, language, st, "sum");
	code_set_variable(testcodefile, language, "p", "p + 1");
	code_endif(testcodefile, language);
	code_endfor(testcodefile, language, "j");
	code_endfor(testcodefile, language, "i");
	code_array_initialize(testcodefile, language, "vote", (int)(d->classno * (d->classno - 1) / 2), "0");
	code_set_variable(testcodefile, language, "p", "0");
	code_for(testcodefile, language, "i", 0, d->classno - 1, 1);
	code_for(testcodefile, language, "j", 0, d->classno - 1, 1);
	code_if(testcodefile, language, ">", "j", "i");
 code_array_index_variable(st, language, "dec_values", "p");  
	code_if(testcodefile, language, ">", st, "0.0");
	code_increment(testcodefile, language, "vote", "i");
	code_else(testcodefile, language);
	code_increment(testcodefile, language, "vote", "j");
	code_endif(testcodefile, language);
	code_set_variable(testcodefile, language, "p", "p + 1");
	code_endif(testcodefile, language);
	code_endfor(testcodefile, language, "j");
	code_endfor(testcodefile, language, "i");
 code_find_bound_of_list(testcodefile, language, "vote", d->classno, "-1", "maxcount", "maxindex", ">");
 code_function_return_string(testcodefile, algorithmname, language, "maxindex");   
 code_function_end(testcodefile, language);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e84a8, %rsp         # imm = 0x1E84A8
movq %r8, %r13
movq %rdx, %r12
movl %esi, %ebx
movq %rdi, %r14
movl 0x1bc(%rdx), %edx
movq %rcx, 0x18(%rsp)
movq %rcx, %rsi
movl %ebx, %ecx
callq 0x7ce21
cmpl $0x2, %ebx
jne 0x865d5
leaq 0x29cda(%rip), %rdi     # 0xb029d
movl $0x6, %esi
movl $0x1, %edx
movq %r14, %rcx
callq 0x42c0
movl 0x1c0(%r12), %r8d
decl %r8d
leaq 0x2b2a4(%rip), %rcx     # 0xb188b
leaq 0x32b9ba(%rip), %r9     # 0x3b1fa8
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x7e724
movl 0x1c0(%r12), %r8d
decl %r8d
leaq 0x1fe17(%rip), %rcx     # 0xa6424
leaq 0x32b9c4(%rip), %r9     # 0x3b1fd8
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x7e724
movl %ebx, %ebp
leaq 0x4d6f6(%rip), %r15     # 0xd3d20
cmpl $0x5, %ebx
ja 0x8664a
movsd 0x10(%r13), %xmm0
movq (%r15,%rbp,8), %rsi
leaq 0x1f223(%rip), %rdx     # 0xa5863
movq %r14, %rdi
movb $0x1, %al
callq 0x42e0
cmpl $0x5, %ebx
ja 0x8666a
movsd 0x18(%r13), %xmm0
movq (%r15,%rbp,8), %rsi
leaq 0x1f1f0(%rip), %rdx     # 0xa5850
movq %r14, %rdi
movb $0x1, %al
callq 0x42e0
cmpl $0x5, %ebx
ja 0x8668f
movl 0x8(%r13), %ecx
leaq 0x4d6d6(%rip), %rax     # 0xd3d50
movq (%rax,%rbp,8), %rsi
leaq 0x1f1d4(%rip), %rdx     # 0xa5859
movq %r14, %rdi
xorl %eax, %eax
callq 0x42e0
movq %rbp, 0x8(%rsp)
movl 0x5c(%r13), %ecx
movl 0x1c0(%r12), %r8d
decl %r8d
movq 0x60(%r13), %r9
leaq 0x2a693(%rip), %rdx     # 0xb0d41
movq %r14, %rdi
movl %ebx, %esi
callq 0x7ec8b
movl 0x10(%r12), %ecx
movl 0x5c(%r13), %r8d
movq 0x68(%r13), %r9
leaq 0x2a66c(%rip), %rdx     # 0xb0d38
movq %r14, %rdi
movl %ebx, %esi
callq 0x7ea43
movl 0x10(%r12), %ecx
movq 0x78(%r13), %r8
leaq 0x2a65a(%rip), %rdx     # 0xb0d40
movq %r14, %rdi
movl %ebx, %esi
xorl %r9d, %r9d
callq 0x7e7f5
movl 0x10(%r12), %eax
leal -0x1(%rax), %edx
imull %eax, %edx
movl %edx, %ecx
shrl $0x1f, %ecx
addl %edx, %ecx
sarl %ecx
movq 0x70(%r13), %r8
leaq 0x2a6df(%rip), %rdx     # 0xb0df1
movq %r14, %rdi
movl %ebx, %esi
movl $0x1, %r9d
callq 0x7e7f5
cmpl $0x2, %ebx
jne 0x868c3
leaq 0x29bce(%rip), %rdi     # 0xb0300
movl $0x4, %esi
movl $0x1, %edx
movq %r14, %rcx
callq 0x42c0
movl 0x5c(%r13), %r9d
movl 0x10(%r12), %r10d
movl 0x1c0(%r12), %r15d
leal -0x1(%r10), %eax
imull %r10d, %eax
movl %eax, %r11d
shrl $0x1f, %r11d
addl %eax, %r11d
sarl %r11d
leaq 0x2a113(%rip), %rbp     # 0xb0884
leaq 0x2a5cc(%rip), %r8      # 0xb0d44
movq %r14, %rdi
movl $0x2, %esi
movl $0x5, %edx
movl $0x1, %ecx
movl $0x0, %eax
pushq %r15
pushq %rbp
movl $0x1, %ebp
pushq %rbp
pushq %r10
leaq 0x2a44a(%rip), %r15     # 0xb0beb
pushq %r15
movl $0x0, %r15d
pushq %r15
pushq %r11
leaq 0x2a597(%rip), %r11     # 0xb0d4b
pushq %r11
pushq %rbp
pushq %r10
leaq 0x20b07(%rip), %r10     # 0xa72c7
pushq %r10
pushq %r15
callq 0x7d384
addq $0x58, %rsp
leaq 0x216cc(%rip), %r10     # 0xa7ea0
leaq 0x2a2cf(%rip), %r11     # 0xb0aaa
leaq 0x2a3a3(%rip), %r15     # 0xb0b85
leaq 0x2a576(%rip), %rbp     # 0xb0d5f
leaq 0x2a4c9(%rip), %r8      # 0xb0cb9
leaq 0x2a1bd(%rip), %r9      # 0xb09b4
movq %r14, %rdi
movl $0x2, %esi
movl $0x0, %edx
movl $0xb, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r15
pushq %rbp
leaq 0x2a540(%rip), %r10     # 0xb0d5c
pushq %r10
leaq 0x2a534(%rip), %r10     # 0xb0d59
pushq %r10
leaq 0x2a528(%rip), %r10     # 0xb0d56
pushq %r10
leaq 0x2a593(%rip), %r10     # 0xb0dca
pushq %r10
leaq 0x2a542(%rip), %r10     # 0xb0d82
pushq %r10
callq 0x7d617
addq $0x48, %rsp
leaq 0x2a574(%rip), %r10     # 0xb0dc6
leaq 0x2a50f(%rip), %r11     # 0xb0d68
leaq 0x2a532(%rip), %r15     # 0xb0d92
leaq 0x2a4fb(%rip), %rbp     # 0xb0d62
leaq 0x2a15a(%rip), %r8      # 0xb09c8
leaq 0x2a1b7(%rip), %r9      # 0xb0a2c
movq %r14, %rdi
movl $0x2, %esi
movl $0x1, %edx
movl $0x7, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r15
pushq %rbp
leaq 0x2a413(%rip), %r10     # 0xb0cad
pushq %r10
callq 0x7d617
addq $0x30, %rsp
leaq 0x29864(%rip), %rdi     # 0xb0110
movl $0x6, %esi
movl $0x1, %edx
movq %r14, %rcx
callq 0x42c0
jmp 0x86a1b
movl 0x5c(%r13), %r9d
movl 0x10(%r12), %r10d
movl 0x1c0(%r12), %ebp
leal -0x1(%r10), %eax
imull %r10d, %eax
movl %eax, %r15d
shrl $0x1f, %r15d
addl %eax, %r15d
sarl %r15d
leaq 0x29f94(%rip), %r11     # 0xb0884
leaq 0x2a44d(%rip), %r8      # 0xb0d44
movq %r14, %rdi
movl %ebx, %esi
movl $0x5, %edx
movl $0x1, %ecx
movl $0x0, %eax
pushq %rbp
pushq %r11
movl $0x1, %ebp
pushq %rbp
pushq %r10
leaq 0x2a2ce(%rip), %r11     # 0xb0beb
pushq %r11
movl $0x0, %r11d
pushq %r11
pushq %r15
leaq 0x2a41b(%rip), %r15     # 0xb0d4b
pushq %r15
pushq %rbp
pushq %r10
leaq 0x2098b(%rip), %r10     # 0xa72c7
pushq %r10
pushq %r11
callq 0x7d384
addq $0x58, %rsp
leaq 0x21550(%rip), %r10     # 0xa7ea0
leaq 0x2a153(%rip), %r11     # 0xb0aaa
leaq 0x2a227(%rip), %r15     # 0xb0b85
leaq 0x2a3fa(%rip), %rbp     # 0xb0d5f
leaq 0x2a34d(%rip), %r8      # 0xb0cb9
leaq 0x2a041(%rip), %r9      # 0xb09b4
movq %r14, %rdi
movl %ebx, %esi
movl $0x0, %edx
movl $0xb, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r15
pushq %rbp
leaq 0x2a3c7(%rip), %r10     # 0xb0d5c
pushq %r10
leaq 0x2a3bb(%rip), %r10     # 0xb0d59
pushq %r10
leaq 0x2a3af(%rip), %r10     # 0xb0d56
pushq %r10
leaq 0x2a41a(%rip), %r10     # 0xb0dca
pushq %r10
leaq 0x2a3c9(%rip), %r10     # 0xb0d82
pushq %r10
callq 0x7d617
addq $0x48, %rsp
leaq 0x2a3fb(%rip), %r10     # 0xb0dc6
leaq 0x2a396(%rip), %r11     # 0xb0d68
leaq 0x2a3b9(%rip), %r15     # 0xb0d92
leaq 0x2a382(%rip), %rbp     # 0xb0d62
leaq 0x29fe1(%rip), %r8      # 0xb09c8
leaq 0x2a03e(%rip), %r9      # 0xb0a2c
movq %r14, %rdi
movl %ebx, %esi
movl $0x1, %edx
movl $0x7, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r15
pushq %rbp
leaq 0x2a29d(%rip), %r10     # 0xb0cad
pushq %r10
callq 0x7d617
addq $0x30, %rsp
incl 0x32b7c7(%rip)          # 0x3b21e8
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
movl $0x1, %ecx
callq 0x8050d
movl 0x5c(%r13), %r8d
decl %r8d
leaq 0x2a278(%rip), %rdx     # 0xb0cb9
movq %r14, %rdi
movl %ebx, %esi
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7e3dc
leaq 0x4d326(%rip), %rbp     # 0xd3d80
cmpl $0x5, %ebx
movq 0x8(%rsp), %r15
ja 0x86a83
movq (%rbp,%r15,8), %rsi
leaq 0x2a2d4(%rip), %rdx     # 0xb0d44
leaq 0x2a242(%rip), %rcx     # 0xb0cb9
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
subq $0x60, %rsp
movl $0xb, %ecx
movq %rsp, %rdi
movq %r13, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x80d7c
addq $0x60, %rsp
leaq 0x2a200(%rip), %rcx     # 0xb0cad
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
cmpl $0x5, %ebx
ja 0x86aea
movq (%rbp,%r15,8), %rsi
leaq 0x207f0(%rip), %rdx     # 0xa72c7
leaq 0x1f6cb(%rip), %rcx     # 0xa61a9
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x1f6b8(%rip), %rcx     # 0xa61a9
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
movl 0x10(%r12), %r8d
decl %r8d
leaq 0x2a1aa(%rip), %rdx     # 0xb0cb9
movq %r14, %rdi
movl %ebx, %esi
movl $0x1, %ecx
movl $0x1, %r9d
callq 0x7e3dc
cmpl $0x5, %ebx
ja 0x86c19
leaq 0x29850(%rip), %r13     # 0xb0384
movl $0xb, %eax
btl %ebx, %eax
movq %r13, %rsi
jb 0x86b52
movl $0x30, %eax
btl %ebx, %eax
jae 0x86bb1
leaq 0x29844(%rip), %rsi     # 0xb0396
leaq 0x2076e(%rip), %rdx     # 0xa72c7
leaq 0x2a159(%rip), %rcx     # 0xb0cb9
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
movl $0xb, %eax
btl %ebx, %eax
jb 0x86b87
movl $0x30, %eax
btl %ebx, %eax
jae 0x86bd2
leaq 0x2980f(%rip), %r13     # 0xb0396
leaq 0x2a1b2(%rip), %rdx     # 0xb0d40
leaq 0x2a1e2(%rip), %rcx     # 0xb0d77
leaq 0x7a140(%rsp), %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x41b0
movslq %ebx, %rax
movq (%rbp,%rax,8), %r13
jmp 0x86bf9
leaq 0x297d3(%rip), %rsi     # 0xb038b
leaq 0x20708(%rip), %rdx     # 0xa72c7
leaq 0x2a0f3(%rip), %rcx     # 0xb0cb9
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x297b2(%rip), %r13     # 0xb038b
leaq 0x2a160(%rip), %rdx     # 0xb0d40
leaq 0x2a190(%rip), %rcx     # 0xb0d77
leaq 0x7a140(%rsp), %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x41b0
leaq 0x206c7(%rip), %rdx     # 0xa72c7
leaq 0x2a170(%rip), %rcx     # 0xb0d77
leaq 0x16e380(%rsp), %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x41b0
leaq 0x2a14e(%rip), %rsi     # 0xb0d6e
leaq 0x7a140(%rsp), %r13
leaq 0x16e380(%rsp), %rcx
movq %r13, %rdi
movq %r13, %rdx
xorl %eax, %eax
callq 0x41b0
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rcx
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
leaq 0x2a16a(%rip), %rdx     # 0xb0dca
leaq 0x1f542(%rip), %rcx     # 0xa61a9
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
movl 0x10(%r12), %r8d
decl %r8d
leaq 0x2a039(%rip), %r13     # 0xb0cb9
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7e3dc
movl 0x10(%r12), %r8d
decl %r8d
leaq 0x29d10(%rip), %rbp     # 0xb09b4
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7e3dc
leaq 0x2a4ae(%rip), %rsi     # 0xb116e
leaq 0xf4260(%rsp), %r15
movl %ebx, %edi
movq %rbp, %rdx
leaq 0x4d0ac(%rip), %rbp     # 0xd3d80
movq %r13, %rcx
movq %r15, %r8
callq 0x7df46
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
callq 0x7e093
leaq 0x29fba(%rip), %rdx     # 0xb0cad
leaq 0x29f1b(%rip), %rcx     # 0xb0c15
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
cmpl $0x5, %ebx
movq 0x8(%rsp), %r13
ja 0x86d2d
movq (%rbp,%r13,8), %rsi
leaq 0x205ad(%rip), %rdx     # 0xa72c7
leaq 0x29f98(%rip), %rcx     # 0xb0cb9
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x2a022(%rip), %rdx     # 0xb0d56
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
cmpl $0x5, %ebx
ja 0x86d67
movq (%rbp,%r13,8), %rsi
leaq 0x20573(%rip), %rdx     # 0xa72c7
leaq 0x29c59(%rip), %rcx     # 0xb09b4
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29feb(%rip), %rdx     # 0xb0d59
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
cmpl $0x5, %ebx
ja 0x86da1
movq (%rbp,%r13,8), %rsi
leaq 0x29fb2(%rip), %rdx     # 0xb0d40
leaq 0x29f24(%rip), %rcx     # 0xb0cb9
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29fb4(%rip), %rdx     # 0xb0d5c
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
cmpl $0x5, %ebx
ja 0x86ddb
movq (%rbp,%r13,8), %rsi
leaq 0x29f78(%rip), %rdx     # 0xb0d40
leaq 0x29be5(%rip), %rcx     # 0xb09b4
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29f7d(%rip), %rdx     # 0xb0d5f
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
leaq 0x29f8a(%rip), %rdx     # 0xb0d82
leaq 0x1f3aa(%rip), %rcx     # 0xa61a9
leaq 0x29f70(%rip), %r8      # 0xb0d76
leaq 0x29bec(%rip), %r9      # 0xb09f9
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e52c
leaq 0x4ced2(%rip), %r15     # 0xd3cf0
cmpl $0x5, %ebx
ja 0x86e48
movq (%r15,%r13,8), %rsi
leaq 0x29f0a(%rip), %rdx     # 0xb0d38
leaq 0x29f67(%rip), %rcx     # 0xb0d9c
leaq 0x29f41(%rip), %r8      # 0xb0d7d
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29f13(%rip), %rdx     # 0xb0d62
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
cmpl $0x5, %ebx
ja 0x86e82
movq (%rbp,%r13,8), %rsi
leaq 0x29ed5(%rip), %rdx     # 0xb0d44
leaq 0x29f07(%rip), %rcx     # 0xb0d7d
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29f09(%rip), %rdx     # 0xb0d92
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
leaq 0x29e0e(%rip), %rdx     # 0xb0cad
leaq 0x29ede(%rip), %rcx     # 0xb0d84
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
leaq 0x29ec1(%rip), %rdx     # 0xb0d82
leaq 0x1f2e1(%rip), %rcx     # 0xa61a9
leaq 0x29ecc(%rip), %r8      # 0xb0d9b
leaq 0x29b23(%rip), %r9      # 0xb09f9
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e52c
cmpl $0x5, %ebx
ja 0x86f0a
movq (%r15,%r13,8), %rsi
leaq 0x29e48(%rip), %rdx     # 0xb0d38
leaq 0x29dc2(%rip), %rcx     # 0xb0cb9
leaq 0x29ea4(%rip), %r8      # 0xb0da2
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29e57(%rip), %rdx     # 0xb0d68
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
cmpl $0x5, %ebx
ja 0x86f44
movq (%rbp,%r13,8), %rsi
leaq 0x29e13(%rip), %rdx     # 0xb0d44
leaq 0x29e6a(%rip), %rcx     # 0xb0da2
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29e47(%rip), %rdx     # 0xb0d92
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
leaq 0x29d4c(%rip), %rdx     # 0xb0cad
leaq 0x29e41(%rip), %rcx     # 0xb0da9
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
cmpl $0x5, %ebx
ja 0x86fa0
movq (%rbp,%r13,8), %rsi
leaq 0x29e64(%rip), %rdx     # 0xb0df1
leaq 0x29e36(%rip), %rcx     # 0xb0dca
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29e1f(%rip), %rdx     # 0xb0dc6
leaq 0x20(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
leaq 0x29cf0(%rip), %rdx     # 0xb0cad
leaq 0x29dfc(%rip), %rcx     # 0xb0dc0
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
cmpl $0x5, %ebx
ja 0x86ff2
movq (%rbp,%r13,8), %rsi
leaq 0x29d6c(%rip), %rdx     # 0xb0d4b
leaq 0x29de4(%rip), %rcx     # 0xb0dca
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29cb4(%rip), %rcx     # 0xb0cad
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
leaq 0x29dbb(%rip), %r13     # 0xb0dca
leaq 0x29db6(%rip), %rcx     # 0xb0dcc
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e23a
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
movl 0x10(%r12), %eax
leal -0x1(%rax), %edx
imull %eax, %edx
movl %edx, %ecx
shrl $0x1f, %ecx
addl %edx, %ecx
sarl %ecx
leaq 0x29b8f(%rip), %rdx     # 0xb0beb
leaq 0x1f146(%rip), %r15     # 0xa61a9
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %r8
callq 0x7ee51
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
movq %r15, %rcx
callq 0x7d316
movl 0x10(%r12), %r8d
decl %r8d
leaq 0x29c2a(%rip), %r15     # 0xb0cb9
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7e3dc
movq %r12, 0x10(%rsp)
movl 0x10(%r12), %r8d
decl %r8d
leaq 0x298fc(%rip), %rbp     # 0xb09b4
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7e3dc
leaq 0x2a09a(%rip), %rsi     # 0xb116e
leaq 0xf4260(%rsp), %r13
movl %ebx, %edi
movq %rsi, %r12
movq %rbp, %rdx
movq %r15, %rcx
movq %r13, %r8
callq 0x7df46
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
callq 0x7e093
cmpl $0x5, %ebx
ja 0x8712b
movq 0x8(%rsp), %rax
leaq 0x4cc73(%rip), %rcx     # 0xd3d80
movq (%rcx,%rax,8), %rsi
leaq 0x29c33(%rip), %rdx     # 0xb0d4b
leaq 0x29cab(%rip), %rcx     # 0xb0dca
leaq 0x20(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
leaq 0x29ae3(%rip), %rcx     # 0xb0c15
leaq 0x20(%rsp), %rdx
leaq 0xf4260(%rsp), %r15
movl %ebx, %edi
movq %r12, %rsi
movq %r15, %r8
callq 0x7df46
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
callq 0x7e093
leaq 0x29a8b(%rip), %rbp     # 0xb0beb
leaq 0x29b52(%rip), %rcx     # 0xb0cb9
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rdx
callq 0x80495
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e1e3
leaq 0x2982f(%rip), %rcx     # 0xb09b4
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rdx
callq 0x80495
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e23a
leaq 0x29c27(%rip), %rdx     # 0xb0dca
leaq 0x29c22(%rip), %rcx     # 0xb0dcc
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e23a
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
movq 0x10(%rsp), %rax
movl 0x10(%rax), %ecx
leaq 0x298c9(%rip), %r15     # 0xb0aaa
leaq 0x25497(%rip), %r8      # 0xac67f
leaq 0x29996(%rip), %r9      # 0xb0b85
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rdx
pushq %r12
pushq %r15
callq 0x803e7
addq $0x10, %rsp
movq %r14, %rdi
movq 0x18(%rsp), %rsi
movl %ebx, %edx
movq %r15, %rcx
callq 0x7d912
movq %r14, %rdi
movl %ebx, %esi
callq 0x7db1b
addq $0x1e84a8, %rsp         # imm = 0x1E84A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq