40e603:	8d 70 01             	lea    0x1(%eax),%esi
40e606:	6a 02                	push   $0x2
40e608:	56                   	push   %esi
40e609:	e8 97 39 ff ff       	call   0x401fa5
40e60e:	8b f8                	mov    %eax,%edi
40e610:	83 c4 0c             	add    $0xc,%esp
40e613:	3b fb                	cmp    %ebx,%edi
40e615:	74 1f                	je     0x40e636
40e617:	ff 75 08             	push   0x8(%ebp)
40e61a:	56                   	push   %esi
40e61b:	57                   	push   %edi
40e61c:	e8 9a 51 ff ff       	call   0x4037bb
40e621:	83 c4 0c             	add    $0xc,%esp
40e624:	85 c0                	test   %eax,%eax
40e626:	75 04                	jne    0x40e62c
40e628:	8b c7                	mov    %edi,%eax
40e62a:	eb 0c                	jmp    0x40e638
40e62c:	53                   	push   %ebx
40e62d:	53                   	push   %ebx
40e62e:	53                   	push   %ebx
40e62f:	53                   	push   %ebx
40e630:	53                   	push   %ebx
40e631:	e8 ff 45 ff ff       	call   0x402c35
40e636:	33 c0                	xor    %eax,%eax
40e638:	5f                   	pop    %edi
40e639:	5e                   	pop    %esi
40e63a:	5b                   	pop    %ebx
40e63b:	5d                   	pop    %ebp
40e63c:	c3                   	ret
40e63d:	cc                   	int3
40e63e:	cc                   	int3
40e63f:	cc                   	int3
40e640:	55                   	push   %ebp
40e641:	8b ec                	mov    %esp,%ebp
40e643:	57                   	push   %edi
40e644:	56                   	push   %esi
40e645:	53                   	push   %ebx
40e646:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e649:	0b c9                	or     %ecx,%ecx
40e64b:	74 4d                	je     0x40e69a
40e64d:	8b 75 08             	mov    0x8(%ebp),%esi
40e650:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e653:	b7 41                	mov    $0x41,%bh
40e655:	b3 5a                	mov    $0x5a,%bl
40e657:	b6 20                	mov    $0x20,%dh
40e659:	8d 49 00             	lea    0x0(%ecx),%ecx
40e65c:	8a 26                	mov    (%esi),%ah
40e65e:	0a e4                	or     %ah,%ah
40e660:	8a 07                	mov    (%edi),%al
40e662:	74 27                	je     0x40e68b
40e664:	0a c0                	or     %al,%al
40e666:	74 23                	je     0x40e68b
40e668:	83 c6 01             	add    $0x1,%esi
40e66b:	83 c7 01             	add    $0x1,%edi
40e66e:	3a e7                	cmp    %bh,%ah
40e670:	72 06                	jb     0x40e678
40e672:	3a e3                	cmp    %bl,%ah
40e674:	77 02                	ja     0x40e678
40e676:	02 e6                	add    %dh,%ah
40e678:	3a c7                	cmp    %bh,%al
40e67a:	72 06                	jb     0x40e682
40e67c:	3a c3                	cmp    %bl,%al
40e67e:	77 02                	ja     0x40e682
40e680:	02 c6                	add    %dh,%al
40e682:	3a e0                	cmp    %al,%ah
40e684:	75 0b                	jne    0x40e691
40e686:	83 e9 01             	sub    $0x1,%ecx
40e689:	75 d1                	jne    0x40e65c
40e68b:	33 c9                	xor    %ecx,%ecx
40e68d:	3a e0                	cmp    %al,%ah
40e68f:	74 09                	je     0x40e69a
40e691:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
40e696:	72 02                	jb     0x40e69a
40e698:	f7 d9                	neg    %ecx
40e69a:	8b c1                	mov    %ecx,%eax
40e69c:	5b                   	pop    %ebx
40e69d:	5e                   	pop    %esi
40e69e:	5f                   	pop    %edi
40e69f:	c9                   	leave
40e6a0:	c3                   	ret
40e6a1:	33 c0                	xor    %eax,%eax
40e6a3:	50                   	push   %eax
40e6a4:	50                   	push   %eax
40e6a5:	6a 03                	push   $0x3
40e6a7:	50                   	push   %eax
40e6a8:	6a 03                	push   $0x3
40e6aa:	68 00 00 00 40       	push   $0x40000000
40e6af:	68 2c 0a 41 00       	push   $0x410a2c
40e6b4:	ff 15 24 f1 40 00    	call   *0x40f124
40e6ba:	a3 b0 2e 41 00       	mov    %eax,0x412eb0
40e6bf:	c3                   	ret
40e6c0:	a1 b0 2e 41 00       	mov    0x412eb0,%eax
40e6c5:	83 f8 ff             	cmp    $0xffffffff,%eax
40e6c8:	74 0c                	je     0x40e6d6
40e6ca:	83 f8 fe             	cmp    $0xfffffffe,%eax
40e6cd:	74 07                	je     0x40e6d6
40e6cf:	50                   	push   %eax
40e6d0:	ff 15 58 f0 40 00    	call   *0x40f058
40e6d6:	c3                   	ret
40e6d7:	cc                   	int3
40e6d8:	cc                   	int3
40e6d9:	cc                   	int3
40e6da:	cc                   	int3
40e6db:	cc                   	int3
40e6dc:	cc                   	int3
40e6dd:	cc                   	int3
40e6de:	cc                   	int3
40e6df:	cc                   	int3
40e6e0:	8b 44 24 08          	mov    0x8(%esp),%eax
40e6e4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40e6e8:	0b c8                	or     %eax,%ecx
40e6ea:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40e6ee:	75 09                	jne    0x40e6f9
40e6f0:	8b 44 24 04          	mov    0x4(%esp),%eax
40e6f4:	f7 e1                	mul    %ecx
40e6f6:	c2 10 00             	ret    $0x10
40e6f9:	53                   	push   %ebx
40e6fa:	f7 e1                	mul    %ecx
40e6fc:	8b d8                	mov    %eax,%ebx
40e6fe:	8b 44 24 08          	mov    0x8(%esp),%eax
40e702:	f7 64 24 14          	mull   0x14(%esp)
40e706:	03 d8                	add    %eax,%ebx
40e708:	8b 44 24 08          	mov    0x8(%esp),%eax
40e70c:	f7 e1                	mul    %ecx
40e70e:	03 d3                	add    %ebx,%edx
40e710:	5b                   	pop    %ebx
40e711:	c2 10 00             	ret    $0x10
40e714:	ff 25 a8 f0 40 00    	jmp    *0x40f0a8