406967:	68 50 11 40 00       	push   $0x401150
40696c:	ff 75 ec             	push   -0x14(%ebp)
40696f:	ff 15 bc 22 41 00    	call   *0x4122bc
406975:	59                   	pop    %ecx
406976:	59                   	pop    %ecx
406977:	85 c0                	test   %eax,%eax
406979:	75 14                	jne    0x40698f
40697b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40697f:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406982:	ff 15 30 22 41 00    	call   *0x412230
406988:	33 c0                	xor    %eax,%eax
40698a:	e9 87 00 00 00       	jmp    0x406a16
40698f:	68 e0 16 40 00       	push   $0x4016e0
406994:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406997:	ff 15 14 22 41 00    	call   *0x412214
40699d:	83 ce ff             	or     $0xffffffff,%esi
4069a0:	3b c6                	cmp    %esi,%eax
4069a2:	74 05                	je     0x4069a9
4069a4:	89 75 fc             	mov    %esi,-0x4(%ebp)
4069a7:	eb d6                	jmp    0x40697f
4069a9:	6a 5c                	push   $0x5c
4069ab:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4069ae:	ff 15 10 22 41 00    	call   *0x412210
4069b4:	3b c6                	cmp    %esi,%eax
4069b6:	74 39                	je     0x4069f1
4069b8:	40                   	inc    %eax
4069b9:	50                   	push   %eax
4069ba:	8d 45 e8             	lea    -0x18(%ebp),%eax
4069bd:	50                   	push   %eax
4069be:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4069c1:	ff 15 0c 22 41 00    	call   *0x41220c
4069c7:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4069cb:	50                   	push   %eax
4069cc:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4069cf:	ff 15 24 22 41 00    	call   *0x412224
4069d5:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4069d9:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4069dc:	ff 15 30 22 41 00    	call   *0x412230
4069e2:	6a 5c                	push   $0x5c
4069e4:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4069e7:	ff 15 10 22 41 00    	call   *0x412210
4069ed:	3b c6                	cmp    %esi,%eax
4069ef:	75 b3                	jne    0x4069a4
4069f1:	89 75 fc             	mov    %esi,-0x4(%ebp)
4069f4:	eb 14                	jmp    0x406a0a
4069f6:	b9 06 10 04 80       	mov    $0x80041006,%ecx
4069fb:	e8 0a 0f 00 00       	call   0x40790a
406a00:	b8 7b 69 40 00       	mov    $0x40697b,%eax
406a05:	c3                   	ret
406a06:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406a0a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406a0d:	ff 15 30 22 41 00    	call   *0x412230
406a13:	33 c0                	xor    %eax,%eax
406a15:	40                   	inc    %eax
406a16:	e8 de 88 00 00       	call   0x40f2f9
406a1b:	c3                   	ret
406a1c:	6a 0c                	push   $0xc
406a1e:	b8 a1 f9 40 00       	mov    $0x40f9a1,%eax
406a23:	e8 27 89 00 00       	call   0x40f34f
406a28:	8b f2                	mov    %edx,%esi
406a2a:	8b f9                	mov    %ecx,%edi
406a2c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406a2f:	ff 15 f8 21 41 00    	call   *0x4121f8
406a35:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406a39:	85 ff                	test   %edi,%edi
406a3b:	0f 84 e8 00 00 00    	je     0x406b29
406a41:	8b cf                	mov    %edi,%ecx
406a43:	e8 43 3a 00 00       	call   0x40a48b
406a48:	85 c0                	test   %eax,%eax
406a4a:	0f 84 d9 00 00 00    	je     0x406b29
406a50:	33 db                	xor    %ebx,%ebx
406a52:	43                   	inc    %ebx
406a53:	88 5d fc             	mov    %bl,-0x4(%ebp)
406a56:	83 26 00             	andl   $0x0,(%esi)
406a59:	6a 00                	push   $0x0
406a5b:	8b cf                	mov    %edi,%ecx
406a5d:	e8 8a 32 00 00       	call   0x409cec
406a62:	3b c3                	cmp    %ebx,%eax
406a64:	75 14                	jne    0x406a7a
406a66:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406a6a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406a6d:	ff 15 30 22 41 00    	call   *0x412230
406a73:	33 c0                	xor    %eax,%eax
406a75:	e9 c3 00 00 00       	jmp    0x406b3d
406a7a:	57                   	push   %edi
406a7b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406a7e:	ff 15 2c 22 41 00    	call   *0x41222c
406a84:	8b 4d ec             	mov    -0x14(%ebp),%ecx
406a87:	e8 14 45 00 00       	call   0x40afa0
406a8c:	3b c3                	cmp    %ebx,%eax
406a8e:	75 39                	jne    0x406ac9
406a90:	6a 02                	push   $0x2
406a92:	8d 45 e8             	lea    -0x18(%ebp),%eax
406a95:	50                   	push   %eax
406a96:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406a99:	ff 15 0c 22 41 00    	call   *0x41220c
406a9f:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
406aa3:	50                   	push   %eax
406aa4:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406aa7:	ff 15 24 22 41 00    	call   *0x412224
406aad:	88 5d fc             	mov    %bl,-0x4(%ebp)
406ab0:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406ab3:	ff 15 30 22 41 00    	call   *0x412230
406ab9:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406abc:	ff 15 38 22 41 00    	call   *0x412238
406ac2:	8b 40 04             	mov    0x4(%eax),%eax
406ac5:	85 c0                	test   %eax,%eax
406ac7:	74 9d                	je     0x406a66
406ac9:	68 fc 16 40 00       	push   $0x4016fc
406ace:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406ad1:	ff 15 14 22 41 00    	call   *0x412214
406ad7:	83 cf ff             	or     $0xffffffff,%edi
406ada:	3b c7                	cmp    %edi,%eax
406adc:	74 05                	je     0x406ae3
406ade:	89 7d fc             	mov    %edi,-0x4(%ebp)
406ae1:	eb 87                	jmp    0x406a6a
406ae3:	6a 5c                	push   $0x5c
406ae5:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406ae8:	ff 15 10 22 41 00    	call   *0x412210
406aee:	3b c7                	cmp    %edi,%eax
406af0:	75 ec                	jne    0x406ade
406af2:	68 38 17 40 00       	push   $0x401738
406af7:	ff 75 ec             	push   -0x14(%ebp)
406afa:	ff 15 bc 22 41 00    	call   *0x4122bc
406b00:	59                   	pop    %ecx
406b01:	59                   	pop    %ecx
406b02:	85 c0                	test   %eax,%eax
406b04:	75 04                	jne    0x406b0a
406b06:	89 1e                	mov    %ebx,(%esi)
406b08:	eb 0a                	jmp    0x406b14
406b0a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
406b0d:	e8 d0 44 00 00       	call   0x40afe2
406b12:	89 06                	mov    %eax,(%esi)
406b14:	89 7d fc             	mov    %edi,-0x4(%ebp)
406b17:	eb 19                	jmp    0x406b32
406b19:	b9 06 10 04 80       	mov    $0x80041006,%ecx
406b1e:	e8 e7 0d 00 00       	call   0x40790a
406b23:	b8 66 6a 40 00       	mov    $0x406a66,%eax
406b28:	c3                   	ret
406b29:	33 db                	xor    %ebx,%ebx
406b2b:	43                   	inc    %ebx
406b2c:	89 1e                	mov    %ebx,(%esi)
406b2e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406b32:	8d 4d ec             	lea    -0x14(%ebp),%ecx
406b35:	ff 15 30 22 41 00    	call   *0x412230
406b3b:	8b c3                	mov    %ebx,%eax
406b3d:	e8 b7 87 00 00       	call   0x40f2f9
406b42:	c3                   	ret
406b43:	6a 10                	push   $0x10
406b45:	b8 bc f9 40 00       	mov    $0x40f9bc,%eax
406b4a:	e8 00 88 00 00       	call   0x40f34f
406b4f:	8b f9                	mov    %ecx,%edi
406b51:	89 7d e8             	mov    %edi,-0x18(%ebp)
406b54:	33 db                	xor    %ebx,%ebx
406b56:	89 5d ec             	mov    %ebx,-0x14(%ebp)
406b59:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406b5c:	85 ff                	test   %edi,%edi
406b5e:	74 48                	je     0x406ba8
406b60:	39 1f                	cmp    %ebx,(%edi)
406b62:	75 44                	jne    0x406ba8
406b64:	53                   	push   %ebx
406b65:	53                   	push   %ebx
406b66:	ff 15 e4 21 41 00    	call   *0x4121e4
406b6c:	85 c0                	test   %eax,%eax
406b6e:	78 7b                	js     0x406beb
406b70:	53                   	push   %ebx
406b71:	53                   	push   %ebx
406b72:	53                   	push   %ebx
406b73:	6a 03                	push   $0x3
406b75:	33 f6                	xor    %esi,%esi
406b77:	46                   	inc    %esi
406b78:	56                   	push   %esi
406b79:	53                   	push   %ebx
406b7a:	53                   	push   %ebx
406b7b:	6a ff                	push   $0xffffffff
406b7d:	53                   	push   %ebx
406b7e:	ff 15 e0 21 41 00    	call   *0x4121e0
406b84:	85 c0                	test   %eax,%eax
406b86:	78 63                	js     0x406beb
406b88:	57                   	push   %edi
406b89:	68 88 1a 40 00       	push   $0x401a88
406b8e:	56                   	push   %esi
406b8f:	53                   	push   %ebx
406b90:	68 78 1a 40 00       	push   $0x401a78
406b95:	ff 15 dc 21 41 00    	call   *0x4121dc
406b9b:	85 c0                	test   %eax,%eax
406b9d:	78 4c                	js     0x406beb
406b9f:	89 75 ec             	mov    %esi,-0x14(%ebp)
406ba2:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406ba6:	eb 3b                	jmp    0x406be3
406ba8:	b9 08 10 04 80       	mov    $0x80041008,%ecx
406bad:	eb 3e                	jmp    0x406bed
406baf:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406bb2:	8b 48 04             	mov    0x4(%eax),%ecx
406bb5:	e8 50 0d 00 00       	call   0x40790a
406bba:	8b 7d e8             	mov    -0x18(%ebp),%edi
406bbd:	8b 0f                	mov    (%edi),%ecx
406bbf:	85 c9                	test   %ecx,%ecx
406bc1:	74 13                	je     0x406bd6
406bc3:	8b 01                	mov    (%ecx),%eax
406bc5:	51                   	push   %ecx
406bc6:	8b 70 08             	mov    0x8(%eax),%esi
406bc9:	8b ce                	mov    %esi,%ecx
406bcb:	ff 15 20 23 41 00    	call   *0x412320
406bd1:	ff d6                	call   *%esi
406bd3:	83 27 00             	andl   $0x0,(%edi)
406bd6:	b8 dc 6b 40 00       	mov    $0x406bdc,%eax
406bdb:	c3                   	ret
406bdc:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406be0:	8b 75 ec             	mov    -0x14(%ebp),%esi
406be3:	8b c6                	mov    %esi,%eax
406be5:	e8 0f 87 00 00       	call   0x40f2f9
406bea:	c3                   	ret
406beb:	8b c8                	mov    %eax,%ecx
406bed:	e8 2f 1b 00 00       	call   0x408721
406bf2:	cc                   	int3
406bf3:	6a 4c                	push   $0x4c
406bf5:	b8 58 fa 40 00       	mov    $0x40fa58,%eax
406bfa:	e8 50 87 00 00       	call   0x40f34f
406bff:	8b c2                	mov    %edx,%eax
406c01:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406c04:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406c07:	33 db                	xor    %ebx,%ebx
406c09:	89 5d cc             	mov    %ebx,-0x34(%ebp)
406c0c:	89 5d d8             	mov    %ebx,-0x28(%ebp)
406c0f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
406c12:	89 5d fc             	mov    %ebx,-0x4(%ebp)
406c15:	89 5d e8             	mov    %ebx,-0x18(%ebp)
406c18:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
406c1c:	8b f3                	mov    %ebx,%esi
406c1e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406c21:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
406c25:	8b fb                	mov    %ebx,%edi
406c27:	89 7d ec             	mov    %edi,-0x14(%ebp)
406c2a:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
406c2e:	85 c9                	test   %ecx,%ecx
406c30:	0f 84 c9 04 00 00    	je     0x4070ff
406c36:	85 c0                	test   %eax,%eax
406c38:	0f 84 c1 04 00 00    	je     0x4070ff
406c3e:	39 18                	cmp    %ebx,(%eax)
406c40:	0f 85 b9 04 00 00    	jne    0x4070ff
406c46:	8b 45 24             	mov    0x24(%ebp),%eax
406c49:	85 c0                	test   %eax,%eax
406c4b:	74 02                	je     0x406c4f
406c4d:	89 18                	mov    %ebx,(%eax)
406c4f:	8b 45 20             	mov    0x20(%ebp),%eax
406c52:	85 c0                	test   %eax,%eax
406c54:	74 02                	je     0x406c58
406c56:	89 18                	mov    %ebx,(%eax)
406c58:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
406c5c:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
406c5f:	8d 55 d8             	lea    -0x28(%ebp),%edx
406c62:	8b 4d 08             	mov    0x8(%ebp),%ecx
406c65:	e8 b2 fd ff ff       	call   0x406a1c
406c6a:	85 c0                	test   %eax,%eax
406c6c:	0f 84 d3 04 00 00    	je     0x407145
406c72:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406c75:	e8 ad fc ff ff       	call   0x406927
406c7a:	85 c0                	test   %eax,%eax
406c7c:	75 0a                	jne    0x406c88
406c7e:	b9 25 05 00 00       	mov    $0x525,%ecx
406c83:	e9 c2 04 00 00       	jmp    0x40714a
406c88:	68 a8 16 40 00       	push   $0x4016a8
406c8d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406c90:	e8 4b 1a 00 00       	call   0x4086e0
406c95:	8b 45 d8             	mov    -0x28(%ebp),%eax
406c98:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406c9c:	0f 84 df 01 00 00    	je     0x406e81
406ca2:	85 c0                	test   %eax,%eax
406ca4:	0f 85 d7 01 00 00    	jne    0x406e81
406caa:	ff 75 08             	push   0x8(%ebp)
406cad:	8d 4d d0             	lea    -0x30(%ebp),%ecx
406cb0:	e8 2b 1a 00 00       	call   0x4086e0
406cb5:	8b 4d 08             	mov    0x8(%ebp),%ecx
406cb8:	e8 e3 42 00 00       	call   0x40afa0
406cbd:	68 a8 16 40 00       	push   $0x4016a8
406cc2:	83 f8 01             	cmp    $0x1,%eax
406cc5:	0f 85 94 00 00 00    	jne    0x406d5f
406ccb:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406cce:	e8 06 ed ff ff       	call   0x4059d9
406cd3:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
406cd7:	68 50 11 40 00       	push   $0x401150
406cdc:	8d 4d c0             	lea    -0x40(%ebp),%ecx
406cdf:	e8 f5 ec ff ff       	call   0x4059d9
406ce4:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
406ce8:	8d 45 c0             	lea    -0x40(%ebp),%eax
406ceb:	50                   	push   %eax
406cec:	8d 45 b0             	lea    -0x50(%ebp),%eax
406cef:	50                   	push   %eax
406cf0:	8d 4d d0             	lea    -0x30(%ebp),%ecx
406cf3:	e8 a7 19 00 00       	call   0x40869f
406cf8:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
406cfc:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406cff:	51                   	push   %ecx
406d00:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
406d03:	51                   	push   %ecx
406d04:	8b c8                	mov    %eax,%ecx
406d06:	e8 94 19 00 00       	call   0x40869f
406d0b:	89 45 b8             	mov    %eax,-0x48(%ebp)
406d0e:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
406d12:	8b 08                	mov    (%eax),%ecx
406d14:	85 c9                	test   %ecx,%ecx
406d16:	74 04                	je     0x406d1c
406d18:	f0 ff 41 08          	lock incl 0x8(%ecx)
406d1c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406d1f:	e8 2b ec ff ff       	call   0x40594f
406d24:	8b 4d b8             	mov    -0x48(%ebp),%ecx
406d27:	8b 01                	mov    (%ecx),%eax
406d29:	89 45 e0             	mov    %eax,-0x20(%ebp)
406d2c:	89 45 e8             	mov    %eax,-0x18(%ebp)
406d2f:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
406d33:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
406d36:	e8 14 ec ff ff       	call   0x40594f
406d3b:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
406d3f:	8d 4d b0             	lea    -0x50(%ebp),%ecx
406d42:	e8 08 ec ff ff       	call   0x40594f
406d47:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
406d4b:	8d 4d c0             	lea    -0x40(%ebp),%ecx
406d4e:	e8 fc eb ff ff       	call   0x40594f
406d53:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
406d57:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406d5a:	e9 ca 00 00 00       	jmp    0x406e29
406d5f:	8d 4d b8             	lea    -0x48(%ebp),%ecx
406d62:	e8 72 ec ff ff       	call   0x4059d9
406d67:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
406d6b:	68 50 11 40 00       	push   $0x401150
406d70:	8d 4d c0             	lea    -0x40(%ebp),%ecx
406d73:	e8 61 ec ff ff       	call   0x4059d9
406d78:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
406d7c:	68 3c 17 40 00       	push   $0x40173c
406d81:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406d84:	e8 50 ec ff ff       	call   0x4059d9
406d89:	89 45 b0             	mov    %eax,-0x50(%ebp)
406d8c:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
406d93:	8d 45 d0             	lea    -0x30(%ebp),%eax
406d96:	50                   	push   %eax
406d97:	8d 4d bc             	lea    -0x44(%ebp),%ecx
406d9a:	e8 ba 18 00 00       	call   0x408659
406d9f:	8d 45 c0             	lea    -0x40(%ebp),%eax
406da2:	50                   	push   %eax
406da3:	8d 45 ac             	lea    -0x54(%ebp),%eax
406da6:	50                   	push   %eax
406da7:	8b 4d b0             	mov    -0x50(%ebp),%ecx
406daa:	e8 f0 18 00 00       	call   0x40869f
406daf:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
406db3:	8d 4d b8             	lea    -0x48(%ebp),%ecx
406db6:	51                   	push   %ecx
406db7:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
406dba:	51                   	push   %ecx
406dbb:	8b c8                	mov    %eax,%ecx