408930:	0f 8f a5 00 00 00    	jg     0x4089db
408936:	51                   	push   %ecx
408937:	ff 75 1c             	push   0x1c(%ebp)
40893a:	56                   	push   %esi
40893b:	53                   	push   %ebx
40893c:	ff 75 10             	push   0x10(%ebp)
40893f:	ff 75 0c             	push   0xc(%ebp)
408942:	e8 39 72 00 00       	call   0x40fb80
408947:	83 c4 18             	add    $0x18,%esp
40894a:	e9 8c 00 00 00       	jmp    0x4089db
40894f:	85 ff                	test   %edi,%edi
408951:	7e 42                	jle    0x408995
408953:	6a e0                	push   $0xffffffe0
408955:	33 d2                	xor    %edx,%edx
408957:	58                   	pop    %eax
408958:	f7 f7                	div    %edi
40895a:	83 f8 02             	cmp    $0x2,%eax
40895d:	72 36                	jb     0x408995
40895f:	8d 04 7d 08 00 00 00 	lea    0x8(,%edi,2),%eax
408966:	3b c1                	cmp    %ecx,%eax
408968:	77 13                	ja     0x40897d
40896a:	e8 41 72 00 00       	call   0x40fbb0
40896f:	8b f4                	mov    %esp,%esi
408971:	85 f6                	test   %esi,%esi
408973:	74 66                	je     0x4089db
408975:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
40897b:	eb 13                	jmp    0x408990
40897d:	50                   	push   %eax
40897e:	e8 ba f8 ff ff       	call   0x40823d
408983:	8b f0                	mov    %eax,%esi
408985:	59                   	pop    %ecx
408986:	85 f6                	test   %esi,%esi
408988:	74 51                	je     0x4089db
40898a:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
408990:	83 c6 08             	add    $0x8,%esi
408993:	eb 02                	jmp    0x408997
408995:	33 f6                	xor    %esi,%esi
408997:	85 f6                	test   %esi,%esi
408999:	74 40                	je     0x4089db
40899b:	57                   	push   %edi
40899c:	56                   	push   %esi
40899d:	ff 75 f8             	push   -0x8(%ebp)
4089a0:	53                   	push   %ebx
4089a1:	ff 75 10             	push   0x10(%ebp)
4089a4:	ff 75 0c             	push   0xc(%ebp)
4089a7:	e8 d4 71 00 00       	call   0x40fb80
4089ac:	83 c4 18             	add    $0x18,%esp
4089af:	85 c0                	test   %eax,%eax
4089b1:	74 21                	je     0x4089d4
4089b3:	33 c0                	xor    %eax,%eax
4089b5:	50                   	push   %eax
4089b6:	50                   	push   %eax
4089b7:	39 45 20             	cmp    %eax,0x20(%ebp)
4089ba:	75 04                	jne    0x4089c0
4089bc:	50                   	push   %eax
4089bd:	50                   	push   %eax
4089be:	eb 06                	jmp    0x4089c6
4089c0:	ff 75 20             	push   0x20(%ebp)
4089c3:	ff 75 1c             	push   0x1c(%ebp)
4089c6:	57                   	push   %edi
4089c7:	56                   	push   %esi
4089c8:	50                   	push   %eax
4089c9:	ff 75 24             	push   0x24(%ebp)
4089cc:	ff 15 4c 90 41 00    	call   *0x41904c
4089d2:	8b f8                	mov    %eax,%edi
4089d4:	56                   	push   %esi
4089d5:	e8 60 00 00 00       	call   0x408a3a
4089da:	59                   	pop    %ecx
4089db:	53                   	push   %ebx
4089dc:	e8 59 00 00 00       	call   0x408a3a
4089e1:	59                   	pop    %ecx
4089e2:	8b c7                	mov    %edi,%eax
4089e4:	8d 65 ec             	lea    -0x14(%ebp),%esp
4089e7:	5f                   	pop    %edi
4089e8:	5e                   	pop    %esi
4089e9:	5b                   	pop    %ebx
4089ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4089ed:	33 cd                	xor    %ebp,%ecx
4089ef:	e8 45 bd ff ff       	call   0x404739
4089f4:	c9                   	leave
4089f5:	c3                   	ret
4089f6:	55                   	push   %ebp
4089f7:	8b ec                	mov    %esp,%ebp
4089f9:	83 ec 10             	sub    $0x10,%esp
4089fc:	ff 75 08             	push   0x8(%ebp)
4089ff:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408a02:	e8 f6 c7 ff ff       	call   0x4051fd
408a07:	ff 75 28             	push   0x28(%ebp)
408a0a:	8d 45 f0             	lea    -0x10(%ebp),%eax
408a0d:	ff 75 24             	push   0x24(%ebp)
408a10:	ff 75 20             	push   0x20(%ebp)
408a13:	ff 75 1c             	push   0x1c(%ebp)
408a16:	ff 75 18             	push   0x18(%ebp)
408a19:	ff 75 14             	push   0x14(%ebp)
408a1c:	ff 75 10             	push   0x10(%ebp)
408a1f:	ff 75 0c             	push   0xc(%ebp)
408a22:	50                   	push   %eax
408a23:	e8 e5 fd ff ff       	call   0x40880d
408a28:	83 c4 24             	add    $0x24,%esp
408a2b:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
408a2f:	74 07                	je     0x408a38
408a31:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408a34:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
408a38:	c9                   	leave
408a39:	c3                   	ret
408a3a:	55                   	push   %ebp
408a3b:	8b ec                	mov    %esp,%ebp
408a3d:	8b 45 08             	mov    0x8(%ebp),%eax
408a40:	85 c0                	test   %eax,%eax
408a42:	74 12                	je     0x408a56
408a44:	83 e8 08             	sub    $0x8,%eax
408a47:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
408a4d:	75 07                	jne    0x408a56
408a4f:	50                   	push   %eax
408a50:	e8 c3 c6 ff ff       	call   0x405118
408a55:	59                   	pop    %ecx
408a56:	5d                   	pop    %ebp
408a57:	c3                   	ret
408a58:	55                   	push   %ebp
408a59:	8b ec                	mov    %esp,%ebp
408a5b:	56                   	push   %esi
408a5c:	57                   	push   %edi
408a5d:	33 f6                	xor    %esi,%esi
408a5f:	6a 00                	push   $0x0
408a61:	ff 75 0c             	push   0xc(%ebp)
408a64:	ff 75 08             	push   0x8(%ebp)
408a67:	e8 1b 72 00 00       	call   0x40fc87
408a6c:	8b f8                	mov    %eax,%edi
408a6e:	83 c4 0c             	add    $0xc,%esp
408a71:	85 ff                	test   %edi,%edi
408a73:	75 27                	jne    0x408a9c
408a75:	39 05 a8 1d 42 00    	cmp    %eax,0x421da8
408a7b:	76 1f                	jbe    0x408a9c
408a7d:	56                   	push   %esi
408a7e:	ff 15 20 90 41 00    	call   *0x419020
408a84:	8d 8e e8 03 00 00    	lea    0x3e8(%esi),%ecx
408a8a:	8b f1                	mov    %ecx,%esi
408a8c:	3b 0d a8 1d 42 00    	cmp    0x421da8,%ecx
408a92:	76 03                	jbe    0x408a97
408a94:	83 ce ff             	or     $0xffffffff,%esi
408a97:	83 fe ff             	cmp    $0xffffffff,%esi
408a9a:	75 c3                	jne    0x408a5f
408a9c:	8b c7                	mov    %edi,%eax
408a9e:	5f                   	pop    %edi
408a9f:	5e                   	pop    %esi
408aa0:	5d                   	pop    %ebp
408aa1:	c3                   	ret
408aa2:	55                   	push   %ebp
408aa3:	8b ec                	mov    %esp,%ebp
408aa5:	53                   	push   %ebx
408aa6:	56                   	push   %esi
408aa7:	57                   	push   %edi
408aa8:	8b 3d a8 1d 42 00    	mov    0x421da8,%edi
408aae:	33 f6                	xor    %esi,%esi
408ab0:	ff 75 08             	push   0x8(%ebp)
408ab3:	e8 85 f7 ff ff       	call   0x40823d
408ab8:	8b d8                	mov    %eax,%ebx
408aba:	59                   	pop    %ecx
408abb:	85 db                	test   %ebx,%ebx
408abd:	75 25                	jne    0x408ae4
408abf:	85 ff                	test   %edi,%edi
408ac1:	74 21                	je     0x408ae4
408ac3:	56                   	push   %esi
408ac4:	ff 15 20 90 41 00    	call   *0x419020
408aca:	8b 3d a8 1d 42 00    	mov    0x421da8,%edi
408ad0:	8d 8e e8 03 00 00    	lea    0x3e8(%esi),%ecx
408ad6:	8b f1                	mov    %ecx,%esi
408ad8:	3b cf                	cmp    %edi,%ecx
408ada:	76 03                	jbe    0x408adf
408adc:	83 ce ff             	or     $0xffffffff,%esi
408adf:	83 fe ff             	cmp    $0xffffffff,%esi
408ae2:	75 cc                	jne    0x408ab0
408ae4:	5f                   	pop    %edi
408ae5:	5e                   	pop    %esi
408ae6:	8b c3                	mov    %ebx,%eax
408ae8:	5b                   	pop    %ebx
408ae9:	5d                   	pop    %ebp
408aea:	c3                   	ret
408aeb:	55                   	push   %ebp
408aec:	8b ec                	mov    %esp,%ebp
408aee:	56                   	push   %esi
408aef:	57                   	push   %edi
408af0:	33 f6                	xor    %esi,%esi
408af2:	ff 75 0c             	push   0xc(%ebp)
408af5:	ff 75 08             	push   0x8(%ebp)
408af8:	e8 df 70 00 00       	call   0x40fbdc
408afd:	8b f8                	mov    %eax,%edi
408aff:	59                   	pop    %ecx
408b00:	59                   	pop    %ecx
408b01:	85 ff                	test   %edi,%edi
408b03:	75 2c                	jne    0x408b31
408b05:	39 45 0c             	cmp    %eax,0xc(%ebp)
408b08:	74 27                	je     0x408b31
408b0a:	39 05 a8 1d 42 00    	cmp    %eax,0x421da8
408b10:	76 1f                	jbe    0x408b31
408b12:	56                   	push   %esi
408b13:	ff 15 20 90 41 00    	call   *0x419020
408b19:	8d 86 e8 03 00 00    	lea    0x3e8(%esi),%eax
408b1f:	8b f0                	mov    %eax,%esi
408b21:	3b 05 a8 1d 42 00    	cmp    0x421da8,%eax
408b27:	76 03                	jbe    0x408b2c
408b29:	83 ce ff             	or     $0xffffffff,%esi
408b2c:	83 fe ff             	cmp    $0xffffffff,%esi
408b2f:	75 c1                	jne    0x408af2
408b31:	8b c7                	mov    %edi,%eax
408b33:	5f                   	pop    %edi
408b34:	5e                   	pop    %esi
408b35:	5d                   	pop    %ebp
408b36:	c3                   	ret
408b37:	55                   	push   %ebp
408b38:	8b ec                	mov    %esp,%ebp
408b3a:	8b 55 0c             	mov    0xc(%ebp),%edx
408b3d:	a1 88 08 42 00       	mov    0x420888,%eax
408b42:	8b 4d 08             	mov    0x8(%ebp),%ecx
408b45:	23 4d 0c             	and    0xc(%ebp),%ecx
408b48:	f7 d2                	not    %edx
408b4a:	23 d0                	and    %eax,%edx
408b4c:	0b d1                	or     %ecx,%edx
408b4e:	89 15 88 08 42 00    	mov    %edx,0x420888
408b54:	5d                   	pop    %ebp
408b55:	c3                   	ret
408b56:	e8 a6 71 00 00       	call   0x40fd01
408b5b:	85 c0                	test   %eax,%eax
408b5d:	74 08                	je     0x408b67
408b5f:	6a 16                	push   $0x16
408b61:	e8 c4 71 00 00       	call   0x40fd2a
408b66:	59                   	pop    %ecx
408b67:	f6 05 88 08 42 00 02 	testb  $0x2,0x420888
408b6e:	74 21                	je     0x408b91
408b70:	6a 17                	push   $0x17
408b72:	e8 01 ef 00 00       	call   0x417a78
408b77:	85 c0                	test   %eax,%eax
408b79:	74 05                	je     0x408b80
408b7b:	6a 07                	push   $0x7
408b7d:	59                   	pop    %ecx
408b7e:	cd 29                	int    $0x29
408b80:	6a 01                	push   $0x1
408b82:	68 15 00 00 40       	push   $0x40000015
408b87:	6a 03                	push   $0x3
408b89:	e8 0c 29 00 00       	call   0x40b49a
408b8e:	83 c4 0c             	add    $0xc,%esp
408b91:	6a 03                	push   $0x3
408b93:	e8 fe 1f 00 00       	call   0x40ab96
408b98:	cc                   	int3
408b99:	cc                   	int3
408b9a:	cc                   	int3
408b9b:	cc                   	int3
408b9c:	cc                   	int3
408b9d:	cc                   	int3
408b9e:	cc                   	int3
408b9f:	cc                   	int3
408ba0:	8b 54 24 04          	mov    0x4(%esp),%edx
408ba4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
408ba8:	f7 c2 03 00 00 00    	test   $0x3,%edx
408bae:	75 40                	jne    0x408bf0
408bb0:	8b 02                	mov    (%edx),%eax
408bb2:	3a 01                	cmp    (%ecx),%al
408bb4:	75 32                	jne    0x408be8
408bb6:	84 c0                	test   %al,%al
408bb8:	74 26                	je     0x408be0
408bba:	3a 61 01             	cmp    0x1(%ecx),%ah
408bbd:	75 29                	jne    0x408be8
408bbf:	84 e4                	test   %ah,%ah
408bc1:	74 1d                	je     0x408be0
408bc3:	c1 e8 10             	shr    $0x10,%eax
408bc6:	3a 41 02             	cmp    0x2(%ecx),%al
408bc9:	75 1d                	jne    0x408be8
408bcb:	84 c0                	test   %al,%al
408bcd:	74 11                	je     0x408be0
408bcf:	3a 61 03             	cmp    0x3(%ecx),%ah
408bd2:	75 14                	jne    0x408be8
408bd4:	83 c1 04             	add    $0x4,%ecx
408bd7:	83 c2 04             	add    $0x4,%edx
408bda:	84 e4                	test   %ah,%ah
408bdc:	75 d2                	jne    0x408bb0
408bde:	8b ff                	mov    %edi,%edi
408be0:	33 c0                	xor    %eax,%eax
408be2:	c3                   	ret
408be3:	eb 03                	jmp    0x408be8
408be5:	cc                   	int3
408be6:	cc                   	int3
408be7:	cc                   	int3
408be8:	1b c0                	sbb    %eax,%eax
408bea:	83 c8 01             	or     $0x1,%eax
408bed:	c3                   	ret
408bee:	8b ff                	mov    %edi,%edi
408bf0:	f7 c2 01 00 00 00    	test   $0x1,%edx
408bf6:	74 18                	je     0x408c10
408bf8:	8a 02                	mov    (%edx),%al
408bfa:	83 c2 01             	add    $0x1,%edx
408bfd:	3a 01                	cmp    (%ecx),%al
408bff:	75 e7                	jne    0x408be8
408c01:	83 c1 01             	add    $0x1,%ecx
408c04:	84 c0                	test   %al,%al
408c06:	74 d8                	je     0x408be0
408c08:	f7 c2 02 00 00 00    	test   $0x2,%edx
408c0e:	74 a0                	je     0x408bb0
408c10:	66 8b 02             	mov    (%edx),%ax
408c13:	83 c2 02             	add    $0x2,%edx
408c16:	3a 01                	cmp    (%ecx),%al
408c18:	75 ce                	jne    0x408be8
408c1a:	84 c0                	test   %al,%al
408c1c:	74 c2                	je     0x408be0
408c1e:	3a 61 01             	cmp    0x1(%ecx),%ah
408c21:	75 c5                	jne    0x408be8
408c23:	84 e4                	test   %ah,%ah
408c25:	74 b9                	je     0x408be0
408c27:	83 c1 02             	add    $0x2,%ecx
408c2a:	eb 84                	jmp    0x408bb0
408c2c:	55                   	push   %ebp
408c2d:	8b ec                	mov    %esp,%ebp
408c2f:	e8 0f 00 00 00       	call   0x408c43
408c34:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
408c38:	74 05                	je     0x408c3f
408c3a:	e8 86 84 00 00       	call   0x4110c5
408c3f:	db e2                	fnclex
408c41:	5d                   	pop    %ebp
408c42:	c3                   	ret
408c43:	b8 39 06 41 00       	mov    $0x410639,%eax
408c48:	a3 9c 11 42 00       	mov    %eax,0x42119c
408c4d:	c7 05 a0 11 42 00 19 	movl   $0x410f19,0x4211a0
408c54:	0f 41 00
408c57:	c7 05 a4 11 42 00 a8 	movl   $0x410fa8,0x4211a4
408c5e:	0f 41 00
408c61:	c7 05 a8 11 42 00 00 	movl   $0x411000,0x4211a8
408c68:	10 41 00
408c6b:	c7 05 ac 11 42 00 83 	movl   $0x411083,0x4211ac
408c72:	10 41 00
408c75:	a3 b0 11 42 00       	mov    %eax,0x4211b0
408c7a:	c7 05 b4 11 42 00 5a 	movl   $0x41065a,0x4211b4
408c81:	06 41 00
408c84:	c7 05 b8 11 42 00 c0 	movl   $0x410fc0,0x4211b8
408c8b:	0f 41 00
408c8e:	c7 05 bc 11 42 00 2a 	movl   $0x410f2a,0x4211bc
408c95:	0f 41 00
408c98:	c7 05 c0 11 42 00 11 	movl   $0x411011,0x4211c0
408c9f:	10 41 00
408ca2:	c3                   	ret
408ca3:	55                   	push   %ebp
408ca4:	8b ec                	mov    %esp,%ebp
408ca6:	8b 45 08             	mov    0x8(%ebp),%eax
408ca9:	66 8b 08             	mov    (%eax),%cx
408cac:	83 c0 02             	add    $0x2,%eax
408caf:	66 85 c9             	test   %cx,%cx
408cb2:	75 f5                	jne    0x408ca9
408cb4:	2b 45 08             	sub    0x8(%ebp),%eax
408cb7:	d1 f8                	sar    $1,%eax
408cb9:	48                   	dec    %eax
408cba:	5d                   	pop    %ebp
408cbb:	c3                   	ret