40d8d5:	e8 4d 68 ff ff       	call   0x404127
40d8da:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40d8e0:	8b c3                	mov    %ebx,%eax
40d8e2:	8b d3                	mov    %ebx,%edx
40d8e4:	e9 a1 00 00 00       	jmp    0x40d98a
40d8e9:	85 c0                	test   %eax,%eax
40d8eb:	78 08                	js     0x40d8f5
40d8ed:	3b 05 00 46 41 00    	cmp    0x414600,%eax
40d8f3:	72 1a                	jb     0x40d90f
40d8f5:	e8 40 68 ff ff       	call   0x40413a
40d8fa:	83 20 00             	andl   $0x0,(%eax)
40d8fd:	e8 25 68 ff ff       	call   0x404127
40d902:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40d908:	e8 7a 53 ff ff       	call   0x402c87
40d90d:	eb d1                	jmp    0x40d8e0
40d90f:	8b c8                	mov    %eax,%ecx
40d911:	c1 f9 05             	sar    $0x5,%ecx
40d914:	8d 3c 8d 20 46 41 00 	lea    0x414620(,%ecx,4),%edi
40d91b:	8b f0                	mov    %eax,%esi
40d91d:	83 e6 1f             	and    $0x1f,%esi
40d920:	c1 e6 06             	shl    $0x6,%esi
40d923:	8b 0f                	mov    (%edi),%ecx
40d925:	0f be 4c 31 04       	movsbl 0x4(%ecx,%esi,1),%ecx
40d92a:	83 e1 01             	and    $0x1,%ecx
40d92d:	74 c6                	je     0x40d8f5
40d92f:	50                   	push   %eax
40d930:	e8 a9 57 ff ff       	call   0x4030de
40d935:	59                   	pop    %ecx
40d936:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40d93a:	8b 07                	mov    (%edi),%eax
40d93c:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
40d941:	74 1c                	je     0x40d95f
40d943:	ff 75 14             	push   0x14(%ebp)
40d946:	ff 75 10             	push   0x10(%ebp)
40d949:	ff 75 0c             	push   0xc(%ebp)
40d94c:	ff 75 08             	push   0x8(%ebp)
40d94f:	e8 d7 fe ff ff       	call   0x40d82b
40d954:	83 c4 10             	add    $0x10,%esp
40d957:	89 45 dc             	mov    %eax,-0x24(%ebp)
40d95a:	89 55 e0             	mov    %edx,-0x20(%ebp)
40d95d:	eb 19                	jmp    0x40d978
40d95f:	e8 c3 67 ff ff       	call   0x404127
40d964:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40d96a:	e8 cb 67 ff ff       	call   0x40413a
40d96f:	83 20 00             	andl   $0x0,(%eax)
40d972:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40d975:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40d978:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d97f:	e8 0c 00 00 00       	call   0x40d990
40d984:	8b 45 dc             	mov    -0x24(%ebp),%eax
40d987:	8b 55 e0             	mov    -0x20(%ebp),%edx
40d98a:	e8 26 68 ff ff       	call   0x4041b5
40d98f:	c3                   	ret
40d990:	ff 75 08             	push   0x8(%ebp)
40d993:	e8 e5 57 ff ff       	call   0x40317d
40d998:	59                   	pop    %ecx
40d999:	c3                   	ret
40d99a:	8b ff                	mov    %edi,%edi
40d99c:	55                   	push   %ebp
40d99d:	8b ec                	mov    %esp,%ebp
40d99f:	ff 05 e0 2e 41 00    	incl   0x412ee0
40d9a5:	68 00 10 00 00       	push   $0x1000
40d9aa:	e8 10 8f ff ff       	call   0x4068bf
40d9af:	59                   	pop    %ecx
40d9b0:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d9b3:	89 41 08             	mov    %eax,0x8(%ecx)
40d9b6:	85 c0                	test   %eax,%eax
40d9b8:	74 0d                	je     0x40d9c7
40d9ba:	83 49 0c 08          	orl    $0x8,0xc(%ecx)
40d9be:	c7 41 18 00 10 00 00 	movl   $0x1000,0x18(%ecx)
40d9c5:	eb 11                	jmp    0x40d9d8
40d9c7:	83 49 0c 04          	orl    $0x4,0xc(%ecx)
40d9cb:	8d 41 14             	lea    0x14(%ecx),%eax
40d9ce:	89 41 08             	mov    %eax,0x8(%ecx)
40d9d1:	c7 41 18 02 00 00 00 	movl   $0x2,0x18(%ecx)
40d9d8:	8b 41 08             	mov    0x8(%ecx),%eax
40d9db:	83 61 04 00          	andl   $0x0,0x4(%ecx)
40d9df:	89 01                	mov    %eax,(%ecx)
40d9e1:	5d                   	pop    %ebp
40d9e2:	c3                   	ret
40d9e3:	66 0f ef c0          	pxor   %xmm0,%xmm0
40d9e7:	51                   	push   %ecx
40d9e8:	53                   	push   %ebx
40d9e9:	8b c1                	mov    %ecx,%eax
40d9eb:	83 e0 0f             	and    $0xf,%eax
40d9ee:	85 c0                	test   %eax,%eax
40d9f0:	75 7f                	jne    0x40da71
40d9f2:	8b c2                	mov    %edx,%eax
40d9f4:	83 e2 7f             	and    $0x7f,%edx
40d9f7:	c1 e8 07             	shr    $0x7,%eax
40d9fa:	74 37                	je     0x40da33
40d9fc:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40da03:	66 0f 7f 01          	movdqa %xmm0,(%ecx)
40da07:	66 0f 7f 41 10       	movdqa %xmm0,0x10(%ecx)
40da0c:	66 0f 7f 41 20       	movdqa %xmm0,0x20(%ecx)
40da11:	66 0f 7f 41 30       	movdqa %xmm0,0x30(%ecx)
40da16:	66 0f 7f 41 40       	movdqa %xmm0,0x40(%ecx)
40da1b:	66 0f 7f 41 50       	movdqa %xmm0,0x50(%ecx)
40da20:	66 0f 7f 41 60       	movdqa %xmm0,0x60(%ecx)
40da25:	66 0f 7f 41 70       	movdqa %xmm0,0x70(%ecx)
40da2a:	8d 89 80 00 00 00    	lea    0x80(%ecx),%ecx
40da30:	48                   	dec    %eax
40da31:	75 d0                	jne    0x40da03
40da33:	85 d2                	test   %edx,%edx
40da35:	74 37                	je     0x40da6e
40da37:	8b c2                	mov    %edx,%eax
40da39:	c1 e8 04             	shr    $0x4,%eax
40da3c:	74 0f                	je     0x40da4d
40da3e:	eb 03                	jmp    0x40da43
40da40:	8d 49 00             	lea    0x0(%ecx),%ecx
40da43:	66 0f 7f 01          	movdqa %xmm0,(%ecx)
40da47:	8d 49 10             	lea    0x10(%ecx),%ecx
40da4a:	48                   	dec    %eax
40da4b:	75 f6                	jne    0x40da43
40da4d:	83 e2 0f             	and    $0xf,%edx
40da50:	74 1c                	je     0x40da6e
40da52:	8b c2                	mov    %edx,%eax
40da54:	33 db                	xor    %ebx,%ebx
40da56:	c1 ea 02             	shr    $0x2,%edx
40da59:	74 08                	je     0x40da63
40da5b:	89 19                	mov    %ebx,(%ecx)
40da5d:	8d 49 04             	lea    0x4(%ecx),%ecx
40da60:	4a                   	dec    %edx
40da61:	75 f8                	jne    0x40da5b
40da63:	83 e0 03             	and    $0x3,%eax
40da66:	74 06                	je     0x40da6e
40da68:	88 19                	mov    %bl,(%ecx)
40da6a:	41                   	inc    %ecx
40da6b:	48                   	dec    %eax
40da6c:	75 fa                	jne    0x40da68
40da6e:	5b                   	pop    %ebx
40da6f:	58                   	pop    %eax
40da70:	c3                   	ret
40da71:	8b d8                	mov    %eax,%ebx
40da73:	f7 db                	neg    %ebx
40da75:	83 c3 10             	add    $0x10,%ebx
40da78:	2b d3                	sub    %ebx,%edx
40da7a:	33 c0                	xor    %eax,%eax
40da7c:	52                   	push   %edx
40da7d:	8b d3                	mov    %ebx,%edx
40da7f:	83 e2 03             	and    $0x3,%edx
40da82:	74 06                	je     0x40da8a
40da84:	88 01                	mov    %al,(%ecx)
40da86:	41                   	inc    %ecx
40da87:	4a                   	dec    %edx
40da88:	75 fa                	jne    0x40da84
40da8a:	c1 eb 02             	shr    $0x2,%ebx
40da8d:	74 08                	je     0x40da97
40da8f:	89 01                	mov    %eax,(%ecx)
40da91:	8d 49 04             	lea    0x4(%ecx),%ecx
40da94:	4b                   	dec    %ebx
40da95:	75 f8                	jne    0x40da8f
40da97:	5a                   	pop    %edx
40da98:	e9 55 ff ff ff       	jmp    0x40d9f2
40da9d:	6a 0a                	push   $0xa
40da9f:	ff 15 3c f1 40 00    	call   *0x40f13c
40daa5:	a3 f8 45 41 00       	mov    %eax,0x4145f8
40daaa:	33 c0                	xor    %eax,%eax
40daac:	c3                   	ret
40daad:	8b ff                	mov    %edi,%edi
40daaf:	55                   	push   %ebp
40dab0:	8b ec                	mov    %esp,%ebp
40dab2:	83 ec 10             	sub    $0x10,%esp
40dab5:	53                   	push   %ebx
40dab6:	56                   	push   %esi
40dab7:	8b 75 0c             	mov    0xc(%ebp),%esi
40daba:	33 db                	xor    %ebx,%ebx
40dabc:	57                   	push   %edi
40dabd:	8b 7d 10             	mov    0x10(%ebp),%edi
40dac0:	3b f3                	cmp    %ebx,%esi
40dac2:	75 11                	jne    0x40dad5
40dac4:	3b fb                	cmp    %ebx,%edi
40dac6:	76 0d                	jbe    0x40dad5
40dac8:	8b 45 08             	mov    0x8(%ebp),%eax
40dacb:	3b c3                	cmp    %ebx,%eax
40dacd:	74 02                	je     0x40dad1
40dacf:	89 18                	mov    %ebx,(%eax)
40dad1:	33 c0                	xor    %eax,%eax
40dad3:	eb 7b                	jmp    0x40db50
40dad5:	8b 45 08             	mov    0x8(%ebp),%eax
40dad8:	3b c3                	cmp    %ebx,%eax
40dada:	74 03                	je     0x40dadf
40dadc:	83 08 ff             	orl    $0xffffffff,(%eax)
40dadf:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40dae5:	76 13                	jbe    0x40dafa
40dae7:	e8 3b 66 ff ff       	call   0x404127
40daec:	6a 16                	push   $0x16
40daee:	5e                   	pop    %esi
40daef:	89 30                	mov    %esi,(%eax)
40daf1:	e8 91 51 ff ff       	call   0x402c87
40daf6:	8b c6                	mov    %esi,%eax
40daf8:	eb 56                	jmp    0x40db50
40dafa:	ff 75 18             	push   0x18(%ebp)
40dafd:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40db00:	e8 e0 44 ff ff       	call   0x401fe5
40db05:	8b 45 f0             	mov    -0x10(%ebp),%eax
40db08:	39 58 14             	cmp    %ebx,0x14(%eax)
40db0b:	0f 85 90 00 00 00    	jne    0x40dba1
40db11:	66 8b 45 14          	mov    0x14(%ebp),%ax
40db15:	b9 ff 00 00 00       	mov    $0xff,%ecx
40db1a:	66 3b c1             	cmp    %cx,%ax
40db1d:	76 36                	jbe    0x40db55
40db1f:	3b f3                	cmp    %ebx,%esi
40db21:	74 0f                	je     0x40db32
40db23:	3b fb                	cmp    %ebx,%edi
40db25:	76 0b                	jbe    0x40db32
40db27:	57                   	push   %edi
40db28:	53                   	push   %ebx
40db29:	56                   	push   %esi
40db2a:	e8 b1 9e ff ff       	call   0x4079e0
40db2f:	83 c4 0c             	add    $0xc,%esp
40db32:	e8 f0 65 ff ff       	call   0x404127
40db37:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
40db3d:	e8 e5 65 ff ff       	call   0x404127
40db42:	8b 00                	mov    (%eax),%eax
40db44:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40db47:	74 07                	je     0x40db50
40db49:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40db4c:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
40db50:	5f                   	pop    %edi
40db51:	5e                   	pop    %esi
40db52:	5b                   	pop    %ebx
40db53:	c9                   	leave
40db54:	c3                   	ret
40db55:	3b f3                	cmp    %ebx,%esi
40db57:	74 26                	je     0x40db7f
40db59:	3b fb                	cmp    %ebx,%edi
40db5b:	77 20                	ja     0x40db7d
40db5d:	e8 c5 65 ff ff       	call   0x404127
40db62:	6a 22                	push   $0x22
40db64:	5e                   	pop    %esi
40db65:	89 30                	mov    %esi,(%eax)
40db67:	e8 1b 51 ff ff       	call   0x402c87
40db6c:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40db6f:	74 85                	je     0x40daf6
40db71:	8b 45 f8             	mov    -0x8(%ebp),%eax
40db74:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40db78:	e9 79 ff ff ff       	jmp    0x40daf6
40db7d:	88 06                	mov    %al,(%esi)
40db7f:	8b 45 08             	mov    0x8(%ebp),%eax
40db82:	3b c3                	cmp    %ebx,%eax
40db84:	74 06                	je     0x40db8c
40db86:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40db8c:	38 5d fc             	cmp    %bl,-0x4(%ebp)
40db8f:	0f 84 3c ff ff ff    	je     0x40dad1
40db95:	8b 45 f8             	mov    -0x8(%ebp),%eax
40db98:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40db9c:	e9 30 ff ff ff       	jmp    0x40dad1
40dba1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40dba4:	51                   	push   %ecx
40dba5:	53                   	push   %ebx
40dba6:	57                   	push   %edi
40dba7:	56                   	push   %esi
40dba8:	6a 01                	push   $0x1
40dbaa:	8d 4d 14             	lea    0x14(%ebp),%ecx
40dbad:	51                   	push   %ecx
40dbae:	53                   	push   %ebx
40dbaf:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40dbb2:	ff 70 04             	push   0x4(%eax)
40dbb5:	ff 15 10 f1 40 00    	call   *0x40f110
40dbbb:	3b c3                	cmp    %ebx,%eax
40dbbd:	74 14                	je     0x40dbd3
40dbbf:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40dbc2:	0f 85 6a ff ff ff    	jne    0x40db32
40dbc8:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dbcb:	3b cb                	cmp    %ebx,%ecx
40dbcd:	74 bd                	je     0x40db8c
40dbcf:	89 01                	mov    %eax,(%ecx)
40dbd1:	eb b9                	jmp    0x40db8c
40dbd3:	ff 15 44 f0 40 00    	call   *0x40f044
40dbd9:	83 f8 7a             	cmp    $0x7a,%eax
40dbdc:	0f 85 50 ff ff ff    	jne    0x40db32
40dbe2:	3b f3                	cmp    %ebx,%esi
40dbe4:	0f 84 73 ff ff ff    	je     0x40db5d
40dbea:	3b fb                	cmp    %ebx,%edi
40dbec:	0f 86 6b ff ff ff    	jbe    0x40db5d
40dbf2:	57                   	push   %edi
40dbf3:	53                   	push   %ebx
40dbf4:	56                   	push   %esi
40dbf5:	e8 e6 9d ff ff       	call   0x4079e0
40dbfa:	83 c4 0c             	add    $0xc,%esp
40dbfd:	e9 5b ff ff ff       	jmp    0x40db5d
40dc02:	8b ff                	mov    %edi,%edi
40dc04:	55                   	push   %ebp
40dc05:	8b ec                	mov    %esp,%ebp
40dc07:	6a 00                	push   $0x0
40dc09:	ff 75 14             	push   0x14(%ebp)
40dc0c:	ff 75 10             	push   0x10(%ebp)
40dc0f:	ff 75 0c             	push   0xc(%ebp)
40dc12:	ff 75 08             	push   0x8(%ebp)
40dc15:	e8 93 fe ff ff       	call   0x40daad
40dc1a:	83 c4 14             	add    $0x14,%esp
40dc1d:	5d                   	pop    %ebp
40dc1e:	c3                   	ret
40dc1f:	8b ff                	mov    %edi,%edi
40dc21:	55                   	push   %ebp
40dc22:	8b ec                	mov    %esp,%ebp
40dc24:	56                   	push   %esi
40dc25:	8b 75 14             	mov    0x14(%ebp),%esi
40dc28:	85 f6                	test   %esi,%esi
40dc2a:	7e 0d                	jle    0x40dc39
40dc2c:	56                   	push   %esi
40dc2d:	ff 75 10             	push   0x10(%ebp)
40dc30:	e8 9c 93 ff ff       	call   0x406fd1
40dc35:	59                   	pop    %ecx
40dc36:	59                   	pop    %ecx
40dc37:	8b f0                	mov    %eax,%esi
40dc39:	8b 45 1c             	mov    0x1c(%ebp),%eax
40dc3c:	85 c0                	test   %eax,%eax
40dc3e:	7e 0b                	jle    0x40dc4b
40dc40:	50                   	push   %eax
40dc41:	ff 75 18             	push   0x18(%ebp)
40dc44:	e8 88 93 ff ff       	call   0x406fd1
40dc49:	59                   	pop    %ecx
40dc4a:	59                   	pop    %ecx
40dc4b:	85 f6                	test   %esi,%esi
40dc4d:	74 1a                	je     0x40dc69
40dc4f:	85 c0                	test   %eax,%eax
40dc51:	74 16                	je     0x40dc69
40dc53:	50                   	push   %eax
40dc54:	ff 75 18             	push   0x18(%ebp)
40dc57:	56                   	push   %esi
40dc58:	ff 75 10             	push   0x10(%ebp)
40dc5b:	ff 75 0c             	push   0xc(%ebp)
40dc5e:	ff 75 08             	push   0x8(%ebp)
40dc61:	ff 15 40 f1 40 00    	call   *0x40f140
40dc67:	eb 16                	jmp    0x40dc7f
40dc69:	8b ce                	mov    %esi,%ecx
40dc6b:	2b c8                	sub    %eax,%ecx
40dc6d:	75 05                	jne    0x40dc74
40dc6f:	6a 02                	push   $0x2
40dc71:	58                   	pop    %eax
40dc72:	eb 0b                	jmp    0x40dc7f
40dc74:	33 c0                	xor    %eax,%eax
40dc76:	85 c9                	test   %ecx,%ecx
40dc78:	0f 99 c0             	setns  %al
40dc7b:	8d 44 00 01          	lea    0x1(%eax,%eax,1),%eax
40dc7f:	5e                   	pop    %esi
40dc80:	5d                   	pop    %ebp
40dc81:	c3                   	ret
40dc82:	8b ff                	mov    %edi,%edi
40dc84:	55                   	push   %ebp
40dc85:	8b ec                	mov    %esp,%ebp
40dc87:	56                   	push   %esi
40dc88:	8b 35 70 32 41 00    	mov    0x413270,%esi
40dc8e:	eb 24                	jmp    0x40dcb4
40dc90:	57                   	push   %edi
40dc91:	50                   	push   %eax
40dc92:	ff 75 08             	push   0x8(%ebp)
40dc95:	e8 c2 b8 ff ff       	call   0x40955c