40c777:	51                   	push   %ecx
40c778:	e8 ab 80 ff ff       	call   0x404828
40c77d:	31 c9                	xor    %ecx,%ecx
40c77f:	87 4b 3d             	xchg   %ecx,0x3d(%ebx)
40c782:	e3 06                	jecxz  0x40c78a
40c784:	91                   	xchg   %eax,%ecx
40c785:	e8 d6 60 ff ff       	call   0x402860
40c78a:	31 c0                	xor    %eax,%eax
40c78c:	89 43 28             	mov    %eax,0x28(%ebx)
40c78f:	89 43 56             	mov    %eax,0x56(%ebx)
40c792:	89 43 5a             	mov    %eax,0x5a(%ebx)
40c795:	93                   	xchg   %eax,%ebx
40c796:	5b                   	pop    %ebx
40c797:	e8 f0 07 00 00       	call   0x40cf8c
40c79c:	c3                   	ret
40c79d:	8d 40 00             	lea    0x0(%eax),%eax
40c7a0:	50                   	push   %eax
40c7a1:	e8 4e 07 00 00       	call   0x40cef4
40c7a6:	58                   	pop    %eax
40c7a7:	50                   	push   %eax
40c7a8:	e8 a7 ff ff ff       	call   0x40c754
40c7ad:	58                   	pop    %eax
40c7ae:	31 d2                	xor    %edx,%edx
40c7b0:	89 50 1c             	mov    %edx,0x1c(%eax)
40c7b3:	89 50 18             	mov    %edx,0x18(%eax)
40c7b6:	88 50 72             	mov    %dl,0x72(%eax)
40c7b9:	c3                   	ret
40c7ba:	8b c0                	mov    %eax,%eax
40c7bc:	50                   	push   %eax
40c7bd:	e8 de ff ff ff       	call   0x40c7a0
40c7c2:	58                   	pop    %eax
40c7c3:	e8 58 da ff ff       	call   0x40a220
40c7c8:	c3                   	ret
40c7c9:	8d 40 00             	lea    0x0(%eax),%eax
40c7cc:	55                   	push   %ebp
40c7cd:	8b ec                	mov    %esp,%ebp
40c7cf:	52                   	push   %edx
40c7d0:	51                   	push   %ecx
40c7d1:	53                   	push   %ebx
40c7d2:	56                   	push   %esi
40c7d3:	89 c3                	mov    %eax,%ebx
40c7d5:	e8 86 03 00 00       	call   0x40cb60
40c7da:	0f 84 91 00 00 00    	je     0x40c871
40c7e0:	8b 4b 20             	mov    0x20(%ebx),%ecx
40c7e3:	e3 4d                	jecxz  0x40c832
40c7e5:	83 c4 e8             	add    $0xffffffe8,%esp
40c7e8:	54                   	push   %esp
40c7e9:	6a 18                	push   $0x18
40c7eb:	ff 73 20             	push   0x20(%ebx)
40c7ee:	e8 61 87 ff ff       	call   0x404f54
40c7f3:	85 c0                	test   %eax,%eax
40c7f5:	8b 74 24 08          	mov    0x8(%esp),%esi
40c7f9:	75 03                	jne    0x40c7fe
40c7fb:	8b 73 18             	mov    0x18(%ebx),%esi
40c7fe:	83 c4 18             	add    $0x18,%esp
40c801:	e8 b2 88 ff ff       	call   0x4050b8
40c806:	68 20 00 cc 00       	push   $0xcc0020
40c80b:	6a 00                	push   $0x0
40c80d:	6a 00                	push   $0x0
40c80f:	50                   	push   %eax
40c810:	e8 0c 00 00 00       	call   0x40c821
40c815:	e8 8e 80 ff ff       	call   0x4048a8
40c81a:	e8 c1 88 ff ff       	call   0x4050e0
40c81f:	eb 50                	jmp    0x40c871
40c821:	87 34 24             	xchg   %esi,(%esp)
40c824:	ff 73 1c             	push   0x1c(%ebx)
40c827:	ff 75 08             	push   0x8(%ebp)
40c82a:	ff 75 f8             	push   -0x8(%ebp)
40c82d:	ff 75 fc             	push   -0x4(%ebp)
40c830:	ff e6                	jmp    *%esi
40c832:	8b 4b 3d             	mov    0x3d(%ebx),%ecx
40c835:	e3 3a                	jecxz  0x40c871
40c837:	8b 71 08             	mov    0x8(%ecx),%esi
40c83a:	85 f6                	test   %esi,%esi
40c83c:	7d 02                	jge    0x40c840
40c83e:	f7 de                	neg    %esi
40c840:	68 20 00 cc 00       	push   $0xcc0020
40c845:	6a 00                	push   $0x0
40c847:	51                   	push   %ecx
40c848:	ff 73 41             	push   0x41(%ebx)
40c84b:	56                   	push   %esi
40c84c:	ff 73 1c             	push   0x1c(%ebx)
40c84f:	6a 00                	push   $0x0
40c851:	6a 00                	push   $0x0
40c853:	e8 c9 ff ff ff       	call   0x40c821
40c858:	e8 5b 81 ff ff       	call   0x4049b8
40c85d:	85 c0                	test   %eax,%eax
40c85f:	75 10                	jne    0x40c871
40c861:	89 d8                	mov    %ebx,%eax
40c863:	e8 90 c7 ff ff       	call   0x408ff8
40c868:	85 c0                	test   %eax,%eax
40c86a:	93                   	xchg   %eax,%ebx
40c86b:	0f 85 62 ff ff ff    	jne    0x40c7d3
40c871:	5e                   	pop    %esi
40c872:	5b                   	pop    %ebx
40c873:	89 ec                	mov    %ebp,%esp
40c875:	5d                   	pop    %ebp
40c876:	c2 04 00             	ret    $0x4
40c879:	8d 40 00             	lea    0x0(%eax),%eax
40c87c:	53                   	push   %ebx
40c87d:	57                   	push   %edi
40c87e:	55                   	push   %ebp
40c87f:	89 e5                	mov    %esp,%ebp
40c881:	52                   	push   %edx
40c882:	51                   	push   %ecx
40c883:	89 c3                	mov    %eax,%ebx
40c885:	e8 d6 02 00 00       	call   0x40cb60
40c88a:	74 7d                	je     0x40c909
40c88c:	8b 4b 20             	mov    0x20(%ebx),%ecx
40c88f:	e3 42                	jecxz  0x40c8d3
40c891:	e8 22 88 ff ff       	call   0x4050b8
40c896:	68 20 00 cc 00       	push   $0xcc0020
40c89b:	ff 73 18             	push   0x18(%ebx)
40c89e:	ff 73 1c             	push   0x1c(%ebx)
40c8a1:	6a 00                	push   $0x0
40c8a3:	6a 00                	push   $0x0
40c8a5:	50                   	push   %eax
40c8a6:	e8 0c 00 00 00       	call   0x40c8b7
40c8ab:	e8 00 81 ff ff       	call   0x4049b0
40c8b0:	e8 2b 88 ff ff       	call   0x4050e0
40c8b5:	eb 52                	jmp    0x40c909
40c8b7:	5f                   	pop    %edi
40c8b8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c8bb:	8b 50 0c             	mov    0xc(%eax),%edx
40c8be:	8b 48 04             	mov    0x4(%eax),%ecx
40c8c1:	29 ca                	sub    %ecx,%edx
40c8c3:	52                   	push   %edx
40c8c4:	8b 50 08             	mov    0x8(%eax),%edx
40c8c7:	8b 00                	mov    (%eax),%eax
40c8c9:	29 c2                	sub    %eax,%edx
40c8cb:	52                   	push   %edx
40c8cc:	51                   	push   %ecx
40c8cd:	50                   	push   %eax
40c8ce:	ff 75 fc             	push   -0x4(%ebp)
40c8d1:	ff e7                	jmp    *%edi
40c8d3:	8b 4b 3d             	mov    0x3d(%ebx),%ecx
40c8d6:	e3 31                	jecxz  0x40c909
40c8d8:	68 20 00 cc 00       	push   $0xcc0020
40c8dd:	6a 00                	push   $0x0
40c8df:	51                   	push   %ecx
40c8e0:	ff 73 41             	push   0x41(%ebx)
40c8e3:	ff 73 18             	push   0x18(%ebx)
40c8e6:	ff 73 1c             	push   0x1c(%ebx)
40c8e9:	6a 00                	push   $0x0
40c8eb:	6a 00                	push   $0x0
40c8ed:	e8 c5 ff ff ff       	call   0x40c8b7
40c8f2:	e8 c1 80 ff ff       	call   0x4049b8
40c8f7:	85 c0                	test   %eax,%eax
40c8f9:	7f 0e                	jg     0x40c909
40c8fb:	89 d8                	mov    %ebx,%eax
40c8fd:	e8 f6 c6 ff ff       	call   0x408ff8
40c902:	8b 4b 20             	mov    0x20(%ebx),%ecx
40c905:	e3 02                	jecxz  0x40c909
40c907:	eb 88                	jmp    0x40c891
40c909:	89 ec                	mov    %ebp,%esp
40c90b:	5d                   	pop    %ebp
40c90c:	5f                   	pop    %edi
40c90d:	5b                   	pop    %ebx
40c90e:	c3                   	ret
40c90f:	90                   	nop
40c910:	55                   	push   %ebp
40c911:	8b ec                	mov    %esp,%ebp
40c913:	51                   	push   %ecx
40c914:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c917:	41                   	inc    %ecx
40c918:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c91b:	75 0a                	jne    0x40c927
40c91d:	87 0c 24             	xchg   %ecx,(%esp)
40c920:	e8 a7 fe ff ff       	call   0x40c7cc
40c925:	eb 1b                	jmp    0x40c942
40c927:	03 48 18             	add    0x18(%eax),%ecx
40c92a:	51                   	push   %ecx
40c92b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c92e:	03 48 1c             	add    0x1c(%eax),%ecx
40c931:	51                   	push   %ecx
40c932:	ff 75 0c             	push   0xc(%ebp)
40c935:	ff 75 fc             	push   -0x4(%ebp)
40c938:	89 e1                	mov    %esp,%ecx
40c93a:	ff 75 08             	push   0x8(%ebp)
40c93d:	e8 06 00 00 00       	call   0x40c948
40c942:	89 ec                	mov    %ebp,%esp
40c944:	5d                   	pop    %ebp
40c945:	c2 08 00             	ret    $0x8
40c948:	55                   	push   %ebp
40c949:	8b ec                	mov    %esp,%ebp
40c94b:	53                   	push   %ebx
40c94c:	93                   	xchg   %eax,%ebx
40c94d:	8b 45 08             	mov    0x8(%ebp),%eax
40c950:	40                   	inc    %eax
40c951:	89 d8                	mov    %ebx,%eax
40c953:	75 07                	jne    0x40c95c
40c955:	e8 22 ff ff ff       	call   0x40c87c
40c95a:	eb 56                	jmp    0x40c9b2
40c95c:	52                   	push   %edx
40c95d:	51                   	push   %ecx
40c95e:	e8 95 c6 ff ff       	call   0x408ff8
40c963:	85 c0                	test   %eax,%eax
40c965:	74 49                	je     0x40c9b0
40c967:	8b 45 08             	mov    0x8(%ebp),%eax
40c96a:	e8 f5 da ff ff       	call   0x40a464
40c96f:	8b 4b 4e             	mov    0x4e(%ebx),%ecx
40c972:	e3 05                	jecxz  0x40c979
40c974:	3b 43 52             	cmp    0x52(%ebx),%eax
40c977:	74 24                	je     0x40c99d
40c979:	89 43 52             	mov    %eax,0x52(%ebx)
40c97c:	41                   	inc    %ecx
40c97d:	e2 0a                	loop   0x40c989
40c97f:	31 c0                	xor    %eax,%eax
40c981:	e8 1e fd ff ff       	call   0x40c6a4
40c986:	89 43 4e             	mov    %eax,0x4e(%ebx)
40c989:	8b 43 4e             	mov    0x4e(%ebx),%eax
40c98c:	50                   	push   %eax
40c98d:	89 da                	mov    %ebx,%edx
40c98f:	e8 e0 04 00 00       	call   0x40ce74
40c994:	58                   	pop    %eax
40c995:	8b 53 52             	mov    0x52(%ebx),%edx
40c998:	e8 ff 05 00 00       	call   0x40cf9c
40c99d:	8b 43 4e             	mov    0x4e(%ebx),%eax
40c9a0:	e8 53 c6 ff ff       	call   0x408ff8
40c9a5:	59                   	pop    %ecx
40c9a6:	5a                   	pop    %edx
40c9a7:	50                   	push   %eax
40c9a8:	93                   	xchg   %eax,%ebx
40c9a9:	e8 0a 00 00 00       	call   0x40c9b8
40c9ae:	eb 02                	jmp    0x40c9b2
40c9b0:	59                   	pop    %ecx
40c9b1:	5a                   	pop    %edx
40c9b2:	5b                   	pop    %ebx
40c9b3:	5d                   	pop    %ebp
40c9b4:	c2 04 00             	ret    $0x4
40c9b7:	90                   	nop
40c9b8:	55                   	push   %ebp
40c9b9:	8b ec                	mov    %esp,%ebp
40c9bb:	52                   	push   %edx
40c9bc:	51                   	push   %ecx
40c9bd:	53                   	push   %ebx
40c9be:	89 c3                	mov    %eax,%ebx
40c9c0:	56                   	push   %esi
40c9c1:	e8 32 c6 ff ff       	call   0x408ff8
40c9c6:	85 c0                	test   %eax,%eax
40c9c8:	0f 84 a3 00 00 00    	je     0x40ca71
40c9ce:	6a 00                	push   $0x0
40c9d0:	e8 fb 7e ff ff       	call   0x4048d0
40c9d5:	50                   	push   %eax
40c9d6:	ff 75 08             	push   0x8(%ebp)
40c9d9:	50                   	push   %eax
40c9da:	e8 79 7f ff ff       	call   0x404958
40c9df:	50                   	push   %eax
40c9e0:	e8 d3 86 ff ff       	call   0x4050b8
40c9e5:	ff 73 18             	push   0x18(%ebx)
40c9e8:	ff 73 1c             	push   0x1c(%ebx)
40c9eb:	50                   	push   %eax
40c9ec:	e8 d7 7e ff ff       	call   0x4048c8
40c9f1:	50                   	push   %eax
40c9f2:	6a 00                	push   $0x0
40c9f4:	e8 d7 7e ff ff       	call   0x4048d0
40c9f9:	50                   	push   %eax
40c9fa:	ff 75 dc             	push   -0x24(%ebp)
40c9fd:	50                   	push   %eax
40c9fe:	e8 55 7f ff ff       	call   0x404958
40ca03:	50                   	push   %eax
40ca04:	68 20 00 cc 00       	push   $0xcc0020
40ca09:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ca0c:	e8 63 00 00 00       	call   0x40ca74
40ca11:	68 28 03 44 00       	push   $0x440328
40ca16:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ca19:	e8 56 00 00 00       	call   0x40ca74
40ca1e:	6a 00                	push   $0x0
40ca20:	ff 75 fc             	push   -0x4(%ebp)
40ca23:	e8 78 7f ff ff       	call   0x4049a0
40ca28:	50                   	push   %eax
40ca29:	68 ff ff ff 00       	push   $0xffffff
40ca2e:	ff 75 fc             	push   -0x4(%ebp)
40ca31:	e8 2a 7f ff ff       	call   0x404960
40ca36:	50                   	push   %eax
40ca37:	68 c6 00 88 00       	push   $0x8800c6
40ca3c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ca3f:	e8 49 00 00 00       	call   0x40ca8d
40ca44:	68 46 00 66 00       	push   $0x660046
40ca49:	8b 45 d8             	mov    -0x28(%ebp),%eax
40ca4c:	e8 3c 00 00 00       	call   0x40ca8d
40ca51:	ff 75 fc             	push   -0x4(%ebp)
40ca54:	e8 07 7f ff ff       	call   0x404960
40ca59:	ff 75 fc             	push   -0x4(%ebp)
40ca5c:	e8 3f 7f ff ff       	call   0x4049a0
40ca61:	be e0 50 40 00       	mov    $0x4050e0,%esi
40ca66:	ff d6                	call   *%esi
40ca68:	e8 93 7e ff ff       	call   0x404900
40ca6d:	ff d6                	call   *%esi
40ca6f:	ff d6                	call   *%esi
40ca71:	f9                   	stc
40ca72:	72 45                	jb     0x40cab9
40ca74:	5e                   	pop    %esi
40ca75:	ff 73 18             	push   0x18(%ebx)
40ca78:	ff 73 1c             	push   0x1c(%ebx)
40ca7b:	31 d2                	xor    %edx,%edx
40ca7d:	52                   	push   %edx
40ca7e:	52                   	push   %edx
40ca7f:	50                   	push   %eax
40ca80:	ff 73 18             	push   0x18(%ebx)
40ca83:	ff 73 1c             	push   0x1c(%ebx)
40ca86:	52                   	push   %edx
40ca87:	52                   	push   %edx
40ca88:	ff 75 d8             	push   -0x28(%ebp)
40ca8b:	eb 25                	jmp    0x40cab2
40ca8d:	5e                   	pop    %esi
40ca8e:	ff 73 18             	push   0x18(%ebx)
40ca91:	ff 73 1c             	push   0x1c(%ebx)
40ca94:	6a 00                	push   $0x0
40ca96:	6a 00                	push   $0x0
40ca98:	50                   	push   %eax
40ca99:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ca9c:	8b 50 0c             	mov    0xc(%eax),%edx
40ca9f:	8b 48 04             	mov    0x4(%eax),%ecx
40caa2:	29 ca                	sub    %ecx,%edx
40caa4:	52                   	push   %edx
40caa5:	8b 50 08             	mov    0x8(%eax),%edx
40caa8:	8b 00                	mov    (%eax),%eax
40caaa:	29 c2                	sub    %eax,%edx
40caac:	52                   	push   %edx
40caad:	51                   	push   %ecx
40caae:	50                   	push   %eax
40caaf:	ff 75 fc             	push   -0x4(%ebp)
40cab2:	e8 f9 7e ff ff       	call   0x4049b0
40cab7:	ff e6                	jmp    *%esi
40cab9:	5e                   	pop    %esi
40caba:	5b                   	pop    %ebx
40cabb:	89 ec                	mov    %ebp,%esp
40cabd:	5d                   	pop    %ebp
40cabe:	c2 04 00             	ret    $0x4
40cac1:	8d 40 00             	lea    0x0(%eax),%eax
40cac4:	31 c9                	xor    %ecx,%ecx
40cac6:	87 48 38             	xchg   %ecx,0x38(%eax)
40cac9:	e3 0c                	jecxz  0x40cad7
40cacb:	51                   	push   %ecx
40cacc:	8b 40 24             	mov    0x24(%eax),%eax
40cacf:	ff 70 1c             	push   0x1c(%eax)
40cad2:	e8 81 7e ff ff       	call   0x404958
40cad7:	c3                   	ret
40cad8:	53                   	push   %ebx
40cad9:	89 c3                	mov    %eax,%ebx
40cadb:	e8 80 00 00 00       	call   0x40cb60
40cae0:	74 7b                	je     0x40cb5d
40cae2:	89 d8                	mov    %ebx,%eax
40cae4:	e8 0f c5 ff ff       	call   0x408ff8
40cae9:	85 c0                	test   %eax,%eax
40caeb:	74 70                	je     0x40cb5d
40caed:	8b 4b 24             	mov    0x24(%ebx),%ecx
40caf0:	41                   	inc    %ecx
40caf1:	e2 2c                	loop   0x40cb1f