// File: sthapliyal37[P]Microprocessor_8085_Updated/Essential.cpp
// Function: increaseAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string increaseAddress(string a)
{
	int number[5];
	string nextAddress="";
	int l=a.length();
	for(int i=l-1;i>=0;i--)
	{
		if(a[i]>='A'&&a[i]<='F')
			number[i]=(int)(10+(a[i]-'A'));
		if(a[i]>='0'&&a[i]<='9')
			number[i]=(int)(a[i]-'0');
	}
	number[l-1]++;
	for(int i=l-1;i>=0;i--)
	{
		if(number[i]>=0&&number[i]<=15)
			break;
		if(number[i]>=16)
		{
			number[i]=number[i]%16;
			number[i-1]++;
		}
	}
	for(int i=0;i<l;i++)
	{
		if(number[i]>=0&&number[i]<=9)
			nextAddress+=(char)('0'+(number[i]));
		else if(number[i]>=10 && number[i]<=15)
			nextAddress+=(char)('A'+(number[i]-10));
	}
	return nextAddress;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rsi, -0x78(%rbp)
movq %rdi, -0x68(%rbp)
movq %rdi, %rax
movq %rax, -0x70(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x31(%rbp)
leaq -0x32(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0x3440
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rdx
leaq 0xe5a0(%rip), %rsi      # 0x15202
callq 0x50d0
jmp 0x6c69
leaq -0x32(%rbp), %rdi
callq 0x32f0
movq -0x78(%rbp), %rdi
callq 0x33b0
movl %eax, -0x48(%rbp)
movl -0x48(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x4c(%rbp)
cmpl $0x0, -0x4c(%rbp)
jl 0x6dc2
movq -0x78(%rbp), %rdi
movslq -0x4c(%rbp), %rsi
callq 0x34a0
movq %rax, -0x80(%rbp)
jmp 0x6ca4
movq -0x80(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x41, %eax
jl 0x6d3d
movq -0x78(%rbp), %rdi
movslq -0x4c(%rbp), %rsi
callq 0x34a0
movq %rax, -0x88(%rbp)
jmp 0x6cca
movq -0x88(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
jg 0x6d3d
movq -0x78(%rbp), %rdi
movslq -0x4c(%rbp), %rsi
callq 0x34a0
movq %rax, -0x90(%rbp)
jmp 0x6cef
movq -0x90(%rbp), %rax
movsbl (%rax), %ecx
subl $0x41, %ecx
addl $0xa, %ecx
movslq -0x4c(%rbp), %rax
movl %ecx, -0x30(%rbp,%rax,4)
jmp 0x6d3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x32(%rbp), %rdi
callq 0x32f0
jmp 0x6edf
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
callq 0x3190
jmp 0x6edf
movq -0x78(%rbp), %rdi
movslq -0x4c(%rbp), %rsi
callq 0x34a0
movq %rax, -0x98(%rbp)
jmp 0x6d53
movq -0x98(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0x6db2
movq -0x78(%rbp), %rdi
movslq -0x4c(%rbp), %rsi
callq 0x34a0
movq %rax, -0xa0(%rbp)
jmp 0x6d78
movq -0xa0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jg 0x6db2
movq -0x78(%rbp), %rdi
movslq -0x4c(%rbp), %rsi
callq 0x34a0
movq %rax, -0xa8(%rbp)
jmp 0x6d9d
movq -0xa8(%rbp), %rax
movsbl (%rax), %ecx
subl $0x30, %ecx
movslq -0x4c(%rbp), %rax
movl %ecx, -0x30(%rbp,%rax,4)
jmp 0x6db4
movl -0x4c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x6c87
movl -0x48(%rbp), %eax
subl $0x1, %eax
cltq
movl -0x30(%rbp,%rax,4), %ecx
addl $0x1, %ecx
movl %ecx, -0x30(%rbp,%rax,4)
movl -0x48(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x50(%rbp)
cmpl $0x0, -0x50(%rbp)
jl 0x6e3f
movslq -0x50(%rbp), %rax
cmpl $0x0, -0x30(%rbp,%rax,4)
jl 0x6dfc
movslq -0x50(%rbp), %rax
cmpl $0xf, -0x30(%rbp,%rax,4)
jg 0x6dfc
jmp 0x6e3f
movslq -0x50(%rbp), %rax
cmpl $0x10, -0x30(%rbp,%rax,4)
jl 0x6e32
movslq -0x50(%rbp), %rax
movl -0x30(%rbp,%rax,4), %eax
movl $0x10, %ecx
cltd
idivl %ecx
movslq -0x50(%rbp), %rax
movl %edx, -0x30(%rbp,%rax,4)
movl -0x50(%rbp), %eax
subl $0x1, %eax
cltq
movl -0x30(%rbp,%rax,4), %ecx
addl $0x1, %ecx
movl %ecx, -0x30(%rbp,%rax,4)
jmp 0x6e34
movl -0x50(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x6dde
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x48(%rbp), %eax
jge 0x6ebf
movslq -0x54(%rbp), %rax
cmpl $0x0, -0x30(%rbp,%rax,4)
jl 0x6e7f
movslq -0x54(%rbp), %rax
cmpl $0x9, -0x30(%rbp,%rax,4)
jg 0x6e7f
movq -0x68(%rbp), %rdi
movslq -0x54(%rbp), %rax
movl -0x30(%rbp,%rax,4), %eax
addl $0x30, %eax
movsbl %al, %esi
callq 0x31a0
jmp 0x6e7d
jmp 0x6eb2
movslq -0x54(%rbp), %rax
cmpl $0xa, -0x30(%rbp,%rax,4)
jl 0x6eb0
movslq -0x54(%rbp), %rax
cmpl $0xf, -0x30(%rbp,%rax,4)
jg 0x6eb0
movq -0x68(%rbp), %rdi
movslq -0x54(%rbp), %rax
movl -0x30(%rbp,%rax,4), %eax
addl $0x37, %eax
movsbl %al, %esi
callq 0x31a0
jmp 0x6eae
jmp 0x6eb0
jmp 0x6eb2
jmp 0x6eb4
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x6e46
movb $0x1, -0x31(%rbp)
testb $0x1, -0x31(%rbp)
jne 0x6ed2
movq -0x68(%rbp), %rdi
callq 0x3190
movq -0x70(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x3430
nopl (%rax,%rax)