40c69c:	8b ff                	mov    %edi,%edi
40c69e:	55                   	push   %ebp
40c69f:	8b ec                	mov    %esp,%ebp
40c6a1:	e8 a9 04 00 00       	call   0x40cb4f
40c6a6:	ff 75 08             	push   0x8(%ebp)
40c6a9:	e8 f6 02 00 00       	call   0x40c9a4
40c6ae:	ff 35 d0 b6 42 00    	push   0x42b6d0
40c6b4:	e8 3c e1 ff ff       	call   0x40a7f5
40c6b9:	68 ff 00 00 00       	push   $0xff
40c6be:	ff d0                	call   *%eax
40c6c0:	83 c4 0c             	add    $0xc,%esp
40c6c3:	5d                   	pop    %ebp
40c6c4:	c3                   	ret
40c6c5:	8b ff                	mov    %edi,%edi
40c6c7:	55                   	push   %ebp
40c6c8:	8b ec                	mov    %esp,%ebp
40c6ca:	68 84 c5 41 00       	push   $0x41c584
40c6cf:	ff 15 14 a0 41 00    	call   *0x41a014
40c6d5:	85 c0                	test   %eax,%eax
40c6d7:	74 15                	je     0x40c6ee
40c6d9:	68 74 c5 41 00       	push   $0x41c574
40c6de:	50                   	push   %eax
40c6df:	ff 15 e8 a0 41 00    	call   *0x41a0e8
40c6e5:	85 c0                	test   %eax,%eax
40c6e7:	74 05                	je     0x40c6ee
40c6e9:	ff 75 08             	push   0x8(%ebp)
40c6ec:	ff d0                	call   *%eax
40c6ee:	5d                   	pop    %ebp
40c6ef:	c3                   	ret
40c6f0:	8b ff                	mov    %edi,%edi
40c6f2:	55                   	push   %ebp
40c6f3:	8b ec                	mov    %esp,%ebp
40c6f5:	ff 75 08             	push   0x8(%ebp)
40c6f8:	e8 c8 ff ff ff       	call   0x40c6c5
40c6fd:	59                   	pop    %ecx
40c6fe:	ff 75 08             	push   0x8(%ebp)
40c701:	ff 15 18 a1 41 00    	call   *0x41a118
40c707:	cc                   	int3
40c708:	6a 08                	push   $0x8
40c70a:	e8 d5 d1 ff ff       	call   0x4098e4
40c70f:	59                   	pop    %ecx
40c710:	c3                   	ret
40c711:	6a 08                	push   $0x8
40c713:	e8 f2 d0 ff ff       	call   0x40980a
40c718:	59                   	pop    %ecx
40c719:	c3                   	ret
40c71a:	8b ff                	mov    %edi,%edi
40c71c:	55                   	push   %ebp
40c71d:	8b ec                	mov    %esp,%ebp
40c71f:	56                   	push   %esi
40c720:	8b f0                	mov    %eax,%esi
40c722:	eb 0b                	jmp    0x40c72f
40c724:	8b 06                	mov    (%esi),%eax
40c726:	85 c0                	test   %eax,%eax
40c728:	74 02                	je     0x40c72c
40c72a:	ff d0                	call   *%eax
40c72c:	83 c6 04             	add    $0x4,%esi
40c72f:	3b 75 08             	cmp    0x8(%ebp),%esi
40c732:	72 f0                	jb     0x40c724
40c734:	5e                   	pop    %esi
40c735:	5d                   	pop    %ebp
40c736:	c3                   	ret
40c737:	8b ff                	mov    %edi,%edi
40c739:	55                   	push   %ebp
40c73a:	8b ec                	mov    %esp,%ebp
40c73c:	56                   	push   %esi
40c73d:	8b 75 08             	mov    0x8(%ebp),%esi
40c740:	33 c0                	xor    %eax,%eax
40c742:	eb 0f                	jmp    0x40c753
40c744:	85 c0                	test   %eax,%eax
40c746:	75 10                	jne    0x40c758
40c748:	8b 0e                	mov    (%esi),%ecx
40c74a:	85 c9                	test   %ecx,%ecx
40c74c:	74 02                	je     0x40c750
40c74e:	ff d1                	call   *%ecx
40c750:	83 c6 04             	add    $0x4,%esi
40c753:	3b 75 0c             	cmp    0xc(%ebp),%esi
40c756:	72 ec                	jb     0x40c744
40c758:	5e                   	pop    %esi
40c759:	5d                   	pop    %ebp
40c75a:	c3                   	ret
40c75b:	8b ff                	mov    %edi,%edi
40c75d:	55                   	push   %ebp
40c75e:	8b ec                	mov    %esp,%ebp
40c760:	83 3d 20 c5 41 00 00 	cmpl   $0x0,0x41c520
40c767:	74 19                	je     0x40c782
40c769:	68 20 c5 41 00       	push   $0x41c520
40c76e:	e8 dd 69 00 00       	call   0x413150
40c773:	59                   	pop    %ecx
40c774:	85 c0                	test   %eax,%eax
40c776:	74 0a                	je     0x40c782
40c778:	ff 75 08             	push   0x8(%ebp)
40c77b:	ff 15 20 c5 41 00    	call   *0x41c520
40c781:	59                   	pop    %ecx
40c782:	e8 61 64 00 00       	call   0x412be8
40c787:	68 cc a1 41 00       	push   $0x41a1cc
40c78c:	68 ac a1 41 00       	push   $0x41a1ac
40c791:	e8 a1 ff ff ff       	call   0x40c737
40c796:	59                   	pop    %ecx
40c797:	59                   	pop    %ecx
40c798:	85 c0                	test   %eax,%eax
40c79a:	75 42                	jne    0x40c7de
40c79c:	68 d7 d1 40 00       	push   $0x40d1d7
40c7a1:	e8 83 9a ff ff       	call   0x406229
40c7a6:	b8 94 a1 41 00       	mov    $0x41a194,%eax
40c7ab:	c7 04 24 a8 a1 41 00 	movl   $0x41a1a8,(%esp)
40c7b2:	e8 63 ff ff ff       	call   0x40c71a
40c7b7:	83 3d 40 12 c7 00 00 	cmpl   $0x0,0xc71240
40c7be:	59                   	pop    %ecx
40c7bf:	74 1b                	je     0x40c7dc
40c7c1:	68 40 12 c7 00       	push   $0xc71240
40c7c6:	e8 85 69 00 00       	call   0x413150
40c7cb:	59                   	pop    %ecx
40c7cc:	85 c0                	test   %eax,%eax
40c7ce:	74 0c                	je     0x40c7dc
40c7d0:	6a 00                	push   $0x0
40c7d2:	6a 02                	push   $0x2
40c7d4:	6a 00                	push   $0x0
40c7d6:	ff 15 40 12 c7 00    	call   *0xc71240
40c7dc:	33 c0                	xor    %eax,%eax
40c7de:	5d                   	pop    %ebp
40c7df:	c3                   	ret
40c7e0:	6a 18                	push   $0x18
40c7e2:	68 b0 97 42 00       	push   $0x4297b0
40c7e7:	e8 f0 db ff ff       	call   0x40a3dc
40c7ec:	6a 08                	push   $0x8
40c7ee:	e8 f1 d0 ff ff       	call   0x4098e4
40c7f3:	59                   	pop    %ecx
40c7f4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c7f8:	33 db                	xor    %ebx,%ebx
40c7fa:	43                   	inc    %ebx
40c7fb:	39 1d bc 09 43 00    	cmp    %ebx,0x4309bc
40c801:	0f 84 c5 00 00 00    	je     0x40c8cc
40c807:	89 1d b8 09 43 00    	mov    %ebx,0x4309b8
40c80d:	8a 45 10             	mov    0x10(%ebp),%al
40c810:	a2 b4 09 43 00       	mov    %al,0x4309b4
40c815:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40c819:	0f 85 9d 00 00 00    	jne    0x40c8bc
40c81f:	ff 35 38 12 c7 00    	push   0xc71238
40c825:	e8 cb df ff ff       	call   0x40a7f5
40c82a:	59                   	pop    %ecx
40c82b:	8b f8                	mov    %eax,%edi
40c82d:	89 7d d8             	mov    %edi,-0x28(%ebp)
40c830:	85 ff                	test   %edi,%edi
40c832:	74 78                	je     0x40c8ac
40c834:	ff 35 34 12 c7 00    	push   0xc71234
40c83a:	e8 b6 df ff ff       	call   0x40a7f5
40c83f:	59                   	pop    %ecx
40c840:	8b f0                	mov    %eax,%esi
40c842:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c845:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c848:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c84b:	83 ee 04             	sub    $0x4,%esi
40c84e:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c851:	3b f7                	cmp    %edi,%esi
40c853:	72 57                	jb     0x40c8ac
40c855:	e8 92 df ff ff       	call   0x40a7ec
40c85a:	39 06                	cmp    %eax,(%esi)
40c85c:	74 ed                	je     0x40c84b
40c85e:	3b f7                	cmp    %edi,%esi
40c860:	72 4a                	jb     0x40c8ac
40c862:	ff 36                	push   (%esi)
40c864:	e8 8c df ff ff       	call   0x40a7f5
40c869:	8b f8                	mov    %eax,%edi
40c86b:	e8 7c df ff ff       	call   0x40a7ec
40c870:	89 06                	mov    %eax,(%esi)
40c872:	ff d7                	call   *%edi
40c874:	ff 35 38 12 c7 00    	push   0xc71238
40c87a:	e8 76 df ff ff       	call   0x40a7f5
40c87f:	8b f8                	mov    %eax,%edi
40c881:	ff 35 34 12 c7 00    	push   0xc71234
40c887:	e8 69 df ff ff       	call   0x40a7f5
40c88c:	83 c4 0c             	add    $0xc,%esp
40c88f:	39 7d e4             	cmp    %edi,-0x1c(%ebp)
40c892:	75 05                	jne    0x40c899
40c894:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40c897:	74 0e                	je     0x40c8a7
40c899:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c89c:	89 7d d8             	mov    %edi,-0x28(%ebp)
40c89f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40c8a2:	8b f0                	mov    %eax,%esi
40c8a4:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c8a7:	8b 7d d8             	mov    -0x28(%ebp),%edi
40c8aa:	eb 9f                	jmp    0x40c84b
40c8ac:	68 e4 a1 41 00       	push   $0x41a1e4
40c8b1:	b8 d8 a1 41 00       	mov    $0x41a1d8,%eax
40c8b6:	e8 5f fe ff ff       	call   0x40c71a
40c8bb:	59                   	pop    %ecx
40c8bc:	68 ec a1 41 00       	push   $0x41a1ec
40c8c1:	b8 e8 a1 41 00       	mov    $0x41a1e8,%eax
40c8c6:	e8 4f fe ff ff       	call   0x40c71a
40c8cb:	59                   	pop    %ecx
40c8cc:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c8d3:	e8 1f 00 00 00       	call   0x40c8f7
40c8d8:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40c8dc:	75 28                	jne    0x40c906
40c8de:	89 1d bc 09 43 00    	mov    %ebx,0x4309bc
40c8e4:	6a 08                	push   $0x8
40c8e6:	e8 1f cf ff ff       	call   0x40980a
40c8eb:	59                   	pop    %ecx
40c8ec:	ff 75 08             	push   0x8(%ebp)
40c8ef:	e8 fc fd ff ff       	call   0x40c6f0
40c8f4:	33 db                	xor    %ebx,%ebx
40c8f6:	43                   	inc    %ebx
40c8f7:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40c8fb:	74 08                	je     0x40c905
40c8fd:	6a 08                	push   $0x8
40c8ff:	e8 06 cf ff ff       	call   0x40980a
40c904:	59                   	pop    %ecx
40c905:	c3                   	ret
40c906:	e8 16 db ff ff       	call   0x40a421
40c90b:	c3                   	ret
40c90c:	8b ff                	mov    %edi,%edi
40c90e:	55                   	push   %ebp
40c90f:	8b ec                	mov    %esp,%ebp
40c911:	6a 00                	push   $0x0
40c913:	6a 00                	push   $0x0
40c915:	ff 75 08             	push   0x8(%ebp)
40c918:	e8 c3 fe ff ff       	call   0x40c7e0
40c91d:	83 c4 0c             	add    $0xc,%esp
40c920:	5d                   	pop    %ebp
40c921:	c3                   	ret
40c922:	8b ff                	mov    %edi,%edi
40c924:	55                   	push   %ebp
40c925:	8b ec                	mov    %esp,%ebp
40c927:	6a 00                	push   $0x0
40c929:	6a 01                	push   $0x1
40c92b:	ff 75 08             	push   0x8(%ebp)
40c92e:	e8 ad fe ff ff       	call   0x40c7e0
40c933:	83 c4 0c             	add    $0xc,%esp
40c936:	5d                   	pop    %ebp
40c937:	c3                   	ret
40c938:	6a 01                	push   $0x1
40c93a:	6a 00                	push   $0x0
40c93c:	6a 00                	push   $0x0
40c93e:	e8 9d fe ff ff       	call   0x40c7e0
40c943:	83 c4 0c             	add    $0xc,%esp
40c946:	c3                   	ret
40c947:	6a 01                	push   $0x1
40c949:	6a 01                	push   $0x1
40c94b:	6a 00                	push   $0x0
40c94d:	e8 8e fe ff ff       	call   0x40c7e0
40c952:	83 c4 0c             	add    $0xc,%esp
40c955:	c3                   	ret
40c956:	8b ff                	mov    %edi,%edi
40c958:	56                   	push   %esi
40c959:	e8 8e de ff ff       	call   0x40a7ec
40c95e:	8b f0                	mov    %eax,%esi
40c960:	56                   	push   %esi
40c961:	e8 7f fc ff ff       	call   0x40c5e5
40c966:	56                   	push   %esi
40c967:	e8 e1 66 00 00       	call   0x41304d
40c96c:	56                   	push   %esi
40c96d:	e8 7c 87 ff ff       	call   0x4050ee
40c972:	56                   	push   %esi
40c973:	e8 96 0c 00 00       	call   0x40d60e
40c978:	56                   	push   %esi
40c979:	e8 fc 8b 00 00       	call   0x41557a
40c97e:	56                   	push   %esi
40c97f:	e8 99 0c 00 00       	call   0x40d61d
40c984:	56                   	push   %esi
40c985:	e8 e0 f1 ff ff       	call   0x40bb6a
40c98a:	56                   	push   %esi
40c98b:	e8 7f 1c 00 00       	call   0x40e60f
40c990:	68 22 c9 40 00       	push   $0x40c922
40c995:	e8 e0 dd ff ff       	call   0x40a77a
40c99a:	83 c4 24             	add    $0x24,%esp
40c99d:	a3 d0 b6 42 00       	mov    %eax,0x42b6d0
40c9a2:	5e                   	pop    %esi
40c9a3:	c3                   	ret
40c9a4:	8b ff                	mov    %edi,%edi
40c9a6:	55                   	push   %ebp
40c9a7:	8b ec                	mov    %esp,%ebp
40c9a9:	51                   	push   %ecx
40c9aa:	51                   	push   %ecx
40c9ab:	53                   	push   %ebx
40c9ac:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c9af:	56                   	push   %esi
40c9b0:	57                   	push   %edi
40c9b1:	33 f6                	xor    %esi,%esi
40c9b3:	33 ff                	xor    %edi,%edi
40c9b5:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c9b8:	3b 1c fd d8 b6 42 00 	cmp    0x42b6d8(,%edi,8),%ebx
40c9bf:	74 09                	je     0x40c9ca
40c9c1:	47                   	inc    %edi
40c9c2:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c9c5:	83 ff 17             	cmp    $0x17,%edi
40c9c8:	72 ee                	jb     0x40c9b8
40c9ca:	83 ff 17             	cmp    $0x17,%edi
40c9cd:	0f 83 77 01 00 00    	jae    0x40cb4a
40c9d3:	6a 03                	push   $0x3
40c9d5:	e8 18 8d 00 00       	call   0x4156f2
40c9da:	59                   	pop    %ecx
40c9db:	83 f8 01             	cmp    $0x1,%eax
40c9de:	0f 84 34 01 00 00    	je     0x40cb18
40c9e4:	6a 03                	push   $0x3
40c9e6:	e8 07 8d 00 00       	call   0x4156f2
40c9eb:	59                   	pop    %ecx
40c9ec:	85 c0                	test   %eax,%eax
40c9ee:	75 0d                	jne    0x40c9fd
40c9f0:	83 3d e8 b0 42 00 01 	cmpl   $0x1,0x42b0e8
40c9f7:	0f 84 1b 01 00 00    	je     0x40cb18
40c9fd:	81 fb fc 00 00 00    	cmp    $0xfc,%ebx
40ca03:	0f 84 41 01 00 00    	je     0x40cb4a
40ca09:	68 40 cb 41 00       	push   $0x41cb40
40ca0e:	bb 14 03 00 00       	mov    $0x314,%ebx
40ca13:	53                   	push   %ebx
40ca14:	bf c0 09 43 00       	mov    $0x4309c0,%edi
40ca19:	57                   	push   %edi
40ca1a:	e8 98 cb ff ff       	call   0x4095b7
40ca1f:	83 c4 0c             	add    $0xc,%esp
40ca22:	85 c0                	test   %eax,%eax
40ca24:	74 0d                	je     0x40ca33
40ca26:	56                   	push   %esi
40ca27:	56                   	push   %esi
40ca28:	56                   	push   %esi
40ca29:	56                   	push   %esi
40ca2a:	56                   	push   %esi
40ca2b:	e8 cd 86 ff ff       	call   0x4050fd
40ca30:	83 c4 14             	add    $0x14,%esp
40ca33:	68 04 01 00 00       	push   $0x104
40ca38:	be d9 09 43 00       	mov    $0x4309d9,%esi
40ca3d:	56                   	push   %esi
40ca3e:	6a 00                	push   $0x0
40ca40:	c6 05 dd 0a 43 00 00 	movb   $0x0,0x430add
40ca47:	ff 15 20 a1 41 00    	call   *0x41a120
40ca4d:	85 c0                	test   %eax,%eax
40ca4f:	75 26                	jne    0x40ca77
40ca51:	68 28 cb 41 00       	push   $0x41cb28
40ca56:	68 fb 02 00 00       	push   $0x2fb
40ca5b:	56                   	push   %esi
40ca5c:	e8 56 cb ff ff       	call   0x4095b7
40ca61:	83 c4 0c             	add    $0xc,%esp
40ca64:	85 c0                	test   %eax,%eax
40ca66:	74 0f                	je     0x40ca77
40ca68:	33 c0                	xor    %eax,%eax
40ca6a:	50                   	push   %eax
40ca6b:	50                   	push   %eax
40ca6c:	50                   	push   %eax
40ca6d:	50                   	push   %eax
40ca6e:	50                   	push   %eax
40ca6f:	e8 89 86 ff ff       	call   0x4050fd
40ca74:	83 c4 14             	add    $0x14,%esp
40ca77:	56                   	push   %esi
40ca78:	e8 e3 94 ff ff       	call   0x405f60
40ca7d:	40                   	inc    %eax
40ca7e:	59                   	pop    %ecx
40ca7f:	83 f8 3c             	cmp    $0x3c,%eax
40ca82:	76 38                	jbe    0x40cabc
40ca84:	56                   	push   %esi