Binary Bomb Lab Phase 4 (please provide step-by-step explanation with the input).
0x00000000004013d9 <+0>: sub $0x2c8,%rsp
0x00000000004013e0 <+7>: mov %rdi,%rsi
0x00000000004013e3 <+10>: movw $0x6cb,0x42(%rsp)
0x00000000004013ea <+17>: movw $0xcc26,0x50(%rsp)
0x00000000004013f1 <+24>: movw $0x8a1,0x44(%rsp)
0x00000000004013f8 <+31>: movb $0x7,0x40(%rsp)
0x00000000004013fd <+36>: movl $0x12fad68e,0x3c(%rsp)
0x0000000000401405 <+44>: movq $0x0,0x48(%rsp)
0x000000000040140e <+53>: lea 0x30(%rsp),%rdi
0x0000000000401413 <+58>: callq 0x400ca0
0x0000000000401418 <+63>: movzbl 0x40(%rsp),%eax
0x000000000040141d <+68>: cmp $0x57,%al
0x000000000040141f <+70>: je 0x401426
0x0000000000401421 <+72>: callq 0x401bbe
0x0000000000401426 <+77>: movzwl 0x50(%rsp),%eax
0x000000000040142b <+82>: cmp $0xcc26,%ax
0x000000000040142f <+86>: je 0x401436
0x0000000000401431 <+88>: callq 0x401bbe
0x0000000000401436 <+93>: mov 0x48(%rsp),%rax
0x000000000040143b <+98>: test %rax,%rax
0x000000000040143e <+101>: je 0x401445
0x0000000000401440 <+103>: callq 0x401bbe
0x0000000000401445 <+108>: movzwl 0x42(%rsp),%eax
0x000000000040144a <+113>: cmp $0x425b,%ax
0x000000000040144e <+117>: je 0x401455
0x0000000000401450 <+119>: callq 0x401bbe
0x0000000000401455 <+124>: movzwl 0x44(%rsp),%edx
0x000000000040145a <+129>: mov 0x3c(%rsp),%eax
0x000000000040145e <+133>: shl $0x5,%eax
0x0000000000401461 <+136>: movswl %dx,%edx
0x0000000000401464 <+139>: xor %edx,%eax
0x0000000000401466 <+141>: cmp $0x2e8ee3c5,%eax
0x000000000040146b <+146>: sete %al
0x000000000040146e <+149>: movzbl %al,%eax
0x0000000000401471 <+152>: add $0x2c8,%rsp
0x0000000000401478 <+159>: retq+159>+152>+149>+146>+141>+139>+136>+133>+129>+124>
+119>+117>+113>+108>+103>+101>+98>+93>+88>+86>+82>+77>+72>+70>+68>+63>+58>+53>+44>+36>+31>+24>+17>+10>+7>+0>