40e8c4:	c3                   	ret
40e8c5:	cc                   	int3
40e8c6:	cc                   	int3
40e8c7:	cc                   	int3
40e8c8:	cc                   	int3
40e8c9:	cc                   	int3
40e8ca:	cc                   	int3
40e8cb:	cc                   	int3
40e8cc:	cc                   	int3
40e8cd:	cc                   	int3
40e8ce:	cc                   	int3
40e8cf:	cc                   	int3
40e8d0:	8b ff                	mov    %edi,%edi
40e8d2:	55                   	push   %ebp
40e8d3:	8b ec                	mov    %esp,%ebp
40e8d5:	6a fe                	push   $0xfffffffe
40e8d7:	68 18 03 41 00       	push   $0x410318
40e8dc:	68 e0 ea 40 00       	push   $0x40eae0
40e8e1:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e8e7:	50                   	push   %eax
40e8e8:	83 ec 08             	sub    $0x8,%esp
40e8eb:	53                   	push   %ebx
40e8ec:	56                   	push   %esi
40e8ed:	57                   	push   %edi
40e8ee:	a1 54 13 41 00       	mov    0x411354,%eax
40e8f3:	31 45 f8             	xor    %eax,-0x8(%ebp)
40e8f6:	33 c5                	xor    %ebp,%eax
40e8f8:	50                   	push   %eax
40e8f9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e8fc:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40e902:	89 65 e8             	mov    %esp,-0x18(%ebp)
40e905:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40e90c:	68 00 00 40 00       	push   $0x400000
40e911:	e8 7a 00 00 00       	call   0x40e990
40e916:	83 c4 04             	add    $0x4,%esp
40e919:	85 c0                	test   %eax,%eax
40e91b:	74 54                	je     0x40e971
40e91d:	8b 45 08             	mov    0x8(%ebp),%eax
40e920:	2d 00 00 40 00       	sub    $0x400000,%eax
40e925:	50                   	push   %eax
40e926:	68 00 00 40 00       	push   $0x400000
40e92b:	e8 50 ff ff ff       	call   0x40e880
40e930:	83 c4 08             	add    $0x8,%esp
40e933:	85 c0                	test   %eax,%eax
40e935:	74 3a                	je     0x40e971
40e937:	8b 40 24             	mov    0x24(%eax),%eax
40e93a:	c1 e8 1f             	shr    $0x1f,%eax
40e93d:	f7 d0                	not    %eax
40e93f:	83 e0 01             	and    $0x1,%eax
40e942:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e949:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e94c:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e953:	59                   	pop    %ecx
40e954:	5f                   	pop    %edi
40e955:	5e                   	pop    %esi
40e956:	5b                   	pop    %ebx
40e957:	8b e5                	mov    %ebp,%esp
40e959:	5d                   	pop    %ebp
40e95a:	c3                   	ret
40e95b:	8b 45 ec             	mov    -0x14(%ebp),%eax
40e95e:	8b 00                	mov    (%eax),%eax
40e960:	33 c9                	xor    %ecx,%ecx
40e962:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
40e968:	0f 94 c1             	sete   %cl
40e96b:	8b c1                	mov    %ecx,%eax
40e96d:	c3                   	ret
40e96e:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e971:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e978:	33 c0                	xor    %eax,%eax
40e97a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e97d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e984:	59                   	pop    %ecx
40e985:	5f                   	pop    %edi
40e986:	5e                   	pop    %esi
40e987:	5b                   	pop    %ebx
40e988:	8b e5                	mov    %ebp,%esp
40e98a:	5d                   	pop    %ebp
40e98b:	c3                   	ret
40e98c:	cc                   	int3
40e98d:	cc                   	int3
40e98e:	cc                   	int3
40e98f:	cc                   	int3
40e990:	8b ff                	mov    %edi,%edi
40e992:	55                   	push   %ebp
40e993:	8b ec                	mov    %esp,%ebp
40e995:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e998:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
40e99d:	66 39 01             	cmp    %ax,(%ecx)
40e9a0:	75 1f                	jne    0x40e9c1
40e9a2:	8b 41 3c             	mov    0x3c(%ecx),%eax
40e9a5:	03 c1                	add    %ecx,%eax
40e9a7:	81 38 50 45 00 00    	cmpl   $0x4550,(%eax)
40e9ad:	75 12                	jne    0x40e9c1
40e9af:	b9 0b 01 00 00       	mov    $0x10b,%ecx
40e9b4:	66 39 48 18          	cmp    %cx,0x18(%eax)
40e9b8:	75 07                	jne    0x40e9c1
40e9ba:	b8 01 00 00 00       	mov    $0x1,%eax
40e9bf:	5d                   	pop    %ebp
40e9c0:	c3                   	ret
40e9c1:	33 c0                	xor    %eax,%eax
40e9c3:	5d                   	pop    %ebp
40e9c4:	c3                   	ret
40e9c5:	8b ff                	mov    %edi,%edi
40e9c7:	55                   	push   %ebp
40e9c8:	8b ec                	mov    %esp,%ebp
40e9ca:	83 ec 14             	sub    $0x14,%esp
40e9cd:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40e9d1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40e9d5:	a1 54 13 41 00       	mov    0x411354,%eax
40e9da:	56                   	push   %esi
40e9db:	57                   	push   %edi
40e9dc:	bf 4e e6 40 bb       	mov    $0xbb40e64e,%edi
40e9e1:	be 00 00 ff ff       	mov    $0xffff0000,%esi
40e9e6:	3b c7                	cmp    %edi,%eax
40e9e8:	74 04                	je     0x40e9ee
40e9ea:	85 c6                	test   %eax,%esi
40e9ec:	75 64                	jne    0x40ea52
40e9ee:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e9f1:	50                   	push   %eax
40e9f2:	ff 15 10 21 41 00    	call   *0x412110
40e9f8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e9fb:	33 45 f4             	xor    -0xc(%ebp),%eax
40e9fe:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ea01:	ff 15 e4 20 41 00    	call   *0x4120e4
40ea07:	31 45 fc             	xor    %eax,-0x4(%ebp)
40ea0a:	ff 15 d8 20 41 00    	call   *0x4120d8
40ea10:	31 45 fc             	xor    %eax,-0x4(%ebp)
40ea13:	ff 15 14 21 41 00    	call   *0x412114
40ea19:	33 45 fc             	xor    -0x4(%ebp),%eax
40ea1c:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40ea1f:	33 c1                	xor    %ecx,%eax
40ea21:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ea24:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ea27:	50                   	push   %eax
40ea28:	ff 15 ec 20 41 00    	call   *0x4120ec
40ea2e:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ea31:	33 45 ec             	xor    -0x14(%ebp),%eax
40ea34:	33 45 fc             	xor    -0x4(%ebp),%eax
40ea37:	8b c8                	mov    %eax,%ecx
40ea39:	3b c7                	cmp    %edi,%eax
40ea3b:	74 08                	je     0x40ea45
40ea3d:	85 35 54 13 41 00    	test   %esi,0x411354
40ea43:	75 07                	jne    0x40ea4c
40ea45:	b8 4f e6 40 bb       	mov    $0xbb40e64f,%eax
40ea4a:	8b c8                	mov    %eax,%ecx
40ea4c:	89 0d 54 13 41 00    	mov    %ecx,0x411354
40ea52:	f7 d0                	not    %eax
40ea54:	5f                   	pop    %edi
40ea55:	a3 58 13 41 00       	mov    %eax,0x411358
40ea5a:	5e                   	pop    %esi
40ea5b:	c9                   	leave
40ea5c:	c3                   	ret
40ea5d:	68 00 00 03 00       	push   $0x30000
40ea62:	68 00 00 01 00       	push   $0x10000
40ea67:	ff 15 5c 21 41 00    	call   *0x41215c
40ea6d:	59                   	pop    %ecx
40ea6e:	59                   	pop    %ecx
40ea6f:	c3                   	ret
40ea70:	ff 25 e8 21 41 00    	jmp    *0x4121e8
40ea76:	cc                   	int3
40ea77:	cc                   	int3
40ea78:	68 e0 ea 40 00       	push   $0x40eae0
40ea7d:	64 ff 35 00 00 00 00 	push   %fs:0x0
40ea84:	8b 44 24 10          	mov    0x10(%esp),%eax
40ea88:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40ea8c:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40ea90:	2b e0                	sub    %eax,%esp
40ea92:	53                   	push   %ebx
40ea93:	56                   	push   %esi
40ea94:	57                   	push   %edi
40ea95:	a1 54 13 41 00       	mov    0x411354,%eax
40ea9a:	31 45 fc             	xor    %eax,-0x4(%ebp)
40ea9d:	33 c5                	xor    %ebp,%eax
40ea9f:	50                   	push   %eax
40eaa0:	89 65 e8             	mov    %esp,-0x18(%ebp)
40eaa3:	ff 75 f8             	push   -0x8(%ebp)
40eaa6:	8b 45 fc             	mov    -0x4(%ebp),%eax
40eaa9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40eab0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40eab3:	8d 45 f0             	lea    -0x10(%ebp),%eax
40eab6:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40eabc:	c3                   	ret
40eabd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40eac0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40eac7:	59                   	pop    %ecx
40eac8:	5f                   	pop    %edi
40eac9:	5f                   	pop    %edi
40eaca:	5e                   	pop    %esi
40eacb:	5b                   	pop    %ebx
40eacc:	8b e5                	mov    %ebp,%esp
40eace:	5d                   	pop    %ebp
40eacf:	51                   	push   %ecx
40ead0:	c3                   	ret
40ead1:	cc                   	int3
40ead2:	cc                   	int3
40ead3:	cc                   	int3
40ead4:	cc                   	int3
40ead5:	cc                   	int3
40ead6:	cc                   	int3
40ead7:	cc                   	int3
40ead8:	cc                   	int3
40ead9:	cc                   	int3
40eada:	cc                   	int3
40eadb:	cc                   	int3
40eadc:	cc                   	int3
40eadd:	cc                   	int3
40eade:	cc                   	int3
40eadf:	cc                   	int3
40eae0:	8b ff                	mov    %edi,%edi
40eae2:	55                   	push   %ebp
40eae3:	8b ec                	mov    %esp,%ebp
40eae5:	ff 75 14             	push   0x14(%ebp)
40eae8:	ff 75 10             	push   0x10(%ebp)
40eaeb:	ff 75 0c             	push   0xc(%ebp)
40eaee:	ff 75 08             	push   0x8(%ebp)
40eaf1:	68 a0 e3 40 00       	push   $0x40e3a0
40eaf6:	68 54 13 41 00       	push   $0x411354
40eafb:	e8 17 00 00 00       	call   0x40eb17
40eb00:	83 c4 18             	add    $0x18,%esp
40eb03:	5d                   	pop    %ebp
40eb04:	c3                   	ret
40eb05:	ff 25 e0 21 41 00    	jmp    *0x4121e0
40eb0b:	ff 25 d4 21 41 00    	jmp    *0x4121d4
40eb11:	ff 25 cc 21 41 00    	jmp    *0x4121cc
40eb17:	ff 25 58 21 41 00    	jmp    *0x412158
40eb1d:	8b ff                	mov    %edi,%edi
40eb1f:	55                   	push   %ebp
40eb20:	8b ec                	mov    %esp,%ebp
40eb22:	e8 79 00 00 00       	call   0x40eba0
40eb27:	8b 4d 08             	mov    0x8(%ebp),%ecx
40eb2a:	c1 e1 05             	shl    $0x5,%ecx
40eb2d:	03 c1                	add    %ecx,%eax
40eb2f:	5d                   	pop    %ebp
40eb30:	c3                   	ret
40eb31:	b8 00 40 41 00       	mov    $0x414000,%eax
40eb36:	e9 00 00 00 00       	jmp    0x40eb3b
40eb3b:	51                   	push   %ecx
40eb3c:	52                   	push   %edx
40eb3d:	50                   	push   %eax
40eb3e:	68 dc 03 41 00       	push   $0x4103dc
40eb43:	e8 54 f3 ff ff       	call   0x40de9c
40eb48:	5a                   	pop    %edx
40eb49:	59                   	pop    %ecx
40eb4a:	ff e0                	jmp    *%eax
40eb4c:	b8 08 40 41 00       	mov    $0x414008,%eax
40eb51:	e9 e5 ff ff ff       	jmp    0x40eb3b
40eb56:	b8 0c 40 41 00       	mov    $0x41400c,%eax
40eb5b:	e9 db ff ff ff       	jmp    0x40eb3b
40eb60:	b8 04 40 41 00       	mov    $0x414004,%eax
40eb65:	e9 d1 ff ff ff       	jmp    0x40eb3b
40eb6a:	b8 1c 40 41 00       	mov    $0x41401c,%eax
40eb6f:	e9 00 00 00 00       	jmp    0x40eb74
40eb74:	51                   	push   %ecx
40eb75:	52                   	push   %edx
40eb76:	50                   	push   %eax
40eb77:	68 fc 03 41 00       	push   $0x4103fc
40eb7c:	e8 1b f3 ff ff       	call   0x40de9c
40eb81:	5a                   	pop    %edx
40eb82:	59                   	pop    %ecx
40eb83:	ff e0                	jmp    *%eax
40eb85:	b8 14 40 41 00       	mov    $0x414014,%eax
40eb8a:	e9 00 00 00 00       	jmp    0x40eb8f
40eb8f:	51                   	push   %ecx
40eb90:	52                   	push   %edx
40eb91:	50                   	push   %eax
40eb92:	68 1c 04 41 00       	push   $0x41041c
40eb97:	e8 00 f3 ff ff       	call   0x40de9c
40eb9c:	5a                   	pop    %edx
40eb9d:	59                   	pop    %ecx
40eb9e:	ff e0                	jmp    *%eax
40eba0:	ff 25 c0 21 41 00    	jmp    *0x4121c0
40eba6:	cc                   	int3
40eba7:	cc                   	int3
40eba8:	cc                   	int3
40eba9:	cc                   	int3
40ebaa:	cc                   	int3
40ebab:	cc                   	int3
40ebac:	cc                   	int3
40ebad:	cc                   	int3
40ebae:	cc                   	int3
40ebaf:	cc                   	int3
40ebb0:	53                   	push   %ebx
40ebb1:	8b 44 24 14          	mov    0x14(%esp),%eax
40ebb5:	0b c0                	or     %eax,%eax
40ebb7:	75 18                	jne    0x40ebd1
40ebb9:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40ebbd:	8b 44 24 0c          	mov    0xc(%esp),%eax
40ebc1:	33 d2                	xor    %edx,%edx
40ebc3:	f7 f1                	div    %ecx
40ebc5:	8b 44 24 08          	mov    0x8(%esp),%eax
40ebc9:	f7 f1                	div    %ecx
40ebcb:	8b c2                	mov    %edx,%eax
40ebcd:	33 d2                	xor    %edx,%edx
40ebcf:	eb 50                	jmp    0x40ec21
40ebd1:	8b c8                	mov    %eax,%ecx
40ebd3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40ebd7:	8b 54 24 0c          	mov    0xc(%esp),%edx
40ebdb:	8b 44 24 08          	mov    0x8(%esp),%eax
40ebdf:	d1 e9                	shr    $1,%ecx
40ebe1:	d1 db                	rcr    $1,%ebx
40ebe3:	d1 ea                	shr    $1,%edx
40ebe5:	d1 d8                	rcr    $1,%eax
40ebe7:	0b c9                	or     %ecx,%ecx
40ebe9:	75 f4                	jne    0x40ebdf
40ebeb:	f7 f3                	div    %ebx
40ebed:	8b c8                	mov    %eax,%ecx
40ebef:	f7 64 24 14          	mull   0x14(%esp)
40ebf3:	91                   	xchg   %eax,%ecx
40ebf4:	f7 64 24 10          	mull   0x10(%esp)
40ebf8:	03 d1                	add    %ecx,%edx
40ebfa:	72 0e                	jb     0x40ec0a
40ebfc:	3b 54 24 0c          	cmp    0xc(%esp),%edx
40ec00:	77 08                	ja     0x40ec0a
40ec02:	72 0e                	jb     0x40ec12
40ec04:	3b 44 24 08          	cmp    0x8(%esp),%eax
40ec08:	76 08                	jbe    0x40ec12
40ec0a:	2b 44 24 10          	sub    0x10(%esp),%eax
40ec0e:	1b 54 24 14          	sbb    0x14(%esp),%edx
40ec12:	2b 44 24 08          	sub    0x8(%esp),%eax
40ec16:	1b 54 24 0c          	sbb    0xc(%esp),%edx
40ec1a:	f7 da                	neg    %edx
40ec1c:	f7 d8                	neg    %eax
40ec1e:	83 da 00             	sbb    $0x0,%edx
40ec21:	5b                   	pop    %ebx
40ec22:	c2 10 00             	ret    $0x10
40ec25:	cc                   	int3
40ec26:	cc                   	int3
40ec27:	cc                   	int3
40ec28:	cc                   	int3
40ec29:	cc                   	int3
40ec2a:	cc                   	int3
40ec2b:	cc                   	int3
40ec2c:	cc                   	int3
40ec2d:	cc                   	int3
40ec2e:	cc                   	int3
40ec2f:	cc                   	int3
40ec30:	80 f9 40             	cmp    $0x40,%cl
40ec33:	73 15                	jae    0x40ec4a
40ec35:	80 f9 20             	cmp    $0x20,%cl
40ec38:	73 06                	jae    0x40ec40
40ec3a:	0f ad d0             	shrd   %cl,%edx,%eax
40ec3d:	d3 ea                	shr    %cl,%edx
40ec3f:	c3                   	ret
40ec40:	8b c2                	mov    %edx,%eax
40ec42:	33 d2                	xor    %edx,%edx
40ec44:	80 e1 1f             	and    $0x1f,%cl
40ec47:	d3 e8                	shr    %cl,%eax
40ec49:	c3                   	ret
40ec4a:	33 c0                	xor    %eax,%eax
40ec4c:	33 d2                	xor    %edx,%edx