402b30:	03 c6                	add    %esi,%eax
402b32:	8b c3                	mov    %ebx,%eax
402b34:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
402b3b:	85 c0                	test   %eax,%eax
402b3d:	74 0c                	je     0x402b4b
402b3f:	68 c0 05 41 00       	push   $0x4105c0
402b44:	8b cb                	mov    %ebx,%ecx
402b46:	e8 a9 02 00 00       	call   0x402df4
402b4b:	be 30 15 41 00       	mov    $0x411530,%esi
402b50:	89 75 f0             	mov    %esi,-0x10(%ebp)
402b53:	8b c6                	mov    %esi,%eax
402b55:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
402b5c:	85 c0                	test   %eax,%eax
402b5e:	74 0e                	je     0x402b6e
402b60:	6a 01                	push   $0x1
402b62:	6a 01                	push   $0x1
402b64:	6a 01                	push   $0x1
402b66:	53                   	push   %ebx
402b67:	8b ce                	mov    %esi,%ecx
402b69:	e8 a1 00 00 00       	call   0x402c0f
402b6e:	a1 30 15 41 00       	mov    0x411530,%eax
402b73:	b9 78 13 41 00       	mov    $0x411378,%ecx
402b78:	89 4d f0             	mov    %ecx,-0x10(%ebp)
402b7b:	8b 40 04             	mov    0x4(%eax),%eax
402b7e:	89 7c 30 2c          	mov    %edi,0x2c(%eax,%esi,1)
402b82:	03 c6                	add    %esi,%eax
402b84:	a1 30 15 41 00       	mov    0x411530,%eax
402b89:	8b 40 04             	mov    0x4(%eax),%eax
402b8c:	83 4c 30 0c 02       	orl    $0x2,0xc(%eax,%esi,1)
402b91:	03 c6                	add    %esi,%eax
402b93:	8b c1                	mov    %ecx,%eax
402b95:	c7 45 fc 06 00 00 00 	movl   $0x6,-0x4(%ebp)
402b9c:	85 c0                	test   %eax,%eax
402b9e:	74 0c                	je     0x402bac
402ba0:	6a 01                	push   $0x1
402ba2:	6a 01                	push   $0x1
402ba4:	6a 01                	push   $0x1
402ba6:	53                   	push   %ebx
402ba7:	e8 63 00 00 00       	call   0x402c0f
402bac:	a1 78 13 41 00       	mov    0x411378,%eax
402bb1:	8b 40 04             	mov    0x4(%eax),%eax
402bb4:	89 b8 a4 13 41 00    	mov    %edi,0x4113a4(%eax)
402bba:	5f                   	pop    %edi
402bbb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402bbe:	8b 45 ec             	mov    -0x14(%ebp),%eax
402bc1:	5e                   	pop    %esi
402bc2:	5b                   	pop    %ebx
402bc3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402bca:	c9                   	leave
402bcb:	c3                   	ret
402bcc:	55                   	push   %ebp
402bcd:	8b ec                	mov    %esp,%ebp
402bcf:	51                   	push   %ecx
402bd0:	53                   	push   %ebx
402bd1:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402bd4:	e8 ac 1b 00 00       	call   0x404785
402bd9:	ff 0d c0 01 41 00    	decl   0x4101c0
402bdf:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402be2:	0f 94 c3             	sete   %bl
402be5:	e8 37 1c 00 00       	call   0x404821
402bea:	84 db                	test   %bl,%bl
402bec:	5b                   	pop    %ebx
402bed:	74 1e                	je     0x402c0d
402bef:	b9 08 14 41 00       	mov    $0x411408,%ecx
402bf4:	e8 df 00 00 00       	call   0x402cd8
402bf9:	b9 30 15 41 00       	mov    $0x411530,%ecx
402bfe:	e8 d5 00 00 00       	call   0x402cd8
402c03:	b9 78 13 41 00       	mov    $0x411378,%ecx
402c08:	e8 cb 00 00 00       	call   0x402cd8
402c0d:	c9                   	leave
402c0e:	c3                   	ret
402c0f:	b8 ba c4 40 00       	mov    $0x40c4ba,%eax
402c14:	e8 27 31 00 00       	call   0x405d40
402c19:	51                   	push   %ecx
402c1a:	51                   	push   %ecx
402c1b:	56                   	push   %esi
402c1c:	33 c0                	xor    %eax,%eax
402c1e:	39 45 14             	cmp    %eax,0x14(%ebp)
402c21:	8b f1                	mov    %ecx,%esi
402c23:	89 75 ec             	mov    %esi,-0x14(%ebp)
402c26:	89 45 f0             	mov    %eax,-0x10(%ebp)
402c29:	74 1a                	je     0x402c45
402c2b:	c7 06 e8 d1 40 00    	movl   $0x40d1e8,(%esi)
402c31:	89 46 28             	mov    %eax,0x28(%esi)
402c34:	c7 46 04 e4 d1 40 00 	movl   $0x40d1e4,0x4(%esi)
402c3b:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402c42:	89 45 fc             	mov    %eax,-0x4(%ebp)
402c45:	8b 0e                	mov    (%esi),%ecx
402c47:	38 45 10             	cmp    %al,0x10(%ebp)
402c4a:	8b 49 04             	mov    0x4(%ecx),%ecx
402c4d:	c7 04 31 dc d1 40 00 	movl   $0x40d1dc,(%ecx,%esi,1)
402c54:	74 12                	je     0x402c68
402c56:	8b 06                	mov    (%esi),%eax
402c58:	ff 75 0c             	push   0xc(%ebp)
402c5b:	8b 48 04             	mov    0x4(%eax),%ecx
402c5e:	ff 75 08             	push   0x8(%ebp)
402c61:	03 ce                	add    %esi,%ecx
402c63:	e8 b2 09 00 00       	call   0x40361a
402c68:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402c6b:	8b c6                	mov    %esi,%eax
402c6d:	5e                   	pop    %esi
402c6e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402c75:	c9                   	leave
402c76:	c2 10 00             	ret    $0x10
402c79:	b8 de c4 40 00       	mov    $0x40c4de,%eax
402c7e:	e8 bd 30 00 00       	call   0x405d40
402c83:	51                   	push   %ecx
402c84:	51                   	push   %ecx
402c85:	56                   	push   %esi
402c86:	33 c0                	xor    %eax,%eax
402c88:	39 45 0c             	cmp    %eax,0xc(%ebp)
402c8b:	8b f1                	mov    %ecx,%esi
402c8d:	89 75 ec             	mov    %esi,-0x14(%ebp)
402c90:	89 45 f0             	mov    %eax,-0x10(%ebp)
402c93:	74 1a                	je     0x402caf
402c95:	c7 06 e8 d1 40 00    	movl   $0x40d1e8,(%esi)
402c9b:	89 46 28             	mov    %eax,0x28(%esi)
402c9e:	c7 46 04 e4 d1 40 00 	movl   $0x40d1e4,0x4(%esi)
402ca5:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402cac:	89 45 fc             	mov    %eax,-0x4(%ebp)
402caf:	8b 06                	mov    (%esi),%eax
402cb1:	8b 40 04             	mov    0x4(%eax),%eax
402cb4:	c7 04 30 dc d1 40 00 	movl   $0x40d1dc,(%eax,%esi,1)
402cbb:	8b 06                	mov    (%esi),%eax
402cbd:	8b 48 04             	mov    0x4(%eax),%ecx
402cc0:	03 ce                	add    %esi,%ecx
402cc2:	e8 6b 1e 00 00       	call   0x404b32
402cc7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402cca:	8b c6                	mov    %esi,%eax
402ccc:	5e                   	pop    %esi
402ccd:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402cd4:	c9                   	leave
402cd5:	c2 08 00             	ret    $0x8
402cd8:	56                   	push   %esi
402cd9:	8b f1                	mov    %ecx,%esi
402cdb:	57                   	push   %edi
402cdc:	33 ff                	xor    %edi,%edi
402cde:	8b 06                	mov    (%esi),%eax
402ce0:	8b 40 04             	mov    0x4(%eax),%eax
402ce3:	03 c6                	add    %esi,%eax
402ce5:	f6 40 04 06          	testb  $0x6,0x4(%eax)
402ce9:	75 12                	jne    0x402cfd
402ceb:	8b 40 28             	mov    0x28(%eax),%eax
402cee:	8b c8                	mov    %eax,%ecx
402cf0:	8b 10                	mov    (%eax),%edx
402cf2:	ff 52 2c             	call   *0x2c(%edx)
402cf5:	83 f8 ff             	cmp    $0xffffffff,%eax
402cf8:	75 03                	jne    0x402cfd
402cfa:	6a 04                	push   $0x4
402cfc:	5f                   	pop    %edi
402cfd:	8b 06                	mov    (%esi),%eax
402cff:	8b 48 04             	mov    0x4(%eax),%ecx
402d02:	03 ce                	add    %esi,%ecx
402d04:	85 ff                	test   %edi,%edi
402d06:	74 15                	je     0x402d1d
402d08:	8b 41 04             	mov    0x4(%ecx),%eax
402d0b:	0b c7                	or     %edi,%eax
402d0d:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
402d11:	75 02                	jne    0x402d15
402d13:	0c 04                	or     $0x4,%al
402d15:	6a 00                	push   $0x0
402d17:	50                   	push   %eax
402d18:	e8 19 1b 00 00       	call   0x404836
402d1d:	8b c6                	mov    %esi,%eax
402d1f:	5f                   	pop    %edi
402d20:	5e                   	pop    %esi
402d21:	c3                   	ret
402d22:	c7 01 e4 d1 40 00    	movl   $0x40d1e4,(%ecx)
402d28:	e9 77 1d 00 00       	jmp    0x404aa4
402d2d:	b8 02 c5 40 00       	mov    $0x40c502,%eax
402d32:	e8 09 30 00 00       	call   0x405d40
402d37:	51                   	push   %ecx
402d38:	51                   	push   %ecx
402d39:	56                   	push   %esi
402d3a:	33 c0                	xor    %eax,%eax
402d3c:	39 45 10             	cmp    %eax,0x10(%ebp)
402d3f:	8b f1                	mov    %ecx,%esi
402d41:	89 75 ec             	mov    %esi,-0x14(%ebp)
402d44:	89 45 f0             	mov    %eax,-0x10(%ebp)
402d47:	74 1a                	je     0x402d63
402d49:	c7 06 f0 d1 40 00    	movl   $0x40d1f0,(%esi)
402d4f:	89 46 2c             	mov    %eax,0x2c(%esi)
402d52:	c7 46 08 e4 d1 40 00 	movl   $0x40d1e4,0x8(%esi)
402d59:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402d60:	89 45 fc             	mov    %eax,-0x4(%ebp)
402d63:	89 46 04             	mov    %eax,0x4(%esi)
402d66:	8b 06                	mov    (%esi),%eax
402d68:	ff 75 0c             	push   0xc(%ebp)
402d6b:	8b 40 04             	mov    0x4(%eax),%eax
402d6e:	ff 75 08             	push   0x8(%ebp)
402d71:	c7 04 30 d4 d1 40 00 	movl   $0x40d1d4,(%eax,%esi,1)
402d78:	8b 06                	mov    (%esi),%eax
402d7a:	8b 48 04             	mov    0x4(%eax),%ecx
402d7d:	03 ce                	add    %esi,%ecx
402d7f:	e8 96 08 00 00       	call   0x40361a
402d84:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402d87:	8b c6                	mov    %esi,%eax
402d89:	5e                   	pop    %esi
402d8a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402d91:	c9                   	leave
402d92:	c2 0c 00             	ret    $0xc
402d95:	b8 26 c5 40 00       	mov    $0x40c526,%eax
402d9a:	e8 a1 2f 00 00       	call   0x405d40
402d9f:	51                   	push   %ecx
402da0:	51                   	push   %ecx
402da1:	56                   	push   %esi
402da2:	33 c0                	xor    %eax,%eax
402da4:	39 45 0c             	cmp    %eax,0xc(%ebp)
402da7:	8b f1                	mov    %ecx,%esi
402da9:	89 75 ec             	mov    %esi,-0x14(%ebp)
402dac:	89 45 f0             	mov    %eax,-0x10(%ebp)
402daf:	74 1a                	je     0x402dcb
402db1:	c7 06 f0 d1 40 00    	movl   $0x40d1f0,(%esi)
402db7:	89 46 2c             	mov    %eax,0x2c(%esi)
402dba:	c7 46 08 e4 d1 40 00 	movl   $0x40d1e4,0x8(%esi)
402dc1:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
402dc8:	89 45 fc             	mov    %eax,-0x4(%ebp)
402dcb:	8b 06                	mov    (%esi),%eax
402dcd:	8b 40 04             	mov    0x4(%eax),%eax
402dd0:	c7 04 30 d4 d1 40 00 	movl   $0x40d1d4,(%eax,%esi,1)
402dd7:	8b 06                	mov    (%esi),%eax
402dd9:	8b 48 04             	mov    0x4(%eax),%ecx
402ddc:	03 ce                	add    %esi,%ecx
402dde:	e8 4f 1d 00 00       	call   0x404b32
402de3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402de6:	8b c6                	mov    %esi,%eax
402de8:	5e                   	pop    %esi
402de9:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402df0:	c9                   	leave
402df1:	c2 08 00             	ret    $0x8
402df4:	b8 4e c5 40 00       	mov    $0x40c54e,%eax
402df9:	e8 42 2f 00 00       	call   0x405d40
402dfe:	51                   	push   %ecx
402dff:	56                   	push   %esi
402e00:	8b f1                	mov    %ecx,%esi
402e02:	89 75 f0             	mov    %esi,-0x10(%ebp)
402e05:	8d 4e 34             	lea    0x34(%esi),%ecx
402e08:	e8 47 00 00 00       	call   0x402e54
402e0d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402e11:	8b ce                	mov    %esi,%ecx
402e13:	c7 06 34 d2 40 00    	movl   $0x40d234,(%esi)
402e19:	e8 5b 0a 00 00       	call   0x403879
402e1e:	8d 4e 4c             	lea    0x4c(%esi),%ecx
402e21:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402e28:	e8 27 00 00 00       	call   0x402e54
402e2d:	6a 00                	push   $0x0
402e2f:	8b ce                	mov    %esi,%ecx
402e31:	ff 75 08             	push   0x8(%ebp)
402e34:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
402e38:	c7 06 fc d1 40 00    	movl   $0x40d1fc,(%esi)
402e3e:	e8 a8 08 00 00       	call   0x4036eb
402e43:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402e46:	8b c6                	mov    %esi,%eax
402e48:	5e                   	pop    %esi
402e49:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402e50:	c9                   	leave
402e51:	c2 04 00             	ret    $0x4
402e54:	55                   	push   %ebp
402e55:	8b ec                	mov    %esp,%ebp
402e57:	51                   	push   %ecx
402e58:	56                   	push   %esi
402e59:	8b f1                	mov    %ecx,%esi
402e5b:	e8 91 1e 00 00       	call   0x404cf1
402e60:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402e63:	89 06                	mov    %eax,(%esi)
402e65:	e8 1b 19 00 00       	call   0x404785
402e6a:	8b 0d b8 17 41 00    	mov    0x4117b8,%ecx
402e70:	e8 0d 00 00 00       	call   0x402e82
402e75:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402e78:	e8 a4 19 00 00       	call   0x404821
402e7d:	8b c6                	mov    %esi,%eax
402e7f:	5e                   	pop    %esi
402e80:	c9                   	leave
402e81:	c3                   	ret
402e82:	55                   	push   %ebp
402e83:	8b ec                	mov    %esp,%ebp
402e85:	51                   	push   %ecx
402e86:	56                   	push   %esi
402e87:	8b f1                	mov    %ecx,%esi
402e89:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402e8c:	e8 f4 18 00 00       	call   0x404785
402e91:	8b 46 04             	mov    0x4(%esi),%eax
402e94:	83 f8 ff             	cmp    $0xffffffff,%eax
402e97:	73 04                	jae    0x402e9d
402e99:	40                   	inc    %eax
402e9a:	89 46 04             	mov    %eax,0x4(%esi)
402e9d:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402ea0:	e8 7c 19 00 00       	call   0x404821
402ea5:	5e                   	pop    %esi
402ea6:	c9                   	leave
402ea7:	c3                   	ret
402ea8:	8b 09                	mov    (%ecx),%ecx
402eaa:	85 c9                	test   %ecx,%ecx
402eac:	74 11                	je     0x402ebf
402eae:	e8 0d 00 00 00       	call   0x402ec0
402eb3:	85 c0                	test   %eax,%eax
402eb5:	74 08                	je     0x402ebf
402eb7:	8b 10                	mov    (%eax),%edx
402eb9:	6a 01                	push   $0x1
402ebb:	8b c8                	mov    %eax,%ecx
402ebd:	ff 12                	call   *(%edx)
402ebf:	c3                   	ret
402ec0:	55                   	push   %ebp
402ec1:	8b ec                	mov    %esp,%ebp
402ec3:	51                   	push   %ecx
402ec4:	56                   	push   %esi
402ec5:	57                   	push   %edi
402ec6:	8b f9                	mov    %ecx,%edi
402ec8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402ecb:	e8 b5 18 00 00       	call   0x404785
402ed0:	8b 47 04             	mov    0x4(%edi),%eax
402ed3:	85 c0                	test   %eax,%eax
402ed5:	76 09                	jbe    0x402ee0
402ed7:	83 f8 ff             	cmp    $0xffffffff,%eax
402eda:	73 04                	jae    0x402ee0
402edc:	48                   	dec    %eax
402edd:	89 47 04             	mov    %eax,0x4(%edi)
402ee0:	8b 77 04             	mov    0x4(%edi),%esi
402ee3:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402ee6:	f7 de                	neg    %esi
402ee8:	1b f6                	sbb    %esi,%esi
402eea:	f7 d6                	not    %esi
402eec:	23 f7                	and    %edi,%esi
402eee:	e8 2e 19 00 00       	call   0x404821
402ef3:	8b c6                	mov    %esi,%eax
402ef5:	5f                   	pop    %edi
402ef6:	5e                   	pop    %esi
402ef7:	c9                   	leave
402ef8:	c3                   	ret
402ef9:	c7 01 34 d2 40 00    	movl   $0x40d234,(%ecx)
402eff:	83 c1 34             	add    $0x34,%ecx
402f02:	e9 a1 ff ff ff       	jmp    0x402ea8
402f07:	83 c8 ff             	or     $0xffffffff,%eax
402f0a:	c2 04 00             	ret    $0x4
402f0d:	83 c8 ff             	or     $0xffffffff,%eax
402f10:	c3                   	ret
402f11:	56                   	push   %esi
402f12:	8b f1                	mov    %ecx,%esi
402f14:	8b 06                	mov    (%esi),%eax
402f16:	ff 50 10             	call   *0x10(%eax)
402f19:	83 f8 ff             	cmp    $0xffffffff,%eax
402f1c:	75 04                	jne    0x402f22
402f1e:	0b c0                	or     %eax,%eax
402f20:	5e                   	pop    %esi
402f21:	c3                   	ret
402f22:	8b ce                	mov    %esi,%ecx
402f24:	e8 7b 07 00 00       	call   0x4036a4
402f29:	0f b6 00             	movzbl (%eax),%eax
402f2c:	5e                   	pop    %esi
402f2d:	c3                   	ret