// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/poly.c
// Function: plus_minus_token_list
char** plus_minus_token_list(char* st, int* tokencount)
{
	/*!Last Changed 19.01.2005*/
 int i = 0, j, k, len = strlen(st), parcount = 0, pos = 0, add, minus = 0, linelength;
 char line[READLINELENGTH], **tokenlist = NULL;
	*tokencount = 0;
 while (i < len)
	 {
		 add = 0;
		 if (st[i] == '(')
			 {
				 parcount++;
					add = 1;
			 }
			else
				 if (st[i] == ')')
					 {
						 parcount--;
							add = 1;
					 }
					else
						 if (st[i] == '+' || st[i] == '-')
								 if (parcount == 0)
									 {
											tokenlist = alloc(tokenlist, ((*tokencount) + 1) * sizeof(char *), (*tokencount) + 1);
											linelength = strlen(line);
  									tokenlist[*tokencount] = safemalloc(sizeof(char) * (linelength + minus + 1), "plus_minus_token_list", 24);
           for (j = 0; j < minus; j++)
											  tokenlist[*tokencount][j] = '-';
											for (j = minus, k = 0; j < linelength + minus; j++, k++)
												 tokenlist[*tokencount][j] = line[k];
           tokenlist[*tokencount][j] = '\0';
										 (*tokencount)++;
											if (st[i] == '-')
												 minus = 1;
											else
												 minus = 0;
											pos = 0;
									 }
									else
									  add = 1;
							else
							  add = 1;
			if (add)
			 {
					line[pos] = st[i];
					pos++;
					line[pos] = '\0';
			 }
		 i++;
	 }
	if (pos != 0)
	 {
			tokenlist = alloc(tokenlist, ((*tokencount) + 1) * sizeof(char *), (*tokencount) + 1);
			linelength = strlen(line);
  	tokenlist[*tokencount] = safemalloc(sizeof(char) * (linelength + minus + 1), "plus_minus_token_list", 53);
   for (j = 0; j < minus; j++)
					tokenlist[*tokencount][j] = '-';
			for (j = minus, k = 0; j < linelength + minus; j++, k++)
					tokenlist[*tokencount][j] = line[k];
   tokenlist[*tokencount][j] = '\0';
			(*tokencount)++;
	 }
	return tokenlist;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7a170, %rsp          # imm = 0x7A170
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x4150
movl %eax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl $0x0, -0x28(%rbp)
movl $0x0, -0x30(%rbp)
movq $0x0, -0x7a168(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, (%rax)
movl -0x14(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x81c78
movl $0x0, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x28, %eax
jne 0x81a89
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x81c39
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x29, %eax
jne 0x81aaf
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x81c37
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2b, %eax
je 0x81ad5
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2d, %eax
jne 0x81c2e
cmpl $0x0, -0x24(%rbp)
jne 0x81c25
movq -0x7a168(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %eax
addl $0x1, %eax
movslq %eax, %rsi
shlq $0x3, %rsi
movq -0x10(%rbp), %rax
movl (%rax), %edx
addl $0x1, %edx
callq 0x52d10
movq %rax, -0x7a168(%rbp)
leaq -0x7a160(%rbp), %rdi
callq 0x4150
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
addl -0x30(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x0, %rdi
leaq 0x65ceb(%rip), %rsi     # 0xe781c
movl $0x18, %edx
callq 0x52d70
movq %rax, %rdx
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x81b84
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movb $0x2d, (%rax,%rcx)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x81b57
movl -0x30(%rbp), %eax
movl %eax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
addl -0x30(%rbp), %ecx
cmpl %ecx, %eax
jge 0x81bd6
movslq -0x1c(%rbp), %rax
movb -0x7a160(%rbp,%rax), %dl
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x81b91
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2d, %eax
jne 0x81c15
movl $0x1, -0x30(%rbp)
jmp 0x81c1c
movl $0x0, -0x30(%rbp)
movl $0x0, -0x28(%rbp)
jmp 0x81c2c
movl $0x1, -0x2c(%rbp)
jmp 0x81c35
movl $0x1, -0x2c(%rbp)
jmp 0x81c37
jmp 0x81c39
cmpl $0x0, -0x2c(%rbp)
je 0x81c6a
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movb (%rax,%rcx), %cl
movslq -0x28(%rbp), %rax
movb %cl, -0x7a160(%rbp,%rax)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
movslq -0x28(%rbp), %rax
movb $0x0, -0x7a160(%rbp,%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x81a50
cmpl $0x0, -0x28(%rbp)
je 0x81d9e
movq -0x7a168(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %eax
addl $0x1, %eax
movslq %eax, %rsi
shlq $0x3, %rsi
movq -0x10(%rbp), %rax
movl (%rax), %edx
addl $0x1, %edx
callq 0x52d10
movq %rax, -0x7a168(%rbp)
leaq -0x7a160(%rbp), %rdi
callq 0x4150
movl %eax, -0x34(%rbp)
movl -0x34(%rbp), %eax
addl -0x30(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x0, %rdi
leaq 0x65b48(%rip), %rsi     # 0xe781c
movl $0x35, %edx
callq 0x52d70
movq %rax, %rdx
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x30(%rbp), %eax
jge 0x81d27
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movb $0x2d, (%rax,%rcx)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x81cfa
movl -0x30(%rbp), %eax
movl %eax, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x18(%rbp), %eax
movl -0x34(%rbp), %ecx
addl -0x30(%rbp), %ecx
cmpl %ecx, %eax
jge 0x81d79
movslq -0x1c(%rbp), %rax
movb -0x7a160(%rbp,%rax), %dl
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x81d34
movq -0x7a168(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq -0x7a168(%rbp), %rax
addq $0x7a170, %rsp          # imm = 0x7A170
popq %rbp
retq
nop