40a85f:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
40a863:	74 08                	je     0x40a86d
40a865:	ff 76 14             	push   0x14(%esi)
40a868:	e8 13 f6 ff ff       	call   0x409e80
40a86d:	83 3f 00             	cmpl   $0x0,(%edi)
40a870:	74 07                	je     0x40a879
40a872:	ff 37                	push   (%edi)
40a874:	e8 6e 02 00 00       	call   0x40aae7
40a879:	5f                   	pop    %edi
40a87a:	8b c6                	mov    %esi,%eax
40a87c:	5e                   	pop    %esi
40a87d:	c2 04 00             	ret    $0x4
40a880:	8b ff                	mov    %edi,%edi
40a882:	56                   	push   %esi
40a883:	8b f1                	mov    %ecx,%esi
40a885:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40a889:	74 08                	je     0x40a893
40a88b:	ff 76 04             	push   0x4(%esi)
40a88e:	e8 6d c7 ff ff       	call   0x407000
40a893:	83 3e 00             	cmpl   $0x0,(%esi)
40a896:	74 07                	je     0x40a89f
40a898:	ff 36                	push   (%esi)
40a89a:	e8 61 c7 ff ff       	call   0x407000
40a89f:	5e                   	pop    %esi
40a8a0:	c3                   	ret
40a8a1:	8b ff                	mov    %edi,%edi
40a8a3:	55                   	push   %ebp
40a8a4:	8b ec                	mov    %esp,%ebp
40a8a6:	83 e4 f8             	and    $0xfffffff8,%esp
40a8a9:	83 ec 14             	sub    $0x14,%esp
40a8ac:	8b 45 08             	mov    0x8(%ebp),%eax
40a8af:	53                   	push   %ebx
40a8b0:	56                   	push   %esi
40a8b1:	57                   	push   %edi
40a8b2:	6a 08                	push   $0x8
40a8b4:	89 54 24 18          	mov    %edx,0x18(%esp)
40a8b8:	8b f1                	mov    %ecx,%esi
40a8ba:	33 ff                	xor    %edi,%edi
40a8bc:	ba a8 00 00 00       	mov    $0xa8,%edx
40a8c1:	59                   	pop    %ecx
40a8c2:	89 38                	mov    %edi,(%eax)
40a8c4:	e8 70 bf ff ff       	call   0x406839
40a8c9:	8b d8                	mov    %eax,%ebx
40a8cb:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40a8cf:	85 db                	test   %ebx,%ebx
40a8d1:	75 1a                	jne    0x40a8ed
40a8d3:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a8d6:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40a8db:	57                   	push   %edi
40a8dc:	68 a0 1a 40 00       	push   $0x401aa0
40a8e1:	ba 42 01 00 00       	mov    $0x142,%edx
40a8e6:	e8 a5 c6 ff ff       	call   0x406f90
40a8eb:	eb 74                	jmp    0x40a961
40a8ed:	89 7c 24 18          	mov    %edi,0x18(%esp)
40a8f1:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40a8f5:	f6 c3 03             	test   $0x3,%bl
40a8f8:	75 72                	jne    0x40a96c
40a8fa:	57                   	push   %edi
40a8fb:	c1 e8 02             	shr    $0x2,%eax
40a8fe:	50                   	push   %eax
40a8ff:	51                   	push   %ecx
40a900:	56                   	push   %esi
40a901:	8d 4c 24 28          	lea    0x28(%esp),%ecx
40a905:	e8 a7 c7 ff ff       	call   0x4070b1
40a90a:	8b f8                	mov    %eax,%edi
40a90c:	85 ff                	test   %edi,%edi
40a90e:	79 19                	jns    0x40a929
40a910:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a913:	ba 45 01 00 00       	mov    $0x145,%edx
40a918:	57                   	push   %edi
40a919:	68 a0 1a 40 00       	push   $0x401aa0
40a91e:	e8 6d c6 ff ff       	call   0x406f90
40a923:	8b 74 24 10          	mov    0x10(%esp),%esi
40a927:	eb 1b                	jmp    0x40a944
40a929:	8d 44 24 18          	lea    0x18(%esp),%eax
40a92d:	8b cb                	mov    %ebx,%ecx
40a92f:	50                   	push   %eax
40a930:	ff 74 24 18          	push   0x18(%esp)
40a934:	e8 d3 01 00 00       	call   0x40ab0c
40a939:	8b 45 08             	mov    0x8(%ebp),%eax
40a93c:	33 f6                	xor    %esi,%esi
40a93e:	33 ff                	xor    %edi,%edi
40a940:	89 18                	mov    %ebx,(%eax)
40a942:	33 db                	xor    %ebx,%ebx
40a944:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40a948:	e8 33 ff ff ff       	call   0x40a880
40a94d:	85 db                	test   %ebx,%ebx
40a94f:	74 10                	je     0x40a961
40a951:	56                   	push   %esi
40a952:	6a 00                	push   $0x0
40a954:	ff 15 7c 60 42 00    	call   *0x42607c
40a95a:	50                   	push   %eax
40a95b:	ff 15 a4 61 42 00    	call   *0x4261a4
40a961:	8b c7                	mov    %edi,%eax
40a963:	5f                   	pop    %edi
40a964:	5e                   	pop    %esi
40a965:	5b                   	pop    %ebx
40a966:	8b e5                	mov    %ebp,%esp
40a968:	5d                   	pop    %ebp
40a969:	c2 04 00             	ret    $0x4
40a96c:	e8 89 c6 ff ff       	call   0x406ffa
40a971:	cc                   	int3
40a972:	8b ff                	mov    %edi,%edi
40a974:	55                   	push   %ebp
40a975:	8b ec                	mov    %esp,%ebp
40a977:	83 e4 f8             	and    $0xfffffff8,%esp
40a97a:	83 ec 14             	sub    $0x14,%esp
40a97d:	8b 45 08             	mov    0x8(%ebp),%eax
40a980:	53                   	push   %ebx
40a981:	56                   	push   %esi
40a982:	57                   	push   %edi
40a983:	6a 40                	push   $0x40
40a985:	89 54 24 18          	mov    %edx,0x18(%esp)
40a989:	8b f1                	mov    %ecx,%esi
40a98b:	5a                   	pop    %edx
40a98c:	6a 08                	push   $0x8
40a98e:	33 ff                	xor    %edi,%edi
40a990:	59                   	pop    %ecx
40a991:	89 38                	mov    %edi,(%eax)
40a993:	e8 a1 be ff ff       	call   0x406839
40a998:	8b d8                	mov    %eax,%ebx
40a99a:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40a99e:	85 db                	test   %ebx,%ebx
40a9a0:	75 1a                	jne    0x40a9bc
40a9a2:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a9a5:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40a9aa:	57                   	push   %edi
40a9ab:	68 a0 1a 40 00       	push   $0x401aa0
40a9b0:	ba 42 01 00 00       	mov    $0x142,%edx
40a9b5:	e8 d6 c5 ff ff       	call   0x406f90
40a9ba:	eb 74                	jmp    0x40aa30
40a9bc:	89 7c 24 18          	mov    %edi,0x18(%esp)
40a9c0:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40a9c4:	f6 c3 03             	test   $0x3,%bl
40a9c7:	75 72                	jne    0x40aa3b
40a9c9:	57                   	push   %edi
40a9ca:	c1 e8 02             	shr    $0x2,%eax
40a9cd:	50                   	push   %eax
40a9ce:	51                   	push   %ecx
40a9cf:	56                   	push   %esi
40a9d0:	8d 4c 24 28          	lea    0x28(%esp),%ecx
40a9d4:	e8 d8 c6 ff ff       	call   0x4070b1
40a9d9:	8b f8                	mov    %eax,%edi
40a9db:	85 ff                	test   %edi,%edi
40a9dd:	79 19                	jns    0x40a9f8
40a9df:	8b 4d 04             	mov    0x4(%ebp),%ecx
40a9e2:	ba 45 01 00 00       	mov    $0x145,%edx
40a9e7:	57                   	push   %edi
40a9e8:	68 a0 1a 40 00       	push   $0x401aa0
40a9ed:	e8 9e c5 ff ff       	call   0x406f90
40a9f2:	8b 74 24 10          	mov    0x10(%esp),%esi
40a9f6:	eb 1b                	jmp    0x40aa13
40a9f8:	8d 44 24 18          	lea    0x18(%esp),%eax
40a9fc:	8b cb                	mov    %ebx,%ecx
40a9fe:	50                   	push   %eax
40a9ff:	ff 74 24 18          	push   0x18(%esp)
40aa03:	e8 62 01 00 00       	call   0x40ab6a
40aa08:	8b 45 08             	mov    0x8(%ebp),%eax
40aa0b:	33 f6                	xor    %esi,%esi
40aa0d:	33 ff                	xor    %edi,%edi
40aa0f:	89 18                	mov    %ebx,(%eax)
40aa11:	33 db                	xor    %ebx,%ebx
40aa13:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40aa17:	e8 64 fe ff ff       	call   0x40a880
40aa1c:	85 db                	test   %ebx,%ebx
40aa1e:	74 10                	je     0x40aa30
40aa20:	56                   	push   %esi
40aa21:	6a 00                	push   $0x0
40aa23:	ff 15 7c 60 42 00    	call   *0x42607c
40aa29:	50                   	push   %eax
40aa2a:	ff 15 a4 61 42 00    	call   *0x4261a4
40aa30:	8b c7                	mov    %edi,%eax
40aa32:	5f                   	pop    %edi
40aa33:	5e                   	pop    %esi
40aa34:	5b                   	pop    %ebx
40aa35:	8b e5                	mov    %ebp,%esp
40aa37:	5d                   	pop    %ebp
40aa38:	c2 04 00             	ret    $0x4
40aa3b:	e8 ba c5 ff ff       	call   0x406ffa
40aa40:	cc                   	int3
40aa41:	8b ff                	mov    %edi,%edi
40aa43:	55                   	push   %ebp
40aa44:	8b ec                	mov    %esp,%ebp
40aa46:	51                   	push   %ecx
40aa47:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40aa4a:	8d 41 28             	lea    0x28(%ecx),%eax
40aa4d:	57                   	push   %edi
40aa4e:	8b 7d fc             	mov    -0x4(%ebp),%edi
40aa51:	89 45 fc             	mov    %eax,-0x4(%ebp)
40aa54:	3b f8                	cmp    %eax,%edi
40aa56:	74 3b                	je     0x40aa93
40aa58:	53                   	push   %ebx
40aa59:	56                   	push   %esi
40aa5a:	8b 1f                	mov    (%edi),%ebx
40aa5c:	85 db                	test   %ebx,%ebx
40aa5e:	74 24                	je     0x40aa84
40aa60:	8b f3                	mov    %ebx,%esi
40aa62:	8b 5b 04             	mov    0x4(%ebx),%ebx
40aa65:	8d 4e 08             	lea    0x8(%esi),%ecx
40aa68:	e8 1f ca ff ff       	call   0x40748c
40aa6d:	56                   	push   %esi
40aa6e:	6a 00                	push   $0x0
40aa70:	ff 15 7c 60 42 00    	call   *0x42607c
40aa76:	50                   	push   %eax
40aa77:	ff 15 a4 61 42 00    	call   *0x4261a4
40aa7d:	85 db                	test   %ebx,%ebx
40aa7f:	75 df                	jne    0x40aa60
40aa81:	8b 45 fc             	mov    -0x4(%ebp),%eax
40aa84:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40aa8a:	83 c7 04             	add    $0x4,%edi
40aa8d:	3b f8                	cmp    %eax,%edi
40aa8f:	75 c9                	jne    0x40aa5a
40aa91:	5e                   	pop    %esi
40aa92:	5b                   	pop    %ebx
40aa93:	5f                   	pop    %edi
40aa94:	c9                   	leave
40aa95:	c3                   	ret
40aa96:	8b ff                	mov    %edi,%edi
40aa98:	55                   	push   %ebp
40aa99:	8b ec                	mov    %esp,%ebp
40aa9b:	56                   	push   %esi
40aa9c:	57                   	push   %edi
40aa9d:	8b 39                	mov    (%ecx),%edi
40aa9f:	33 f6                	xor    %esi,%esi
40aaa1:	56                   	push   %esi
40aaa2:	6a ff                	push   $0xffffffff
40aaa4:	57                   	push   %edi
40aaa5:	ff 15 5c 61 42 00    	call   *0x42615c
40aaab:	b9 80 00 00 00       	mov    $0x80,%ecx
40aab0:	3d 02 01 00 00       	cmp    $0x102,%eax
40aab5:	74 08                	je     0x40aabf
40aab7:	85 c0                	test   %eax,%eax
40aab9:	74 0c                	je     0x40aac7
40aabb:	3b c1                	cmp    %ecx,%eax
40aabd:	75 15                	jne    0x40aad4
40aabf:	85 c0                	test   %eax,%eax
40aac1:	74 04                	je     0x40aac7
40aac3:	3b c1                	cmp    %ecx,%eax
40aac5:	75 02                	jne    0x40aac9
40aac7:	8b f7                	mov    %edi,%esi
40aac9:	8b 45 08             	mov    0x8(%ebp),%eax
40aacc:	5f                   	pop    %edi
40aacd:	89 30                	mov    %esi,(%eax)
40aacf:	5e                   	pop    %esi
40aad0:	5d                   	pop    %ebp
40aad1:	c2 10 00             	ret    $0x10
40aad4:	8b 4d 04             	mov    0x4(%ebp),%ecx
40aad7:	ba 4c 0b 00 00       	mov    $0xb4c,%edx
40aadc:	68 a4 1a 40 00       	push   $0x401aa4
40aae1:	e8 f5 c4 ff ff       	call   0x406fdb
40aae6:	cc                   	int3
40aae7:	8b ff                	mov    %edi,%edi
40aae9:	55                   	push   %ebp
40aaea:	8b ec                	mov    %esp,%ebp
40aaec:	33 c0                	xor    %eax,%eax
40aaee:	50                   	push   %eax
40aaef:	50                   	push   %eax
40aaf0:	50                   	push   %eax
40aaf1:	ff 75 08             	push   0x8(%ebp)
40aaf4:	ff 15 50 61 42 00    	call   *0x426150
40aafa:	6a 01                	push   $0x1
40aafc:	ff 75 08             	push   0x8(%ebp)
40aaff:	ff 15 84 61 42 00    	call   *0x426184
40ab05:	5d                   	pop    %ebp
40ab06:	ff 25 64 61 42 00    	jmp    *0x426164
40ab0c:	8b ff                	mov    %edi,%edi
40ab0e:	55                   	push   %ebp
40ab0f:	8b ec                	mov    %esp,%ebp
40ab11:	8b 55 08             	mov    0x8(%ebp),%edx
40ab14:	56                   	push   %esi
40ab15:	8b f1                	mov    %ecx,%esi
40ab17:	57                   	push   %edi
40ab18:	33 ff                	xor    %edi,%edi
40ab1a:	68 94 00 00 00       	push   $0x94
40ab1f:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
40ab25:	8b 02                	mov    (%edx),%eax
40ab27:	89 46 04             	mov    %eax,0x4(%esi)
40ab2a:	89 3a                	mov    %edi,(%edx)
40ab2c:	8b 55 0c             	mov    0xc(%ebp),%edx
40ab2f:	57                   	push   %edi
40ab30:	8b 02                	mov    (%edx),%eax
40ab32:	89 46 08             	mov    %eax,0x8(%esi)
40ab35:	8b 42 04             	mov    0x4(%edx),%eax
40ab38:	89 3a                	mov    %edi,(%edx)
40ab3a:	89 46 0c             	mov    %eax,0xc(%esi)
40ab3d:	8d 46 14             	lea    0x14(%esi),%eax
40ab40:	50                   	push   %eax
40ab41:	89 7a 04             	mov    %edi,0x4(%edx)
40ab44:	e8 ff 7c 01 00       	call   0x422848
40ab49:	83 c4 0c             	add    $0xc,%esp
40ab4c:	89 7e 10             	mov    %edi,0x10(%esi)
40ab4f:	8d 4e 14             	lea    0x14(%esi),%ecx
40ab52:	e8 fb e5 ff ff       	call   0x409152
40ab57:	8d 8e 80 00 00 00    	lea    0x80(%esi),%ecx
40ab5d:	e8 7b ef ff ff       	call   0x409add
40ab62:	5f                   	pop    %edi
40ab63:	8b c6                	mov    %esi,%eax
40ab65:	5e                   	pop    %esi
40ab66:	5d                   	pop    %ebp
40ab67:	c2 08 00             	ret    $0x8
40ab6a:	8b ff                	mov    %edi,%edi
40ab6c:	55                   	push   %ebp
40ab6d:	8b ec                	mov    %esp,%ebp
40ab6f:	8b 55 08             	mov    0x8(%ebp),%edx
40ab72:	53                   	push   %ebx
40ab73:	56                   	push   %esi
40ab74:	8b f1                	mov    %ecx,%esi
40ab76:	33 db                	xor    %ebx,%ebx
40ab78:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ab7b:	57                   	push   %edi
40ab7c:	6a 30                	push   $0x30
40ab7e:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
40ab84:	8d 7e 10             	lea    0x10(%esi),%edi
40ab87:	8b 02                	mov    (%edx),%eax
40ab89:	89 46 04             	mov    %eax,0x4(%esi)
40ab8c:	89 1a                	mov    %ebx,(%edx)
40ab8e:	8b 01                	mov    (%ecx),%eax
40ab90:	89 46 08             	mov    %eax,0x8(%esi)
40ab93:	8b 41 04             	mov    0x4(%ecx),%eax
40ab96:	89 19                	mov    %ebx,(%ecx)
40ab98:	89 46 0c             	mov    %eax,0xc(%esi)
40ab9b:	89 59 04             	mov    %ebx,0x4(%ecx)
40ab9e:	5b                   	pop    %ebx
40ab9f:	53                   	push   %ebx
40aba0:	6a 00                	push   $0x0
40aba2:	57                   	push   %edi
40aba3:	e8 a0 7c 01 00       	call   0x422848
40aba8:	83 c4 0c             	add    $0xc,%esp
40abab:	66 89 1f             	mov    %bx,(%edi)
40abae:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)
40abb5:	33 c0                	xor    %eax,%eax
40abb7:	83 c7 08             	add    $0x8,%edi
40abba:	6a 0a                	push   $0xa
40abbc:	59                   	pop    %ecx
40abbd:	f3 ab                	rep stos %eax,%es:(%edi)
40abbf:	5f                   	pop    %edi
40abc0:	8b c6                	mov    %esi,%eax
40abc2:	5e                   	pop    %esi
40abc3:	5b                   	pop    %ebx
40abc4:	5d                   	pop    %ebp
40abc5:	c2 08 00             	ret    $0x8
40abc8:	8b ff                	mov    %edi,%edi
40abca:	55                   	push   %ebp
40abcb:	8b ec                	mov    %esp,%ebp
40abcd:	51                   	push   %ecx
40abce:	53                   	push   %ebx
40abcf:	56                   	push   %esi
40abd0:	8b f1                	mov    %ecx,%esi
40abd2:	8b da                	mov    %edx,%ebx
40abd4:	33 c9                	xor    %ecx,%ecx