40589c:	21 90 cc 1b 00 00    	and    %edx,0x1bcc(%eax)
4058a2:	e9 a4 00 00 00       	jmp    0x40594b
4058a7:	39 77 1c             	cmp    %esi,0x1c(%edi)
4058aa:	75 1d                	jne    0x4058c9
4058ac:	21 90 98 04 00 00    	and    %edx,0x498(%eax)
4058b2:	8b 47 50             	mov    0x50(%edi),%eax
4058b5:	21 90 2c 07 00 00    	and    %edx,0x72c(%eax)
4058bb:	8b 47 50             	mov    0x50(%edi),%eax
4058be:	21 90 60 1e 00 00    	and    %edx,0x1e60(%eax)
4058c4:	e9 82 00 00 00       	jmp    0x40594b
4058c9:	8b 4f 18             	mov    0x18(%edi),%ecx
4058cc:	21 90 98 04 00 00    	and    %edx,0x498(%eax)
4058d2:	8b 47 50             	mov    0x50(%edi),%eax
4058d5:	21 90 2c 07 00 00    	and    %edx,0x72c(%eax)
4058db:	8b 47 50             	mov    0x50(%edi),%eax
4058de:	3b ce                	cmp    %esi,%ecx
4058e0:	75 28                	jne    0x40590a
4058e2:	21 90 f4 20 00 00    	and    %edx,0x20f4(%eax)
4058e8:	8b 47 50             	mov    0x50(%edi),%eax
4058eb:	21 90 e8 0e 00 00    	and    %edx,0xee8(%eax)
4058f1:	39 77 10             	cmp    %esi,0x10(%edi)
4058f4:	75 55                	jne    0x40594b
4058f6:	8b 47 50             	mov    0x50(%edi),%eax
4058f9:	21 90 54 0c 00 00    	and    %edx,0xc54(%eax)
4058ff:	8b 47 50             	mov    0x50(%edi),%eax
405902:	21 90 c0 09 00 00    	and    %edx,0x9c0(%eax)
405908:	eb 1d                	jmp    0x405927
40590a:	21 90 c0 09 00 00    	and    %edx,0x9c0(%eax)
405910:	8b 47 50             	mov    0x50(%edi),%eax
405913:	21 90 54 0c 00 00    	and    %edx,0xc54(%eax)
405919:	8b 47 50             	mov    0x50(%edi),%eax
40591c:	21 90 e8 0e 00 00    	and    %edx,0xee8(%eax)
405922:	39 77 10             	cmp    %esi,0x10(%edi)
405925:	75 24                	jne    0x40594b
405927:	8b 47 50             	mov    0x50(%edi),%eax
40592a:	21 90 7c 11 00 00    	and    %edx,0x117c(%eax)
405930:	8b 47 50             	mov    0x50(%edi),%eax
405933:	21 90 10 14 00 00    	and    %edx,0x1410(%eax)
405939:	8b 47 50             	mov    0x50(%edi),%eax
40593c:	21 90 a4 16 00 00    	and    %edx,0x16a4(%eax)
405942:	8b 47 50             	mov    0x50(%edi),%eax
405945:	21 90 38 19 00 00    	and    %edx,0x1938(%eax)
40594b:	5f                   	pop    %edi
40594c:	5e                   	pop    %esi
40594d:	5b                   	pop    %ebx
40594e:	c3                   	ret
40594f:	8b ff                	mov    %edi,%edi
405951:	55                   	push   %ebp
405952:	8b ec                	mov    %esp,%ebp
405954:	51                   	push   %ecx
405955:	56                   	push   %esi
405956:	57                   	push   %edi
405957:	8b f9                	mov    %ecx,%edi
405959:	8b 37                	mov    (%edi),%esi
40595b:	85 f6                	test   %esi,%esi
40595d:	74 38                	je     0x405997
40595f:	83 c8 ff             	or     $0xffffffff,%eax
405962:	f0 0f c1 46 08       	lock xadd %eax,0x8(%esi)
405967:	48                   	dec    %eax
405968:	75 2a                	jne    0x405994
40596a:	83 3e 00             	cmpl   $0x0,(%esi)
40596d:	74 0b                	je     0x40597a
40596f:	ff 36                	push   (%esi)
405971:	ff 15 30 21 41 00    	call   *0x412130
405977:	83 26 00             	andl   $0x0,(%esi)
40597a:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40597e:	74 0d                	je     0x40598d
405980:	ff 76 04             	push   0x4(%esi)
405983:	e8 45 90 00 00       	call   0x40e9cd
405988:	83 66 04 00          	andl   $0x0,0x4(%esi)
40598c:	59                   	pop    %ecx
40598d:	56                   	push   %esi
40598e:	e8 3a 90 00 00       	call   0x40e9cd
405993:	59                   	pop    %ecx
405994:	83 27 00             	andl   $0x0,(%edi)
405997:	5f                   	pop    %edi
405998:	5e                   	pop    %esi
405999:	c9                   	leave
40599a:	c3                   	ret
40599b:	e9 af ff ff ff       	jmp    0x40594f
4059a0:	8b ff                	mov    %edi,%edi
4059a2:	55                   	push   %ebp
4059a3:	8b ec                	mov    %esp,%ebp
4059a5:	56                   	push   %esi
4059a6:	ff 75 08             	push   0x8(%ebp)
4059a9:	8b f1                	mov    %ecx,%esi
4059ab:	83 66 04 00          	andl   $0x0,0x4(%esi)
4059af:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
4059b6:	ff 15 28 21 41 00    	call   *0x412128
4059bc:	89 06                	mov    %eax,(%esi)
4059be:	85 c0                	test   %eax,%eax
4059c0:	75 05                	jne    0x4059c7
4059c2:	39 45 08             	cmp    %eax,0x8(%ebp)
4059c5:	75 07                	jne    0x4059ce
4059c7:	8b c6                	mov    %esi,%eax
4059c9:	5e                   	pop    %esi
4059ca:	5d                   	pop    %ebp
4059cb:	c2 04 00             	ret    $0x4
4059ce:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
4059d3:	e8 49 2d 00 00       	call   0x408721
4059d8:	cc                   	int3
4059d9:	6a 04                	push   $0x4
4059db:	b8 6c f8 40 00       	mov    $0x40f86c,%eax
4059e0:	e8 37 99 00 00       	call   0x40f31c
4059e5:	8b f1                	mov    %ecx,%esi
4059e7:	6a 0c                	push   $0xc
4059e9:	e8 e4 8f 00 00       	call   0x40e9d2
4059ee:	59                   	pop    %ecx
4059ef:	8b c8                	mov    %eax,%ecx
4059f1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4059f4:	33 c0                	xor    %eax,%eax
4059f6:	89 45 fc             	mov    %eax,-0x4(%ebp)
4059f9:	85 c9                	test   %ecx,%ecx
4059fb:	74 08                	je     0x405a05
4059fd:	ff 75 08             	push   0x8(%ebp)
405a00:	e8 9b ff ff ff       	call   0x4059a0
405a05:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405a09:	89 06                	mov    %eax,(%esi)
405a0b:	85 c0                	test   %eax,%eax
405a0d:	74 0a                	je     0x405a19
405a0f:	8b c6                	mov    %esi,%eax
405a11:	e8 e3 98 00 00       	call   0x40f2f9
405a16:	c2 04 00             	ret    $0x4
405a19:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
405a1e:	e8 fe 2c 00 00       	call   0x408721
405a23:	cc                   	int3
405a24:	68 dc 00 00 00       	push   $0xdc
405a29:	b8 92 f8 40 00       	mov    $0x40f892,%eax
405a2e:	e8 e9 98 00 00       	call   0x40f31c
405a33:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405a39:	e8 d2 c3 ff ff       	call   0x401e10
405a3e:	33 db                	xor    %ebx,%ebx
405a40:	89 5d fc             	mov    %ebx,-0x4(%ebp)
405a43:	33 ff                	xor    %edi,%edi
405a45:	53                   	push   %ebx
405a46:	53                   	push   %ebx
405a47:	47                   	inc    %edi
405a48:	57                   	push   %edi
405a49:	53                   	push   %ebx
405a4a:	ff 15 4c 20 41 00    	call   *0x41204c
405a50:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405a56:	e8 a6 c7 ff ff       	call   0x402201
405a5b:	85 c0                	test   %eax,%eax
405a5d:	74 6a                	je     0x405ac9
405a5f:	ff 75 0c             	push   0xc(%ebp)
405a62:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405a68:	ff 75 08             	push   0x8(%ebp)
405a6b:	e8 14 cd ff ff       	call   0x402784
405a70:	85 c0                	test   %eax,%eax
405a72:	74 55                	je     0x405ac9
405a74:	39 7d ec             	cmp    %edi,-0x14(%ebp)
405a77:	75 0a                	jne    0x405a83
405a79:	e8 45 df ff ff       	call   0x4039c3
405a7e:	e9 a3 00 00 00       	jmp    0x405b26
405a83:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405a89:	e8 f9 d3 ff ff       	call   0x402e87
405a8e:	85 c0                	test   %eax,%eax
405a90:	74 37                	je     0x405ac9
405a92:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405a98:	e8 b7 00 00 00       	call   0x405b54
405a9d:	85 c0                	test   %eax,%eax
405a9f:	74 28                	je     0x405ac9
405aa1:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405aa7:	e8 02 02 00 00       	call   0x405cae
405aac:	85 c0                	test   %eax,%eax
405aae:	74 19                	je     0x405ac9
405ab0:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405ab6:	e8 4b df ff ff       	call   0x403a06
405abb:	85 c0                	test   %eax,%eax
405abd:	75 67                	jne    0x405b26
405abf:	ff 15 48 20 41 00    	call   *0x412048
405ac5:	85 c0                	test   %eax,%eax
405ac7:	74 41                	je     0x405b0a
405ac9:	e8 1e 3c 00 00       	call   0x4096ec
405ace:	50                   	push   %eax
405acf:	b9 89 13 00 00       	mov    $0x1389,%ecx
405ad4:	e8 78 3f 00 00       	call   0x409a51
405ad9:	50                   	push   %eax
405ada:	68 9c 16 40 00       	push   $0x40169c
405adf:	53                   	push   %ebx
405ae0:	6a 02                	push   $0x2
405ae2:	6a 02                	push   $0x2
405ae4:	e8 f0 97 00 00       	call   0x40f2d9
405ae9:	59                   	pop    %ecx
405aea:	50                   	push   %eax
405aeb:	e8 54 4c 00 00       	call   0x40a744
405af0:	83 c4 18             	add    $0x18,%esp
405af3:	e8 1d 3e 00 00       	call   0x409915
405af8:	a1 a0 13 41 00       	mov    0x4113a0,%eax
405afd:	85 c0                	test   %eax,%eax
405aff:	74 3c                	je     0x405b3d
405b01:	50                   	push   %eax
405b02:	ff 15 dc 20 41 00    	call   *0x4120dc
405b08:	eb 33                	jmp    0x405b3d
405b0a:	b9 f7 01 00 00       	mov    $0x1f7,%ecx
405b0f:	e8 3d 3f 00 00       	call   0x409a51
405b14:	57                   	push   %edi
405b15:	8b f0                	mov    %eax,%esi
405b17:	e8 bd 97 00 00       	call   0x40f2d9
405b1c:	59                   	pop    %ecx
405b1d:	8b d6                	mov    %esi,%edx
405b1f:	8b c8                	mov    %eax,%ecx
405b21:	e8 c7 49 00 00       	call   0x40a4ed
405b26:	e8 ea 3d 00 00       	call   0x409915
405b2b:	a1 a0 13 41 00       	mov    0x4113a0,%eax
405b30:	85 c0                	test   %eax,%eax
405b32:	74 07                	je     0x405b3b
405b34:	50                   	push   %eax
405b35:	ff 15 dc 20 41 00    	call   *0x4120dc
405b3b:	8b fb                	mov    %ebx,%edi
405b3d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405b41:	8d 8d 18 ff ff ff    	lea    -0xe8(%ebp),%ecx
405b47:	e8 3d c4 ff ff       	call   0x401f89
405b4c:	8b c7                	mov    %edi,%eax
405b4e:	e8 a6 97 00 00       	call   0x40f2f9
405b53:	c3                   	ret
405b54:	6a 08                	push   $0x8
405b56:	b8 b0 f8 40 00       	mov    $0x40f8b0,%eax
405b5b:	e8 ef 97 00 00       	call   0x40f34f
405b60:	8b f9                	mov    %ecx,%edi
405b62:	83 a7 b0 00 00 00 00 	andl   $0x0,0xb0(%edi)
405b69:	8d 77 0c             	lea    0xc(%edi),%esi
405b6c:	8b ce                	mov    %esi,%ecx
405b6e:	e8 40 1d 00 00       	call   0x4078b3
405b73:	8d 5f 28             	lea    0x28(%edi),%ebx
405b76:	8d 87 d8 00 00 00    	lea    0xd8(%edi),%eax
405b7c:	8d 4f 04             	lea    0x4(%edi),%ecx
405b7f:	51                   	push   %ecx
405b80:	51                   	push   %ecx
405b81:	50                   	push   %eax
405b82:	51                   	push   %ecx
405b83:	ff 77 38             	push   0x38(%edi)
405b86:	56                   	push   %esi
405b87:	8d 47 30             	lea    0x30(%edi),%eax
405b8a:	50                   	push   %eax
405b8b:	8d 47 2c             	lea    0x2c(%edi),%eax
405b8e:	50                   	push   %eax
405b8f:	ff 33                	push   (%ebx)
405b91:	8b d1                	mov    %ecx,%edx
405b93:	8b 0f                	mov    (%edi),%ecx
405b95:	e8 b6 15 00 00       	call   0x407150
405b9a:	8b f0                	mov    %eax,%esi
405b9c:	ff 15 48 20 41 00    	call   *0x412048
405ba2:	89 45 ec             	mov    %eax,-0x14(%ebp)
405ba5:	85 f6                	test   %esi,%esi
405ba7:	0f 84 f9 00 00 00    	je     0x405ca6
405bad:	8d b7 d8 00 00 00    	lea    0xd8(%edi),%esi
405bb3:	83 3e 01             	cmpl   $0x1,(%esi)
405bb6:	75 23                	jne    0x405bdb
405bb8:	83 7f 40 01          	cmpl   $0x1,0x40(%edi)
405bbc:	75 1d                	jne    0x405bdb
405bbe:	8b 57 0c             	mov    0xc(%edi),%edx
405bc1:	8b 4f 04             	mov    0x4(%edi),%ecx
405bc4:	e8 ee 25 00 00       	call   0x4081b7
405bc9:	83 f8 01             	cmp    $0x1,%eax
405bcc:	8b 45 ec             	mov    -0x14(%ebp),%eax
405bcf:	74 0a                	je     0x405bdb
405bd1:	c7 87 b0 00 00 00 01 	movl   $0x1,0xb0(%edi)
405bd8:	00 00 00
405bdb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405bdf:	b9 64 10 04 80       	mov    $0x80041064,%ecx
405be4:	3b c1                	cmp    %ecx,%eax
405be6:	75 30                	jne    0x405c18
405be8:	e8 1d 1d 00 00       	call   0x40790a
405bed:	e8 fa 3a 00 00       	call   0x4096ec
405bf2:	50                   	push   %eax
405bf3:	b9 8a 13 00 00       	mov    $0x138a,%ecx
405bf8:	e8 54 3e 00 00       	call   0x409a51
405bfd:	50                   	push   %eax
405bfe:	68 9c 16 40 00       	push   $0x40169c
405c03:	6a 00                	push   $0x0
405c05:	6a 02                	push   $0x2
405c07:	6a 02                	push   $0x2
405c09:	e8 cb 96 00 00       	call   0x40f2d9
405c0e:	59                   	pop    %ecx
405c0f:	50                   	push   %eax
405c10:	e8 2f 4b 00 00       	call   0x40a744
405c15:	83 c4 18             	add    $0x18,%esp
405c18:	83 3e 00             	cmpl   $0x0,(%esi)
405c1b:	75 25                	jne    0x405c42
405c1d:	8b 57 0c             	mov    0xc(%edi),%edx
405c20:	8b 4f 04             	mov    0x4(%edi),%ecx
405c23:	e8 0b 22 00 00       	call   0x407e33
405c28:	3d 88 13 00 00       	cmp    $0x1388,%eax
405c2d:	73 13                	jae    0x405c42
405c2f:	b9 80 15 00 00       	mov    $0x1580,%ecx
405c34:	e8 18 3e 00 00       	call   0x409a51
405c39:	8b c8                	mov    %eax,%ecx
405c3b:	e8 cc 3a 00 00       	call   0x40970c
405c40:	eb 64                	jmp    0x405ca6
405c42:	81 c7 8c 00 00 00    	add    $0x8c,%edi
405c48:	68 98 16 40 00       	push   $0x401698
405c4d:	8b cf                	mov    %edi,%ecx
405c4f:	ff 15 2c 22 41 00    	call   *0x41222c
405c55:	8b cb                	mov    %ebx,%ecx
405c57:	ff 15 38 22 41 00    	call   *0x412238
405c5d:	8b 40 04             	mov    0x4(%eax),%eax
405c60:	85 c0                	test   %eax,%eax
405c62:	74 25                	je     0x405c89
405c64:	53                   	push   %ebx
405c65:	8b cf                	mov    %edi,%ecx
405c67:	ff 15 24 22 41 00    	call   *0x412224
405c6d:	8b 0b                	mov    (%ebx),%ecx
405c6f:	e8 2c 53 00 00       	call   0x40afa0
405c74:	85 c0                	test   %eax,%eax
405c76:	75 11                	jne    0x405c89
405c78:	ff 33                	push   (%ebx)
405c7a:	68 c0 16 40 00       	push   $0x4016c0
405c7f:	57                   	push   %edi
405c80:	ff 15 04 22 41 00    	call   *0x412204
405c86:	83 c4 0c             	add    $0xc,%esp
405c89:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405c8d:	33 c0                	xor    %eax,%eax
405c8f:	40                   	inc    %eax
405c90:	eb 16                	jmp    0x405ca8
405c92:	b9 0e 00 07 80       	mov    $0x8007000e,%ecx
405c97:	e8 6e 1c 00 00       	call   0x40790a
405c9c:	b8 a2 5c 40 00       	mov    $0x405ca2,%eax
405ca1:	c3                   	ret
405ca2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405ca6:	33 c0                	xor    %eax,%eax
405ca8:	e8 4c 96 00 00       	call   0x40f2f9
405cad:	c3                   	ret
405cae:	6a 1c                	push   $0x1c
405cb0:	b8 db f8 40 00       	mov    $0x40f8db,%eax
405cb5:	e8 95 96 00 00       	call   0x40f34f
405cba:	8b f9                	mov    %ecx,%edi
405cbc:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
405cc0:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
405cc4:	75 15                	jne    0x405cdb
405cc6:	68 fd 00 03 80       	push   $0x800300fd
405ccb:	ff 15 74 20 41 00    	call   *0x412074
405cd1:	e8 1e 3b 00 00       	call   0x4097f4
405cd6:	e9 94 01 00 00       	jmp    0x405e6f
405cdb:	8d 5f 08             	lea    0x8(%edi),%ebx
405cde:	8b 0b                	mov    (%ebx),%ecx
405ce0:	85 c9                	test   %ecx,%ecx
405ce2:	74 13                	je     0x405cf7
405ce4:	8b 01                	mov    (%ecx),%eax
405ce6:	51                   	push   %ecx
405ce7:	8b 70 08             	mov    0x8(%eax),%esi
405cea:	8b ce                	mov    %esi,%ecx
405cec:	ff 15 20 23 41 00    	call   *0x412320
405cf2:	ff d6                	call   *%esi
405cf4:	83 23 00             	andl   $0x0,(%ebx)
405cf7:	ff 77 60             	push   0x60(%edi)
405cfa:	8d 4d e8             	lea    -0x18(%ebp),%ecx
405cfd:	e8 d7 fc ff ff       	call   0x4059d9
405d02:	8b f0                	mov    %eax,%esi
405d04:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)