40ab1f:	ff 76 18             	push   0x18(%esi)
40ab22:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40ab25:	50                   	push   %eax
40ab26:	e8 58 ef ff ff       	call   0x409a83
40ab2b:	59                   	pop    %ecx
40ab2c:	59                   	pop    %ecx
40ab2d:	89 45 cc             	mov    %eax,-0x34(%ebp)
40ab30:	e8 f7 e8 ff ff       	call   0x40942c
40ab35:	8b 40 10             	mov    0x10(%eax),%eax
40ab38:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ab3b:	e8 ec e8 ff ff       	call   0x40942c
40ab40:	8b 40 14             	mov    0x14(%eax),%eax
40ab43:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40ab46:	e8 e1 e8 ff ff       	call   0x40942c
40ab4b:	89 70 10             	mov    %esi,0x10(%eax)
40ab4e:	e8 d9 e8 ff ff       	call   0x40942c
40ab53:	8b 4d 10             	mov    0x10(%ebp),%ecx
40ab56:	89 48 14             	mov    %ecx,0x14(%eax)
40ab59:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ab5d:	33 c0                	xor    %eax,%eax
40ab5f:	40                   	inc    %eax
40ab60:	89 45 bc             	mov    %eax,-0x44(%ebp)
40ab63:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ab66:	ff 75 20             	push   0x20(%ebp)
40ab69:	ff 75 1c             	push   0x1c(%ebp)
40ab6c:	ff 75 18             	push   0x18(%ebp)
40ab6f:	ff 75 14             	push   0x14(%ebp)
40ab72:	53                   	push   %ebx
40ab73:	e8 04 ed ff ff       	call   0x40987c
40ab78:	83 c4 14             	add    $0x14,%esp
40ab7b:	8b d8                	mov    %eax,%ebx
40ab7d:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ab80:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ab84:	e9 9c 00 00 00       	jmp    0x40ac25
40ab89:	ff 75 ec             	push   -0x14(%ebp)
40ab8c:	e8 7a 01 00 00       	call   0x40ad0b
40ab91:	59                   	pop    %ecx
40ab92:	c3                   	ret
40ab93:	8b 65 e8             	mov    -0x18(%ebp),%esp
40ab96:	e8 91 e8 ff ff       	call   0x40942c
40ab9b:	83 60 20 00          	andl   $0x0,0x20(%eax)
40ab9f:	8b 75 14             	mov    0x14(%ebp),%esi
40aba2:	8b 46 08             	mov    0x8(%esi),%eax
40aba5:	89 45 d8             	mov    %eax,-0x28(%ebp)
40aba8:	56                   	push   %esi
40aba9:	ff 75 18             	push   0x18(%ebp)
40abac:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40abaf:	53                   	push   %ebx
40abb0:	e8 e4 03 00 00       	call   0x40af99
40abb5:	83 c4 0c             	add    $0xc,%esp
40abb8:	8b d0                	mov    %eax,%edx
40abba:	89 55 e0             	mov    %edx,-0x20(%ebp)
40abbd:	8b 46 10             	mov    0x10(%esi),%eax
40abc0:	89 45 dc             	mov    %eax,-0x24(%ebp)
40abc3:	33 c9                	xor    %ecx,%ecx
40abc5:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40abc8:	39 4e 0c             	cmp    %ecx,0xc(%esi)
40abcb:	76 40                	jbe    0x40ac0d
40abcd:	6b c1 14             	imul   $0x14,%ecx,%eax
40abd0:	8b 5e 10             	mov    0x10(%esi),%ebx
40abd3:	3b 54 18 04          	cmp    0x4(%eax,%ebx,1),%edx
40abd7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40abda:	7e 28                	jle    0x40ac04
40abdc:	6b c1 14             	imul   $0x14,%ecx,%eax
40abdf:	8b 75 dc             	mov    -0x24(%ebp),%esi
40abe2:	3b 54 30 08          	cmp    0x8(%eax,%esi,1),%edx
40abe6:	8b 75 14             	mov    0x14(%ebp),%esi
40abe9:	7f 19                	jg     0x40ac04
40abeb:	6b c1 14             	imul   $0x14,%ecx,%eax
40abee:	8b 4e 10             	mov    0x10(%esi),%ecx
40abf1:	8b 44 08 04          	mov    0x4(%eax,%ecx,1),%eax
40abf5:	40                   	inc    %eax
40abf6:	89 45 e0             	mov    %eax,-0x20(%ebp)
40abf9:	8b 55 d8             	mov    -0x28(%ebp),%edx
40abfc:	8b 14 c2             	mov    (%edx,%eax,8),%edx
40abff:	89 55 e0             	mov    %edx,-0x20(%ebp)
40ac02:	eb 09                	jmp    0x40ac0d
40ac04:	41                   	inc    %ecx
40ac05:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40ac08:	3b 4e 0c             	cmp    0xc(%esi),%ecx
40ac0b:	72 c0                	jb     0x40abcd
40ac0d:	52                   	push   %edx
40ac0e:	56                   	push   %esi
40ac0f:	6a 00                	push   $0x0
40ac11:	53                   	push   %ebx
40ac12:	e8 56 01 00 00       	call   0x40ad6d
40ac17:	83 c4 10             	add    $0x10,%esp
40ac1a:	33 db                	xor    %ebx,%ebx
40ac1c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ac1f:	21 5d fc             	and    %ebx,-0x4(%ebp)
40ac22:	8b 75 08             	mov    0x8(%ebp),%esi
40ac25:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ac2c:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
40ac33:	e8 18 00 00 00       	call   0x40ac50
40ac38:	8b c3                	mov    %ebx,%eax
40ac3a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ac3d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ac44:	59                   	pop    %ecx
40ac45:	5f                   	pop    %edi
40ac46:	5e                   	pop    %esi
40ac47:	5b                   	pop    %ebx
40ac48:	c9                   	leave
40ac49:	c3                   	ret
40ac4a:	8b 75 08             	mov    0x8(%ebp),%esi
40ac4d:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40ac50:	8b 45 d0             	mov    -0x30(%ebp),%eax
40ac53:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40ac56:	89 41 fc             	mov    %eax,-0x4(%ecx)
40ac59:	ff 75 cc             	push   -0x34(%ebp)
40ac5c:	e8 46 ee ff ff       	call   0x409aa7
40ac61:	59                   	pop    %ecx
40ac62:	e8 c5 e7 ff ff       	call   0x40942c
40ac67:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40ac6a:	89 48 10             	mov    %ecx,0x10(%eax)
40ac6d:	e8 ba e7 ff ff       	call   0x40942c
40ac72:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40ac75:	89 48 14             	mov    %ecx,0x14(%eax)
40ac78:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
40ac7e:	75 4b                	jne    0x40accb
40ac80:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40ac84:	75 45                	jne    0x40accb
40ac86:	81 7e 14 20 05 93 19 	cmpl   $0x19930520,0x14(%esi)
40ac8d:	74 12                	je     0x40aca1
40ac8f:	81 7e 14 21 05 93 19 	cmpl   $0x19930521,0x14(%esi)
40ac96:	74 09                	je     0x40aca1
40ac98:	81 7e 14 22 05 93 19 	cmpl   $0x19930522,0x14(%esi)
40ac9f:	75 2a                	jne    0x40accb
40aca1:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40aca5:	75 24                	jne    0x40accb
40aca7:	85 db                	test   %ebx,%ebx
40aca9:	74 20                	je     0x40accb
40acab:	ff 76 18             	push   0x18(%esi)
40acae:	e8 a3 e3 ff ff       	call   0x409056
40acb3:	59                   	pop    %ecx
40acb4:	85 c0                	test   %eax,%eax
40acb6:	74 13                	je     0x40accb
40acb8:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
40acbc:	0f 95 c0             	setne  %al
40acbf:	0f b6 c0             	movzbl %al,%eax
40acc2:	50                   	push   %eax
40acc3:	56                   	push   %esi
40acc4:	e8 87 e2 ff ff       	call   0x408f50
40acc9:	59                   	pop    %ecx
40acca:	59                   	pop    %ecx
40accb:	c3                   	ret
40accc:	6a 04                	push   $0x4
40acce:	b8 58 be 41 00       	mov    $0x41be58,%eax
40acd3:	e8 d4 e4 00 00       	call   0x4191ac
40acd8:	e8 4f e7 ff ff       	call   0x40942c
40acdd:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40ace1:	75 1d                	jne    0x40ad00
40ace3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ace7:	e8 90 02 00 00       	call   0x40af7c
40acec:	e8 3b e7 ff ff       	call   0x40942c
40acf1:	8b 4d 08             	mov    0x8(%ebp),%ecx
40acf4:	6a 00                	push   $0x0
40acf6:	6a 00                	push   $0x0
40acf8:	89 48 1c             	mov    %ecx,0x1c(%eax)
40acfb:	e8 46 03 00 00       	call   0x40b046
40ad00:	e8 f6 15 00 00       	call   0x40c2fb
40ad05:	cc                   	int3
40ad06:	cc                   	int3
40ad07:	cc                   	int3
40ad08:	cc                   	int3
40ad09:	cc                   	int3
40ad0a:	cc                   	int3
40ad0b:	55                   	push   %ebp
40ad0c:	8b ec                	mov    %esp,%ebp
40ad0e:	8b 45 08             	mov    0x8(%ebp),%eax
40ad11:	8b 00                	mov    (%eax),%eax
40ad13:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40ad19:	75 36                	jne    0x40ad51
40ad1b:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40ad1f:	75 30                	jne    0x40ad51
40ad21:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40ad28:	74 12                	je     0x40ad3c
40ad2a:	81 78 14 21 05 93 19 	cmpl   $0x19930521,0x14(%eax)
40ad31:	74 09                	je     0x40ad3c
40ad33:	81 78 14 22 05 93 19 	cmpl   $0x19930522,0x14(%eax)
40ad3a:	75 15                	jne    0x40ad51
40ad3c:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40ad40:	75 0f                	jne    0x40ad51
40ad42:	e8 e5 e6 ff ff       	call   0x40942c
40ad47:	33 c9                	xor    %ecx,%ecx
40ad49:	41                   	inc    %ecx
40ad4a:	89 48 20             	mov    %ecx,0x20(%eax)
40ad4d:	8b c1                	mov    %ecx,%eax
40ad4f:	5d                   	pop    %ebp
40ad50:	c3                   	ret
40ad51:	33 c0                	xor    %eax,%eax
40ad53:	5d                   	pop    %ebp
40ad54:	c3                   	ret
40ad55:	55                   	push   %ebp
40ad56:	8b ec                	mov    %esp,%ebp
40ad58:	6a ff                	push   $0xffffffff
40ad5a:	ff 75 10             	push   0x10(%ebp)
40ad5d:	ff 75 0c             	push   0xc(%ebp)
40ad60:	ff 75 08             	push   0x8(%ebp)
40ad63:	e8 05 00 00 00       	call   0x40ad6d
40ad68:	83 c4 10             	add    $0x10,%esp
40ad6b:	5d                   	pop    %ebp
40ad6c:	c3                   	ret
40ad6d:	6a 10                	push   $0x10
40ad6f:	68 08 3d 42 00       	push   $0x423d08
40ad74:	e8 57 dc ff ff       	call   0x4089d0
40ad79:	ff 75 10             	push   0x10(%ebp)
40ad7c:	ff 75 0c             	push   0xc(%ebp)
40ad7f:	ff 75 08             	push   0x8(%ebp)
40ad82:	e8 12 02 00 00       	call   0x40af99
40ad87:	83 c4 0c             	add    $0xc,%esp
40ad8a:	8b f0                	mov    %eax,%esi
40ad8c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ad8f:	e8 98 e6 ff ff       	call   0x40942c
40ad94:	ff 40 18             	incl   0x18(%eax)
40ad97:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ad9b:	3b 75 14             	cmp    0x14(%ebp),%esi
40ad9e:	74 68                	je     0x40ae08
40ada0:	83 fe ff             	cmp    $0xffffffff,%esi
40ada3:	0f 8e a6 00 00 00    	jle    0x40ae4f
40ada9:	8b 7d 10             	mov    0x10(%ebp),%edi
40adac:	3b 77 04             	cmp    0x4(%edi),%esi
40adaf:	0f 8d 9a 00 00 00    	jge    0x40ae4f
40adb5:	8b 47 08             	mov    0x8(%edi),%eax
40adb8:	8b 0c f0             	mov    (%eax,%esi,8),%ecx
40adbb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40adbe:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40adc5:	83 7c f0 04 00       	cmpl   $0x0,0x4(%eax,%esi,8)
40adca:	74 30                	je     0x40adfc
40adcc:	51                   	push   %ecx
40adcd:	57                   	push   %edi
40adce:	ff 75 08             	push   0x8(%ebp)
40add1:	e8 e0 01 00 00       	call   0x40afb6
40add6:	83 c4 0c             	add    $0xc,%esp
40add9:	68 03 01 00 00       	push   $0x103
40adde:	ff 75 08             	push   0x8(%ebp)
40ade1:	8b 47 08             	mov    0x8(%edi),%eax
40ade4:	ff 74 f0 04          	push   0x4(%eax,%esi,8)
40ade8:	e8 43 01 00 00       	call   0x40af30
40aded:	eb 0d                	jmp    0x40adfc
40adef:	ff 75 ec             	push   -0x14(%ebp)
40adf2:	e8 aa e2 ff ff       	call   0x4090a1
40adf7:	59                   	pop    %ecx
40adf8:	c3                   	ret
40adf9:	8b 65 e8             	mov    -0x18(%ebp),%esp
40adfc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ae00:	8b 75 e0             	mov    -0x20(%ebp),%esi
40ae03:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ae06:	eb 93                	jmp    0x40ad9b
40ae08:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ae0f:	e8 27 00 00 00       	call   0x40ae3b
40ae14:	3b 75 14             	cmp    0x14(%ebp),%esi
40ae17:	75 36                	jne    0x40ae4f
40ae19:	56                   	push   %esi
40ae1a:	ff 75 10             	push   0x10(%ebp)
40ae1d:	ff 75 08             	push   0x8(%ebp)
40ae20:	e8 91 01 00 00       	call   0x40afb6
40ae25:	83 c4 0c             	add    $0xc,%esp
40ae28:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ae2b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ae32:	59                   	pop    %ecx
40ae33:	5f                   	pop    %edi
40ae34:	5e                   	pop    %esi
40ae35:	5b                   	pop    %ebx
40ae36:	c9                   	leave
40ae37:	c3                   	ret
40ae38:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40ae3b:	e8 ec e5 ff ff       	call   0x40942c
40ae40:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
40ae44:	7e 08                	jle    0x40ae4e
40ae46:	e8 e1 e5 ff ff       	call   0x40942c
40ae4b:	ff 48 18             	decl   0x18(%eax)
40ae4e:	c3                   	ret
40ae4f:	e8 a7 14 00 00       	call   0x40c2fb
40ae54:	cc                   	int3
40ae55:	55                   	push   %ebp
40ae56:	8b ec                	mov    %esp,%ebp
40ae58:	83 ec 1c             	sub    $0x1c,%esp
40ae5b:	53                   	push   %ebx
40ae5c:	56                   	push   %esi
40ae5d:	8b 75 0c             	mov    0xc(%ebp),%esi
40ae60:	57                   	push   %edi
40ae61:	85 f6                	test   %esi,%esi
40ae63:	0f 84 80 00 00 00    	je     0x40aee9
40ae69:	8b 3e                	mov    (%esi),%edi
40ae6b:	33 db                	xor    %ebx,%ebx
40ae6d:	85 ff                	test   %edi,%edi
40ae6f:	7e 71                	jle    0x40aee2
40ae71:	8b 45 08             	mov    0x8(%ebp),%eax
40ae74:	8b d3                	mov    %ebx,%edx
40ae76:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40ae79:	8b 40 1c             	mov    0x1c(%eax),%eax
40ae7c:	89 45 ec             	mov    %eax,-0x14(%ebp)
40ae7f:	8b 40 0c             	mov    0xc(%eax),%eax
40ae82:	8b 08                	mov    (%eax),%ecx
40ae84:	83 c0 04             	add    $0x4,%eax
40ae87:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ae8a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ae8d:	8b c8                	mov    %eax,%ecx
40ae8f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ae92:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40ae95:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ae98:	85 c0                	test   %eax,%eax
40ae9a:	7e 38                	jle    0x40aed4
40ae9c:	8b 46 04             	mov    0x4(%esi),%eax
40ae9f:	03 c2                	add    %edx,%eax
40aea1:	89 45 e8             	mov    %eax,-0x18(%ebp)
40aea4:	ff 75 ec             	push   -0x14(%ebp)
40aea7:	ff 31                	push   (%ecx)
40aea9:	50                   	push   %eax
40aeaa:	e8 e5 f9 ff ff       	call   0x40a894
40aeaf:	83 c4 0c             	add    $0xc,%esp
40aeb2:	85 c0                	test   %eax,%eax
40aeb4:	75 19                	jne    0x40aecf
40aeb6:	8b 45 f8             	mov    -0x8(%ebp),%eax
40aeb9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40aebc:	48                   	dec    %eax
40aebd:	83 c1 04             	add    $0x4,%ecx
40aec0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40aec3:	85 c0                	test   %eax,%eax
40aec5:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40aec8:	8b 45 e8             	mov    -0x18(%ebp),%eax
40aecb:	7f d7                	jg     0x40aea4
40aecd:	eb 02                	jmp    0x40aed1
40aecf:	b3 01                	mov    $0x1,%bl
40aed1:	8b 55 fc             	mov    -0x4(%ebp),%edx
40aed4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40aed7:	83 c2 10             	add    $0x10,%edx
40aeda:	89 55 fc             	mov    %edx,-0x4(%ebp)
40aedd:	83 ef 01             	sub    $0x1,%edi
40aee0:	75 ab                	jne    0x40ae8d
40aee2:	5f                   	pop    %edi
40aee3:	5e                   	pop    %esi
40aee4:	8a c3                	mov    %bl,%al
40aee6:	5b                   	pop    %ebx
40aee7:	c9                   	leave
40aee8:	c3                   	ret
40aee9:	e8 0d 14 00 00       	call   0x40c2fb
40aeee:	cc                   	int3
40aeef:	55                   	push   %ebp
40aef0:	8b ec                	mov    %esp,%ebp
40aef2:	ff 75 10             	push   0x10(%ebp)
40aef5:	8b 4d 08             	mov    0x8(%ebp),%ecx
40aef8:	ff 55 0c             	call   *0xc(%ebp)
40aefb:	5d                   	pop    %ebp
40aefc:	c2 0c 00             	ret    $0xc
40aeff:	55                   	push   %ebp
40af00:	8b ec                	mov    %esp,%ebp
40af02:	ff 75 14             	push   0x14(%ebp)
40af05:	8b 4d 08             	mov    0x8(%ebp),%ecx
40af08:	ff 75 10             	push   0x10(%ebp)