401adf:	56                   	push   %esi
401ae0:	e8 38 24 00 00       	call   0x403f1d
401ae5:	56                   	push   %esi
401ae6:	e8 fe 01 00 00       	call   0x401ce9
401aeb:	56                   	push   %esi
401aec:	e8 59 1e 00 00       	call   0x40394a
401af1:	68 83 1a 40 00       	push   $0x401a83
401af6:	e8 b8 0a 00 00       	call   0x4025b3
401afb:	83 c4 24             	add    $0x24,%esp
401afe:	a3 10 f0 41 00       	mov    %eax,0x41f010
401b03:	5e                   	pop    %esi
401b04:	c3                   	ret
401b05:	8b ff                	mov    %edi,%edi
401b07:	55                   	push   %ebp
401b08:	8b ec                	mov    %esp,%ebp
401b0a:	51                   	push   %ecx
401b0b:	51                   	push   %ecx
401b0c:	53                   	push   %ebx
401b0d:	8b 5d 08             	mov    0x8(%ebp),%ebx
401b10:	56                   	push   %esi
401b11:	57                   	push   %edi
401b12:	33 f6                	xor    %esi,%esi
401b14:	33 ff                	xor    %edi,%edi
401b16:	89 7d fc             	mov    %edi,-0x4(%ebp)
401b19:	3b 1c fd 18 f0 41 00 	cmp    0x41f018(,%edi,8),%ebx
401b20:	74 09                	je     0x401b2b
401b22:	47                   	inc    %edi
401b23:	89 7d fc             	mov    %edi,-0x4(%ebp)
401b26:	83 ff 17             	cmp    $0x17,%edi
401b29:	72 ee                	jb     0x401b19
401b2b:	83 ff 17             	cmp    $0x17,%edi
401b2e:	0f 83 77 01 00 00    	jae    0x401cab
401b34:	6a 03                	push   $0x3
401b36:	e8 48 2a 00 00       	call   0x404583
401b3b:	59                   	pop    %ecx
401b3c:	83 f8 01             	cmp    $0x1,%eax
401b3f:	0f 84 34 01 00 00    	je     0x401c79
401b45:	6a 03                	push   $0x3
401b47:	e8 37 2a 00 00       	call   0x404583
401b4c:	59                   	pop    %ecx
401b4d:	85 c0                	test   %eax,%eax
401b4f:	75 0d                	jne    0x401b5e
401b51:	83 3d 00 f0 41 00 01 	cmpl   $0x1,0x41f000
401b58:	0f 84 1b 01 00 00    	je     0x401c79
401b5e:	81 fb fc 00 00 00    	cmp    $0xfc,%ebx
401b64:	0f 84 41 01 00 00    	je     0x401cab
401b6a:	68 78 d8 41 00       	push   $0x41d878
401b6f:	bb 14 03 00 00       	mov    $0x314,%ebx
401b74:	53                   	push   %ebx
401b75:	bf f0 09 43 00       	mov    $0x4309f0,%edi
401b7a:	57                   	push   %edi
401b7b:	e8 9b 29 00 00       	call   0x40451b
401b80:	83 c4 0c             	add    $0xc,%esp
401b83:	85 c0                	test   %eax,%eax
401b85:	74 0d                	je     0x401b94
401b87:	56                   	push   %esi
401b88:	56                   	push   %esi
401b89:	56                   	push   %esi
401b8a:	56                   	push   %esi
401b8b:	56                   	push   %esi
401b8c:	e8 88 1f 00 00       	call   0x403b19
401b91:	83 c4 14             	add    $0x14,%esp
401b94:	68 04 01 00 00       	push   $0x104
401b99:	be 09 0a 43 00       	mov    $0x430a09,%esi
401b9e:	56                   	push   %esi
401b9f:	6a 00                	push   $0x0
401ba1:	c6 05 0d 0b 43 00 00 	movb   $0x0,0x430b0d
401ba8:	ff 15 88 d0 41 00    	call   *0x41d088
401bae:	85 c0                	test   %eax,%eax
401bb0:	75 26                	jne    0x401bd8
401bb2:	68 60 d8 41 00       	push   $0x41d860
401bb7:	68 fb 02 00 00       	push   $0x2fb
401bbc:	56                   	push   %esi
401bbd:	e8 59 29 00 00       	call   0x40451b
401bc2:	83 c4 0c             	add    $0xc,%esp
401bc5:	85 c0                	test   %eax,%eax
401bc7:	74 0f                	je     0x401bd8
401bc9:	33 c0                	xor    %eax,%eax
401bcb:	50                   	push   %eax
401bcc:	50                   	push   %eax
401bcd:	50                   	push   %eax
401bce:	50                   	push   %eax
401bcf:	50                   	push   %eax
401bd0:	e8 44 1f 00 00       	call   0x403b19
401bd5:	83 c4 14             	add    $0x14,%esp
401bd8:	56                   	push   %esi
401bd9:	e8 b2 28 00 00       	call   0x404490
401bde:	40                   	inc    %eax
401bdf:	59                   	pop    %ecx
401be0:	83 f8 3c             	cmp    $0x3c,%eax
401be3:	76 38                	jbe    0x401c1d
401be5:	56                   	push   %esi
401be6:	e8 a5 28 00 00       	call   0x404490
401beb:	83 ee 3b             	sub    $0x3b,%esi
401bee:	03 c6                	add    %esi,%eax
401bf0:	6a 03                	push   $0x3
401bf2:	b9 04 0d 43 00       	mov    $0x430d04,%ecx
401bf7:	68 5c d8 41 00       	push   $0x41d85c
401bfc:	2b c8                	sub    %eax,%ecx
401bfe:	51                   	push   %ecx
401bff:	50                   	push   %eax
401c00:	e8 cb 27 00 00       	call   0x4043d0
401c05:	83 c4 14             	add    $0x14,%esp
401c08:	85 c0                	test   %eax,%eax
401c0a:	74 11                	je     0x401c1d
401c0c:	33 f6                	xor    %esi,%esi
401c0e:	56                   	push   %esi
401c0f:	56                   	push   %esi
401c10:	56                   	push   %esi
401c11:	56                   	push   %esi
401c12:	56                   	push   %esi
401c13:	e8 01 1f 00 00       	call   0x403b19
401c18:	83 c4 14             	add    $0x14,%esp
401c1b:	eb 02                	jmp    0x401c1f
401c1d:	33 f6                	xor    %esi,%esi
401c1f:	68 58 d8 41 00       	push   $0x41d858
401c24:	53                   	push   %ebx
401c25:	57                   	push   %edi
401c26:	e8 31 27 00 00       	call   0x40435c
401c2b:	83 c4 0c             	add    $0xc,%esp
401c2e:	85 c0                	test   %eax,%eax
401c30:	74 0d                	je     0x401c3f
401c32:	56                   	push   %esi
401c33:	56                   	push   %esi
401c34:	56                   	push   %esi
401c35:	56                   	push   %esi
401c36:	56                   	push   %esi
401c37:	e8 dd 1e 00 00       	call   0x403b19
401c3c:	83 c4 14             	add    $0x14,%esp
401c3f:	8b 45 fc             	mov    -0x4(%ebp),%eax
401c42:	ff 34 c5 1c f0 41 00 	push   0x41f01c(,%eax,8)
401c49:	53                   	push   %ebx
401c4a:	57                   	push   %edi
401c4b:	e8 0c 27 00 00       	call   0x40435c
401c50:	83 c4 0c             	add    $0xc,%esp
401c53:	85 c0                	test   %eax,%eax
401c55:	74 0d                	je     0x401c64
401c57:	56                   	push   %esi
401c58:	56                   	push   %esi
401c59:	56                   	push   %esi
401c5a:	56                   	push   %esi
401c5b:	56                   	push   %esi
401c5c:	e8 b8 1e 00 00       	call   0x403b19
401c61:	83 c4 14             	add    $0x14,%esp
401c64:	68 10 20 01 00       	push   $0x12010
401c69:	68 30 d8 41 00       	push   $0x41d830
401c6e:	57                   	push   %edi
401c6f:	e8 7f 25 00 00       	call   0x4041f3
401c74:	83 c4 0c             	add    $0xc,%esp
401c77:	eb 32                	jmp    0x401cab
401c79:	6a f4                	push   $0xfffffff4
401c7b:	ff 15 84 d0 41 00    	call   *0x41d084
401c81:	8b d8                	mov    %eax,%ebx
401c83:	3b de                	cmp    %esi,%ebx
401c85:	74 24                	je     0x401cab
401c87:	83 fb ff             	cmp    $0xffffffff,%ebx
401c8a:	74 1f                	je     0x401cab
401c8c:	6a 00                	push   $0x0
401c8e:	8d 45 f8             	lea    -0x8(%ebp),%eax
401c91:	50                   	push   %eax
401c92:	8d 34 fd 1c f0 41 00 	lea    0x41f01c(,%edi,8),%esi
401c99:	ff 36                	push   (%esi)
401c9b:	e8 f0 27 00 00       	call   0x404490
401ca0:	59                   	pop    %ecx
401ca1:	50                   	push   %eax
401ca2:	ff 36                	push   (%esi)
401ca4:	53                   	push   %ebx
401ca5:	ff 15 10 d0 41 00    	call   *0x41d010
401cab:	5f                   	pop    %edi
401cac:	5e                   	pop    %esi
401cad:	5b                   	pop    %ebx
401cae:	c9                   	leave
401caf:	c3                   	ret
401cb0:	6a 03                	push   $0x3
401cb2:	e8 cc 28 00 00       	call   0x404583
401cb7:	59                   	pop    %ecx
401cb8:	83 f8 01             	cmp    $0x1,%eax
401cbb:	74 15                	je     0x401cd2
401cbd:	6a 03                	push   $0x3
401cbf:	e8 bf 28 00 00       	call   0x404583
401cc4:	59                   	pop    %ecx
401cc5:	85 c0                	test   %eax,%eax
401cc7:	75 1f                	jne    0x401ce8
401cc9:	83 3d 00 f0 41 00 01 	cmpl   $0x1,0x41f000
401cd0:	75 16                	jne    0x401ce8
401cd2:	68 fc 00 00 00       	push   $0xfc
401cd7:	e8 29 fe ff ff       	call   0x401b05
401cdc:	68 ff 00 00 00       	push   $0xff
401ce1:	e8 1f fe ff ff       	call   0x401b05
401ce6:	59                   	pop    %ecx
401ce7:	59                   	pop    %ecx
401ce8:	c3                   	ret
401ce9:	c3                   	ret
401cea:	8b ff                	mov    %edi,%edi
401cec:	55                   	push   %ebp
401ced:	8b ec                	mov    %esp,%ebp
401cef:	51                   	push   %ecx
401cf0:	51                   	push   %ecx
401cf1:	56                   	push   %esi
401cf2:	e8 0a 0b 00 00       	call   0x402801
401cf7:	8b f0                	mov    %eax,%esi
401cf9:	85 f6                	test   %esi,%esi
401cfb:	0f 84 46 01 00 00    	je     0x401e47
401d01:	8b 56 5c             	mov    0x5c(%esi),%edx
401d04:	a1 dc f0 41 00       	mov    0x41f0dc,%eax
401d09:	57                   	push   %edi
401d0a:	8b 7d 08             	mov    0x8(%ebp),%edi
401d0d:	8b ca                	mov    %edx,%ecx
401d0f:	53                   	push   %ebx
401d10:	39 39                	cmp    %edi,(%ecx)
401d12:	74 0e                	je     0x401d22
401d14:	8b d8                	mov    %eax,%ebx
401d16:	6b db 0c             	imul   $0xc,%ebx,%ebx
401d19:	83 c1 0c             	add    $0xc,%ecx
401d1c:	03 da                	add    %edx,%ebx
401d1e:	3b cb                	cmp    %ebx,%ecx
401d20:	72 ee                	jb     0x401d10
401d22:	6b c0 0c             	imul   $0xc,%eax,%eax
401d25:	03 c2                	add    %edx,%eax
401d27:	3b c8                	cmp    %eax,%ecx
401d29:	73 08                	jae    0x401d33
401d2b:	39 39                	cmp    %edi,(%ecx)
401d2d:	75 04                	jne    0x401d33
401d2f:	8b c1                	mov    %ecx,%eax
401d31:	eb 02                	jmp    0x401d35
401d33:	33 c0                	xor    %eax,%eax
401d35:	85 c0                	test   %eax,%eax
401d37:	74 0a                	je     0x401d43
401d39:	8b 58 08             	mov    0x8(%eax),%ebx
401d3c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401d3f:	85 db                	test   %ebx,%ebx
401d41:	75 07                	jne    0x401d4a
401d43:	33 c0                	xor    %eax,%eax
401d45:	e9 fb 00 00 00       	jmp    0x401e45
401d4a:	83 fb 05             	cmp    $0x5,%ebx
401d4d:	75 0c                	jne    0x401d5b
401d4f:	83 60 08 00          	andl   $0x0,0x8(%eax)
401d53:	33 c0                	xor    %eax,%eax
401d55:	40                   	inc    %eax
401d56:	e9 ea 00 00 00       	jmp    0x401e45
401d5b:	83 fb 01             	cmp    $0x1,%ebx
401d5e:	0f 84 de 00 00 00    	je     0x401e42
401d64:	8b 4e 60             	mov    0x60(%esi),%ecx
401d67:	89 4d f8             	mov    %ecx,-0x8(%ebp)
401d6a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
401d6d:	89 4e 60             	mov    %ecx,0x60(%esi)
401d70:	8b 48 04             	mov    0x4(%eax),%ecx
401d73:	83 f9 08             	cmp    $0x8,%ecx
401d76:	0f 85 b8 00 00 00    	jne    0x401e34
401d7c:	8b 0d d0 f0 41 00    	mov    0x41f0d0,%ecx
401d82:	8b 3d d4 f0 41 00    	mov    0x41f0d4,%edi
401d88:	8b d1                	mov    %ecx,%edx
401d8a:	03 f9                	add    %ecx,%edi
401d8c:	3b d7                	cmp    %edi,%edx
401d8e:	7d 24                	jge    0x401db4
401d90:	6b c9 0c             	imul   $0xc,%ecx,%ecx
401d93:	8b 7e 5c             	mov    0x5c(%esi),%edi
401d96:	83 64 39 08 00       	andl   $0x0,0x8(%ecx,%edi,1)
401d9b:	8b 3d d0 f0 41 00    	mov    0x41f0d0,%edi
401da1:	8b 1d d4 f0 41 00    	mov    0x41f0d4,%ebx
401da7:	42                   	inc    %edx
401da8:	03 df                	add    %edi,%ebx
401daa:	83 c1 0c             	add    $0xc,%ecx
401dad:	3b d3                	cmp    %ebx,%edx
401daf:	7c e2                	jl     0x401d93
401db1:	8b 5d fc             	mov    -0x4(%ebp),%ebx
401db4:	8b 00                	mov    (%eax),%eax
401db6:	8b 7e 64             	mov    0x64(%esi),%edi
401db9:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
401dbe:	75 09                	jne    0x401dc9
401dc0:	c7 46 64 83 00 00 00 	movl   $0x83,0x64(%esi)
401dc7:	eb 5e                	jmp    0x401e27
401dc9:	3d 90 00 00 c0       	cmp    $0xc0000090,%eax
401dce:	75 09                	jne    0x401dd9
401dd0:	c7 46 64 81 00 00 00 	movl   $0x81,0x64(%esi)
401dd7:	eb 4e                	jmp    0x401e27
401dd9:	3d 91 00 00 c0       	cmp    $0xc0000091,%eax
401dde:	75 09                	jne    0x401de9
401de0:	c7 46 64 84 00 00 00 	movl   $0x84,0x64(%esi)
401de7:	eb 3e                	jmp    0x401e27
401de9:	3d 93 00 00 c0       	cmp    $0xc0000093,%eax
401dee:	75 09                	jne    0x401df9
401df0:	c7 46 64 85 00 00 00 	movl   $0x85,0x64(%esi)
401df7:	eb 2e                	jmp    0x401e27
401df9:	3d 8d 00 00 c0       	cmp    $0xc000008d,%eax
401dfe:	75 09                	jne    0x401e09
401e00:	c7 46 64 82 00 00 00 	movl   $0x82,0x64(%esi)
401e07:	eb 1e                	jmp    0x401e27
401e09:	3d 8f 00 00 c0       	cmp    $0xc000008f,%eax
401e0e:	75 09                	jne    0x401e19
401e10:	c7 46 64 86 00 00 00 	movl   $0x86,0x64(%esi)
401e17:	eb 0e                	jmp    0x401e27
401e19:	3d 92 00 00 c0       	cmp    $0xc0000092,%eax
401e1e:	75 07                	jne    0x401e27
401e20:	c7 46 64 8a 00 00 00 	movl   $0x8a,0x64(%esi)
401e27:	ff 76 64             	push   0x64(%esi)
401e2a:	6a 08                	push   $0x8
401e2c:	ff d3                	call   *%ebx
401e2e:	59                   	pop    %ecx
401e2f:	89 7e 64             	mov    %edi,0x64(%esi)
401e32:	eb 07                	jmp    0x401e3b
401e34:	83 60 08 00          	andl   $0x0,0x8(%eax)
401e38:	51                   	push   %ecx
401e39:	ff d3                	call   *%ebx
401e3b:	8b 45 f8             	mov    -0x8(%ebp),%eax
401e3e:	59                   	pop    %ecx
401e3f:	89 46 60             	mov    %eax,0x60(%esi)
401e42:	83 c8 ff             	or     $0xffffffff,%eax
401e45:	5b                   	pop    %ebx
401e46:	5f                   	pop    %edi
401e47:	5e                   	pop    %esi
401e48:	c9                   	leave
401e49:	c3                   	ret
401e4a:	8b ff                	mov    %edi,%edi
401e4c:	56                   	push   %esi
401e4d:	57                   	push   %edi
401e4e:	33 ff                	xor    %edi,%edi
401e50:	39 3d ac 2e de 02    	cmp    %edi,0x2de2eac
401e56:	75 05                	jne    0x401e5d
401e58:	e8 28 2f 00 00       	call   0x404d85
401e5d:	8b 35 c0 2e de 02    	mov    0x2de2ec0,%esi
401e63:	85 f6                	test   %esi,%esi
401e65:	75 05                	jne    0x401e6c
401e67:	be 10 d9 41 00       	mov    $0x41d910,%esi
401e6c:	8a 06                	mov    (%esi),%al
401e6e:	3c 20                	cmp    $0x20,%al
401e70:	77 08                	ja     0x401e7a
401e72:	84 c0                	test   %al,%al
401e74:	74 2e                	je     0x401ea4
401e76:	85 ff                	test   %edi,%edi
401e78:	74 24                	je     0x401e9e
401e7a:	3c 22                	cmp    $0x22,%al
401e7c:	75 09                	jne    0x401e87
401e7e:	33 c9                	xor    %ecx,%ecx
401e80:	85 ff                	test   %edi,%edi
401e82:	0f 94 c1             	sete   %cl
401e85:	8b f9                	mov    %ecx,%edi
401e87:	0f b6 c0             	movzbl %al,%eax
401e8a:	50                   	push   %eax
401e8b:	e8 18 28 00 00       	call   0x4046a8
401e90:	59                   	pop    %ecx
401e91:	85 c0                	test   %eax,%eax
401e93:	74 01                	je     0x401e96
401e95:	46                   	inc    %esi
401e96:	46                   	inc    %esi
401e97:	eb d3                	jmp    0x401e6c
401e99:	3c 20                	cmp    $0x20,%al
401e9b:	77 07                	ja     0x401ea4
401e9d:	46                   	inc    %esi
401e9e:	8a 06                	mov    (%esi),%al