4029bf:	50                   	push   %eax
4029c0:	ff 15 5c e0 40 00    	call   *0x40e05c
4029c6:	8b 3d 18 d5 40 00    	mov    0x40d518,%edi
4029cc:	8b f0                	mov    %eax,%esi
4029ce:	85 ff                	test   %edi,%edi
4029d0:	74 12                	je     0x4029e4
4029d2:	56                   	push   %esi
4029d3:	ff 15 68 e0 40 00    	call   *0x40e068
4029d9:	50                   	push   %eax
4029da:	8b cf                	mov    %edi,%ecx
4029dc:	ff 15 f0 e1 40 00    	call   *0x40e1f0
4029e2:	ff d7                	call   *%edi
4029e4:	5f                   	pop    %edi
4029e5:	8b c6                	mov    %esi,%eax
4029e7:	5e                   	pop    %esi
4029e8:	c3                   	ret
4029e9:	8b ff                	mov    %edi,%edi
4029eb:	55                   	push   %ebp
4029ec:	8b ec                	mov    %esp,%ebp
4029ee:	8b 45 08             	mov    0x8(%ebp),%eax
4029f1:	53                   	push   %ebx
4029f2:	56                   	push   %esi
4029f3:	8b f1                	mov    %ecx,%esi
4029f5:	57                   	push   %edi
4029f6:	83 26 00             	andl   $0x0,(%esi)
4029f9:	83 66 04 00          	andl   $0x0,0x4(%esi)
4029fd:	8b 58 04             	mov    0x4(%eax),%ebx
402a00:	8b 38                	mov    (%eax),%edi
402a02:	e8 15 00 00 00       	call   0x402a1c
402a07:	85 ff                	test   %edi,%edi
402a09:	74 08                	je     0x402a13
402a0b:	89 3e                	mov    %edi,(%esi)
402a0d:	89 5e 04             	mov    %ebx,0x4(%esi)
402a10:	f0 ff 07             	lock incl (%edi)
402a13:	5f                   	pop    %edi
402a14:	8b c6                	mov    %esi,%eax
402a16:	5e                   	pop    %esi
402a17:	5b                   	pop    %ebx
402a18:	5d                   	pop    %ebp
402a19:	c2 04 00             	ret    $0x4
402a1c:	8b ff                	mov    %edi,%edi
402a1e:	57                   	push   %edi
402a1f:	8b f9                	mov    %ecx,%edi
402a21:	8b 0f                	mov    (%edi),%ecx
402a23:	85 c9                	test   %ecx,%ecx
402a25:	74 24                	je     0x402a4b
402a27:	83 c8 ff             	or     $0xffffffff,%eax
402a2a:	f0 0f c1 01          	lock xadd %eax,(%ecx)
402a2e:	75 14                	jne    0x402a44
402a30:	56                   	push   %esi
402a31:	8b 37                	mov    (%edi),%esi
402a33:	ff 15 68 e0 40 00    	call   *0x40e068
402a39:	56                   	push   %esi
402a3a:	6a 00                	push   $0x0
402a3c:	50                   	push   %eax
402a3d:	ff 15 64 e0 40 00    	call   *0x40e064
402a43:	5e                   	pop    %esi
402a44:	83 27 00             	andl   $0x0,(%edi)
402a47:	83 67 04 00          	andl   $0x0,0x4(%edi)
402a4b:	5f                   	pop    %edi
402a4c:	c3                   	ret
402a4d:	8b ff                	mov    %edi,%edi
402a4f:	55                   	push   %ebp
402a50:	8b ec                	mov    %esp,%ebp
402a52:	56                   	push   %esi
402a53:	8b 75 0c             	mov    0xc(%ebp),%esi
402a56:	57                   	push   %edi
402a57:	8b f9                	mov    %ecx,%edi
402a59:	85 f6                	test   %esi,%esi
402a5b:	75 09                	jne    0x402a66
402a5d:	e8 ba ff ff ff       	call   0x402a1c
402a62:	b0 01                	mov    $0x1,%al
402a64:	eb 49                	jmp    0x402aaf
402a66:	53                   	push   %ebx
402a67:	8d 46 04             	lea    0x4(%esi),%eax
402a6a:	50                   	push   %eax
402a6b:	6a 00                	push   $0x0
402a6d:	ff 15 68 e0 40 00    	call   *0x40e068
402a73:	50                   	push   %eax
402a74:	ff 15 5c e0 40 00    	call   *0x40e05c
402a7a:	8b d8                	mov    %eax,%ebx
402a7c:	85 db                	test   %ebx,%ebx
402a7e:	75 04                	jne    0x402a84
402a80:	32 c0                	xor    %al,%al
402a82:	eb 2a                	jmp    0x402aae
402a84:	83 23 00             	andl   $0x0,(%ebx)
402a87:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402a8b:	74 10                	je     0x402a9d
402a8d:	56                   	push   %esi
402a8e:	ff 75 08             	push   0x8(%ebp)
402a91:	8d 4b 04             	lea    0x4(%ebx),%ecx
402a94:	8b d6                	mov    %esi,%edx
402a96:	e8 15 fa ff ff       	call   0x4024b0
402a9b:	59                   	pop    %ecx
402a9c:	59                   	pop    %ecx
402a9d:	8b cf                	mov    %edi,%ecx
402a9f:	e8 78 ff ff ff       	call   0x402a1c
402aa4:	89 1f                	mov    %ebx,(%edi)
402aa6:	89 77 04             	mov    %esi,0x4(%edi)
402aa9:	f0 ff 03             	lock incl (%ebx)
402aac:	b0 01                	mov    $0x1,%al
402aae:	5b                   	pop    %ebx
402aaf:	5f                   	pop    %edi
402ab0:	5e                   	pop    %esi
402ab1:	5d                   	pop    %ebp
402ab2:	c2 08 00             	ret    $0x8
402ab5:	33 c0                	xor    %eax,%eax
402ab7:	89 0d 50 d5 40 00    	mov    %ecx,0x40d550
402abd:	40                   	inc    %eax
402abe:	f0 0f c1 05 48 d5 40 	lock xadd %eax,0x40d548
402ac5:	00
402ac6:	40                   	inc    %eax
402ac7:	c3                   	ret
402ac8:	33 c0                	xor    %eax,%eax
402aca:	89 0d f0 d4 40 00    	mov    %ecx,0x40d4f0
402ad0:	40                   	inc    %eax
402ad1:	f0 0f c1 05 6c d5 40 	lock xadd %eax,0x40d56c
402ad8:	00
402ad9:	40                   	inc    %eax
402ada:	c3                   	ret
402adb:	33 c0                	xor    %eax,%eax
402add:	89 0d 64 d5 40 00    	mov    %ecx,0x40d564
402ae3:	40                   	inc    %eax
402ae4:	f0 0f c1 05 c0 d5 40 	lock xadd %eax,0x40d5c0
402aeb:	00
402aec:	40                   	inc    %eax
402aed:	c3                   	ret
402aee:	cc                   	int3
402aef:	cc                   	int3
402af0:	8b ff                	mov    %edi,%edi
402af2:	55                   	push   %ebp
402af3:	8b ec                	mov    %esp,%ebp
402af5:	8b 45 08             	mov    0x8(%ebp),%eax
402af8:	a3 b4 d5 40 00       	mov    %eax,0x40d5b4
402afd:	33 c0                	xor    %eax,%eax
402aff:	40                   	inc    %eax
402b00:	5d                   	pop    %ebp
402b01:	c2 04 00             	ret    $0x4
402b04:	8b ff                	mov    %edi,%edi
402b06:	55                   	push   %ebp
402b07:	8b ec                	mov    %esp,%ebp
402b09:	56                   	push   %esi
402b0a:	8b 35 3c d5 40 00    	mov    0x40d53c,%esi
402b10:	85 f6                	test   %esi,%esi
402b12:	74 10                	je     0x402b24
402b14:	ff 75 08             	push   0x8(%ebp)
402b17:	6a 00                	push   $0x0
402b19:	51                   	push   %ecx
402b1a:	8b ce                	mov    %esi,%ecx
402b1c:	ff 15 f0 e1 40 00    	call   *0x40e1f0
402b22:	ff d6                	call   *%esi
402b24:	6a 07                	push   $0x7
402b26:	59                   	pop    %ecx
402b27:	cd 29                	int    $0x29
402b29:	5e                   	pop    %esi
402b2a:	5d                   	pop    %ebp
402b2b:	c2 04 00             	ret    $0x4
402b2e:	8b ff                	mov    %edi,%edi
402b30:	55                   	push   %ebp
402b31:	8b ec                	mov    %esp,%ebp
402b33:	81 ec 10 01 00 00    	sub    $0x110,%esp
402b39:	a1 50 d1 40 00       	mov    0x40d150,%eax
402b3e:	33 c5                	xor    %ebp,%eax
402b40:	89 45 fc             	mov    %eax,-0x4(%ebp)
402b43:	8b 4d 10             	mov    0x10(%ebp),%ecx
402b46:	53                   	push   %ebx
402b47:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402b4a:	56                   	push   %esi
402b4b:	8b 75 08             	mov    0x8(%ebp),%esi
402b4e:	57                   	push   %edi
402b4f:	33 ff                	xor    %edi,%edi
402b51:	89 8d f0 fe ff ff    	mov    %ecx,-0x110(%ebp)
402b57:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
402b5d:	85 f6                	test   %esi,%esi
402b5f:	74 28                	je     0x402b89
402b61:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
402b67:	50                   	push   %eax
402b68:	56                   	push   %esi
402b69:	6a 06                	push   $0x6
402b6b:	ff 15 88 e0 40 00    	call   *0x40e088
402b71:	85 c0                	test   %eax,%eax
402b73:	75 08                	jne    0x402b7d
402b75:	85 db                	test   %ebx,%ebx
402b77:	74 3b                	je     0x402bb4
402b79:	89 3b                	mov    %edi,(%ebx)
402b7b:	eb 37                	jmp    0x402bb4
402b7d:	8b bd f4 fe ff ff    	mov    -0x10c(%ebp),%edi
402b83:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
402b89:	85 db                	test   %ebx,%ebx
402b8b:	74 0c                	je     0x402b99
402b8d:	8b c6                	mov    %esi,%eax
402b8f:	2b c7                	sub    %edi,%eax
402b91:	f7 de                	neg    %esi
402b93:	1b f6                	sbb    %esi,%esi
402b95:	23 f0                	and    %eax,%esi
402b97:	89 33                	mov    %esi,(%ebx)
402b99:	85 c9                	test   %ecx,%ecx
402b9b:	74 57                	je     0x402bf4
402b9d:	68 04 01 00 00       	push   $0x104
402ba2:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
402ba8:	50                   	push   %eax
402ba9:	57                   	push   %edi
402baa:	ff 15 7c e0 40 00    	call   *0x40e07c
402bb0:	85 c0                	test   %eax,%eax
402bb2:	75 04                	jne    0x402bb8
402bb4:	32 c0                	xor    %al,%al
402bb6:	eb 3e                	jmp    0x402bf6
402bb8:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
402bbe:	8d 51 01             	lea    0x1(%ecx),%edx
402bc1:	8a 01                	mov    (%ecx),%al
402bc3:	41                   	inc    %ecx
402bc4:	84 c0                	test   %al,%al
402bc6:	75 f9                	jne    0x402bc1
402bc8:	2b ca                	sub    %edx,%ecx
402bca:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
402bd0:	03 c1                	add    %ecx,%eax
402bd2:	eb 07                	jmp    0x402bdb
402bd4:	80 78 ff 5c          	cmpb   $0x5c,-0x1(%eax)
402bd8:	74 0b                	je     0x402be5
402bda:	48                   	dec    %eax
402bdb:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
402be1:	3b c1                	cmp    %ecx,%eax
402be3:	77 ef                	ja     0x402bd4
402be5:	8b 55 14             	mov    0x14(%ebp),%edx
402be8:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
402bee:	50                   	push   %eax
402bef:	e8 bb f9 ff ff       	call   0x4025af
402bf4:	b0 01                	mov    $0x1,%al
402bf6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402bf9:	5f                   	pop    %edi
402bfa:	5e                   	pop    %esi
402bfb:	33 cd                	xor    %ebp,%ecx
402bfd:	5b                   	pop    %ebx
402bfe:	e8 5d 72 00 00       	call   0x409e60
402c03:	c9                   	leave
402c04:	c2 10 00             	ret    $0x10
402c07:	cc                   	int3
402c08:	cc                   	int3
402c09:	cc                   	int3
402c0a:	cc                   	int3
402c0b:	cc                   	int3
402c0c:	cc                   	int3
402c0d:	cc                   	int3
402c0e:	cc                   	int3
402c0f:	cc                   	int3
402c10:	80 3d 54 d5 40 00 00 	cmpb   $0x0,0x40d554
402c17:	56                   	push   %esi
402c18:	be 70 d5 40 00       	mov    $0x40d570,%esi
402c1d:	75 16                	jne    0x402c35
402c1f:	6a 40                	push   $0x40
402c21:	56                   	push   %esi
402c22:	6a 00                	push   $0x0
402c24:	68 f0 2a 40 00       	push   $0x402af0
402c29:	e8 00 ff ff ff       	call   0x402b2e
402c2e:	c6 05 54 d5 40 00 01 	movb   $0x1,0x40d554
402c35:	8b c6                	mov    %esi,%eax
402c37:	5e                   	pop    %esi
402c38:	c3                   	ret
402c39:	cc                   	int3
402c3a:	cc                   	int3
402c3b:	cc                   	int3
402c3c:	cc                   	int3
402c3d:	cc                   	int3
402c3e:	cc                   	int3
402c3f:	cc                   	int3
402c40:	ff 25 2c e0 40 00    	jmp    *0x40e02c
402c46:	cc                   	int3
402c47:	cc                   	int3
402c48:	cc                   	int3
402c49:	cc                   	int3
402c4a:	cc                   	int3
402c4b:	cc                   	int3
402c4c:	cc                   	int3
402c4d:	cc                   	int3
402c4e:	cc                   	int3
402c4f:	cc                   	int3
402c50:	8b ff                	mov    %edi,%edi
402c52:	55                   	push   %ebp
402c53:	8b ec                	mov    %esp,%ebp
402c55:	56                   	push   %esi
402c56:	68 78 16 40 00       	push   $0x401678
402c5b:	ff 15 78 e0 40 00    	call   *0x40e078
402c61:	68 98 16 40 00       	push   $0x401698
402c66:	50                   	push   %eax
402c67:	ff 15 80 e0 40 00    	call   *0x40e080
402c6d:	8b f0                	mov    %eax,%esi
402c6f:	85 f6                	test   %esi,%esi
402c71:	74 13                	je     0x402c86
402c73:	ff 75 10             	push   0x10(%ebp)
402c76:	8b ce                	mov    %esi,%ecx
402c78:	ff 75 0c             	push   0xc(%ebp)
402c7b:	ff 75 08             	push   0x8(%ebp)
402c7e:	ff 15 f0 e1 40 00    	call   *0x40e1f0
402c84:	ff d6                	call   *%esi
402c86:	5e                   	pop    %esi
402c87:	5d                   	pop    %ebp
402c88:	c2 0c 00             	ret    $0xc
402c8b:	8b ff                	mov    %edi,%edi
402c8d:	55                   	push   %ebp
402c8e:	8b ec                	mov    %esp,%ebp
402c90:	56                   	push   %esi
402c91:	57                   	push   %edi
402c92:	8b f2                	mov    %edx,%esi
402c94:	8b f9                	mov    %ecx,%edi
402c96:	ff 15 44 e0 40 00    	call   *0x40e044
402c9c:	85 c0                	test   %eax,%eax
402c9e:	75 1d                	jne    0x402cbd
402ca0:	68 9c 02 07 80       	push   $0x8007029c
402ca5:	6a 02                	push   $0x2
402ca7:	ff 75 14             	push   0x14(%ebp)
402caa:	8b d6                	mov    %esi,%edx
402cac:	8b cf                	mov    %edi,%ecx
402cae:	50                   	push   %eax
402caf:	50                   	push   %eax
402cb0:	ff 75 08             	push   0x8(%ebp)
402cb3:	e8 b6 07 00 00       	call   0x40346e
402cb8:	b8 9c 02 00 00       	mov    $0x29c,%eax
402cbd:	5f                   	pop    %edi
402cbe:	5e                   	pop    %esi
402cbf:	5d                   	pop    %ebp
402cc0:	c2 10 00             	ret    $0x10
402cc3:	8b ff                	mov    %edi,%edi
402cc5:	55                   	push   %ebp
402cc6:	8b ec                	mov    %esp,%ebp
402cc8:	ff 75 04             	push   0x4(%ebp)
402ccb:	33 d2                	xor    %edx,%edx
402ccd:	51                   	push   %ecx
402cce:	51                   	push   %ecx
402ccf:	6a 00                	push   $0x0
402cd1:	33 c9                	xor    %ecx,%ecx
402cd3:	e8 b3 ff ff ff       	call   0x402c8b
402cd8:	85 c0                	test   %eax,%eax
402cda:	7e 08                	jle    0x402ce4
402cdc:	0f b7 c0             	movzwl %ax,%eax
402cdf:	0d 00 00 07 80       	or     $0x80070000,%eax
402ce4:	5d                   	pop    %ebp
402ce5:	c3                   	ret
402ce6:	8b ff                	mov    %edi,%edi
402ce8:	55                   	push   %ebp
402ce9:	8b ec                	mov    %esp,%ebp
402ceb:	8b 45 0c             	mov    0xc(%ebp),%eax
402cee:	53                   	push   %ebx
402cef:	8b 5d 08             	mov    0x8(%ebp),%ebx
402cf2:	56                   	push   %esi
402cf3:	33 f6                	xor    %esi,%esi
402cf5:	85 c0                	test   %eax,%eax
402cf7:	74 07                	je     0x402d00
402cf9:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
402cfe:	76 05                	jbe    0x402d05
402d00:	be 57 00 07 80       	mov    $0x80070057,%esi