401a66:	53                   	push   %ebx
401a67:	ff 15 64 41 40 00    	call   *0x404164
401a6d:	8b 3d 3c 41 40 00    	mov    0x40413c,%edi
401a73:	eb 3f                	jmp    0x401ab4
401a75:	81 7d dc 18 01 00 00 	cmpl   $0x118,-0x24(%ebp)
401a7c:	75 22                	jne    0x401aa0
401a7e:	39 35 18 a5 42 00    	cmp    %esi,0x42a518
401a84:	75 05                	jne    0x401a8b
401a86:	89 75 d8             	mov    %esi,-0x28(%ebp)
401a89:	eb 15                	jmp    0x401aa0
401a8b:	89 5d d8             	mov    %ebx,-0x28(%ebp)
401a8e:	39 35 28 a5 42 00    	cmp    %esi,0x42a528
401a94:	75 0a                	jne    0x401aa0
401a96:	c7 05 28 a5 42 00 01 	movl   $0x1,0x42a528
401a9d:	00 00 00
401aa0:	8d 45 d8             	lea    -0x28(%ebp),%eax
401aa3:	50                   	push   %eax
401aa4:	ff 15 50 41 40 00    	call   *0x404150
401aaa:	8d 45 d8             	lea    -0x28(%ebp),%eax
401aad:	50                   	push   %eax
401aae:	ff 15 60 41 40 00    	call   *0x404160
401ab4:	56                   	push   %esi
401ab5:	56                   	push   %esi
401ab6:	56                   	push   %esi
401ab7:	8d 45 d8             	lea    -0x28(%ebp),%eax
401aba:	50                   	push   %eax
401abb:	ff d7                	call   *%edi
401abd:	85 c0                	test   %eax,%eax
401abf:	75 b4                	jne    0x401a75
401ac1:	a1 28 a5 42 00       	mov    0x42a528,%eax
401ac6:	8d 65 9c             	lea    -0x64(%ebp),%esp
401ac9:	5f                   	pop    %edi
401aca:	5e                   	pop    %esi
401acb:	5b                   	pop    %ebx
401acc:	c9                   	leave
401acd:	c3                   	ret
401ace:	55                   	push   %ebp
401acf:	8b ec                	mov    %esp,%ebp
401ad1:	8b 45 0c             	mov    0xc(%ebp),%eax
401ad4:	53                   	push   %ebx
401ad5:	57                   	push   %edi
401ad6:	33 db                	xor    %ebx,%ebx
401ad8:	33 ff                	xor    %edi,%edi
401ada:	3b c3                	cmp    %ebx,%eax
401adc:	74 27                	je     0x401b05
401ade:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
401ae3:	8b cf                	mov    %edi,%ecx
401ae5:	33 d2                	xor    %edx,%edx
401ae7:	66 39 18             	cmp    %bx,(%eax)
401aea:	74 06                	je     0x401af2
401aec:	83 c0 02             	add    $0x2,%eax
401aef:	49                   	dec    %ecx
401af0:	75 f5                	jne    0x401ae7
401af2:	3b cb                	cmp    %ebx,%ecx
401af4:	75 0b                	jne    0x401b01
401af6:	ba 57 00 07 80       	mov    $0x80070057,%edx
401afb:	33 ff                	xor    %edi,%edi
401afd:	8b c2                	mov    %edx,%eax
401aff:	eb 09                	jmp    0x401b0a
401b01:	2b f9                	sub    %ecx,%edi
401b03:	eb f8                	jmp    0x401afd
401b05:	b8 57 00 07 80       	mov    $0x80070057,%eax
401b0a:	3b c3                	cmp    %ebx,%eax
401b0c:	7d 04                	jge    0x401b12
401b0e:	33 ff                	xor    %edi,%edi
401b10:	3b c3                	cmp    %ebx,%eax
401b12:	75 27                	jne    0x401b3b
401b14:	56                   	push   %esi
401b15:	8b 35 28 41 40 00    	mov    0x404128,%esi
401b1b:	57                   	push   %edi
401b1c:	ff 75 08             	push   0x8(%ebp)
401b1f:	ff 75 0c             	push   0xc(%ebp)
401b22:	ff d6                	call   *%esi
401b24:	85 c0                	test   %eax,%eax
401b26:	74 12                	je     0x401b3a
401b28:	57                   	push   %edi
401b29:	68 a8 45 40 00       	push   $0x4045a8
401b2e:	50                   	push   %eax
401b2f:	ff d6                	call   *%esi
401b31:	85 c0                	test   %eax,%eax
401b33:	74 03                	je     0x401b38
401b35:	83 c0 02             	add    $0x2,%eax
401b38:	8b d8                	mov    %eax,%ebx
401b3a:	5e                   	pop    %esi
401b3b:	5f                   	pop    %edi
401b3c:	8b c3                	mov    %ebx,%eax
401b3e:	5b                   	pop    %ebx
401b3f:	5d                   	pop    %ebp
401b40:	c2 08 00             	ret    $0x8
401b43:	55                   	push   %ebp
401b44:	8b ec                	mov    %esp,%ebp
401b46:	81 ec 24 04 00 00    	sub    $0x424,%esp
401b4c:	53                   	push   %ebx
401b4d:	56                   	push   %esi
401b4e:	57                   	push   %edi
401b4f:	33 db                	xor    %ebx,%ebx
401b51:	6a 3c                	push   $0x3c
401b53:	8b f0                	mov    %eax,%esi
401b55:	53                   	push   %ebx
401b56:	56                   	push   %esi
401b57:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401b5a:	e8 7d 15 00 00       	call   0x4030dc
401b5f:	83 c4 0c             	add    $0xc,%esp
401b62:	bf 04 01 00 00       	mov    $0x104,%edi
401b67:	57                   	push   %edi
401b68:	8d 85 dc fb ff ff    	lea    -0x424(%ebp),%eax
401b6e:	50                   	push   %eax
401b6f:	53                   	push   %ebx
401b70:	ff 15 50 40 40 00    	call   *0x404050
401b76:	85 c0                	test   %eax,%eax
401b78:	0f 84 f5 00 00 00    	je     0x401c73
401b7e:	57                   	push   %edi
401b7f:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
401b85:	50                   	push   %eax
401b86:	53                   	push   %ebx
401b87:	ff 15 a4 40 40 00    	call   *0x4040a4
401b8d:	50                   	push   %eax
401b8e:	ff 15 f0 40 40 00    	call   *0x4040f0
401b94:	85 c0                	test   %eax,%eax
401b96:	0f 84 d7 00 00 00    	je     0x401c73
401b9c:	ff 15 68 40 40 00    	call   *0x404068
401ba2:	50                   	push   %eax
401ba3:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
401ba9:	50                   	push   %eax
401baa:	e8 1f ff ff ff       	call   0x401ace
401baf:	89 45 f8             	mov    %eax,-0x8(%ebp)
401bb2:	3b c3                	cmp    %ebx,%eax
401bb4:	75 07                	jne    0x401bbd
401bb6:	c7 45 f8 a8 45 40 00 	movl   $0x4045a8,-0x8(%ebp)
401bbd:	8b 3d 58 40 40 00    	mov    0x404058,%edi
401bc3:	68 18 06 00 00       	push   $0x618
401bc8:	6a 08                	push   $0x8
401bca:	ff d7                	call   *%edi
401bcc:	8b 1d 64 40 40 00    	mov    0x404064,%ebx
401bd2:	50                   	push   %eax
401bd3:	ff d3                	call   *%ebx
401bd5:	89 45 f4             	mov    %eax,-0xc(%ebp)
401bd8:	85 c0                	test   %eax,%eax
401bda:	0f 84 93 00 00 00    	je     0x401c73
401be0:	ff 75 f8             	push   -0x8(%ebp)
401be3:	8d 8d dc fb ff ff    	lea    -0x424(%ebp),%ecx
401be9:	51                   	push   %ecx
401bea:	68 ac 45 40 00       	push   $0x4045ac
401bef:	50                   	push   %eax
401bf0:	ff 15 30 41 40 00    	call   *0x404130
401bf6:	83 c4 10             	add    $0x10,%esp
401bf9:	68 0a 02 00 00       	push   $0x20a
401bfe:	6a 08                	push   $0x8
401c00:	ff d7                	call   *%edi
401c02:	50                   	push   %eax
401c03:	ff d3                	call   *%ebx
401c05:	8b d8                	mov    %eax,%ebx
401c07:	33 c0                	xor    %eax,%eax
401c09:	3b d8                	cmp    %eax,%ebx
401c0b:	74 4a                	je     0x401c57
401c0d:	53                   	push   %ebx
401c0e:	50                   	push   %eax
401c0f:	50                   	push   %eax
401c10:	6a 25                	push   $0x25
401c12:	50                   	push   %eax
401c13:	ff 15 00 41 40 00    	call   *0x404100
401c19:	85 c0                	test   %eax,%eax
401c1b:	75 3a                	jne    0x401c57
401c1d:	68 d8 45 40 00       	push   $0x4045d8
401c22:	53                   	push   %ebx
401c23:	ff 15 0c 41 40 00    	call   *0x40410c
401c29:	85 c0                	test   %eax,%eax
401c2b:	74 2a                	je     0x401c57
401c2d:	8b 45 f4             	mov    -0xc(%ebp),%eax
401c30:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
401c34:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401c3b:	c7 06 3c 00 00 00    	movl   $0x3c,(%esi)
401c41:	c7 46 0c e8 45 40 00 	movl   $0x4045e8,0xc(%esi)
401c48:	89 5e 10             	mov    %ebx,0x10(%esi)
401c4b:	89 46 14             	mov    %eax,0x14(%esi)
401c4e:	c7 46 04 40 00 00 00 	movl   $0x40,0x4(%esi)
401c55:	eb 1c                	jmp    0x401c73
401c57:	ff 75 f4             	push   -0xc(%ebp)
401c5a:	6a 00                	push   $0x0
401c5c:	ff d7                	call   *%edi
401c5e:	8b 35 60 40 40 00    	mov    0x404060,%esi
401c64:	50                   	push   %eax
401c65:	ff d6                	call   *%esi
401c67:	85 db                	test   %ebx,%ebx
401c69:	74 08                	je     0x401c73
401c6b:	53                   	push   %ebx
401c6c:	6a 00                	push   $0x0
401c6e:	ff d7                	call   *%edi
401c70:	50                   	push   %eax
401c71:	ff d6                	call   *%esi
401c73:	8b 45 fc             	mov    -0x4(%ebp),%eax
401c76:	5f                   	pop    %edi
401c77:	5e                   	pop    %esi
401c78:	5b                   	pop    %ebx
401c79:	c9                   	leave
401c7a:	c3                   	ret
401c7b:	53                   	push   %ebx
401c7c:	56                   	push   %esi
401c7d:	8b 35 f8 40 40 00    	mov    0x4040f8,%esi
401c83:	33 db                	xor    %ebx,%ebx
401c85:	eb 18                	jmp    0x401c9f
401c87:	ff 15 48 40 40 00    	call   *0x404048
401c8d:	3d c7 04 00 00       	cmp    $0x4c7,%eax
401c92:	75 12                	jne    0x401ca6
401c94:	68 10 27 00 00       	push   $0x2710
401c99:	ff 15 98 40 40 00    	call   *0x404098
401c9f:	57                   	push   %edi
401ca0:	ff d6                	call   *%esi
401ca2:	85 c0                	test   %eax,%eax
401ca4:	74 e1                	je     0x401c87
401ca6:	6a ff                	push   $0xffffffff
401ca8:	ff 77 38             	push   0x38(%edi)
401cab:	ff 15 5c 40 40 00    	call   *0x40405c
401cb1:	ff 77 38             	push   0x38(%edi)
401cb4:	85 c0                	test   %eax,%eax
401cb6:	74 08                	je     0x401cc0
401cb8:	ff 15 4c 40 40 00    	call   *0x40404c
401cbe:	eb 09                	jmp    0x401cc9
401cc0:	ff 15 4c 40 40 00    	call   *0x40404c
401cc6:	33 db                	xor    %ebx,%ebx
401cc8:	43                   	inc    %ebx
401cc9:	5e                   	pop    %esi
401cca:	8b c3                	mov    %ebx,%eax
401ccc:	5b                   	pop    %ebx
401ccd:	c3                   	ret
401cce:	55                   	push   %ebp
401ccf:	8b ec                	mov    %esp,%ebp
401cd1:	83 ec 10             	sub    $0x10,%esp
401cd4:	53                   	push   %ebx
401cd5:	56                   	push   %esi
401cd6:	57                   	push   %edi
401cd7:	33 f6                	xor    %esi,%esi
401cd9:	6a 04                	push   $0x4
401cdb:	33 db                	xor    %ebx,%ebx
401cdd:	5f                   	pop    %edi
401cde:	89 75 f8             	mov    %esi,-0x8(%ebp)
401ce1:	89 75 fc             	mov    %esi,-0x4(%ebp)
401ce4:	89 75 f4             	mov    %esi,-0xc(%ebp)
401ce7:	89 7d f0             	mov    %edi,-0x10(%ebp)
401cea:	39 75 08             	cmp    %esi,0x8(%ebp)
401ced:	0f 84 a7 00 00 00    	je     0x401d9a
401cf3:	39 75 0c             	cmp    %esi,0xc(%ebp)
401cf6:	0f 84 9e 00 00 00    	je     0x401d9a
401cfc:	39 75 10             	cmp    %esi,0x10(%ebp)
401cff:	0f 84 95 00 00 00    	je     0x401d9a
401d05:	68 20 00 00 f0       	push   $0xf0000020
401d0a:	6a 01                	push   $0x1
401d0c:	56                   	push   %esi
401d0d:	56                   	push   %esi
401d0e:	8d 45 f8             	lea    -0x8(%ebp),%eax
401d11:	50                   	push   %eax
401d12:	ff 15 04 40 40 00    	call   *0x404004
401d18:	85 c0                	test   %eax,%eax
401d1a:	74 61                	je     0x401d7d
401d1c:	39 75 f8             	cmp    %esi,-0x8(%ebp)
401d1f:	74 5c                	je     0x401d7d
401d21:	8d 45 fc             	lea    -0x4(%ebp),%eax
401d24:	50                   	push   %eax
401d25:	56                   	push   %esi
401d26:	56                   	push   %esi
401d27:	ff 75 14             	push   0x14(%ebp)
401d2a:	ff 75 f8             	push   -0x8(%ebp)
401d2d:	ff 15 08 40 40 00    	call   *0x404008
401d33:	85 c0                	test   %eax,%eax
401d35:	74 46                	je     0x401d7d
401d37:	39 75 fc             	cmp    %esi,-0x4(%ebp)
401d3a:	74 4f                	je     0x401d8b
401d3c:	56                   	push   %esi
401d3d:	ff 75 0c             	push   0xc(%ebp)
401d40:	ff 75 08             	push   0x8(%ebp)
401d43:	ff 75 fc             	push   -0x4(%ebp)
401d46:	ff 15 10 40 40 00    	call   *0x404010
401d4c:	85 c0                	test   %eax,%eax
401d4e:	74 2d                	je     0x401d7d
401d50:	56                   	push   %esi
401d51:	8d 45 f0             	lea    -0x10(%ebp),%eax
401d54:	50                   	push   %eax
401d55:	8d 45 f4             	lea    -0xc(%ebp),%eax
401d58:	50                   	push   %eax
401d59:	57                   	push   %edi
401d5a:	ff 75 fc             	push   -0x4(%ebp)
401d5d:	8b 3d 00 40 40 00    	mov    0x404000,%edi
401d63:	ff d7                	call   *%edi
401d65:	85 c0                	test   %eax,%eax
401d67:	74 14                	je     0x401d7d
401d69:	56                   	push   %esi
401d6a:	8d 45 f4             	lea    -0xc(%ebp),%eax
401d6d:	50                   	push   %eax
401d6e:	ff 75 10             	push   0x10(%ebp)
401d71:	6a 02                	push   $0x2
401d73:	ff 75 fc             	push   -0x4(%ebp)
401d76:	ff d7                	call   *%edi
401d78:	85 c0                	test   %eax,%eax
401d7a:	74 01                	je     0x401d7d
401d7c:	43                   	inc    %ebx
401d7d:	39 75 fc             	cmp    %esi,-0x4(%ebp)
401d80:	74 09                	je     0x401d8b
401d82:	ff 75 fc             	push   -0x4(%ebp)
401d85:	ff 15 0c 40 40 00    	call   *0x40400c
401d8b:	39 75 f8             	cmp    %esi,-0x8(%ebp)
401d8e:	74 0a                	je     0x401d9a
401d90:	56                   	push   %esi
401d91:	ff 75 f8             	push   -0x8(%ebp)
401d94:	ff 15 40 40 40 00    	call   *0x404040
401d9a:	5f                   	pop    %edi
401d9b:	5e                   	pop    %esi
401d9c:	8b c3                	mov    %ebx,%eax
401d9e:	5b                   	pop    %ebx
401d9f:	c9                   	leave
401da0:	c2 10 00             	ret    $0x10
401da3:	55                   	push   %ebp
401da4:	8b ec                	mov    %esp,%ebp
401da6:	51                   	push   %ecx
401da7:	53                   	push   %ebx
401da8:	56                   	push   %esi
401da9:	8b d8                	mov    %eax,%ebx
401dab:	85 ff                	test   %edi,%edi
401dad:	74 42                	je     0x401df1
401daf:	85 db                	test   %ebx,%ebx
401db1:	74 3e                	je     0x401df1
401db3:	6a 08                	push   $0x8
401db5:	58                   	pop    %eax
401db6:	e8 1b 13 00 00       	call   0x4030d6
401dbb:	8b c4                	mov    %esp,%eax
401dbd:	89 45 fc             	mov    %eax,-0x4(%ebp)
401dc0:	85 c0                	test   %eax,%eax
401dc2:	74 0e                	je     0x401dd2
401dc4:	6a 7f                	push   $0x7f
401dc6:	6a 04                	push   $0x4
401dc8:	ba ac 59 40 00       	mov    $0x4059ac,%edx
401dcd:	e8 8b 0b 00 00       	call   0x40295d
401dd2:	33 f6                	xor    %esi,%esi
401dd4:	0f b6 04 3e          	movzbl (%esi,%edi,1),%eax
401dd8:	50                   	push   %eax
401dd9:	ff 75 fc             	push   -0x4(%ebp)
401ddc:	6a 0a                	push   $0xa
401dde:	53                   	push   %ebx
401ddf:	ff 15 88 41 40 00    	call   *0x404188
401de5:	83 c4 10             	add    $0x10,%esp
401de8:	83 c3 02             	add    $0x2,%ebx
401deb:	46                   	inc    %esi
401dec:	83 fe 0a             	cmp    $0xa,%esi
401def:	72 e3                	jb     0x401dd4
401df1:	8d 65 f4             	lea    -0xc(%ebp),%esp
401df4:	5e                   	pop    %esi
401df5:	5b                   	pop    %ebx
401df6:	c9                   	leave
401df7:	c3                   	ret
401df8:	55                   	push   %ebp
401df9:	8b ec                	mov    %esp,%ebp