40e8aa:	c3                   	ret
40e8ab:	8b ff                	mov    %edi,%edi
40e8ad:	55                   	push   %ebp
40e8ae:	8b ec                	mov    %esp,%ebp
40e8b0:	83 ec 6c             	sub    $0x6c,%esp
40e8b3:	a1 e4 05 42 00       	mov    0x4205e4,%eax
40e8b8:	33 c5                	xor    %ebp,%eax
40e8ba:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e8bd:	53                   	push   %ebx
40e8be:	56                   	push   %esi
40e8bf:	57                   	push   %edi
40e8c0:	33 db                	xor    %ebx,%ebx
40e8c2:	c7 45 ec c3 e6 50 f7 	movl   $0xf750e6c3,-0x14(%ebp)
40e8c9:	8b fa                	mov    %edx,%edi
40e8cb:	c7 45 f0 ee 38 d1 11 	movl   $0x11d138ee,-0x10(%ebp)
40e8d2:	8d 45 cc             	lea    -0x34(%ebp),%eax
40e8d5:	c7 45 f4 85 e5 00 c0 	movl   $0xc000e585,-0xc(%ebp)
40e8dc:	68 3c 04 00 00       	push   $0x43c
40e8e1:	89 45 b0             	mov    %eax,-0x50(%ebp)
40e8e4:	8b f1                	mov    %ecx,%esi
40e8e6:	8d 47 04             	lea    0x4(%edi),%eax
40e8e9:	c7 45 f8 4f c2 95 ee 	movl   $0xee95c24f,-0x8(%ebp)
40e8f0:	53                   	push   %ebx
40e8f1:	50                   	push   %eax
40e8f2:	c7 45 dc 6b c5 aa 00 	movl   $0xaac56b,-0x24(%ebp)
40e8f9:	c7 45 e0 44 cd d0 11 	movl   $0x11d0cd44,-0x20(%ebp)
40e900:	c7 45 e4 8c c2 00 c0 	movl   $0xc000c28c,-0x1c(%ebp)
40e907:	c7 45 e8 4f c2 95 ee 	movl   $0xee95c24f,-0x18(%ebp)
40e90e:	89 5d a0             	mov    %ebx,-0x60(%ebp)
40e911:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40e914:	89 5d bc             	mov    %ebx,-0x44(%ebp)
40e917:	89 5d c0             	mov    %ebx,-0x40(%ebp)
40e91a:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
40e91d:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40e920:	c7 45 98 34 00 00 00 	movl   $0x34,-0x68(%ebp)
40e927:	c7 45 a4 02 00 00 00 	movl   $0x2,-0x5c(%ebp)
40e92e:	89 5d a8             	mov    %ebx,-0x58(%ebp)
40e931:	c7 45 ac 01 00 00 00 	movl   $0x1,-0x54(%ebp)
40e938:	c7 45 b4 03 00 00 00 	movl   $0x3,-0x4c(%ebp)
40e93f:	89 7d 9c             	mov    %edi,-0x64(%ebp)
40e942:	e8 da dc 00 00       	call   0x41c621
40e947:	83 c4 0c             	add    $0xc,%esp
40e94a:	c7 07 40 04 00 00    	movl   $0x440,(%edi)
40e950:	8d 45 98             	lea    -0x68(%ebp),%eax
40e953:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40e956:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40e959:	c7 45 cc 10 00 00 00 	movl   $0x10,-0x34(%ebp)
40e960:	50                   	push   %eax
40e961:	8d 45 ec             	lea    -0x14(%ebp),%eax
40e964:	89 75 d0             	mov    %esi,-0x30(%ebp)
40e967:	50                   	push   %eax
40e968:	e8 5b cf ff ff       	call   0x40b8c8
40e96d:	ff 70 20             	push   0x20(%eax)
40e970:	ff 15 b0 34 42 00    	call   *0x4234b0
40e976:	8b f0                	mov    %eax,%esi
40e978:	85 f6                	test   %esi,%esi
40e97a:	74 18                	je     0x40e994
40e97c:	8d 45 98             	lea    -0x68(%ebp),%eax
40e97f:	50                   	push   %eax
40e980:	8d 45 dc             	lea    -0x24(%ebp),%eax
40e983:	50                   	push   %eax
40e984:	e8 3f cf ff ff       	call   0x40b8c8
40e989:	ff 70 20             	push   0x20(%eax)
40e98c:	ff 15 b0 34 42 00    	call   *0x4234b0
40e992:	8b f0                	mov    %eax,%esi
40e994:	8b 87 24 04 00 00    	mov    0x424(%edi),%eax
40e99a:	85 c0                	test   %eax,%eax
40e99c:	74 0d                	je     0x40e9ab
40e99e:	50                   	push   %eax
40e99f:	ff 15 40 30 42 00    	call   *0x423040
40e9a5:	89 9f 24 04 00 00    	mov    %ebx,0x424(%edi)
40e9ab:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e9ae:	33 c0                	xor    %eax,%eax
40e9b0:	85 f6                	test   %esi,%esi
40e9b2:	5f                   	pop    %edi
40e9b3:	0f 94 c0             	sete   %al
40e9b6:	33 cd                	xor    %ebp,%ecx
40e9b8:	5e                   	pop    %esi
40e9b9:	5b                   	pop    %ebx
40e9ba:	e8 61 cc 00 00       	call   0x41b620
40e9bf:	c9                   	leave
40e9c0:	c3                   	ret
40e9c1:	8b ff                	mov    %edi,%edi
40e9c3:	55                   	push   %ebp
40e9c4:	8b ec                	mov    %esp,%ebp
40e9c6:	81 ec 3c 07 00 00    	sub    $0x73c,%esp
40e9cc:	a1 e4 05 42 00       	mov    0x4205e4,%eax
40e9d1:	33 c5                	xor    %ebp,%eax
40e9d3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e9d6:	53                   	push   %ebx
40e9d7:	56                   	push   %esi
40e9d8:	57                   	push   %edi
40e9d9:	8b c1                	mov    %ecx,%eax
40e9db:	c7 45 80 c3 e6 50 f7 	movl   $0xf750e6c3,-0x80(%ebp)
40e9e2:	33 c9                	xor    %ecx,%ecx
40e9e4:	89 85 24 f9 ff ff    	mov    %eax,-0x6dc(%ebp)
40e9ea:	51                   	push   %ecx
40e9eb:	68 80 00 00 00       	push   $0x80
40e9f0:	6a 03                	push   $0x3
40e9f2:	51                   	push   %ecx
40e9f3:	6a 03                	push   $0x3
40e9f5:	68 00 00 00 80       	push   $0x80000000
40e9fa:	50                   	push   %eax
40e9fb:	c7 45 84 ee 38 d1 11 	movl   $0x11d138ee,-0x7c(%ebp)
40ea02:	8b d9                	mov    %ecx,%ebx
40ea04:	c7 45 88 85 e5 00 c0 	movl   $0xc000e585,-0x78(%ebp)
40ea0b:	c7 45 8c 4f c2 95 ee 	movl   $0xee95c24f,-0x74(%ebp)
40ea12:	ff 15 50 30 42 00    	call   *0x423050
40ea18:	8b f8                	mov    %eax,%edi
40ea1a:	83 ff ff             	cmp    $0xffffffff,%edi
40ea1d:	75 06                	jne    0x40ea25
40ea1f:	43                   	inc    %ebx
40ea20:	e9 18 02 00 00       	jmp    0x40ec3d
40ea25:	6a 64                	push   $0x64
40ea27:	58                   	pop    %eax
40ea28:	50                   	push   %eax
40ea29:	89 85 2c f9 ff ff    	mov    %eax,-0x6d4(%ebp)
40ea2f:	8d 45 90             	lea    -0x70(%ebp),%eax
40ea32:	6a 00                	push   $0x0
40ea34:	50                   	push   %eax
40ea35:	e8 e7 db 00 00       	call   0x41c621
40ea3a:	83 c4 0c             	add    $0xc,%esp
40ea3d:	8d 45 90             	lea    -0x70(%ebp),%eax
40ea40:	6a 00                	push   $0x0
40ea42:	50                   	push   %eax
40ea43:	8d 85 2c f9 ff ff    	lea    -0x6d4(%ebp),%eax
40ea49:	50                   	push   %eax
40ea4a:	57                   	push   %edi
40ea4b:	ff 15 ac 34 42 00    	call   *0x4234ac
40ea51:	57                   	push   %edi
40ea52:	8b f0                	mov    %eax,%esi
40ea54:	ff 15 70 30 42 00    	call   *0x423070
40ea5a:	83 fe 01             	cmp    $0x1,%esi
40ea5d:	0f 85 da 01 00 00    	jne    0x40ec3d
40ea63:	68 3c 04 00 00       	push   $0x43c
40ea68:	8d 85 34 f9 ff ff    	lea    -0x6cc(%ebp),%eax
40ea6e:	6a 00                	push   $0x0
40ea70:	50                   	push   %eax
40ea71:	e8 ab db 00 00       	call   0x41c621
40ea76:	8b 8d 2c f9 ff ff    	mov    -0x6d4(%ebp),%ecx
40ea7c:	8d 45 90             	lea    -0x70(%ebp),%eax
40ea7f:	8b bd 24 f9 ff ff    	mov    -0x6dc(%ebp),%edi
40ea85:	83 c4 0c             	add    $0xc,%esp
40ea88:	33 d2                	xor    %edx,%edx
40ea8a:	89 85 14 f9 ff ff    	mov    %eax,-0x6ec(%ebp)
40ea90:	c7 85 30 f9 ff ff 40 	movl   $0x440,-0x6d0(%ebp)
40ea97:	04 00 00
40ea9a:	89 95 00 f9 ff ff    	mov    %edx,-0x700(%ebp)
40eaa0:	6a 02                	push   $0x2
40eaa2:	58                   	pop    %eax
40eaa3:	89 85 d4 f8 ff ff    	mov    %eax,-0x72c(%ebp)
40eaa9:	89 85 dc f8 ff ff    	mov    %eax,-0x724(%ebp)
40eaaf:	8d 85 30 f9 ff ff    	lea    -0x6d0(%ebp),%eax
40eab5:	89 85 cc f8 ff ff    	mov    %eax,-0x734(%ebp)
40eabb:	8d 85 fc f8 ff ff    	lea    -0x704(%ebp),%eax
40eac1:	89 85 e0 f8 ff ff    	mov    %eax,-0x720(%ebp)
40eac7:	a1 40 1f 42 00       	mov    0x421f40,%eax
40eacc:	89 95 04 f9 ff ff    	mov    %edx,-0x6fc(%ebp)
40ead2:	89 95 0c f9 ff ff    	mov    %edx,-0x6f4(%ebp)
40ead8:	89 95 10 f9 ff ff    	mov    %edx,-0x6f0(%ebp)
40eade:	89 95 1c f9 ff ff    	mov    %edx,-0x6e4(%ebp)
40eae4:	89 95 20 f9 ff ff    	mov    %edx,-0x6e0(%ebp)
40eaea:	c7 85 fc f8 ff ff 28 	movl   $0x28,-0x704(%ebp)
40eaf1:	00 00 00
40eaf4:	89 8d 18 f9 ff ff    	mov    %ecx,-0x6e8(%ebp)
40eafa:	89 bd 08 f9 ff ff    	mov    %edi,-0x6f8(%ebp)
40eb00:	89 95 d0 f8 ff ff    	mov    %edx,-0x730(%ebp)
40eb06:	89 95 e8 f8 ff ff    	mov    %edx,-0x718(%ebp)
40eb0c:	89 95 ec f8 ff ff    	mov    %edx,-0x714(%ebp)
40eb12:	89 95 f0 f8 ff ff    	mov    %edx,-0x710(%ebp)
40eb18:	89 95 f4 f8 ff ff    	mov    %edx,-0x70c(%ebp)
40eb1e:	89 95 f8 f8 ff ff    	mov    %edx,-0x708(%ebp)
40eb24:	c7 85 c8 f8 ff ff 34 	movl   $0x34,-0x738(%ebp)
40eb2b:	00 00 00
40eb2e:	89 95 d8 f8 ff ff    	mov    %edx,-0x728(%ebp)
40eb34:	c7 85 e4 f8 ff ff 03 	movl   $0x3,-0x71c(%ebp)
40eb3b:	00 00 00
40eb3e:	85 c0                	test   %eax,%eax
40eb40:	75 22                	jne    0x40eb64
40eb42:	52                   	push   %edx
40eb43:	52                   	push   %edx
40eb44:	68 40 1f 42 00       	push   $0x421f40
40eb49:	ff 15 a8 34 42 00    	call   *0x4234a8
40eb4f:	a1 40 1f 42 00       	mov    0x421f40,%eax
40eb54:	85 c0                	test   %eax,%eax
40eb56:	0f 84 e1 00 00 00    	je     0x40ec3d
40eb5c:	8b 8d 2c f9 ff ff    	mov    -0x6d4(%ebp),%ecx
40eb62:	33 d2                	xor    %edx,%edx
40eb64:	89 95 28 f9 ff ff    	mov    %edx,-0x6d8(%ebp)
40eb6a:	8d 95 28 f9 ff ff    	lea    -0x6d8(%ebp),%edx
40eb70:	52                   	push   %edx
40eb71:	6a 00                	push   $0x0
40eb73:	51                   	push   %ecx
40eb74:	8d 4d 90             	lea    -0x70(%ebp),%ecx
40eb77:	51                   	push   %ecx
40eb78:	50                   	push   %eax
40eb79:	ff 15 b8 34 42 00    	call   *0x4234b8
40eb7f:	8b f0                	mov    %eax,%esi
40eb81:	85 f6                	test   %esi,%esi
40eb83:	0f 84 a5 00 00 00    	je     0x40ec2e
40eb89:	68 08 02 00 00       	push   $0x208
40eb8e:	8d 85 74 fd ff ff    	lea    -0x28c(%ebp),%eax
40eb94:	6a 00                	push   $0x0
40eb96:	50                   	push   %eax
40eb97:	e8 85 da 00 00       	call   0x41c621
40eb9c:	83 c4 0c             	add    $0xc,%esp
40eb9f:	c7 85 70 fd ff ff 0c 	movl   $0x20c,-0x290(%ebp)
40eba6:	02 00 00
40eba9:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
40ebaf:	6a 00                	push   $0x0
40ebb1:	50                   	push   %eax
40ebb2:	56                   	push   %esi
40ebb3:	ff 15 b4 34 42 00    	call   *0x4234b4
40ebb9:	85 c0                	test   %eax,%eax
40ebbb:	74 48                	je     0x40ec05
40ebbd:	8d 85 74 fd ff ff    	lea    -0x28c(%ebp),%eax
40ebc3:	89 85 04 f9 ff ff    	mov    %eax,-0x6fc(%ebp)
40ebc9:	8d 85 c8 f8 ff ff    	lea    -0x738(%ebp),%eax
40ebcf:	50                   	push   %eax
40ebd0:	8d 45 80             	lea    -0x80(%ebp),%eax
40ebd3:	50                   	push   %eax
40ebd4:	e8 ef cc ff ff       	call   0x40b8c8
40ebd9:	ff 70 20             	push   0x20(%eax)
40ebdc:	ff 15 b0 34 42 00    	call   *0x4234b0
40ebe2:	33 db                	xor    %ebx,%ebx
40ebe4:	85 c0                	test   %eax,%eax
40ebe6:	0f 99 c3             	setns  %bl
40ebe9:	83 bd 54 fd ff ff 00 	cmpl   $0x0,-0x2ac(%ebp)
40ebf0:	74 13                	je     0x40ec05
40ebf2:	ff b5 54 fd ff ff    	push   -0x2ac(%ebp)
40ebf8:	ff 15 40 30 42 00    	call   *0x423040
40ebfe:	83 a5 54 fd ff ff 00 	andl   $0x0,-0x2ac(%ebp)
40ec05:	83 fb 01             	cmp    $0x1,%ebx
40ec08:	74 33                	je     0x40ec3d
40ec0a:	8d 85 28 f9 ff ff    	lea    -0x6d8(%ebp),%eax
40ec10:	89 b5 28 f9 ff ff    	mov    %esi,-0x6d8(%ebp)
40ec16:	50                   	push   %eax
40ec17:	6a 00                	push   $0x0
40ec19:	ff b5 2c f9 ff ff    	push   -0x6d4(%ebp)
40ec1f:	8d 45 90             	lea    -0x70(%ebp),%eax
40ec22:	50                   	push   %eax
40ec23:	ff 35 40 1f 42 00    	push   0x421f40
40ec29:	e9 4b ff ff ff       	jmp    0x40eb79
40ec2e:	8d 95 30 f9 ff ff    	lea    -0x6d0(%ebp),%edx
40ec34:	8b cf                	mov    %edi,%ecx
40ec36:	e8 70 fc ff ff       	call   0x40e8ab
40ec3b:	8b d8                	mov    %eax,%ebx
40ec3d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ec40:	8b c3                	mov    %ebx,%eax
40ec42:	5f                   	pop    %edi
40ec43:	5e                   	pop    %esi
40ec44:	33 cd                	xor    %ebp,%ecx
40ec46:	5b                   	pop    %ebx
40ec47:	e8 d4 c9 00 00       	call   0x41b620
40ec4c:	c9                   	leave
40ec4d:	c3                   	ret
40ec4e:	6a 04                	push   $0x4
40ec50:	b8 71 d2 41 00       	mov    $0x41d271,%eax
40ec55:	e8 de d7 00 00       	call   0x41c438
40ec5a:	8b f2                	mov    %edx,%esi
40ec5c:	8b f9                	mov    %ecx,%edi
40ec5e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ec61:	ff 15 40 32 42 00    	call   *0x423240
40ec67:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ec6b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ec6e:	56                   	push   %esi
40ec6f:	ff 15 74 33 42 00    	call   *0x423374
40ec75:	ff 75 f0             	push   -0x10(%ebp)
40ec78:	8b cf                	mov    %edi,%ecx
40ec7a:	8b f0                	mov    %eax,%esi
40ec7c:	ff 15 84 33 42 00    	call   *0x423384
40ec82:	33 db                	xor    %ebx,%ebx
40ec84:	83 fe 01             	cmp    $0x1,%esi
40ec87:	0f 94 c3             	sete   %bl
40ec8a:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40ec8e:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40ec91:	ff 15 44 32 42 00    	call   *0x423244
40ec97:	8b c3                	mov    %ebx,%eax
40ec99:	e8 68 d7 00 00       	call   0x41c406
40ec9e:	c3                   	ret
40ec9f:	8b ff                	mov    %edi,%edi
40eca1:	55                   	push   %ebp
40eca2:	8b ec                	mov    %esp,%ebp
40eca4:	83 e4 f8             	and    $0xfffffff8,%esp
40eca7:	83 ec 0c             	sub    $0xc,%esp
40ecaa:	53                   	push   %ebx
40ecab:	56                   	push   %esi
40ecac:	33 db                	xor    %ebx,%ebx
40ecae:	c7 44 24 10 21 00 00 	movl   $0x21,0x10(%esp)
40ecb5:	00
40ecb6:	8b f1                	mov    %ecx,%esi
40ecb8:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40ecbc:	88 5c 24 0b          	mov    %bl,0xb(%esp)
40ecc0:	57                   	push   %edi
40ecc1:	8b fa                	mov    %edx,%edi
40ecc3:	85 f6                	test   %esi,%esi
40ecc5:	74 11                	je     0x40ecd8
40ecc7:	8b 07                	mov    (%edi),%eax
40ecc9:	39 58 f8             	cmp    %ebx,-0x8(%eax)
40eccc:	75 0a                	jne    0x40ecd8
40ecce:	e8 a7 07 00 00       	call   0x40f47a
40ecd3:	e9 f6 00 00 00       	jmp    0x40edce
40ecd8:	8d 44 24 10          	lea    0x10(%esp),%eax
40ecdc:	50                   	push   %eax
40ecdd:	6a 02                	push   $0x2
40ecdf:	53                   	push   %ebx
40ece0:	68 50 5a 40 00       	push   $0x405a50
40ece5:	68 02 00 00 80       	push   $0x80000002
40ecea:	ff 15 08 30 42 00    	call   *0x423008
40ecf0:	85 c0                	test   %eax,%eax
40ecf2:	74 2d                	je     0x40ed21
40ecf4:	83 f8 05             	cmp    $0x5,%eax
40ecf7:	75 10                	jne    0x40ed09
40ecf9:	68 91 00 00 00       	push   $0x91
40ecfe:	e8 50 f9 ff ff       	call   0x40e653
40ed03:	59                   	pop    %ecx
40ed04:	e9 c2 00 00 00       	jmp    0x40edcb
40ed09:	50                   	push   %eax
40ed0a:	68 50 5a 40 00       	push   $0x405a50
40ed0f:	68 92 00 00 00       	push   $0x92
40ed14:	e8 3a f9 ff ff       	call   0x40e653
40ed19:	83 c4 0c             	add    $0xc,%esp
40ed1c:	e9 aa 00 00 00       	jmp    0x40edcb
40ed21:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40ed24:	74 2b                	je     0x40ed51
40ed26:	ff 75 0c             	push   0xc(%ebp)
40ed29:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40ed2d:	ba 2c 5a 40 00       	mov    $0x405a2c,%edx
40ed32:	e8 a0 00 00 00       	call   0x40edd7
40ed37:	85 c0                	test   %eax,%eax
40ed39:	0f 84 82 00 00 00    	je     0x40edc1
40ed3f:	8d 44 24 0f          	lea    0xf(%esp),%eax
40ed43:	50                   	push   %eax
40ed44:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40ed48:	e8 fa ac 00 00       	call   0x419a47
40ed4d:	85 c0                	test   %eax,%eax
40ed4f:	78 70                	js     0x40edc1
40ed51:	39 5d 10             	cmp    %ebx,0x10(%ebp)
40ed54:	74 15                	je     0x40ed6b
40ed56:	ff 75 14             	push   0x14(%ebp)
40ed59:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40ed5d:	ba c4 59 40 00       	mov    $0x4059c4,%edx
40ed62:	e8 70 00 00 00       	call   0x40edd7
40ed67:	85 c0                	test   %eax,%eax
40ed69:	74 56                	je     0x40edc1
40ed6b:	85 f6                	test   %esi,%esi
40ed6d:	74 14                	je     0x40ed83
40ed6f:	ff 37                	push   (%edi)
40ed71:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40ed75:	ba e4 59 40 00       	mov    $0x4059e4,%edx