40b4ee:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40b4f1:	89 75 e8             	mov    %esi,-0x18(%ebp)
40b4f4:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40b4f8:	89 75 fc             	mov    %esi,-0x4(%ebp)
40b4fb:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40b4fe:	89 75 d0             	mov    %esi,-0x30(%ebp)
40b501:	66 89 45 c0          	mov    %ax,-0x40(%ebp)
40b505:	8d 45 bf             	lea    -0x41(%ebp),%eax
40b508:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40b50c:	8b 4f 08             	mov    0x8(%edi),%ecx
40b50f:	50                   	push   %eax
40b510:	6a 01                	push   $0x1
40b512:	68 d4 3f 40 00       	push   $0x403fd4
40b517:	68 08 2f 40 00       	push   $0x402f08
40b51c:	e8 8a b4 ff ff       	call   0x4069ab
40b521:	80 7d bf 00          	cmpb   $0x0,-0x41(%ebp)
40b525:	74 26                	je     0x40b54d
40b527:	0f b6 c0             	movzbl %al,%eax
40b52a:	89 45 ac             	mov    %eax,-0x54(%ebp)
40b52d:	8d 45 ac             	lea    -0x54(%ebp),%eax
40b530:	50                   	push   %eax
40b531:	56                   	push   %esi
40b532:	ff 75 10             	push   0x10(%ebp)
40b535:	c7 45 b8 01 00 00 00 	movl   $0x1,-0x48(%ebp)
40b53c:	6a 03                	push   $0x3
40b53e:	53                   	push   %ebx
40b53f:	ff 15 14 20 41 00    	call   *0x412014
40b545:	85 c0                	test   %eax,%eax
40b547:	0f 84 4d 01 00 00    	je     0x40b69a
40b54d:	8b 4f 08             	mov    0x8(%edi),%ecx
40b550:	8d 45 bf             	lea    -0x41(%ebp),%eax
40b553:	50                   	push   %eax
40b554:	68 7c 24 40 00       	push   $0x40247c
40b559:	68 c4 40 40 00       	push   $0x4040c4
40b55e:	68 50 2f 40 00       	push   $0x402f50
40b563:	e8 e2 b3 ff ff       	call   0x40694a
40b568:	50                   	push   %eax
40b569:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b56c:	e8 30 af ff ff       	call   0x4064a1
40b571:	80 7d bf 00          	cmpb   $0x0,-0x41(%ebp)
40b575:	0f 84 01 01 00 00    	je     0x40b67c
40b57b:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b57f:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b582:	6a 04                	push   $0x4
40b584:	59                   	pop    %ecx
40b585:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40b588:	73 03                	jae    0x40b58d
40b58a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b58d:	89 45 ac             	mov    %eax,-0x54(%ebp)
40b590:	8d 45 ac             	lea    -0x54(%ebp),%eax
40b593:	50                   	push   %eax
40b594:	56                   	push   %esi
40b595:	ff 75 10             	push   0x10(%ebp)
40b598:	51                   	push   %ecx
40b599:	53                   	push   %ebx
40b59a:	ff 15 14 20 41 00    	call   *0x412014
40b5a0:	85 c0                	test   %eax,%eax
40b5a2:	75 0a                	jne    0x40b5ae
40b5a4:	68 50 2f 40 00       	push   $0x402f50
40b5a9:	e9 f1 00 00 00       	jmp    0x40b69f
40b5ae:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40b5b2:	c7 45 b8 04 00 00 00 	movl   $0x4,-0x48(%ebp)
40b5b9:	89 75 ac             	mov    %esi,-0x54(%ebp)
40b5bc:	0f 84 9e 00 00 00    	je     0x40b660
40b5c2:	8b 4f 08             	mov    0x8(%edi),%ecx
40b5c5:	8d 45 bf             	lea    -0x41(%ebp),%eax
40b5c8:	50                   	push   %eax
40b5c9:	68 7c 24 40 00       	push   $0x40247c
40b5ce:	68 e8 40 40 00       	push   $0x4040e8
40b5d3:	68 cc 40 40 00       	push   $0x4040cc
40b5d8:	e8 6d b3 ff ff       	call   0x40694a
40b5dd:	50                   	push   %eax
40b5de:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b5e1:	e8 bb ae ff ff       	call   0x4064a1
40b5e6:	80 7d bf 00          	cmpb   $0x0,-0x41(%ebp)
40b5ea:	74 54                	je     0x40b640
40b5ec:	83 7d d4 08          	cmpl   $0x8,-0x2c(%ebp)
40b5f0:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40b5f3:	8b c1                	mov    %ecx,%eax
40b5f5:	73 03                	jae    0x40b5fa
40b5f7:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b5fa:	ba 88 2c 40 00       	mov    $0x402c88,%edx
40b5ff:	66 8b 30             	mov    (%eax),%si
40b602:	66 3b 32             	cmp    (%edx),%si
40b605:	75 20                	jne    0x40b627
40b607:	66 85 f6             	test   %si,%si
40b60a:	74 15                	je     0x40b621
40b60c:	66 8b 70 02          	mov    0x2(%eax),%si
40b610:	66 3b 72 02          	cmp    0x2(%edx),%si
40b614:	75 11                	jne    0x40b627
40b616:	83 c0 04             	add    $0x4,%eax
40b619:	83 c2 04             	add    $0x4,%edx
40b61c:	66 85 f6             	test   %si,%si
40b61f:	75 de                	jne    0x40b5ff
40b621:	33 f6                	xor    %esi,%esi
40b623:	8b c6                	mov    %esi,%eax
40b625:	eb 07                	jmp    0x40b62e
40b627:	1b c0                	sbb    %eax,%eax
40b629:	83 c8 01             	or     $0x1,%eax
40b62c:	33 f6                	xor    %esi,%esi
40b62e:	85 c0                	test   %eax,%eax
40b630:	74 0e                	je     0x40b640
40b632:	83 7d d4 08          	cmpl   $0x8,-0x2c(%ebp)
40b636:	73 03                	jae    0x40b63b
40b638:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b63b:	89 4d ac             	mov    %ecx,-0x54(%ebp)
40b63e:	eb 20                	jmp    0x40b660
40b640:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b644:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b647:	73 03                	jae    0x40b64c
40b649:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b64c:	8d 77 48             	lea    0x48(%edi),%esi
40b64f:	56                   	push   %esi
40b650:	50                   	push   %eax
40b651:	ff 75 a8             	push   -0x58(%ebp)
40b654:	e8 bb 11 00 00       	call   0x40c814
40b659:	8b 06                	mov    (%esi),%eax
40b65b:	33 f6                	xor    %esi,%esi
40b65d:	89 45 ac             	mov    %eax,-0x54(%ebp)
40b660:	8d 45 ac             	lea    -0x54(%ebp),%eax
40b663:	50                   	push   %eax
40b664:	56                   	push   %esi
40b665:	ff 75 10             	push   0x10(%ebp)
40b668:	6a 05                	push   $0x5
40b66a:	53                   	push   %ebx
40b66b:	ff 15 14 20 41 00    	call   *0x412014
40b671:	85 c0                	test   %eax,%eax
40b673:	75 07                	jne    0x40b67c
40b675:	68 cc 40 40 00       	push   $0x4040cc
40b67a:	eb 23                	jmp    0x40b69f
40b67c:	56                   	push   %esi
40b67d:	6a 01                	push   $0x1
40b67f:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b682:	e8 69 ae ff ff       	call   0x4064f0
40b687:	56                   	push   %esi
40b688:	6a 01                	push   $0x1
40b68a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b68d:	e8 5e ae ff ff       	call   0x4064f0
40b692:	e8 99 2f 00 00       	call   0x40e630
40b697:	c2 0c 00             	ret    $0xc
40b69a:	68 08 2f 40 00       	push   $0x402f08
40b69f:	6a 0f                	push   $0xf
40b6a1:	ff 15 70 20 41 00    	call   *0x412070
40b6a7:	50                   	push   %eax
40b6a8:	e8 68 bf ff ff       	call   0x407615
40b6ad:	cc                   	int3
40b6ae:	6a 48                	push   $0x48
40b6b0:	b8 c9 f2 40 00       	mov    $0x40f2c9,%eax
40b6b5:	e8 c7 2f 00 00       	call   0x40e681
40b6ba:	89 4d bc             	mov    %ecx,-0x44(%ebp)
40b6bd:	8b 7d 08             	mov    0x8(%ebp),%edi
40b6c0:	33 db                	xor    %ebx,%ebx
40b6c2:	33 c0                	xor    %eax,%eax
40b6c4:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b6cb:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40b6ce:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40b6d2:	8d 45 d7             	lea    -0x29(%ebp),%eax
40b6d5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40b6d8:	8b 49 08             	mov    0x8(%ecx),%ecx
40b6db:	50                   	push   %eax
40b6dc:	68 7c 24 40 00       	push   $0x40247c
40b6e1:	68 cc 3f 40 00       	push   $0x403fcc
40b6e6:	68 c0 2e 40 00       	push   $0x402ec0
40b6eb:	88 5d d7             	mov    %bl,-0x29(%ebp)
40b6ee:	e8 57 b2 ff ff       	call   0x40694a
40b6f3:	50                   	push   %eax
40b6f4:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b6f7:	e8 a5 ad ff ff       	call   0x4064a1
40b6fc:	38 5d d7             	cmp    %bl,-0x29(%ebp)
40b6ff:	75 13                	jne    0x40b714
40b701:	53                   	push   %ebx
40b702:	6a 01                	push   $0x1
40b704:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b707:	e8 e4 ad ff ff       	call   0x4064f0
40b70c:	e8 1f 2f 00 00       	call   0x40e630
40b711:	c2 04 00             	ret    $0x4
40b714:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40b717:	83 ce ff             	or     $0xffffffff,%esi
40b71a:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40b71d:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40b720:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40b723:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b726:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40b72a:	50                   	push   %eax
40b72b:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b72e:	33 d2                	xor    %edx,%edx
40b730:	50                   	push   %eax
40b731:	51                   	push   %ecx
40b732:	42                   	inc    %edx
40b733:	8b cf                	mov    %edi,%ecx
40b735:	e8 2b c9 ff ff       	call   0x408065
40b73a:	85 c0                	test   %eax,%eax
40b73c:	0f 85 85 01 00 00    	jne    0x40b8c7
40b742:	8b 7d cc             	mov    -0x34(%ebp),%edi
40b745:	39 5f 0c             	cmp    %ebx,0xc(%edi)
40b748:	0f 84 6e 01 00 00    	je     0x40b8bc
40b74e:	8b 3f                	mov    (%edi),%edi
40b750:	8d 45 d0             	lea    -0x30(%ebp),%eax
40b753:	50                   	push   %eax
40b754:	57                   	push   %edi
40b755:	ff 15 24 20 41 00    	call   *0x412024
40b75b:	85 c0                	test   %eax,%eax
40b75d:	75 10                	jne    0x40b76f
40b75f:	ff 15 70 20 41 00    	call   *0x412070
40b765:	68 6c 2e 40 00       	push   $0x402e6c
40b76a:	e9 5d 01 00 00       	jmp    0x40b8cc
40b76f:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
40b773:	76 43                	jbe    0x40b7b8
40b775:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b778:	50                   	push   %eax
40b779:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b77c:	50                   	push   %eax
40b77d:	51                   	push   %ecx
40b77e:	53                   	push   %ebx
40b77f:	6a 02                	push   $0x2
40b781:	5a                   	pop    %edx
40b782:	8b cf                	mov    %edi,%ecx
40b784:	e8 72 c9 ff ff       	call   0x4080fb
40b789:	85 c0                	test   %eax,%eax
40b78b:	75 6c                	jne    0x40b7f9
40b78d:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b791:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40b794:	73 03                	jae    0x40b799
40b796:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b799:	8b 45 cc             	mov    -0x34(%ebp),%eax
40b79c:	6a ff                	push   $0xffffffff
40b79e:	51                   	push   %ecx
40b79f:	6a ff                	push   $0xffffffff
40b7a1:	ff 30                	push   (%eax)
40b7a3:	6a 01                	push   $0x1
40b7a5:	6a 7f                	push   $0x7f
40b7a7:	ff 15 f4 20 41 00    	call   *0x4120f4
40b7ad:	83 f8 02             	cmp    $0x2,%eax
40b7b0:	74 43                	je     0x40b7f5
40b7b2:	43                   	inc    %ebx
40b7b3:	3b 5d d0             	cmp    -0x30(%ebp),%ebx
40b7b6:	72 bd                	jb     0x40b775
40b7b8:	8b 5d bc             	mov    -0x44(%ebp),%ebx
40b7bb:	8d 45 d7             	lea    -0x29(%ebp),%eax
40b7be:	50                   	push   %eax
40b7bf:	6a 00                	push   $0x0
40b7c1:	68 fc 3f 40 00       	push   $0x403ffc
40b7c6:	8b 4b 08             	mov    0x8(%ebx),%ecx
40b7c9:	68 dc 3f 40 00       	push   $0x403fdc
40b7ce:	e8 d8 b1 ff ff       	call   0x4069ab
40b7d3:	84 c0                	test   %al,%al
40b7d5:	0f 84 9f 00 00 00    	je     0x40b87a
40b7db:	83 fe ff             	cmp    $0xffffffff,%esi
40b7de:	74 23                	je     0x40b803
40b7e0:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b7e3:	e8 f3 ac ff ff       	call   0x4064db
40b7e8:	50                   	push   %eax
40b7e9:	6a 27                	push   $0x27
40b7eb:	68 b7 00 00 00       	push   $0xb7
40b7f0:	e9 da 00 00 00       	jmp    0x40b8cf
40b7f5:	8b f3                	mov    %ebx,%esi
40b7f7:	eb bf                	jmp    0x40b7b8
40b7f9:	68 c0 2e 40 00       	push   $0x402ec0
40b7fe:	e9 c9 00 00 00       	jmp    0x40b8cc
40b803:	8b 75 d0             	mov    -0x30(%ebp),%esi
40b806:	56                   	push   %esi
40b807:	57                   	push   %edi
40b808:	ff 15 10 20 41 00    	call   *0x412010
40b80e:	85 c0                	test   %eax,%eax
40b810:	75 12                	jne    0x40b824
40b812:	68 50 2e 40 00       	push   $0x402e50
40b817:	6a 0f                	push   $0xf
40b819:	ff 15 70 20 41 00    	call   *0x412070
40b81f:	e9 aa 00 00 00       	jmp    0x40b8ce
40b824:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b828:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b82b:	c7 45 b8 04 00 00 00 	movl   $0x4,-0x48(%ebp)
40b832:	73 03                	jae    0x40b837
40b834:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b837:	89 45 ac             	mov    %eax,-0x54(%ebp)
40b83a:	8d 45 ac             	lea    -0x54(%ebp),%eax
40b83d:	50                   	push   %eax
40b83e:	6a 00                	push   $0x0
40b840:	56                   	push   %esi
40b841:	6a 02                	push   $0x2
40b843:	57                   	push   %edi
40b844:	ff 15 14 20 41 00    	call   *0x412014
40b84a:	85 c0                	test   %eax,%eax
40b84c:	75 07                	jne    0x40b855
40b84e:	68 c0 2e 40 00       	push   $0x402ec0
40b853:	eb c2                	jmp    0x40b817
40b855:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b859:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b85c:	73 03                	jae    0x40b861
40b85e:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b861:	56                   	push   %esi
40b862:	50                   	push   %eax
40b863:	57                   	push   %edi
40b864:	8b cb                	mov    %ebx,%ecx
40b866:	e8 65 fc ff ff       	call   0x40b4d0
40b86b:	8d 4d c0             	lea    -0x40(%ebp),%ecx
40b86e:	e8 a4 a6 ff ff       	call   0x405f17
40b873:	6a 00                	push   $0x0
40b875:	e9 88 fe ff ff       	jmp    0x40b702
40b87a:	8b 4b 08             	mov    0x8(%ebx),%ecx
40b87d:	8d 45 d7             	lea    -0x29(%ebp),%eax
40b880:	50                   	push   %eax
40b881:	6a 00                	push   $0x0
40b883:	68 28 40 40 00       	push   $0x404028
40b888:	68 04 40 40 00       	push   $0x404004
40b88d:	e8 19 b1 ff ff       	call   0x4069ab
40b892:	84 c0                	test   %al,%al
40b894:	74 13                	je     0x40b8a9
40b896:	83 fe ff             	cmp    $0xffffffff,%esi
40b899:	74 13                	je     0x40b8ae
40b89b:	56                   	push   %esi
40b89c:	57                   	push   %edi
40b89d:	ff 15 0c 20 41 00    	call   *0x41200c
40b8a3:	85 c0                	test   %eax,%eax
40b8a5:	75 c4                	jne    0x40b86b
40b8a7:	eb a5                	jmp    0x40b84e
40b8a9:	83 fe ff             	cmp    $0xffffffff,%esi
40b8ac:	75 a7                	jne    0x40b855
40b8ae:	68 c0 2e 40 00       	push   $0x402ec0
40b8b3:	6a 0f                	push   $0xf
40b8b5:	68 90 04 00 00       	push   $0x490
40b8ba:	eb 13                	jmp    0x40b8cf
40b8bc:	68 50 2e 40 00       	push   $0x402e50
40b8c1:	6a 0e                	push   $0xe
40b8c3:	6a 0d                	push   $0xd
40b8c5:	eb 08                	jmp    0x40b8cf
40b8c7:	68 50 2e 40 00       	push   $0x402e50
40b8cc:	6a 0e                	push   $0xe
40b8ce:	50                   	push   %eax
40b8cf:	e8 41 bd ff ff       	call   0x407615
40b8d4:	cc                   	int3
40b8d5:	6a 34                	push   $0x34
40b8d7:	b8 16 f3 40 00       	mov    $0x40f316,%eax
40b8dc:	e8 6d 2d 00 00       	call   0x40e64e
40b8e1:	8b f9                	mov    %ecx,%edi
40b8e3:	33 c0                	xor    %eax,%eax
40b8e5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40b8e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b8eb:	89 45 e8             	mov    %eax,-0x18(%ebp)
40b8ee:	89 45 ec             	mov    %eax,-0x14(%ebp)
40b8f1:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40b8f4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40b8f7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b8fa:	53                   	push   %ebx
40b8fb:	ff 75 08             	push   0x8(%ebp)
40b8fe:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40b902:	ff 15 10 20 41 00    	call   *0x412010
40b908:	85 c0                	test   %eax,%eax
40b90a:	0f 84 3d 03 00 00    	je     0x40bc4d
40b910:	8b 45 10             	mov    0x10(%ebp),%eax