// File: /workspace/github_cpp_makefile_star2_O1/navrajsaini[P]PL_Compiler_design_project/scanner.cpp
// Function: Scanner::numericVAl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
int Scanner::numericVAl(string s)
{
   //cout<<s<<", "<<s.size()<<endl;
   int sSize = s.size()-1;
   int total = 0;
   int inc = 0;
   for(int i = sSize; 0 <= i; i--)
   {
      //cout<<inc<<", "<<sSize;
      char a = s[i];
      switch(a)
      {
	 case '1':
	    total = total + (1 * pow(10, inc));
	    break;
	 case '2':
	    total = total + (2 * pow(10, inc));
	    break;
	 case '3':
	    total = total + (3 * pow(10, inc));
	    break;	    
	 case '4':
	    total = total + (4 * pow(10, inc));
	    break;			 
	 case '5':
	    total = total + (5 * pow(10, inc));
	    break;	    
	 case '6':
	    total = total + (6 * pow(10, inc));
	    break;			 
	 case '7':
	    total = total + (7 * pow(10, inc));
	    break;	    
	 case '8':
	    total = total + (8 * pow(10, inc));
	    break;	    
	 case '9':
	    total = total + (9 * pow(10, inc));
	    break;	    
	 case '0':
	    total=total;	    
	 default:
	    break;
      }
      //cout<<", "<<total<<endl; 
      inc++;
   }
   //cout<<total<<endl;
   return total;  
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl 0x8(%rsi), %r14d
movl %r14d, %eax
decl %eax
js 0xbb85
movq %rsi, %rbx
movl %eax, %r15d
xorpd %xmm1, %xmm1
xorl %eax, %eax
leaq 0x7b43(%rip), %r12      # 0x134d0
xorl %r13d, %r13d
movq (%rbx), %rcx
movzbl (%rcx,%r15), %ecx
addl $-0x31, %ecx
cmpl $0x8, %ecx
ja 0xbb6c
movslq (%r12,%rcx,4), %rcx
addq %r12, %rcx
movsd %xmm1, -0x38(%rbp)
jmpq *%rcx
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7aba(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7a8f(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7aa5(%rip), %xmm0     # 0x134b0
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7a5c(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7a82(%rip), %xmm0     # 0x134c0
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7a29(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x7a47(%rip), %xmm0     # 0x134b8
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x79f6(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x79f4(%rip), %xmm0     # 0x13498
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x79c3(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
addsd %xmm0, %xmm0
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7994(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x79a2(%rip), %xmm0     # 0x134a8
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm1, %xmm1
cvtsi2sd %r13d, %xmm1
movsd 0x7964(%rip), %xmm0     # 0x13488
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x796a(%rip), %xmm0     # 0x134a0
jmp 0xbb63
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x793c(%rip), %xmm0     # 0x13488
movsd -0x38(%rbp), %xmm1
callq 0x2300
movsd -0x38(%rbp), %xmm1
mulsd 0x792d(%rip), %xmm0     # 0x13490
addsd -0x30(%rbp), %xmm0
cvttsd2si %xmm0, %eax
addsd 0x7954(%rip), %xmm1     # 0x134c8
incl %r13d
decq %r15
cmpl %r13d, %r14d
jne 0xb990
jmp 0xbb87
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop