// File: superyuan[P]refeditor/CLineFields1.cpp
// Function: pileupLongStr2Info(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, char, std::map<char, int, std::less<char>, std::allocator<std::pair<char const, int>>>&)
void pileupLongStr2Info(string &s, char base, map<char,int>& pileupInfo)
{
	int value;
	int i = 0;
	initPileupInfo(pileupInfo);
	while (i<(int)s.length()) {
		char L = toupper(s[i]);
		if (L=='A' || L=='C' || L=='G' || L=='T' || L=='N')
			pileupInfo[L] += 1;
		else if (L=='.' || L==',')
			pileupInfo[base] += 1;
		else if (L=='+' || L=='-') {
			i ++;
			value = substr2int(s, i);
			i += value-1;
		}
		else if (L=='^')
			i += 1;
		else if (L=='<' || s[i]=='>'|| L=='*')
			pileupInfo['N'] += 1;
		else if (L=='$')
			;
		else {
			cout << "unexpected letter " << s[i];
			exit(-1);
		}
		i += 1;
	}

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x0, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x9490
movl -0x20(%rbp), %eax
movl %eax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0x33c0
movq %rax, %rcx
movl -0x28(%rbp), %eax
cmpl %ecx, %eax
jge 0x982d
movq -0x8(%rbp), %rdi
movslq -0x20(%rbp), %rsi
callq 0x34f0
movsbl (%rax), %edi
callq 0x34c0
movb %al, -0x21(%rbp)
movsbl -0x21(%rbp), %eax
cmpl $0x41, %eax
je 0x96f8
movsbl -0x21(%rbp), %eax
cmpl $0x43, %eax
je 0x96f8
movsbl -0x21(%rbp), %eax
cmpl $0x47, %eax
je 0x96f8
movsbl -0x21(%rbp), %eax
cmpl $0x54, %eax
je 0x96f8
movsbl -0x21(%rbp), %eax
cmpl $0x4e, %eax
jne 0x9711
movq -0x18(%rbp), %rdi
leaq -0x21(%rbp), %rsi
callq 0x9a50
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x981f
movsbl -0x21(%rbp), %eax
cmpl $0x2e, %eax
je 0x9723
movsbl -0x21(%rbp), %eax
cmpl $0x2c, %eax
jne 0x973c
movq -0x18(%rbp), %rdi
leaq -0x9(%rbp), %rsi
callq 0x9a50
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x981d
movsbl -0x21(%rbp), %eax
cmpl $0x2b, %eax
je 0x974e
movsbl -0x21(%rbp), %eax
cmpl $0x2d, %eax
jne 0x9778
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x9400
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
subl $0x1, %eax
addl -0x20(%rbp), %eax
movl %eax, -0x20(%rbp)
jmp 0x981b
movsbl -0x21(%rbp), %eax
cmpl $0x5e, %eax
jne 0x978f
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x9819
movsbl -0x21(%rbp), %eax
cmpl $0x3c, %eax
je 0x97b6
movq -0x8(%rbp), %rdi
movslq -0x20(%rbp), %rsi
callq 0x34f0
movsbl (%rax), %eax
cmpl $0x3e, %eax
je 0x97b6
movsbl -0x21(%rbp), %eax
cmpl $0x2a, %eax
jne 0x97d0
movq -0x18(%rbp), %rdi
movb $0x4e, -0x22(%rbp)
leaq -0x22(%rbp), %rsi
callq 0x9b30
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x9817
movsbl -0x21(%rbp), %eax
cmpl $0x24, %eax
jne 0x97db
jmp 0x9815
movq 0x87e6(%rip), %rdi      # 0x11fc8
leaq 0x2c7a(%rip), %rsi      # 0xc463
callq 0x3250
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x20(%rbp), %rsi
callq 0x34f0
movq -0x30(%rbp), %rdi
movsbl (%rax), %esi
callq 0x3300
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x3310
jmp 0x9817
jmp 0x9819
jmp 0x981b
jmp 0x981d
jmp 0x981f
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x9696
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)