// File: /workspace/github_c_makefile_star2_O1/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 $0x1e8498, %rsp         # imm = 0x1E8498
movq %r8, %r15
movq %rdx, %r12
movl %esi, %ebx
movq %rdi, %r14
movl 0x1bc(%rdx), %edx
movq %rcx, 0x8(%rsp)
movq %rcx, %rsi
movl %ebx, %ecx
callq 0x7b551
cmpl $0x2, %ebx
jne 0x83fa0
leaq 0x29277(%rip), %rdi     # 0xad205
movl $0x6, %esi
movl $0x1, %edx
movq %r14, %rcx
callq 0x42c0
movl 0x1c0(%r12), %r8d
decl %r8d
leaq 0x2a849(%rip), %rcx     # 0xae7fb
leaq 0x32afef(%rip), %r9     # 0x3aefa8
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x7cde7
movl 0x1c0(%r12), %r8d
decl %r8d
leaq 0x1f44c(%rip), %rcx     # 0xa3424
leaq 0x32aff9(%rip), %r9     # 0x3aefd8
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x7cde7
movsd 0x10(%r15), %xmm0
leaq 0x1e86a(%rip), %rdx     # 0xa2863
movq %r14, %rdi
movl %ebx, %esi
callq 0x7b9ed
movsd 0x18(%r15), %xmm0
leaq 0x1e840(%rip), %rdx     # 0xa2850
movq %r14, %rdi
movl %ebx, %esi
callq 0x7b9ed
movl 0x8(%r15), %ecx
leaq 0x1e834(%rip), %rdx     # 0xa2859
movq %r14, %rdi
movl %ebx, %esi
callq 0x7ba0a
movl 0x5c(%r15), %ecx
movl 0x1c0(%r12), %r8d
decl %r8d
movq 0x60(%r15), %r9
leaq 0x29c60(%rip), %rdx     # 0xadca9
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d2a8
movl 0x10(%r12), %ecx
movl 0x5c(%r15), %r8d
movq 0x68(%r15), %r9
leaq 0x29c39(%rip), %rdx     # 0xadca0
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d0d5
movl 0x10(%r12), %ecx
movq 0x78(%r15), %r8
leaq 0x29c27(%rip), %rdx     # 0xadca8
movq %r14, %rdi
movl %ebx, %esi
xorl %r9d, %r9d
callq 0x7ceb8
movl 0x10(%r12), %eax
leal -0x1(%rax), %edx
imull %eax, %edx
movl %edx, %ecx
shrl $0x1f, %ecx
addl %edx, %ecx
sarl %ecx
movq 0x70(%r15), %r8
leaq 0x29cac(%rip), %rdx     # 0xadd59
movq %r14, %rdi
movl %ebx, %esi
movl $0x1, %r9d
callq 0x7ceb8
cmpl $0x2, %ebx
movq %r12, (%rsp)
jne 0x84258
leaq 0x29197(%rip), %rdi     # 0xad268
movl $0x4, %esi
movl $0x1, %edx
movq %r14, %rcx
callq 0x42c0
movl 0x5c(%r15), %r9d
movl 0x10(%r12), %r10d
movl 0x1c0(%r12), %r12d
leal -0x1(%r10), %eax
imull %r10d, %eax
movl %eax, %ebp
shrl $0x1f, %ebp
addl %eax, %ebp
sarl %ebp
leaq 0x296e0(%rip), %r11     # 0xad7ec
leaq 0x29a40(%rip), %r13     # 0xadb53
leaq 0x29b92(%rip), %r8      # 0xadcac
movq %r14, %rdi
movl %ebx, %esi
movl $0x5, %edx
movl $0x1, %ecx
movl $0x0, %eax
pushq %r12
pushq %r11
movl $0x1, %r12d
pushq %r12
pushq %r10
pushq %r13
movl $0x0, %r11d
pushq %r11
pushq %rbp
leaq 0x29b65(%rip), %r13     # 0xadcb3
pushq %r13
pushq %r12
pushq %r10
leaq 0x2012a(%rip), %r10     # 0xa4285
pushq %r10
pushq %r11
callq 0x7bab4
addq $0x58, %rsp
leaq 0x20cd9(%rip), %r10     # 0xa4e48
leaq 0x2989c(%rip), %r11     # 0xada12
leaq 0x29970(%rip), %r12     # 0xadaed
leaq 0x29b43(%rip), %r13     # 0xadcc7
leaq 0x29b39(%rip), %rbp     # 0xadcc4
leaq 0x29a8f(%rip), %r8      # 0xadc21
leaq 0x29783(%rip), %r9      # 0xad91c
movq %r14, %rdi
movl %ebx, %esi
movl $0x0, %edx
movl $0xb, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r12
pushq %r13
pushq %rbp
leaq 0x29b04(%rip), %r10     # 0xadcc1
pushq %r10
leaq 0x29af8(%rip), %r10     # 0xadcbe
pushq %r10
leaq 0x29b63(%rip), %r10     # 0xadd32
pushq %r10
leaq 0x29b12(%rip), %r10     # 0xadcea
pushq %r10
callq 0x7bd1c
addq $0x48, %rsp
leaq 0x29b44(%rip), %r10     # 0xadd2e
leaq 0x29adf(%rip), %r11     # 0xadcd0
leaq 0x29b02(%rip), %r12     # 0xadcfa
leaq 0x29acb(%rip), %r13     # 0xadcca
leaq 0x29a0f(%rip), %rbp     # 0xadc15
leaq 0x29723(%rip), %r8      # 0xad930
leaq 0x29780(%rip), %r9      # 0xad994
movq %r14, %rdi
movl %ebx, %esi
movl $0x1, %edx
movl $0x7, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r12
pushq %r13
pushq %rbp
callq 0x7bd1c
addq $0x30, %rsp
leaq 0x28e37(%rip), %rdi     # 0xad078
movl $0x6, %esi
movl $0x1, %edx
movq %r14, %rcx
callq 0x42c0
jmp 0x843af
movl 0x5c(%r15), %r9d
movl 0x10(%r12), %r10d
movl 0x1c0(%r12), %r12d
leal -0x1(%r10), %eax
imull %r10d, %eax
movl %eax, %ebp
shrl $0x1f, %ebp
addl %eax, %ebp
sarl %ebp
leaq 0x2956b(%rip), %r13     # 0xad7ec
leaq 0x298cb(%rip), %r11     # 0xadb53
leaq 0x29a1d(%rip), %r8      # 0xadcac
movq %r14, %rdi
movl %ebx, %esi
movl $0x5, %edx
movl $0x1, %ecx
movl $0x0, %eax
pushq %r12
pushq %r13
movl $0x1, %r12d
pushq %r12
pushq %r10
pushq %r11
movl $0x0, %r11d
pushq %r11
pushq %rbp
leaq 0x299f0(%rip), %r13     # 0xadcb3
pushq %r13
pushq %r12
pushq %r10
leaq 0x1ffb5(%rip), %r10     # 0xa4285
pushq %r10
pushq %r11
callq 0x7bab4
addq $0x58, %rsp
leaq 0x20b64(%rip), %r10     # 0xa4e48
leaq 0x29727(%rip), %r11     # 0xada12
leaq 0x297fb(%rip), %r12     # 0xadaed
leaq 0x299ce(%rip), %r13     # 0xadcc7
leaq 0x299c4(%rip), %rbp     # 0xadcc4
leaq 0x2991a(%rip), %r8      # 0xadc21
leaq 0x2960e(%rip), %r9      # 0xad91c
movq %r14, %rdi
movl %ebx, %esi
movl $0x0, %edx
movl $0xb, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r12
pushq %r13
pushq %rbp
leaq 0x2998f(%rip), %r10     # 0xadcc1
pushq %r10
leaq 0x29983(%rip), %r10     # 0xadcbe
pushq %r10
leaq 0x299ee(%rip), %r10     # 0xadd32
pushq %r10
leaq 0x2999d(%rip), %r10     # 0xadcea
pushq %r10
callq 0x7bd1c
addq $0x48, %rsp
leaq 0x299cf(%rip), %r10     # 0xadd2e
leaq 0x2996a(%rip), %r11     # 0xadcd0
leaq 0x2998d(%rip), %r12     # 0xadcfa
leaq 0x29956(%rip), %r13     # 0xadcca
leaq 0x2989a(%rip), %rbp     # 0xadc15
leaq 0x295ae(%rip), %r8      # 0xad930
leaq 0x2960b(%rip), %r9      # 0xad994
movq %r14, %rdi
movl %ebx, %esi
movl $0x1, %edx
movl $0x7, %ecx
movl $0x0, %eax
pushq %r10
pushq %r11
pushq %r12
pushq %r13
pushq %rbp
callq 0x7bd1c
addq $0x30, %rsp
incl 0x32ae33(%rip)          # 0x3af1e8
movq %r14, %rdi
movl %ebx, %esi
movq (%rsp), %rdx
movq %rdx, %rbp
movl $0x1, %ecx
callq 0x7e795
movl 0x5c(%r15), %r8d
decl %r8d
leaq 0x29848(%rip), %r12     # 0xadc21
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7ca9f
leaq 0x298b7(%rip), %rdx     # 0xadcac
leaq 0x10(%rsp), %r13
movq %r13, %rdi
movl %ebx, %esi
movq %r12, %rcx
callq 0x7c24c
subq $0x60, %rsp
movl $0xb, %ecx
movq %rsp, %rdi
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rdx
callq 0x7ee1f
addq $0x60, %rsp
leaq 0x297e4(%rip), %rcx     # 0xadc15
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
callq 0x7ba46
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
leaq 0x1fe36(%rip), %r12     # 0xa4285
leaq 0x1ed53(%rip), %r15     # 0xa31a9
movq %r13, %rdi
movl %ebx, %esi
movq %r12, %rdx
movq %r15, %rcx
callq 0x7c24c
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
movq %r15, %rcx
callq 0x7ba46
movl 0x10(%rbp), %r8d
decl %r8d
movq %r14, %rdi
movl %ebx, %esi
leaq 0x29798(%rip), %r15     # 0xadc21
movq %r15, %rdx
movl $0x1, %ecx
movl $0x1, %r9d
callq 0x7ca9f
movq %r13, %rdi
movl %ebx, %esi
movq %r12, %rdx
movq %r12, %rbp
movq %r15, %rcx
callq 0x7c24c
leaq 0x297f2(%rip), %rdx     # 0xadca8
leaq 0x29822(%rip), %r13     # 0xadcdf
leaq 0x16e370(%rsp), %r15
movq %r15, %rdi
movl %ebx, %esi
movq %r13, %rcx
callq 0x7c24c
leaq 0xf4250(%rsp), %r12
movq %r12, %rdi
movl %ebx, %esi
movq %rbp, %rdx
movq %r13, %rcx
callq 0x7c24c
leaq 0x297e5(%rip), %rsi     # 0xadcd6
movq %r15, %rdi
movq %r15, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x41b0
movq %r14, %rdi
movl %ebx, %esi
leaq 0x10(%rsp), %rdx
movq %r15, %rcx
callq 0x7ba46
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
leaq 0x2980e(%rip), %rdx     # 0xadd32
movq %r14, %rdi
movl %ebx, %esi
leaq 0x1ec79(%rip), %rcx     # 0xa31a9
callq 0x7ba46
movq (%rsp), %r15
movl 0x10(%r15), %r8d
decl %r8d
movq %r14, %rdi
movl %ebx, %esi
leaq 0x296d5(%rip), %r12     # 0xadc21
movq %r12, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7ca9f
movl 0x10(%r15), %r8d
decl %r8d
leaq 0x293b2(%rip), %r13     # 0xad91c
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7ca9f
leaq 0x29b50(%rip), %rsi     # 0xae0d6
leaq 0x7a130(%rsp), %r15
movl %ebx, %edi
movq %r13, %rdx
movq %r12, %rcx
movq %r15, %r8
callq 0x7c601
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
callq 0x7c75c
leaq 0x295cb(%rip), %rcx     # 0xadb7d
movq %r14, %rdi
movl %ebx, %esi
leaq 0x29657(%rip), %rdx     # 0xadc15
callq 0x7ba46
leaq 0x10(%rsp), %rbp
movq %rbp, %rdi
movl %ebx, %esi
leaq 0x1fcb1(%rip), %r15     # 0xa4285
movq %r15, %rdx
movq %r12, %rcx
callq 0x7c24c
leaq 0x296d8(%rip), %rdx     # 0xadcbe
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rcx
callq 0x7ba46
movq %rbp, %rdi
movl %ebx, %esi
movq %r15, %rdx
movq %r13, %rcx
callq 0x7c24c
leaq 0x296b7(%rip), %rdx     # 0xadcc1
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rcx
callq 0x7ba46
movq %rbp, %rdi
movl %ebx, %esi
leaq 0x29685(%rip), %r12     # 0xadca8
movq %r12, %rdx
leaq 0x295f4(%rip), %rcx     # 0xadc21
callq 0x7c24c
leaq 0x2968b(%rip), %rdx     # 0xadcc4
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rcx
callq 0x7ba46
movq %rbp, %rdi
movq %rbp, %r15
movl %ebx, %esi
movq %r12, %rdx
movq %r13, %rcx
callq 0x7c24c
leaq 0x29667(%rip), %rdx     # 0xadcc7
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rcx
callq 0x7ba46
leaq 0x29676(%rip), %rdx     # 0xadcea
leaq 0x29663(%rip), %r8      # 0xadcde
leaq 0x292df(%rip), %r9      # 0xad961
movq %r14, %rdi
movl %ebx, %esi
leaq 0x1eb1b(%rip), %rbp     # 0xa31a9
movq %rbp, %rcx
callq 0x7cbef
leaq 0x29603(%rip), %rdx     # 0xadca0
leaq 0x29660(%rip), %rcx     # 0xadd04
leaq 0x2963a(%rip), %r12     # 0xadce5
movq %r15, %rdi
movl %ebx, %esi
movq %r12, %r8
callq 0x7c269
leaq 0x2960b(%rip), %rdx     # 0xadcca
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rcx
callq 0x7ba46
movq %r15, %rdi
movl %ebx, %esi
leaq 0x295d4(%rip), %rdx     # 0xadcac
movq %r12, %rcx
callq 0x7c24c
leaq 0x29613(%rip), %rdx     # 0xadcfa
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rcx
movq %r15, %r13
callq 0x7ba46
leaq 0x295ee(%rip), %rcx     # 0xadcec
movq %r14, %rdi
movl %ebx, %esi
leaq 0x2950b(%rip), %r15     # 0xadc15
movq %r15, %rdx
callq 0x7ba46
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
leaq 0x295e0(%rip), %r8      # 0xadd03
movq %r14, %rdi
movl %ebx, %esi
leaq 0x295bb(%rip), %rdx     # 0xadcea
movq %rbp, %rcx
leaq 0x29228(%rip), %r9      # 0xad961
callq 0x7cbef
leaq 0x295c5(%rip), %r12     # 0xadd0a
movq %r13, %rdi
movl %ebx, %esi
leaq 0x2954f(%rip), %rdx     # 0xadca0
leaq 0x294c9(%rip), %rbp     # 0xadc21
movq %rbp, %rcx
movq %r12, %r8
callq 0x7c269
leaq 0x29566(%rip), %rdx     # 0xadcd0
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rcx
callq 0x7ba46
movq %r13, %rdi
movl %ebx, %esi
leaq 0x29529(%rip), %rdx     # 0xadcac
movq %r12, %rcx
callq 0x7c24c
movq %r14, %rdi
movl %ebx, %esi
leaq 0x29563(%rip), %rdx     # 0xadcfa
movq %r13, %rcx
callq 0x7ba46
leaq 0x2956b(%rip), %rcx     # 0xadd11
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
movq %r15, %r12
callq 0x7ba46
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
leaq 0x29592(%rip), %rdx     # 0xadd59
movq %r13, %rdi
movl %ebx, %esi
leaq 0x2955f(%rip), %r15     # 0xadd32
movq %r15, %rcx
callq 0x7c24c
leaq 0x2954c(%rip), %rdx     # 0xadd2e
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rcx
callq 0x7ba46
leaq 0x29532(%rip), %rcx     # 0xadd28
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x7ba46
leaq 0x294a9(%rip), %rdx     # 0xadcb3
movq %r13, %rdi
movl %ebx, %esi
movq %r15, %rcx
callq 0x7c24c
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
movq %r12, %rcx
callq 0x7ba46
leaq 0x29506(%rip), %rcx     # 0xadd34
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
movq %r15, %r13
callq 0x7ba46
movq %r14, %rdi
movl %ebx, %esi
callq 0x7c903
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
movq (%rsp), %r15
movl 0x10(%r15), %eax
leal -0x1(%rax), %edx
imull %eax, %edx
movl %edx, %ecx
shrl $0x1f, %ecx
addl %edx, %ecx
sarl %ecx
leaq 0x292d9(%rip), %rdx     # 0xadb53
movq %r14, %rdi
movl %ebx, %esi
leaq 0x1e923(%rip), %r12     # 0xa31a9
movq %r12, %r8
callq 0x7d402
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
movq %r12, %rcx
callq 0x7ba46
movl 0x10(%r15), %r8d
decl %r8d
movq %r14, %rdi
movl %ebx, %esi
movq %rbp, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7ca9f
movl 0x10(%r15), %r8d
decl %r8d
movq %r14, %rdi
movl %ebx, %esi
leaq 0x2904f(%rip), %r15     # 0xad91c
movq %r15, %rdx
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7ca9f
leaq 0x7a130(%rsp), %r12
movl %ebx, %edi
leaq 0x297e8(%rip), %rbp     # 0xae0d6
movq %rbp, %rsi
movq %r15, %rdx
leaq 0x29326(%rip), %rcx     # 0xadc21
movq %r12, %r8
callq 0x7c601
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x7c75c
leaq 0x10(%rsp), %r13
movq %r13, %rdi
movl %ebx, %esi
leaq 0x29392(%rip), %rdx     # 0xadcb3
leaq 0x2940a(%rip), %r15     # 0xadd32
movq %r15, %rcx
callq 0x7c24c
leaq 0x7a130(%rsp), %r12
movl %ebx, %edi
movq %rbp, %rsi
movq %r13, %rdx
leaq 0x29236(%rip), %rcx     # 0xadb7d
movq %r12, %r8
callq 0x7c601
movq %r14, %rdi
movl %ebx, %esi
movq %r12, %rdx
callq 0x7c75c
movq %r14, %rdi
movl %ebx, %esi
leaq 0x291eb(%rip), %r13     # 0xadb53
movq %r13, %rdx
leaq 0x292af(%rip), %rcx     # 0xadc21
callq 0x7e731
movq %r14, %rdi
movl %ebx, %esi
callq 0x7c8ac
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
leaq 0x28f8c(%rip), %rcx     # 0xad91c
callq 0x7e731
movq %r14, %rdi
movl %ebx, %esi
callq 0x7c903
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
leaq 0x29386(%rip), %rcx     # 0xadd34
callq 0x7ba46
movq %r14, %rdi
movl %ebx, %esi
callq 0x7c903
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
movq %r14, %rdi
movl %ebx, %esi
callq 0x7cd49
movq (%rsp), %rax
movl 0x10(%rax), %ecx
leaq 0x29033(%rip), %r12     # 0xada12
leaq 0x24bcd(%rip), %r8      # 0xa95b3
leaq 0x29100(%rip), %r9      # 0xadaed
movq %r14, %rdi
movl %ebx, %esi
movq %r13, %rdx
pushq %rbp
pushq %r12
callq 0x7e698
addq $0x10, %rsp
movq %r14, %rdi
movq 0x8(%rsp), %rsi
movl %ebx, %edx
movq %r12, %rcx
callq 0x7bffb
movq %r14, %rdi
movl %ebx, %esi
callq 0x7c1ca
addq $0x1e8498, %rsp         # imm = 0x1E8498
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq