4029a0:	c3                   	ret
4029a1:	55                   	push   %ebp
4029a2:	8b ec                	mov    %esp,%ebp
4029a4:	83 e4 f8             	and    $0xfffffff8,%esp
4029a7:	83 ec 1c             	sub    $0x1c,%esp
4029aa:	53                   	push   %ebx
4029ab:	56                   	push   %esi
4029ac:	57                   	push   %edi
4029ad:	8b 7d 10             	mov    0x10(%ebp),%edi
4029b0:	8b d1                	mov    %ecx,%edx
4029b2:	0f 57 c0             	xorps  %xmm0,%xmm0
4029b5:	89 54 24 18          	mov    %edx,0x18(%esp)
4029b9:	66 0f 13 44 24 20    	movlpd %xmm0,0x20(%esp)
4029bf:	85 ff                	test   %edi,%edi
4029c1:	0f 8c e3 00 00 00    	jl     0x402aaa
4029c7:	8b 75 0c             	mov    0xc(%ebp),%esi
4029ca:	7f 08                	jg     0x4029d4
4029cc:	85 f6                	test   %esi,%esi
4029ce:	0f 84 d6 00 00 00    	je     0x402aaa
4029d4:	8b 4c 24 24          	mov    0x24(%esp),%ecx
4029d8:	8b 44 24 20          	mov    0x20(%esp),%eax
4029dc:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4029e0:	89 44 24 14          	mov    %eax,0x14(%esp)
4029e4:	8b 42 1c             	mov    0x1c(%edx),%eax
4029e7:	8b 00                	mov    (%eax),%eax
4029e9:	89 44 24 20          	mov    %eax,0x20(%esp)
4029ed:	85 c0                	test   %eax,%eax
4029ef:	74 07                	je     0x4029f8
4029f1:	8b 42 2c             	mov    0x2c(%edx),%eax
4029f4:	8b 00                	mov    (%eax),%eax
4029f6:	eb 02                	jmp    0x4029fa
4029f8:	33 c0                	xor    %eax,%eax
4029fa:	99                   	cltd
4029fb:	8b d8                	mov    %eax,%ebx
4029fd:	8b c2                	mov    %edx,%eax
4029ff:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402a03:	85 c0                	test   %eax,%eax
402a05:	7c 4f                	jl     0x402a56
402a07:	7f 04                	jg     0x402a0d
402a09:	85 db                	test   %ebx,%ebx
402a0b:	74 49                	je     0x402a56
402a0d:	3b f8                	cmp    %eax,%edi
402a0f:	7f 0c                	jg     0x402a1d
402a11:	7c 04                	jl     0x402a17
402a13:	3b f3                	cmp    %ebx,%esi
402a15:	73 06                	jae    0x402a1d
402a17:	8b de                	mov    %esi,%ebx
402a19:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
402a1d:	85 db                	test   %ebx,%ebx
402a1f:	74 14                	je     0x402a35
402a21:	53                   	push   %ebx
402a22:	ff 74 24 24          	push   0x24(%esp)
402a26:	ff 75 08             	push   0x8(%ebp)
402a29:	e8 72 2c 00 00       	call   0x4056a0
402a2e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
402a32:	83 c4 0c             	add    $0xc,%esp
402a35:	01 5d 08             	add    %ebx,0x8(%ebp)
402a38:	01 5c 24 14          	add    %ebx,0x14(%esp)
402a3c:	8b 54 24 18          	mov    0x18(%esp),%edx
402a40:	13 4c 24 1c          	adc    0x1c(%esp),%ecx
402a44:	8b 42 2c             	mov    0x2c(%edx),%eax
402a47:	2b f3                	sub    %ebx,%esi
402a49:	1b 7c 24 1c          	sbb    0x1c(%esp),%edi
402a4d:	29 18                	sub    %ebx,(%eax)
402a4f:	8b 42 1c             	mov    0x1c(%edx),%eax
402a52:	01 18                	add    %ebx,(%eax)
402a54:	eb 2d                	jmp    0x402a83
402a56:	8b 4c 24 18          	mov    0x18(%esp),%ecx
402a5a:	8b 01                	mov    (%ecx),%eax
402a5c:	ff 50 1c             	call   *0x1c(%eax)
402a5f:	83 f8 ff             	cmp    $0xffffffff,%eax
402a62:	74 35                	je     0x402a99
402a64:	8b 55 08             	mov    0x8(%ebp),%edx
402a67:	8b 4c 24 10          	mov    0x10(%esp),%ecx
402a6b:	88 02                	mov    %al,(%edx)
402a6d:	42                   	inc    %edx
402a6e:	83 44 24 14 01       	addl   $0x1,0x14(%esp)
402a73:	89 55 08             	mov    %edx,0x8(%ebp)
402a76:	8b 54 24 18          	mov    0x18(%esp),%edx
402a7a:	83 d1 00             	adc    $0x0,%ecx
402a7d:	83 c6 ff             	add    $0xffffffff,%esi
402a80:	83 d7 ff             	adc    $0xffffffff,%edi
402a83:	89 4c 24 10          	mov    %ecx,0x10(%esp)
402a87:	85 ff                	test   %edi,%edi
402a89:	0f 8f 55 ff ff ff    	jg     0x4029e4
402a8f:	7c 08                	jl     0x402a99
402a91:	85 f6                	test   %esi,%esi
402a93:	0f 85 4b ff ff ff    	jne    0x4029e4
402a99:	8b 54 24 10          	mov    0x10(%esp),%edx
402a9d:	8b 44 24 14          	mov    0x14(%esp),%eax
402aa1:	5f                   	pop    %edi
402aa2:	5e                   	pop    %esi
402aa3:	5b                   	pop    %ebx
402aa4:	8b e5                	mov    %ebp,%esp
402aa6:	5d                   	pop    %ebp
402aa7:	c2 0c 00             	ret    $0xc
402aaa:	8b 54 24 24          	mov    0x24(%esp),%edx
402aae:	8b 44 24 20          	mov    0x20(%esp),%eax
402ab2:	eb ed                	jmp    0x402aa1
402ab4:	55                   	push   %ebp
402ab5:	8b ec                	mov    %esp,%ebp
402ab7:	83 e4 f8             	and    $0xfffffff8,%esp
402aba:	83 ec 1c             	sub    $0x1c,%esp
402abd:	53                   	push   %ebx
402abe:	56                   	push   %esi
402abf:	57                   	push   %edi
402ac0:	8b 7d 10             	mov    0x10(%ebp),%edi
402ac3:	8b d1                	mov    %ecx,%edx
402ac5:	0f 57 c0             	xorps  %xmm0,%xmm0
402ac8:	89 54 24 18          	mov    %edx,0x18(%esp)
402acc:	66 0f 13 44 24 20    	movlpd %xmm0,0x20(%esp)
402ad2:	85 ff                	test   %edi,%edi
402ad4:	0f 8c e5 00 00 00    	jl     0x402bbf
402ada:	8b 75 0c             	mov    0xc(%ebp),%esi
402add:	7f 08                	jg     0x402ae7
402adf:	85 f6                	test   %esi,%esi
402ae1:	0f 84 d8 00 00 00    	je     0x402bbf
402ae7:	8b 4c 24 24          	mov    0x24(%esp),%ecx
402aeb:	8b 44 24 20          	mov    0x20(%esp),%eax
402aef:	89 4c 24 10          	mov    %ecx,0x10(%esp)
402af3:	89 44 24 14          	mov    %eax,0x14(%esp)
402af7:	8b 42 20             	mov    0x20(%edx),%eax
402afa:	8b 00                	mov    (%eax),%eax
402afc:	89 44 24 20          	mov    %eax,0x20(%esp)
402b00:	85 c0                	test   %eax,%eax
402b02:	74 07                	je     0x402b0b
402b04:	8b 42 30             	mov    0x30(%edx),%eax
402b07:	8b 00                	mov    (%eax),%eax
402b09:	eb 02                	jmp    0x402b0d
402b0b:	33 c0                	xor    %eax,%eax
402b0d:	99                   	cltd
402b0e:	8b d8                	mov    %eax,%ebx
402b10:	8b c2                	mov    %edx,%eax
402b12:	89 44 24 1c          	mov    %eax,0x1c(%esp)
402b16:	85 c0                	test   %eax,%eax
402b18:	7c 4f                	jl     0x402b69
402b1a:	7f 04                	jg     0x402b20
402b1c:	85 db                	test   %ebx,%ebx
402b1e:	74 49                	je     0x402b69
402b20:	3b f8                	cmp    %eax,%edi
402b22:	7f 0c                	jg     0x402b30
402b24:	7c 04                	jl     0x402b2a
402b26:	3b f3                	cmp    %ebx,%esi
402b28:	73 06                	jae    0x402b30
402b2a:	8b de                	mov    %esi,%ebx
402b2c:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
402b30:	85 db                	test   %ebx,%ebx
402b32:	74 14                	je     0x402b48
402b34:	53                   	push   %ebx
402b35:	ff 75 08             	push   0x8(%ebp)
402b38:	ff 74 24 28          	push   0x28(%esp)
402b3c:	e8 5f 2b 00 00       	call   0x4056a0
402b41:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
402b45:	83 c4 0c             	add    $0xc,%esp
402b48:	01 5d 08             	add    %ebx,0x8(%ebp)
402b4b:	01 5c 24 14          	add    %ebx,0x14(%esp)
402b4f:	8b 54 24 18          	mov    0x18(%esp),%edx
402b53:	13 4c 24 1c          	adc    0x1c(%esp),%ecx
402b57:	8b 42 30             	mov    0x30(%edx),%eax
402b5a:	2b f3                	sub    %ebx,%esi
402b5c:	1b 7c 24 1c          	sbb    0x1c(%esp),%edi
402b60:	29 18                	sub    %ebx,(%eax)
402b62:	8b 42 20             	mov    0x20(%edx),%eax
402b65:	01 18                	add    %ebx,(%eax)
402b67:	eb 2f                	jmp    0x402b98
402b69:	8b 5d 08             	mov    0x8(%ebp),%ebx
402b6c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
402b70:	0f b6 03             	movzbl (%ebx),%eax
402b73:	8b 11                	mov    (%ecx),%edx
402b75:	50                   	push   %eax
402b76:	ff 52 0c             	call   *0xc(%edx)
402b79:	83 f8 ff             	cmp    $0xffffffff,%eax
402b7c:	74 30                	je     0x402bae
402b7e:	8b 4c 24 10          	mov    0x10(%esp),%ecx
402b82:	8b 54 24 18          	mov    0x18(%esp),%edx
402b86:	43                   	inc    %ebx
402b87:	83 44 24 14 01       	addl   $0x1,0x14(%esp)
402b8c:	89 5d 08             	mov    %ebx,0x8(%ebp)
402b8f:	83 d1 00             	adc    $0x0,%ecx
402b92:	83 c6 ff             	add    $0xffffffff,%esi
402b95:	83 d7 ff             	adc    $0xffffffff,%edi
402b98:	89 4c 24 10          	mov    %ecx,0x10(%esp)
402b9c:	85 ff                	test   %edi,%edi
402b9e:	0f 8f 53 ff ff ff    	jg     0x402af7
402ba4:	7c 08                	jl     0x402bae
402ba6:	85 f6                	test   %esi,%esi
402ba8:	0f 85 49 ff ff ff    	jne    0x402af7
402bae:	8b 54 24 10          	mov    0x10(%esp),%edx
402bb2:	8b 44 24 14          	mov    0x14(%esp),%eax
402bb6:	5f                   	pop    %edi
402bb7:	5e                   	pop    %esi
402bb8:	5b                   	pop    %ebx
402bb9:	8b e5                	mov    %ebp,%esp
402bbb:	5d                   	pop    %ebp
402bbc:	c2 0c 00             	ret    $0xc
402bbf:	8b 54 24 24          	mov    0x24(%esp),%edx
402bc3:	8b 44 24 20          	mov    0x20(%esp),%eax
402bc7:	eb ed                	jmp    0x402bb6
402bc9:	55                   	push   %ebp
402bca:	8b ec                	mov    %esp,%ebp
402bcc:	8b 45 08             	mov    0x8(%ebp),%eax
402bcf:	8b 0d 58 a1 41 00    	mov    0x41a158,%ecx
402bd5:	89 08                	mov    %ecx,(%eax)
402bd7:	8b 0d 5c a1 41 00    	mov    0x41a15c,%ecx
402bdd:	89 48 04             	mov    %ecx,0x4(%eax)
402be0:	33 c9                	xor    %ecx,%ecx
402be2:	89 48 08             	mov    %ecx,0x8(%eax)
402be5:	89 48 0c             	mov    %ecx,0xc(%eax)
402be8:	89 48 10             	mov    %ecx,0x10(%eax)
402beb:	5d                   	pop    %ebp
402bec:	c2 14 00             	ret    $0x14
402bef:	55                   	push   %ebp
402bf0:	8b ec                	mov    %esp,%ebp
402bf2:	8b 45 08             	mov    0x8(%ebp),%eax
402bf5:	8b 0d 58 a1 41 00    	mov    0x41a158,%ecx
402bfb:	89 08                	mov    %ecx,(%eax)
402bfd:	8b 0d 5c a1 41 00    	mov    0x41a15c,%ecx
402c03:	89 48 04             	mov    %ecx,0x4(%eax)
402c06:	33 c9                	xor    %ecx,%ecx
402c08:	89 48 08             	mov    %ecx,0x8(%eax)
402c0b:	89 48 0c             	mov    %ecx,0xc(%eax)
402c0e:	89 48 10             	mov    %ecx,0x10(%eax)
402c11:	5d                   	pop    %ebp
402c12:	c2 20 00             	ret    $0x20
402c15:	8b c1                	mov    %ecx,%eax
402c17:	c2 0c 00             	ret    $0xc
402c1a:	33 c0                	xor    %eax,%eax
402c1c:	c3                   	ret
402c1d:	c2 04 00             	ret    $0x4
402c20:	55                   	push   %ebp
402c21:	8b ec                	mov    %esp,%ebp
402c23:	56                   	push   %esi
402c24:	8d 71 f8             	lea    -0x8(%ecx),%esi
402c27:	8b ce                	mov    %esi,%ecx
402c29:	e8 66 fb ff ff       	call   0x402794
402c2e:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402c32:	74 07                	je     0x402c3b
402c34:	56                   	push   %esi
402c35:	e8 be 22 00 00       	call   0x404ef8
402c3a:	59                   	pop    %ecx
402c3b:	8b c6                	mov    %esi,%eax
402c3d:	5e                   	pop    %esi
402c3e:	5d                   	pop    %ebp
402c3f:	c2 04 00             	ret    $0x4
402c42:	55                   	push   %ebp
402c43:	8b ec                	mov    %esp,%ebp
402c45:	56                   	push   %esi
402c46:	8b f1                	mov    %ecx,%esi
402c48:	e8 02 fd ff ff       	call   0x40294f
402c4d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402c51:	74 07                	je     0x402c5a
402c53:	56                   	push   %esi
402c54:	e8 9f 22 00 00       	call   0x404ef8
402c59:	59                   	pop    %ecx
402c5a:	8b c6                	mov    %esi,%eax
402c5c:	5e                   	pop    %esi
402c5d:	5d                   	pop    %ebp
402c5e:	c2 04 00             	ret    $0x4
402c61:	55                   	push   %ebp
402c62:	8b ec                	mov    %esp,%ebp
402c64:	8b 55 08             	mov    0x8(%ebp),%edx
402c67:	83 ec 0c             	sub    $0xc,%esp
402c6a:	56                   	push   %esi
402c6b:	8b f1                	mov    %ecx,%esi
402c6d:	57                   	push   %edi
402c6e:	8b 7e 10             	mov    0x10(%esi),%edi
402c71:	3b fa                	cmp    %edx,%edi
402c73:	0f 82 2c 03 00 00    	jb     0x402fa5
402c79:	53                   	push   %ebx
402c7a:	8b 5d 10             	mov    0x10(%ebp),%ebx
402c7d:	8b 43 10             	mov    0x10(%ebx),%eax
402c80:	3b 45 14             	cmp    0x14(%ebp),%eax
402c83:	0f 82 1c 03 00 00    	jb     0x402fa5
402c89:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402c8c:	8b cf                	mov    %edi,%ecx
402c8e:	2b ca                	sub    %edx,%ecx
402c90:	3b cb                	cmp    %ebx,%ecx
402c92:	0f 42 d9             	cmovb  %ecx,%ebx
402c95:	2b 45 14             	sub    0x14(%ebp),%eax
402c98:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402c9b:	8b 4d 18             	mov    0x18(%ebp),%ecx
402c9e:	3b c1                	cmp    %ecx,%eax
402ca0:	0f 42 c8             	cmovb  %eax,%ecx
402ca3:	89 5d 0c             	mov    %ebx,0xc(%ebp)
402ca6:	8b df                	mov    %edi,%ebx
402ca8:	2b 5d 0c             	sub    0xc(%ebp),%ebx
402cab:	83 c8 ff             	or     $0xffffffff,%eax
402cae:	2b c1                	sub    %ecx,%eax
402cb0:	89 4d 18             	mov    %ecx,0x18(%ebp)
402cb3:	3b c3                	cmp    %ebx,%eax
402cb5:	0f 86 e0 02 00 00    	jbe    0x402f9b
402cbb:	8b 45 fc             	mov    -0x4(%ebp),%eax
402cbe:	2b 45 0c             	sub    0xc(%ebp),%eax
402cc1:	03 d9                	add    %ecx,%ebx
402cc3:	89 5d f4             	mov    %ebx,-0xc(%ebp)
402cc6:	3b fb                	cmp    %ebx,%edi
402cc8:	8b 5d 10             	mov    0x10(%ebp),%ebx
402ccb:	89 45 fc             	mov    %eax,-0x4(%ebp)
402cce:	73 15                	jae    0x402ce5
402cd0:	6a 00                	push   $0x0
402cd2:	ff 75 f4             	push   -0xc(%ebp)
402cd5:	8b ce                	mov    %esi,%ecx
402cd7:	e8 32 e6 ff ff       	call   0x40130e
402cdc:	8b 4d 18             	mov    0x18(%ebp),%ecx
402cdf:	8b 55 08             	mov    0x8(%ebp),%edx
402ce2:	8b 45 fc             	mov    -0x4(%ebp),%eax
402ce5:	6a 10                	push   $0x10
402ce7:	3b f3                	cmp    %ebx,%esi
402ce9:	74 7c                	je     0x402d67
402ceb:	5f                   	pop    %edi
402cec:	39 7e 14             	cmp    %edi,0x14(%esi)
402cef:	72 0a                	jb     0x402cfb
402cf1:	8b 0e                	mov    (%esi),%ecx
402cf3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
402cf6:	8b 4d 18             	mov    0x18(%ebp),%ecx
402cf9:	eb 03                	jmp    0x402cfe
402cfb:	89 75 fc             	mov    %esi,-0x4(%ebp)
402cfe:	39 7e 14             	cmp    %edi,0x14(%esi)
402d01:	72 0a                	jb     0x402d0d
402d03:	8b 1e                	mov    (%esi),%ebx
402d05:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402d08:	8b 5d 10             	mov    0x10(%ebp),%ebx
402d0b:	eb 03                	jmp    0x402d10
402d0d:	89 75 f8             	mov    %esi,-0x8(%ebp)
402d10:	85 c0                	test   %eax,%eax
402d12:	74 1a                	je     0x402d2e
402d14:	50                   	push   %eax
402d15:	8b 45 fc             	mov    -0x4(%ebp),%eax
402d18:	03 c2                	add    %edx,%eax
402d1a:	03 45 0c             	add    0xc(%ebp),%eax
402d1d:	50                   	push   %eax
402d1e:	8b 45 f8             	mov    -0x8(%ebp),%eax
402d21:	03 c2                	add    %edx,%eax
402d23:	03 c1                	add    %ecx,%eax
402d25:	50                   	push   %eax
402d26:	e8 25 1a 00 00       	call   0x404750
402d2b:	83 c4 0c             	add    $0xc,%esp
402d2e:	39 7b 14             	cmp    %edi,0x14(%ebx)
402d31:	72 02                	jb     0x402d35
402d33:	8b 1b                	mov    (%ebx),%ebx
402d35:	39 7e 14             	cmp    %edi,0x14(%esi)
402d38:	72 07                	jb     0x402d41
402d3a:	8b 06                	mov    (%esi),%eax
402d3c:	89 45 0c             	mov    %eax,0xc(%ebp)
402d3f:	eb 03                	jmp    0x402d44
402d41:	89 75 0c             	mov    %esi,0xc(%ebp)
402d44:	8b 4d 18             	mov    0x18(%ebp),%ecx
402d47:	85 c9                	test   %ecx,%ecx
402d49:	0f 84 2e 02 00 00    	je     0x402f7d
402d4f:	8b 45 14             	mov    0x14(%ebp),%eax