428975:	8b 7d 08             	mov    0x8(%ebp),%edi
428978:	57                   	push   %edi
428979:	8b 07                	mov    (%edi),%eax
42897b:	8b 70 04             	mov    0x4(%eax),%esi
42897e:	8b ce                	mov    %esi,%ecx
428980:	ff 15 2c 81 4a 00    	call   *0x4a812c
428986:	ff d6                	call   *%esi
428988:	89 3b                	mov    %edi,(%ebx)
42898a:	33 c0                	xor    %eax,%eax
42898c:	eb 08                	jmp    0x428996
42898e:	83 23 00             	andl   $0x0,(%ebx)
428991:	b8 02 40 00 80       	mov    $0x80004002,%eax
428996:	5e                   	pop    %esi
428997:	5f                   	pop    %edi
428998:	5b                   	pop    %ebx
428999:	5d                   	pop    %ebp
42899a:	c2 0c 00             	ret    $0xc
42899d:	cc                   	int3
42899e:	cc                   	int3
42899f:	cc                   	int3
4289a0:	8b ff                	mov    %edi,%edi
4289a2:	55                   	push   %ebp
4289a3:	8b ec                	mov    %esp,%ebp
4289a5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4289a8:	56                   	push   %esi
4289a9:	83 ce ff             	or     $0xffffffff,%esi
4289ac:	f0 0f c1 71 04       	lock xadd %esi,0x4(%ecx)
4289b1:	4e                   	dec    %esi
4289b2:	75 12                	jne    0x4289c6
4289b4:	85 c9                	test   %ecx,%ecx
4289b6:	74 0e                	je     0x4289c6
4289b8:	51                   	push   %ecx
4289b9:	c7 01 80 1a 40 00    	movl   $0x401a80,(%ecx)
4289bf:	ff 15 10 74 4a 00    	call   *0x4a7410
4289c5:	59                   	pop    %ecx
4289c6:	8b c6                	mov    %esi,%eax
4289c8:	5e                   	pop    %esi
4289c9:	5d                   	pop    %ebp
4289ca:	c2 04 00             	ret    $0x4
4289cd:	cc                   	int3
4289ce:	cc                   	int3
4289cf:	cc                   	int3
4289d0:	8b ff                	mov    %edi,%edi
4289d2:	55                   	push   %ebp
4289d3:	8b ec                	mov    %esp,%ebp
4289d5:	8b 55 08             	mov    0x8(%ebp),%edx
4289d8:	33 c9                	xor    %ecx,%ecx
4289da:	8d 52 08             	lea    0x8(%edx),%edx
4289dd:	e8 cf fd ff ff       	call   0x4287b1
4289e2:	5d                   	pop    %ebp
4289e3:	c2 24 00             	ret    $0x24
4289e6:	8b ff                	mov    %edi,%edi
4289e8:	55                   	push   %ebp
4289e9:	8b ec                	mov    %esp,%ebp
4289eb:	56                   	push   %esi
4289ec:	8b f1                	mov    %ecx,%esi
4289ee:	c7 06 64 fd 40 00    	movl   $0x40fd64,(%esi)
4289f4:	c7 46 20 6c 1a 40 00 	movl   $0x401a6c,0x20(%esi)
4289fb:	8b 06                	mov    (%esi),%eax
4289fd:	8b 40 08             	mov    0x8(%eax),%eax
428a00:	c7 04 06 5c 1a 40 00 	movl   $0x401a5c,(%esi,%eax,1)
428a07:	8b 06                	mov    (%esi),%eax
428a09:	8b 50 04             	mov    0x4(%eax),%edx
428a0c:	8d 42 e0             	lea    -0x20(%edx),%eax
428a0f:	89 44 32 fc          	mov    %eax,-0x4(%edx,%esi,1)
428a13:	8b 06                	mov    (%esi),%eax
428a15:	8b 48 08             	mov    0x8(%eax),%ecx
428a18:	8d 41 d8             	lea    -0x28(%ecx),%eax
428a1b:	89 44 31 fc          	mov    %eax,-0x4(%ecx,%esi,1)
428a1f:	33 c0                	xor    %eax,%eax
428a21:	89 46 04             	mov    %eax,0x4(%esi)
428a24:	89 46 08             	mov    %eax,0x8(%esi)
428a27:	89 46 0c             	mov    %eax,0xc(%esi)
428a2a:	89 46 10             	mov    %eax,0x10(%esi)
428a2d:	8b 45 08             	mov    0x8(%ebp),%eax
428a30:	89 46 14             	mov    %eax,0x14(%esi)
428a33:	8b 45 0c             	mov    0xc(%ebp),%eax
428a36:	89 46 18             	mov    %eax,0x18(%esi)
428a39:	8b c6                	mov    %esi,%eax
428a3b:	5e                   	pop    %esi
428a3c:	5d                   	pop    %ebp
428a3d:	c2 0c 00             	ret    $0xc
428a40:	8b ff                	mov    %edi,%edi
428a42:	55                   	push   %ebp
428a43:	8b ec                	mov    %esp,%ebp
428a45:	53                   	push   %ebx
428a46:	8b 5d 10             	mov    0x10(%ebp),%ebx
428a49:	85 db                	test   %ebx,%ebx
428a4b:	75 0a                	jne    0x428a57
428a4d:	b8 03 40 00 80       	mov    $0x80004003,%eax
428a52:	e9 a1 00 00 00       	jmp    0x428af8
428a57:	8b 55 0c             	mov    0xc(%ebp),%edx
428a5a:	56                   	push   %esi
428a5b:	57                   	push   %edi
428a5c:	33 ff                	xor    %edi,%edi
428a5e:	be ec f0 40 00       	mov    $0x40f0ec,%esi
428a63:	8b cf                	mov    %edi,%ecx
428a65:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
428a68:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
428a6b:	75 3d                	jne    0x428aaa
428a6d:	41                   	inc    %ecx
428a6e:	83 f9 04             	cmp    $0x4,%ecx
428a71:	75 f2                	jne    0x428a65
428a73:	8b 4d 08             	mov    0x8(%ebp),%ecx
428a76:	8b 41 e0             	mov    -0x20(%ecx),%eax
428a79:	83 c1 e0             	add    $0xffffffe0,%ecx
428a7c:	8b 40 08             	mov    0x8(%eax),%eax
428a7f:	03 c1                	add    %ecx,%eax
428a81:	50                   	push   %eax
428a82:	8b 08                	mov    (%eax),%ecx
428a84:	8b 71 04             	mov    0x4(%ecx),%esi
428a87:	8b ce                	mov    %esi,%ecx
428a89:	ff 15 2c 81 4a 00    	call   *0x4a812c
428a8f:	ff d6                	call   *%esi
428a91:	8b 4d 08             	mov    0x8(%ebp),%ecx
428a94:	8d 41 e0             	lea    -0x20(%ecx),%eax
428a97:	85 c0                	test   %eax,%eax
428a99:	74 0b                	je     0x428aa6
428a9b:	8b 41 e0             	mov    -0x20(%ecx),%eax
428a9e:	8b 40 08             	mov    0x8(%eax),%eax
428aa1:	8d 79 e0             	lea    -0x20(%ecx),%edi
428aa4:	03 f8                	add    %eax,%edi
428aa6:	33 c0                	xor    %eax,%eax
428aa8:	eb 4a                	jmp    0x428af4
428aaa:	be 5c f1 40 00       	mov    $0x40f15c,%esi
428aaf:	8b cf                	mov    %edi,%ecx
428ab1:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
428ab4:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
428ab7:	75 36                	jne    0x428aef
428ab9:	41                   	inc    %ecx
428aba:	83 f9 04             	cmp    $0x4,%ecx
428abd:	75 f2                	jne    0x428ab1
428abf:	8b 4d 08             	mov    0x8(%ebp),%ecx
428ac2:	8b 41 e0             	mov    -0x20(%ecx),%eax
428ac5:	83 c1 e0             	add    $0xffffffe0,%ecx
428ac8:	8b 40 08             	mov    0x8(%eax),%eax
428acb:	03 c1                	add    %ecx,%eax
428acd:	50                   	push   %eax
428ace:	8b 08                	mov    (%eax),%ecx
428ad0:	8b 71 04             	mov    0x4(%ecx),%esi
428ad3:	8b ce                	mov    %esi,%ecx
428ad5:	ff 15 2c 81 4a 00    	call   *0x4a812c
428adb:	ff d6                	call   *%esi
428add:	8b 4d 08             	mov    0x8(%ebp),%ecx
428ae0:	8d 41 e0             	lea    -0x20(%ecx),%eax
428ae3:	85 c0                	test   %eax,%eax
428ae5:	74 bf                	je     0x428aa6
428ae7:	8b 41 e0             	mov    -0x20(%ecx),%eax
428aea:	8b 40 04             	mov    0x4(%eax),%eax
428aed:	eb b2                	jmp    0x428aa1
428aef:	b8 02 40 00 80       	mov    $0x80004002,%eax
428af4:	89 3b                	mov    %edi,(%ebx)
428af6:	5f                   	pop    %edi
428af7:	5e                   	pop    %esi
428af8:	5b                   	pop    %ebx
428af9:	5d                   	pop    %ebp
428afa:	c2 0c 00             	ret    $0xc
428afd:	cc                   	int3
428afe:	cc                   	int3
428aff:	cc                   	int3
428b00:	8b ff                	mov    %edi,%edi
428b02:	55                   	push   %ebp
428b03:	8b ec                	mov    %esp,%ebp
428b05:	8b 4d 08             	mov    0x8(%ebp),%ecx
428b08:	33 c0                	xor    %eax,%eax
428b0a:	40                   	inc    %eax
428b0b:	f0 0f c1 41 e4       	lock xadd %eax,-0x1c(%ecx)
428b10:	40                   	inc    %eax
428b11:	5d                   	pop    %ebp
428b12:	c2 04 00             	ret    $0x4
428b15:	8b ff                	mov    %edi,%edi
428b17:	55                   	push   %ebp
428b18:	8b ec                	mov    %esp,%ebp
428b1a:	8b 45 08             	mov    0x8(%ebp),%eax
428b1d:	56                   	push   %esi
428b1e:	83 ce ff             	or     $0xffffffff,%esi
428b21:	f0 0f c1 70 e4       	lock xadd %esi,-0x1c(%eax)
428b26:	4e                   	dec    %esi
428b27:	75 0d                	jne    0x428b36
428b29:	8d 48 e0             	lea    -0x20(%eax),%ecx
428b2c:	85 c9                	test   %ecx,%ecx
428b2e:	74 06                	je     0x428b36
428b30:	51                   	push   %ecx
428b31:	e8 07 00 00 00       	call   0x428b3d
428b36:	8b c6                	mov    %esi,%eax
428b38:	5e                   	pop    %esi
428b39:	5d                   	pop    %ebp
428b3a:	c2 04 00             	ret    $0x4
428b3d:	8b ff                	mov    %edi,%edi
428b3f:	56                   	push   %esi
428b40:	8b f1                	mov    %ecx,%esi
428b42:	8b 06                	mov    (%esi),%eax
428b44:	8b 40 04             	mov    0x4(%eax),%eax
428b47:	c7 04 06 6c 1a 40 00 	movl   $0x401a6c,(%esi,%eax,1)
428b4e:	8b 06                	mov    (%esi),%eax
428b50:	8b 40 08             	mov    0x8(%eax),%eax
428b53:	c7 04 06 5c 1a 40 00 	movl   $0x401a5c,(%esi,%eax,1)
428b5a:	8b 06                	mov    (%esi),%eax
428b5c:	8b 50 04             	mov    0x4(%eax),%edx
428b5f:	8d 42 e0             	lea    -0x20(%edx),%eax
428b62:	89 44 32 fc          	mov    %eax,-0x4(%edx,%esi,1)
428b66:	8b 06                	mov    (%esi),%eax
428b68:	8b 48 08             	mov    0x8(%eax),%ecx
428b6b:	8d 41 d8             	lea    -0x28(%ecx),%eax
428b6e:	89 44 31 fc          	mov    %eax,-0x4(%ecx,%esi,1)
428b72:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
428b76:	74 09                	je     0x428b81
428b78:	ff 76 08             	push   0x8(%esi)
428b7b:	ff 15 5c 72 4a 00    	call   *0x4a725c
428b81:	56                   	push   %esi
428b82:	ff 15 10 74 4a 00    	call   *0x4a7410
428b88:	59                   	pop    %ecx
428b89:	8b c6                	mov    %esi,%eax
428b8b:	5e                   	pop    %esi
428b8c:	c2 04 00             	ret    $0x4
428b8f:	8b ff                	mov    %edi,%edi
428b91:	55                   	push   %ebp
428b92:	8b ec                	mov    %esp,%ebp
428b94:	51                   	push   %ecx
428b95:	51                   	push   %ecx
428b96:	8b 45 28             	mov    0x28(%ebp),%eax
428b99:	53                   	push   %ebx
428b9a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
428b9d:	56                   	push   %esi
428b9e:	8b 75 18             	mov    0x18(%ebp),%esi
428ba1:	57                   	push   %edi
428ba2:	50                   	push   %eax
428ba3:	ff 75 1c             	push   0x1c(%ebp)
428ba6:	56                   	push   %esi
428ba7:	ff 75 14             	push   0x14(%ebp)
428baa:	ff 75 10             	push   0x10(%ebp)
428bad:	53                   	push   %ebx
428bae:	68 a0 fc 40 00       	push   $0x40fca0
428bb3:	e8 f8 51 ff ff       	call   0x41ddb0
428bb8:	8b 7d 08             	mov    0x8(%ebp),%edi
428bbb:	83 c4 1c             	add    $0x1c,%esp
428bbe:	8b 4f f4             	mov    -0xc(%edi),%ecx
428bc1:	85 c9                	test   %ecx,%ecx
428bc3:	74 27                	je     0x428bec
428bc5:	8b 01                	mov    (%ecx),%eax
428bc7:	8d 55 fc             	lea    -0x4(%ebp),%edx
428bca:	52                   	push   %edx
428bcb:	51                   	push   %ecx
428bcc:	8b 70 18             	mov    0x18(%eax),%esi
428bcf:	8b ce                	mov    %esi,%ecx
428bd1:	ff 15 2c 81 4a 00    	call   *0x4a812c
428bd7:	ff d6                	call   *%esi
428bd9:	85 c0                	test   %eax,%eax
428bdb:	75 09                	jne    0x428be6
428bdd:	39 45 fc             	cmp    %eax,-0x4(%ebp)
428be0:	0f 85 2d 01 00 00    	jne    0x428d13
428be6:	8b 45 28             	mov    0x28(%ebp),%eax
428be9:	8b 75 18             	mov    0x18(%ebp),%esi
428bec:	83 eb 01             	sub    $0x1,%ebx
428bef:	0f 84 f9 00 00 00    	je     0x428cee
428bf5:	83 eb 01             	sub    $0x1,%ebx
428bf8:	74 48                	je     0x428c42
428bfa:	83 eb 01             	sub    $0x1,%ebx
428bfd:	74 33                	je     0x428c32
428bff:	83 eb 01             	sub    $0x1,%ebx
428c02:	74 05                	je     0x428c09
428c04:	83 eb 01             	sub    $0x1,%ebx
428c07:	75 20                	jne    0x428c29
428c09:	ff 77 e8             	push   -0x18(%edi)
428c0c:	ff 15 54 72 4a 00    	call   *0x4a7254
428c12:	85 c0                	test   %eax,%eax
428c14:	74 13                	je     0x428c29
428c16:	8b 57 f0             	mov    -0x10(%edi),%edx
428c19:	8b c8                	mov    %eax,%ecx
428c1b:	e8 17 02 00 00       	call   0x428e37
428c20:	ff 77 e8             	push   -0x18(%edi)
428c23:	ff 15 50 72 4a 00    	call   *0x4a7250
428c29:	33 c0                	xor    %eax,%eax
428c2b:	5f                   	pop    %edi
428c2c:	5e                   	pop    %esi
428c2d:	5b                   	pop    %ebx
428c2e:	c9                   	leave
428c2f:	c2 24 00             	ret    $0x24
428c32:	ff 75 14             	push   0x14(%ebp)
428c35:	8d 4f e0             	lea    -0x20(%edi),%ecx
428c38:	ff 75 10             	push   0x10(%ebp)
428c3b:	e8 cc 02 00 00       	call   0x428f0c
428c40:	eb e7                	jmp    0x428c29
428c42:	ff 75 14             	push   0x14(%ebp)
428c45:	8d 4f e0             	lea    -0x20(%edi),%ecx
428c48:	ff 75 10             	push   0x10(%ebp)
428c4b:	e8 bc 02 00 00       	call   0x428f0c
428c50:	83 7f ec 00          	cmpl   $0x0,-0x14(%edi)
428c54:	8b 5d 28             	mov    0x28(%ebp),%ebx
428c57:	75 20                	jne    0x428c79
428c59:	85 f6                	test   %esi,%esi
428c5b:	75 1c                	jne    0x428c79
428c5d:	8b cb                	mov    %ebx,%ecx
428c5f:	e8 03 01 00 00       	call   0x428d67
428c64:	85 c0                	test   %eax,%eax
428c66:	74 11                	je     0x428c79
428c68:	50                   	push   %eax
428c69:	8d 4f e0             	lea    -0x20(%edi),%ecx
428c6c:	e8 aa 00 00 00       	call   0x428d1b
428c71:	85 c0                	test   %eax,%eax
428c73:	0f 85 9a 00 00 00    	jne    0x428d13
428c79:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
428c7c:	85 c9                	test   %ecx,%ecx
428c7e:	0f 88 8f 00 00 00    	js     0x428d13
428c84:	85 f6                	test   %esi,%esi
428c86:	0f 88 87 00 00 00    	js     0x428d13
428c8c:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
428c8f:	89 45 f8             	mov    %eax,-0x8(%ebp)
428c92:	3b c6                	cmp    %esi,%eax
428c94:	72 7d                	jb     0x428d13
428c96:	3b 47 ec             	cmp    -0x14(%edi),%eax
428c99:	76 26                	jbe    0x428cc1
428c9b:	6a 02                	push   $0x2
428c9d:	58                   	pop    %eax
428c9e:	f7 e1                	mul    %ecx
428ca0:	85 d2                	test   %edx,%edx
428ca2:	77 6f                	ja     0x428d13
428ca4:	72 05                	jb     0x428cab
428ca6:	83 f8 ff             	cmp    $0xffffffff,%eax
428ca9:	77 68                	ja     0x428d13
428cab:	03 c6                	add    %esi,%eax
428cad:	3b c6                	cmp    %esi,%eax
428caf:	72 62                	jb     0x428d13
428cb1:	50                   	push   %eax
428cb2:	8d 4f e0             	lea    -0x20(%edi),%ecx
428cb5:	e8 61 00 00 00       	call   0x428d1b
428cba:	85 c0                	test   %eax,%eax
428cbc:	75 55                	jne    0x428d13
428cbe:	8b 45 f8             	mov    -0x8(%ebp),%eax
428cc1:	3b 47 f0             	cmp    -0x10(%edi),%eax
428cc4:	76 03                	jbe    0x428cc9
428cc6:	89 47 f0             	mov    %eax,-0x10(%edi)
428cc9:	ff 77 e8             	push   -0x18(%edi)
428ccc:	ff 15 54 72 4a 00    	call   *0x4a7254
428cd2:	85 c0                	test   %eax,%eax
428cd4:	0f 84 4f ff ff ff    	je     0x428c29
428cda:	ff 75 1c             	push   0x1c(%ebp)
428cdd:	03 c6                	add    %esi,%eax
428cdf:	53                   	push   %ebx
428ce0:	50                   	push   %eax
428ce1:	e8 47 83 06 00       	call   0x49102d
428ce6:	83 c4 0c             	add    $0xc,%esp
428ce9:	e9 32 ff ff ff       	jmp    0x428c20
428cee:	85 c0                	test   %eax,%eax
428cf0:	0f 84 33 ff ff ff    	je     0x428c29
428cf6:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
428cfa:	0f 84 29 ff ff ff    	je     0x428c29
428d00:	ff 70 14             	push   0x14(%eax)
428d03:	8d 4f e0             	lea    -0x20(%edi),%ecx
428d06:	e8 10 00 00 00       	call   0x428d1b