no. 1251056
<+9>
까지의 스택 상황이다. esi 레지스터에는 특정 주소를 가리키고 있고 이 주소가 가지는 문자열은 아래와 같다.
일단 특정한 문자열을 저장하고 함수로 간다.
<+14> test %eax, %eax
를 통해 두 수를 AND 연산 한다. 그리고 이 두 수가 0이면 분기한다.
"Strings not equal"
나머지 r12, rbp, rbx를 스택에 넣은 이후 입력 받은 두 개의 문자열을 rbx, rbp 레지스터에 옮깁니다.
<+15> mov %eax, %r12d
함수에서의 리턴 값을 r12d로 옮깁니다. 이 값이 "4"인 걸로 보아 입력 한 문자열의 길이를 저장하는 듯 합니다.
"string length" 함수에 넣을 인자를 계속 레지스터 rdi에 넣으면서 확인합니다.
<+31> cmp %eax, %r12d
두 수의 길이를 비교해서 이 두 개가 다른 경우에는 <+96>으로 이동한 후에 1을 eax로 옮겨 리턴하도록 합니다.
<+39> test %al, %al
rax 레지스터의 마지막 값을 가져ㅘ서 둘을 AND 연산합니다. 그리고 이를 rbp 레지스터가 끝날 떄까지 하도록 합니다.