40aa77:	33 f6                	xor    %esi,%esi
40aa79:	46                   	inc    %esi
40aa7a:	8b c6                	mov    %esi,%eax
40aa7c:	eb 03                	jmp    0x40aa81
40aa7e:	33 c0                	xor    %eax,%eax
40aa80:	40                   	inc    %eax
40aa81:	5f                   	pop    %edi
40aa82:	5e                   	pop    %esi
40aa83:	5b                   	pop    %ebx
40aa84:	5d                   	pop    %ebp
40aa85:	c3                   	ret
40aa86:	55                   	push   %ebp
40aa87:	8b ec                	mov    %esp,%ebp
40aa89:	53                   	push   %ebx
40aa8a:	56                   	push   %esi
40aa8b:	57                   	push   %edi
40aa8c:	ff 75 10             	push   0x10(%ebp)
40aa8f:	e8 a8 05 00 00       	call   0x40b03c
40aa94:	59                   	pop    %ecx
40aa95:	e8 02 f7 ff ff       	call   0x40a19c
40aa9a:	8b 4d 18             	mov    0x18(%ebp),%ecx
40aa9d:	33 f6                	xor    %esi,%esi
40aa9f:	8b 55 08             	mov    0x8(%ebp),%edx
40aaa2:	bb ff ff ff 1f       	mov    $0x1fffffff,%ebx
40aaa7:	bf 22 05 93 19       	mov    $0x19930522,%edi
40aaac:	39 70 20             	cmp    %esi,0x20(%eax)
40aaaf:	75 22                	jne    0x40aad3
40aab1:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
40aab7:	74 1a                	je     0x40aad3
40aab9:	81 3a 26 00 00 80    	cmpl   $0x80000026,(%edx)
40aabf:	74 12                	je     0x40aad3
40aac1:	8b 01                	mov    (%ecx),%eax
40aac3:	23 c3                	and    %ebx,%eax
40aac5:	3b c7                	cmp    %edi,%eax
40aac7:	72 0a                	jb     0x40aad3
40aac9:	f6 41 20 01          	testb  $0x1,0x20(%ecx)
40aacd:	0f 85 ad 00 00 00    	jne    0x40ab80
40aad3:	f6 42 04 66          	testb  $0x66,0x4(%edx)
40aad7:	74 26                	je     0x40aaff
40aad9:	39 71 04             	cmp    %esi,0x4(%ecx)
40aadc:	0f 84 9e 00 00 00    	je     0x40ab80
40aae2:	39 75 1c             	cmp    %esi,0x1c(%ebp)
40aae5:	0f 85 95 00 00 00    	jne    0x40ab80
40aaeb:	51                   	push   %ecx
40aaec:	ff 75 14             	push   0x14(%ebp)
40aaef:	ff 75 0c             	push   0xc(%ebp)
40aaf2:	e8 30 03 00 00       	call   0x40ae27
40aaf7:	83 c4 0c             	add    $0xc,%esp
40aafa:	e9 81 00 00 00       	jmp    0x40ab80
40aaff:	39 71 0c             	cmp    %esi,0xc(%ecx)
40ab02:	75 1e                	jne    0x40ab22
40ab04:	8b 01                	mov    (%ecx),%eax
40ab06:	23 c3                	and    %ebx,%eax
40ab08:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40ab0d:	72 05                	jb     0x40ab14
40ab0f:	39 71 1c             	cmp    %esi,0x1c(%ecx)
40ab12:	75 0e                	jne    0x40ab22
40ab14:	3b c7                	cmp    %edi,%eax
40ab16:	72 68                	jb     0x40ab80
40ab18:	8b 41 20             	mov    0x20(%ecx),%eax
40ab1b:	c1 e8 02             	shr    $0x2,%eax
40ab1e:	a8 01                	test   $0x1,%al
40ab20:	74 5e                	je     0x40ab80
40ab22:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
40ab28:	75 3a                	jne    0x40ab64
40ab2a:	83 7a 10 03          	cmpl   $0x3,0x10(%edx)
40ab2e:	72 34                	jb     0x40ab64
40ab30:	39 7a 14             	cmp    %edi,0x14(%edx)
40ab33:	76 2f                	jbe    0x40ab64
40ab35:	8b 42 1c             	mov    0x1c(%edx),%eax
40ab38:	8b 70 08             	mov    0x8(%eax),%esi
40ab3b:	85 f6                	test   %esi,%esi
40ab3d:	74 25                	je     0x40ab64
40ab3f:	0f b6 45 24          	movzbl 0x24(%ebp),%eax
40ab43:	50                   	push   %eax
40ab44:	ff 75 20             	push   0x20(%ebp)
40ab47:	ff 75 1c             	push   0x1c(%ebp)
40ab4a:	51                   	push   %ecx
40ab4b:	ff 75 14             	push   0x14(%ebp)
40ab4e:	8b ce                	mov    %esi,%ecx
40ab50:	ff 75 10             	push   0x10(%ebp)
40ab53:	ff 75 0c             	push   0xc(%ebp)
40ab56:	52                   	push   %edx
40ab57:	ff 15 54 41 42 00    	call   *0x424154
40ab5d:	ff d6                	call   *%esi
40ab5f:	83 c4 20             	add    $0x20,%esp
40ab62:	eb 1f                	jmp    0x40ab83
40ab64:	ff 75 20             	push   0x20(%ebp)
40ab67:	ff 75 1c             	push   0x1c(%ebp)
40ab6a:	ff 75 24             	push   0x24(%ebp)
40ab6d:	51                   	push   %ecx
40ab6e:	ff 75 14             	push   0x14(%ebp)
40ab71:	ff 75 10             	push   0x10(%ebp)
40ab74:	ff 75 0c             	push   0xc(%ebp)
40ab77:	52                   	push   %edx
40ab78:	e8 9b f9 ff ff       	call   0x40a518
40ab7d:	83 c4 20             	add    $0x20,%esp
40ab80:	33 c0                	xor    %eax,%eax
40ab82:	40                   	inc    %eax
40ab83:	5f                   	pop    %edi
40ab84:	5e                   	pop    %esi
40ab85:	5b                   	pop    %ebx
40ab86:	5d                   	pop    %ebp
40ab87:	c3                   	ret
40ab88:	55                   	push   %ebp
40ab89:	8b ec                	mov    %esp,%ebp
40ab8b:	56                   	push   %esi
40ab8c:	ff 75 08             	push   0x8(%ebp)
40ab8f:	8b f1                	mov    %ecx,%esi
40ab91:	e8 9a 66 ff ff       	call   0x401230
40ab96:	c7 06 ec 51 42 00    	movl   $0x4251ec,(%esi)
40ab9c:	8b c6                	mov    %esi,%eax
40ab9e:	5e                   	pop    %esi
40ab9f:	5d                   	pop    %ebp
40aba0:	c2 04 00             	ret    $0x4
40aba3:	83 61 04 00          	andl   $0x0,0x4(%ecx)
40aba7:	8b c1                	mov    %ecx,%eax
40aba9:	83 61 08 00          	andl   $0x0,0x8(%ecx)
40abad:	c7 41 04 f4 51 42 00 	movl   $0x4251f4,0x4(%ecx)
40abb4:	c7 01 ec 51 42 00    	movl   $0x4251ec,(%ecx)
40abba:	c3                   	ret
40abbb:	55                   	push   %ebp
40abbc:	8b ec                	mov    %esp,%ebp
40abbe:	8b 45 08             	mov    0x8(%ebp),%eax
40abc1:	83 c0 04             	add    $0x4,%eax
40abc4:	50                   	push   %eax
40abc5:	8d 41 04             	lea    0x4(%ecx),%eax
40abc8:	50                   	push   %eax
40abc9:	e8 76 f5 ff ff       	call   0x40a144
40abce:	f7 d8                	neg    %eax
40abd0:	59                   	pop    %ecx
40abd1:	1a c0                	sbb    %al,%al
40abd3:	59                   	pop    %ecx
40abd4:	fe c0                	inc    %al
40abd6:	5d                   	pop    %ebp
40abd7:	c2 04 00             	ret    $0x4
40abda:	6a 3c                	push   $0x3c
40abdc:	68 a0 13 43 00       	push   $0x4313a0
40abe1:	e8 da d3 ff ff       	call   0x407fc0
40abe6:	8b 45 18             	mov    0x18(%ebp),%eax
40abe9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40abec:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
40abf0:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40abf3:	8b 43 fc             	mov    -0x4(%ebx),%eax
40abf6:	89 45 d0             	mov    %eax,-0x30(%ebp)
40abf9:	8b 7d 08             	mov    0x8(%ebp),%edi
40abfc:	ff 77 18             	push   0x18(%edi)
40abff:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40ac02:	50                   	push   %eax
40ac03:	e8 8a d8 ff ff       	call   0x408492
40ac08:	59                   	pop    %ecx
40ac09:	59                   	pop    %ecx
40ac0a:	89 45 cc             	mov    %eax,-0x34(%ebp)
40ac0d:	e8 8a f5 ff ff       	call   0x40a19c
40ac12:	8b 40 10             	mov    0x10(%eax),%eax
40ac15:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ac18:	e8 7f f5 ff ff       	call   0x40a19c
40ac1d:	8b 40 14             	mov    0x14(%eax),%eax
40ac20:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40ac23:	e8 74 f5 ff ff       	call   0x40a19c
40ac28:	89 78 10             	mov    %edi,0x10(%eax)
40ac2b:	e8 6c f5 ff ff       	call   0x40a19c
40ac30:	8b 4d 10             	mov    0x10(%ebp),%ecx
40ac33:	89 48 14             	mov    %ecx,0x14(%eax)
40ac36:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ac3a:	33 c0                	xor    %eax,%eax
40ac3c:	40                   	inc    %eax
40ac3d:	89 45 bc             	mov    %eax,-0x44(%ebp)
40ac40:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ac43:	ff 75 20             	push   0x20(%ebp)
40ac46:	ff 75 1c             	push   0x1c(%ebp)
40ac49:	ff 75 18             	push   0x18(%ebp)
40ac4c:	ff 75 14             	push   0x14(%ebp)
40ac4f:	53                   	push   %ebx
40ac50:	e8 36 d6 ff ff       	call   0x40828b
40ac55:	83 c4 14             	add    $0x14,%esp
40ac58:	8b d8                	mov    %eax,%ebx
40ac5a:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ac5d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ac61:	e9 91 00 00 00       	jmp    0x40acf7
40ac66:	ff 75 ec             	push   -0x14(%ebp)
40ac69:	e8 6f 01 00 00       	call   0x40addd
40ac6e:	59                   	pop    %ecx
40ac6f:	c3                   	ret
40ac70:	8b 65 e8             	mov    -0x18(%ebp),%esp
40ac73:	e8 24 f5 ff ff       	call   0x40a19c
40ac78:	83 60 20 00          	andl   $0x0,0x20(%eax)
40ac7c:	8b 7d 14             	mov    0x14(%ebp),%edi
40ac7f:	8b 47 08             	mov    0x8(%edi),%eax
40ac82:	89 45 d8             	mov    %eax,-0x28(%ebp)
40ac85:	57                   	push   %edi
40ac86:	ff 75 18             	push   0x18(%ebp)
40ac89:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ac8c:	53                   	push   %ebx
40ac8d:	e8 e6 07 00 00       	call   0x40b478
40ac92:	83 c4 0c             	add    $0xc,%esp
40ac95:	89 45 e0             	mov    %eax,-0x20(%ebp)
40ac98:	8b 57 10             	mov    0x10(%edi),%edx
40ac9b:	33 c9                	xor    %ecx,%ecx
40ac9d:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40aca0:	39 4f 0c             	cmp    %ecx,0xc(%edi)
40aca3:	76 3a                	jbe    0x40acdf
40aca5:	6b d9 14             	imul   $0x14,%ecx,%ebx
40aca8:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40acab:	3b 44 13 04          	cmp    0x4(%ebx,%edx,1),%eax
40acaf:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40acb2:	7e 22                	jle    0x40acd6
40acb4:	8b 7d dc             	mov    -0x24(%ebp),%edi
40acb7:	3b 44 17 08          	cmp    0x8(%edi,%edx,1),%eax
40acbb:	8b 7d 14             	mov    0x14(%ebp),%edi
40acbe:	7f 16                	jg     0x40acd6
40acc0:	6b c1 14             	imul   $0x14,%ecx,%eax
40acc3:	8b 44 10 04          	mov    0x4(%eax,%edx,1),%eax
40acc7:	40                   	inc    %eax
40acc8:	89 45 e0             	mov    %eax,-0x20(%ebp)
40accb:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40acce:	8b 04 c1             	mov    (%ecx,%eax,8),%eax
40acd1:	89 45 e0             	mov    %eax,-0x20(%ebp)
40acd4:	eb 09                	jmp    0x40acdf
40acd6:	41                   	inc    %ecx
40acd7:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40acda:	3b 4f 0c             	cmp    0xc(%edi),%ecx
40acdd:	72 c6                	jb     0x40aca5
40acdf:	50                   	push   %eax
40ace0:	57                   	push   %edi
40ace1:	6a 00                	push   $0x0
40ace3:	53                   	push   %ebx
40ace4:	e8 56 01 00 00       	call   0x40ae3f
40ace9:	83 c4 10             	add    $0x10,%esp
40acec:	33 db                	xor    %ebx,%ebx
40acee:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40acf1:	21 5d fc             	and    %ebx,-0x4(%ebp)
40acf4:	8b 7d 08             	mov    0x8(%ebp),%edi
40acf7:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40acfe:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
40ad05:	e8 18 00 00 00       	call   0x40ad22
40ad0a:	8b c3                	mov    %ebx,%eax
40ad0c:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ad0f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ad16:	59                   	pop    %ecx
40ad17:	5f                   	pop    %edi
40ad18:	5e                   	pop    %esi
40ad19:	5b                   	pop    %ebx
40ad1a:	c9                   	leave
40ad1b:	c3                   	ret
40ad1c:	8b 7d 08             	mov    0x8(%ebp),%edi
40ad1f:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40ad22:	8b 45 d0             	mov    -0x30(%ebp),%eax
40ad25:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ad28:	89 41 fc             	mov    %eax,-0x4(%ecx)
40ad2b:	ff 75 cc             	push   -0x34(%ebp)
40ad2e:	e8 83 d7 ff ff       	call   0x4084b6
40ad33:	59                   	pop    %ecx
40ad34:	e8 63 f4 ff ff       	call   0x40a19c
40ad39:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40ad3c:	89 48 10             	mov    %ecx,0x10(%eax)
40ad3f:	e8 58 f4 ff ff       	call   0x40a19c
40ad44:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40ad47:	89 48 14             	mov    %ecx,0x14(%eax)
40ad4a:	81 3f 63 73 6d e0    	cmpl   $0xe06d7363,(%edi)
40ad50:	75 4b                	jne    0x40ad9d
40ad52:	83 7f 10 03          	cmpl   $0x3,0x10(%edi)
40ad56:	75 45                	jne    0x40ad9d
40ad58:	81 7f 14 20 05 93 19 	cmpl   $0x19930520,0x14(%edi)
40ad5f:	74 12                	je     0x40ad73
40ad61:	81 7f 14 21 05 93 19 	cmpl   $0x19930521,0x14(%edi)
40ad68:	74 09                	je     0x40ad73
40ad6a:	81 7f 14 22 05 93 19 	cmpl   $0x19930522,0x14(%edi)
40ad71:	75 2a                	jne    0x40ad9d
40ad73:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40ad77:	75 24                	jne    0x40ad9d
40ad79:	85 db                	test   %ebx,%ebx
40ad7b:	74 20                	je     0x40ad9d
40ad7d:	ff 77 18             	push   0x18(%edi)
40ad80:	e8 bd da ff ff       	call   0x408842
40ad85:	59                   	pop    %ecx
40ad86:	85 c0                	test   %eax,%eax
40ad88:	74 13                	je     0x40ad9d
40ad8a:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
40ad8e:	0f 95 c0             	setne  %al
40ad91:	0f b6 c0             	movzbl %al,%eax
40ad94:	50                   	push   %eax
40ad95:	57                   	push   %edi
40ad96:	e8 a1 d9 ff ff       	call   0x40873c
40ad9b:	59                   	pop    %ecx
40ad9c:	59                   	pop    %ecx
40ad9d:	c3                   	ret
40ad9e:	6a 04                	push   $0x4
40ada0:	b8 98 2f 42 00       	mov    $0x422f98,%eax
40ada5:	e8 fb cd ff ff       	call   0x407ba5
40adaa:	e8 ed f3 ff ff       	call   0x40a19c
40adaf:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40adb3:	75 1d                	jne    0x40add2
40adb5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40adb9:	e8 9d 06 00 00       	call   0x40b45b
40adbe:	e8 d9 f3 ff ff       	call   0x40a19c
40adc3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40adc6:	6a 00                	push   $0x0
40adc8:	6a 00                	push   $0x0
40adca:	89 48 1c             	mov    %ecx,0x1c(%eax)
40adcd:	e8 28 db ff ff       	call   0x4088fa
40add2:	e8 37 40 00 00       	call   0x40ee0e
40add7:	cc                   	int3
40add8:	cc                   	int3
40add9:	cc                   	int3
40adda:	cc                   	int3
40addb:	cc                   	int3
40addc:	cc                   	int3
40addd:	55                   	push   %ebp
40adde:	8b ec                	mov    %esp,%ebp
40ade0:	8b 45 08             	mov    0x8(%ebp),%eax
40ade3:	8b 00                	mov    (%eax),%eax
40ade5:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40adeb:	75 36                	jne    0x40ae23
40aded:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40adf1:	75 30                	jne    0x40ae23
40adf3:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40adfa:	74 12                	je     0x40ae0e
40adfc:	81 78 14 21 05 93 19 	cmpl   $0x19930521,0x14(%eax)
40ae03:	74 09                	je     0x40ae0e
40ae05:	81 78 14 22 05 93 19 	cmpl   $0x19930522,0x14(%eax)
40ae0c:	75 15                	jne    0x40ae23
40ae0e:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40ae12:	75 0f                	jne    0x40ae23
40ae14:	e8 83 f3 ff ff       	call   0x40a19c
40ae19:	33 c9                	xor    %ecx,%ecx
40ae1b:	41                   	inc    %ecx
40ae1c:	89 48 20             	mov    %ecx,0x20(%eax)
40ae1f:	8b c1                	mov    %ecx,%eax
40ae21:	5d                   	pop    %ebp
40ae22:	c3                   	ret
40ae23:	33 c0                	xor    %eax,%eax
40ae25:	5d                   	pop    %ebp
40ae26:	c3                   	ret
40ae27:	55                   	push   %ebp
40ae28:	8b ec                	mov    %esp,%ebp
40ae2a:	6a ff                	push   $0xffffffff
40ae2c:	ff 75 10             	push   0x10(%ebp)
40ae2f:	ff 75 0c             	push   0xc(%ebp)
40ae32:	ff 75 08             	push   0x8(%ebp)
40ae35:	e8 05 00 00 00       	call   0x40ae3f
40ae3a:	83 c4 10             	add    $0x10,%esp
40ae3d:	5d                   	pop    %ebp
40ae3e:	c3                   	ret
40ae3f:	6a 10                	push   $0x10
40ae41:	68 78 13 43 00       	push   $0x431378
40ae46:	e8 75 d1 ff ff       	call   0x407fc0
40ae4b:	ff 75 10             	push   0x10(%ebp)
40ae4e:	ff 75 0c             	push   0xc(%ebp)
40ae51:	ff 75 08             	push   0x8(%ebp)