402aaa:	74 4b                	je     0x402af7
402aac:	39 1e                	cmp    %ebx,(%esi)
402aae:	74 47                	je     0x402af7
402ab0:	ff 75 08             	push   0x8(%ebp)
402ab3:	88 1f                	mov    %bl,(%edi)
402ab5:	8b c8                	mov    %eax,%ecx
402ab7:	8b 16                	mov    (%esi),%edx
402ab9:	57                   	push   %edi
402aba:	e8 e5 fe ff ff       	call   0x4029a4
402abf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402ac2:	84 c0                	test   %al,%al
402ac4:	74 03                	je     0x402ac9
402ac6:	89 79 28             	mov    %edi,0x28(%ecx)
402ac9:	8b 06                	mov    (%esi),%eax
402acb:	89 45 f8             	mov    %eax,-0x8(%ebp)
402ace:	8b 78 04             	mov    0x4(%eax),%edi
402ad1:	51                   	push   %ecx
402ad2:	8b 07                	mov    (%edi),%eax
402ad4:	8b 30                	mov    (%eax),%esi
402ad6:	8b ce                	mov    %esi,%ecx
402ad8:	ff 15 90 61 40 00    	call   *0x406190
402ade:	8b cf                	mov    %edi,%ecx
402ae0:	ff d6                	call   *%esi
402ae2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402ae5:	0a d8                	or     %al,%bl
402ae7:	8b 45 f8             	mov    -0x8(%ebp),%eax
402aea:	88 5d f4             	mov    %bl,-0xc(%ebp)
402aed:	8b 40 08             	mov    0x8(%eax),%eax
402af0:	89 45 f8             	mov    %eax,-0x8(%ebp)
402af3:	85 c0                	test   %eax,%eax
402af5:	75 d7                	jne    0x402ace
402af7:	8b 35 9c 53 40 00    	mov    0x40539c,%esi
402afd:	85 f6                	test   %esi,%esi
402aff:	74 10                	je     0x402b11
402b01:	ff 75 fc             	push   -0x4(%ebp)
402b04:	8b ce                	mov    %esi,%ecx
402b06:	ff 75 f4             	push   -0xc(%ebp)
402b09:	ff 15 90 61 40 00    	call   *0x406190
402b0f:	ff d6                	call   *%esi
402b11:	5f                   	pop    %edi
402b12:	5e                   	pop    %esi
402b13:	5b                   	pop    %ebx
402b14:	c9                   	leave
402b15:	c2 04 00             	ret    $0x4
402b18:	8b 45 fc             	mov    -0x4(%ebp),%eax
402b1b:	83 c6 08             	add    $0x8,%esi
402b1e:	eb 88                	jmp    0x402aa8
402b20:	8b ff                	mov    %edi,%edi
402b22:	55                   	push   %ebp
402b23:	8b ec                	mov    %esp,%ebp
402b25:	ff 75 10             	push   0x10(%ebp)
402b28:	8b 55 0c             	mov    0xc(%ebp),%edx
402b2b:	8b 4d 08             	mov    0x8(%ebp),%ecx
402b2e:	e8 29 ff ff ff       	call   0x402a5c
402b33:	ff 15 1c 60 40 00    	call   *0x40601c
402b39:	39 05 38 54 40 00    	cmp    %eax,0x405438
402b3f:	74 3a                	je     0x402b7b
402b41:	33 c9                	xor    %ecx,%ecx
402b43:	41                   	inc    %ecx
402b44:	f0 0f c1 0d 44 54 40 	lock xadd %ecx,0x405444
402b4b:	00
402b4c:	41                   	inc    %ecx
402b4d:	83 f9 04             	cmp    $0x4,%ecx
402b50:	7d 22                	jge    0x402b74
402b52:	a3 38 54 40 00       	mov    %eax,0x405438
402b57:	e8 c5 fd ff ff       	call   0x402921
402b5c:	85 c0                	test   %eax,%eax
402b5e:	74 0a                	je     0x402b6a
402b60:	ff 75 08             	push   0x8(%ebp)
402b63:	8b c8                	mov    %eax,%ecx
402b65:	e8 f3 fc ff ff       	call   0x40285d
402b6a:	c7 05 38 54 40 00 00 	movl   $0x0,0x405438
402b71:	00 00 00
402b74:	f0 ff 0d 44 54 40 00 	lock decl 0x405444
402b7b:	5d                   	pop    %ebp
402b7c:	c2 0c 00             	ret    $0xc
402b7f:	a1 30 54 40 00       	mov    0x405430,%eax
402b84:	85 c0                	test   %eax,%eax
402b86:	75 10                	jne    0x402b98
402b88:	68 0c 14 40 00       	push   $0x40140c
402b8d:	ff 15 5c 60 40 00    	call   *0x40605c
402b93:	a3 30 54 40 00       	mov    %eax,0x405430
402b98:	c3                   	ret
402b99:	cc                   	int3
402b9a:	cc                   	int3
402b9b:	cc                   	int3
402b9c:	cc                   	int3
402b9d:	cc                   	int3
402b9e:	cc                   	int3
402b9f:	cc                   	int3
402ba0:	8b ff                	mov    %edi,%edi
402ba2:	56                   	push   %esi
402ba3:	8b 35 e0 53 40 00    	mov    0x4053e0,%esi
402ba9:	85 f6                	test   %esi,%esi
402bab:	75 21                	jne    0x402bce
402bad:	68 20 14 40 00       	push   $0x401420
402bb2:	e8 c8 ff ff ff       	call   0x402b7f
402bb7:	50                   	push   %eax
402bb8:	ff 15 4c 60 40 00    	call   *0x40604c
402bbe:	8b f0                	mov    %eax,%esi
402bc0:	89 35 e0 53 40 00    	mov    %esi,0x4053e0
402bc6:	85 f6                	test   %esi,%esi
402bc8:	75 04                	jne    0x402bce
402bca:	32 c0                	xor    %al,%al
402bcc:	5e                   	pop    %esi
402bcd:	c3                   	ret
402bce:	8b ce                	mov    %esi,%ecx
402bd0:	ff 15 90 61 40 00    	call   *0x406190
402bd6:	ff d6                	call   *%esi
402bd8:	5e                   	pop    %esi
402bd9:	c3                   	ret
402bda:	cc                   	int3
402bdb:	cc                   	int3
402bdc:	cc                   	int3
402bdd:	cc                   	int3
402bde:	cc                   	int3
402bdf:	cc                   	int3
402be0:	8b ff                	mov    %edi,%edi
402be2:	55                   	push   %ebp
402be3:	8b ec                	mov    %esp,%ebp
402be5:	56                   	push   %esi
402be6:	8b 35 d4 53 40 00    	mov    0x4053d4,%esi
402bec:	85 f6                	test   %esi,%esi
402bee:	75 1d                	jne    0x402c0d
402bf0:	68 3c 14 40 00       	push   $0x40143c
402bf5:	e8 85 ff ff ff       	call   0x402b7f
402bfa:	50                   	push   %eax
402bfb:	ff 15 4c 60 40 00    	call   *0x40604c
402c01:	8b f0                	mov    %eax,%esi
402c03:	89 35 d4 53 40 00    	mov    %esi,0x4053d4
402c09:	85 f6                	test   %esi,%esi
402c0b:	74 10                	je     0x402c1d
402c0d:	ff 75 0c             	push   0xc(%ebp)
402c10:	8b ce                	mov    %esi,%ecx
402c12:	ff 75 08             	push   0x8(%ebp)
402c15:	ff 15 90 61 40 00    	call   *0x406190
402c1b:	ff d6                	call   *%esi
402c1d:	5e                   	pop    %esi
402c1e:	5d                   	pop    %ebp
402c1f:	c2 08 00             	ret    $0x8
402c22:	ff 15 2c 60 40 00    	call   *0x40602c
402c28:	85 c0                	test   %eax,%eax
402c2a:	7e 0a                	jle    0x402c36
402c2c:	0f b7 c0             	movzwl %ax,%eax
402c2f:	0d 00 00 07 80       	or     $0x80070000,%eax
402c34:	85 c0                	test   %eax,%eax
402c36:	78 05                	js     0x402c3d
402c38:	b8 05 40 00 80       	mov    $0x80004005,%eax
402c3d:	c3                   	ret
402c3e:	8b ff                	mov    %edi,%edi
402c40:	55                   	push   %ebp
402c41:	8b ec                	mov    %esp,%ebp
402c43:	51                   	push   %ecx
402c44:	56                   	push   %esi
402c45:	33 c0                	xor    %eax,%eax
402c47:	8b f1                	mov    %ecx,%esi
402c49:	57                   	push   %edi
402c4a:	33 ff                	xor    %edi,%edi
402c4c:	89 45 fc             	mov    %eax,-0x4(%ebp)
402c4f:	39 45 0c             	cmp    %eax,0xc(%ebp)
402c52:	74 16                	je     0x402c6a
402c54:	8d 45 fc             	lea    -0x4(%ebp),%eax
402c57:	50                   	push   %eax
402c58:	ff 75 0c             	push   0xc(%ebp)
402c5b:	ff 75 08             	push   0x8(%ebp)
402c5e:	57                   	push   %edi
402c5f:	ff 15 e0 60 40 00    	call   *0x4060e0
402c65:	8b f8                	mov    %eax,%edi
402c67:	8b 45 fc             	mov    -0x4(%ebp),%eax
402c6a:	8b 0e                	mov    (%esi),%ecx
402c6c:	33 d2                	xor    %edx,%edx
402c6e:	89 55 fc             	mov    %edx,-0x4(%ebp)
402c71:	89 06                	mov    %eax,(%esi)
402c73:	85 c9                	test   %ecx,%ecx
402c75:	74 13                	je     0x402c8a
402c77:	8b 01                	mov    (%ecx),%eax
402c79:	51                   	push   %ecx
402c7a:	8b 70 08             	mov    0x8(%eax),%esi
402c7d:	8b ce                	mov    %esi,%ecx
402c7f:	ff 15 90 61 40 00    	call   *0x406190
402c85:	ff d6                	call   *%esi
402c87:	8b 55 fc             	mov    -0x4(%ebp),%edx
402c8a:	85 d2                	test   %edx,%edx
402c8c:	74 14                	je     0x402ca2
402c8e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402c92:	8b 02                	mov    (%edx),%eax
402c94:	52                   	push   %edx
402c95:	8b 70 08             	mov    0x8(%eax),%esi
402c98:	8b ce                	mov    %esi,%ecx
402c9a:	ff 15 90 61 40 00    	call   *0x406190
402ca0:	ff d6                	call   *%esi
402ca2:	8b c7                	mov    %edi,%eax
402ca4:	5f                   	pop    %edi
402ca5:	5e                   	pop    %esi
402ca6:	c9                   	leave
402ca7:	c2 08 00             	ret    $0x8
402caa:	8b ff                	mov    %edi,%edi
402cac:	55                   	push   %ebp
402cad:	8b ec                	mov    %esp,%ebp
402caf:	56                   	push   %esi
402cb0:	8b 75 0c             	mov    0xc(%ebp),%esi
402cb3:	33 d2                	xor    %edx,%edx
402cb5:	89 16                	mov    %edx,(%esi)
402cb7:	83 79 10 02          	cmpl   $0x2,0x10(%ecx)
402cbb:	75 29                	jne    0x402ce6
402cbd:	39 51 14             	cmp    %edx,0x14(%ecx)
402cc0:	74 1d                	je     0x402cdf
402cc2:	8b 49 14             	mov    0x14(%ecx),%ecx
402cc5:	85 c9                	test   %ecx,%ecx
402cc7:	74 30                	je     0x402cf9
402cc9:	8b 01                	mov    (%ecx),%eax
402ccb:	56                   	push   %esi
402ccc:	ff 75 08             	push   0x8(%ebp)
402ccf:	8b 70 0c             	mov    0xc(%eax),%esi
402cd2:	51                   	push   %ecx
402cd3:	8b ce                	mov    %esi,%ecx
402cd5:	ff 15 90 61 40 00    	call   *0x406190
402cdb:	ff d6                	call   *%esi
402cdd:	eb 18                	jmp    0x402cf7
402cdf:	ba 57 00 07 80       	mov    $0x80070057,%edx
402ce4:	eb 13                	jmp    0x402cf9
402ce6:	8b 41 0c             	mov    0xc(%ecx),%eax
402ce9:	56                   	push   %esi
402cea:	ff 75 08             	push   0x8(%ebp)
402ced:	89 51 0c             	mov    %edx,0xc(%ecx)
402cf0:	50                   	push   %eax
402cf1:	ff 15 bc 60 40 00    	call   *0x4060bc
402cf7:	8b d0                	mov    %eax,%edx
402cf9:	8b c2                	mov    %edx,%eax
402cfb:	5e                   	pop    %esi
402cfc:	5d                   	pop    %ebp
402cfd:	c2 08 00             	ret    $0x8
402d00:	8b ff                	mov    %edi,%edi
402d02:	55                   	push   %ebp
402d03:	8b ec                	mov    %esp,%ebp
402d05:	51                   	push   %ecx
402d06:	56                   	push   %esi
402d07:	8b f1                	mov    %ecx,%esi
402d09:	57                   	push   %edi
402d0a:	8d 7e 0c             	lea    0xc(%esi),%edi
402d0d:	c7 06 8c 10 40 00    	movl   $0x40108c,(%esi)
402d13:	83 3f 00             	cmpl   $0x0,(%edi)
402d16:	74 3d                	je     0x402d55
402d18:	ff 15 1c 60 40 00    	call   *0x40601c
402d1e:	39 46 18             	cmp    %eax,0x18(%esi)
402d21:	75 11                	jne    0x402d34
402d23:	ff 37                	push   (%edi)
402d25:	ff 15 d0 60 40 00    	call   *0x4060d0
402d2b:	8b cf                	mov    %edi,%ecx
402d2d:	e8 41 0b 00 00       	call   0x403873
402d32:	eb 21                	jmp    0x402d55
402d34:	8b 07                	mov    (%edi),%eax
402d36:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402d39:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402d3d:	83 27 00             	andl   $0x0,(%edi)
402d40:	51                   	push   %ecx
402d41:	68 a4 14 40 00       	push   $0x4014a4
402d46:	50                   	push   %eax
402d47:	ff 15 bc 60 40 00    	call   *0x4060bc
402d4d:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402d50:	e8 9c 09 00 00       	call   0x4036f1
402d55:	8d 4e 14             	lea    0x14(%esi),%ecx
402d58:	e8 94 09 00 00       	call   0x4036f1
402d5d:	8b cf                	mov    %edi,%ecx
402d5f:	e8 0f 0b 00 00       	call   0x403873
402d64:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402d68:	c7 46 08 01 00 00 c0 	movl   $0xc0000001,0x8(%esi)
402d6f:	74 07                	je     0x402d78
402d71:	56                   	push   %esi
402d72:	e8 ed 11 00 00       	call   0x403f64
402d77:	59                   	pop    %ecx
402d78:	5f                   	pop    %edi
402d79:	8b c6                	mov    %esi,%eax
402d7b:	5e                   	pop    %esi
402d7c:	c9                   	leave
402d7d:	c2 04 00             	ret    $0x4
402d80:	8b ff                	mov    %edi,%edi
402d82:	55                   	push   %ebp
402d83:	8b ec                	mov    %esp,%ebp
402d85:	ff 75 10             	push   0x10(%ebp)
402d88:	ff 75 0c             	push   0xc(%ebp)
402d8b:	68 d4 14 40 00       	push   $0x4014d4
402d90:	ff 75 08             	push   0x8(%ebp)
402d93:	ff 15 88 60 40 00    	call   *0x406088
402d99:	5d                   	pop    %ebp
402d9a:	c2 0c 00             	ret    $0xc
402d9d:	cc                   	int3
402d9e:	cc                   	int3
402d9f:	cc                   	int3
402da0:	8b ff                	mov    %edi,%edi
402da2:	55                   	push   %ebp
402da3:	8b ec                	mov    %esp,%ebp
402da5:	8b 4d 08             	mov    0x8(%ebp),%ecx
402da8:	33 c0                	xor    %eax,%eax
402daa:	40                   	inc    %eax
402dab:	f0 0f c1 41 04       	lock xadd %eax,0x4(%ecx)
402db0:	40                   	inc    %eax
402db1:	5d                   	pop    %ebp
402db2:	c2 04 00             	ret    $0x4
402db5:	cc                   	int3
402db6:	cc                   	int3
402db7:	cc                   	int3
402db8:	cc                   	int3
402db9:	cc                   	int3
402dba:	cc                   	int3
402dbb:	cc                   	int3
402dbc:	cc                   	int3
402dbd:	cc                   	int3
402dbe:	cc                   	int3
402dbf:	cc                   	int3
402dc0:	8b ff                	mov    %edi,%edi
402dc2:	55                   	push   %ebp
402dc3:	8b ec                	mov    %esp,%ebp
402dc5:	56                   	push   %esi
402dc6:	8b 75 08             	mov    0x8(%ebp),%esi
402dc9:	57                   	push   %edi
402dca:	83 cf ff             	or     $0xffffffff,%edi
402dcd:	f0 0f c1 7e 04       	lock xadd %edi,0x4(%esi)
402dd2:	4f                   	dec    %edi
402dd3:	75 22                	jne    0x402df7
402dd5:	85 f6                	test   %esi,%esi
402dd7:	74 1e                	je     0x402df7
402dd9:	6a 00                	push   $0x0
402ddb:	c7 06 38 10 40 00    	movl   $0x401038,(%esi)
402de1:	ff 15 80 60 40 00    	call   *0x406080
402de7:	ff 76 08             	push   0x8(%esi)
402dea:	ff 15 34 60 40 00    	call   *0x406034
402df0:	56                   	push   %esi
402df1:	e8 6e 11 00 00       	call   0x403f64
402df6:	59                   	pop    %ecx
402df7:	8b c7                	mov    %edi,%eax
402df9:	5f                   	pop    %edi
402dfa:	5e                   	pop    %esi
402dfb:	5d                   	pop    %ebp
402dfc:	c2 04 00             	ret    $0x4
402dff:	cc                   	int3
402e00:	8b ff                	mov    %edi,%edi
402e02:	55                   	push   %ebp
402e03:	8b ec                	mov    %esp,%ebp
402e05:	ff 75 10             	push   0x10(%ebp)
402e08:	ff 75 0c             	push   0xc(%ebp)
402e0b:	68 6c 10 40 00       	push   $0x40106c
402e10:	ff 75 08             	push   0x8(%ebp)
402e13:	ff 15 88 60 40 00    	call   *0x406088
402e19:	5d                   	pop    %ebp
402e1a:	c2 0c 00             	ret    $0xc
402e1d:	cc                   	int3
402e1e:	cc                   	int3
402e1f:	cc                   	int3
402e20:	8b ff                	mov    %edi,%edi