40594f:	5e                   	pop    %esi
405950:	8b c3                	mov    %ebx,%eax
405952:	5b                   	pop    %ebx
405953:	5d                   	pop    %ebp
405954:	c2 0c 00             	ret    $0xc
405957:	8b ff                	mov    %edi,%edi
405959:	55                   	push   %ebp
40595a:	8b ec                	mov    %esp,%ebp
40595c:	8b 55 0c             	mov    0xc(%ebp),%edx
40595f:	8d 45 14             	lea    0x14(%ebp),%eax
405962:	56                   	push   %esi
405963:	8b 75 08             	mov    0x8(%ebp),%esi
405966:	2b d6                	sub    %esi,%edx
405968:	50                   	push   %eax
405969:	ff 75 10             	push   0x10(%ebp)
40596c:	d1 fa                	sar    $1,%edx
40596e:	8b ce                	mov    %esi,%ecx
405970:	e8 d7 fe ff ff       	call   0x40584c
405975:	39 75 0c             	cmp    %esi,0xc(%ebp)
405978:	74 17                	je     0x405991
40597a:	8b ce                	mov    %esi,%ecx
40597c:	8d 51 02             	lea    0x2(%ecx),%edx
40597f:	66 8b 01             	mov    (%ecx),%ax
405982:	83 c1 02             	add    $0x2,%ecx
405985:	66 85 c0             	test   %ax,%ax
405988:	75 f5                	jne    0x40597f
40598a:	2b ca                	sub    %edx,%ecx
40598c:	d1 f9                	sar    $1,%ecx
40598e:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
405991:	8b c6                	mov    %esi,%eax
405993:	5e                   	pop    %esi
405994:	5d                   	pop    %ebp
405995:	c3                   	ret
405996:	8b ff                	mov    %edi,%edi
405998:	55                   	push   %ebp
405999:	8b ec                	mov    %esp,%ebp
40599b:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
4059a1:	a1 18 51 41 00       	mov    0x415118,%eax
4059a6:	33 c5                	xor    %ebp,%eax
4059a8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4059ab:	53                   	push   %ebx
4059ac:	8b d9                	mov    %ecx,%ebx
4059ae:	8b c2                	mov    %edx,%eax
4059b0:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
4059b6:	56                   	push   %esi
4059b7:	8b 75 08             	mov    0x8(%ebp),%esi
4059ba:	85 db                	test   %ebx,%ebx
4059bc:	0f 84 c2 01 00 00    	je     0x405b84
4059c2:	57                   	push   %edi
4059c3:	8b 3d 18 97 41 00    	mov    0x419718,%edi
4059c9:	33 c9                	xor    %ecx,%ecx
4059cb:	66 89 0b             	mov    %cx,(%ebx)
4059ce:	85 ff                	test   %edi,%edi
4059d0:	74 20                	je     0x4059f2
4059d2:	38 0d 24 97 41 00    	cmp    %cl,0x419724
4059d8:	74 18                	je     0x4059f2
4059da:	50                   	push   %eax
4059db:	53                   	push   %ebx
4059dc:	56                   	push   %esi
4059dd:	8b cf                	mov    %edi,%ecx
4059df:	ff 15 90 b3 41 00    	call   *0x41b390
4059e5:	ff d7                	call   *%edi
4059e7:	33 c9                	xor    %ecx,%ecx
4059e9:	66 39 0b             	cmp    %cx,(%ebx)
4059ec:	0f 85 91 01 00 00    	jne    0x405b83
4059f2:	8b 06                	mov    (%esi),%eax
4059f4:	c7 85 f8 fd ff ff 18 	movl   $0x402518,-0x208(%ebp)
4059fb:	25 40 00
4059fe:	2b c1                	sub    %ecx,%eax
405a00:	74 33                	je     0x405a35
405a02:	83 e8 01             	sub    $0x1,%eax
405a05:	74 22                	je     0x405a29
405a07:	83 e8 01             	sub    $0x1,%eax
405a0a:	74 11                	je     0x405a1d
405a0c:	83 e8 01             	sub    $0x1,%eax
405a0f:	75 2e                	jne    0x405a3f
405a11:	c7 85 f8 fd ff ff 80 	movl   $0x402580,-0x208(%ebp)
405a18:	25 40 00
405a1b:	eb 22                	jmp    0x405a3f
405a1d:	c7 85 f8 fd ff ff 78 	movl   $0x402578,-0x208(%ebp)
405a24:	25 40 00
405a27:	eb 16                	jmp    0x405a3f
405a29:	c7 85 f8 fd ff ff 6c 	movl   $0x40256c,-0x208(%ebp)
405a30:	25 40 00
405a33:	eb 0a                	jmp    0x405a3f
405a35:	c7 85 f8 fd ff ff 60 	movl   $0x402560,-0x208(%ebp)
405a3c:	25 40 00
405a3f:	51                   	push   %ecx
405a40:	33 c0                	xor    %eax,%eax
405a42:	68 00 01 00 00       	push   $0x100
405a47:	66 89 85 fc fd ff ff 	mov    %ax,-0x204(%ebp)
405a4e:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
405a54:	50                   	push   %eax
405a55:	68 00 04 00 00       	push   $0x400
405a5a:	ff 76 04             	push   0x4(%esi)
405a5d:	51                   	push   %ecx
405a5e:	68 00 12 00 00       	push   $0x1200
405a63:	ff 15 40 b1 41 00    	call   *0x41b140
405a69:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
405a6d:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
405a73:	ff 76 48             	push   0x48(%esi)
405a76:	ff 76 44             	push   0x44(%esi)
405a79:	8d 3c 43             	lea    (%ebx,%eax,2),%edi
405a7c:	74 17                	je     0x405a95
405a7e:	ff 76 20             	push   0x20(%esi)
405a81:	ff 76 1c             	push   0x1c(%esi)
405a84:	68 8c 25 40 00       	push   $0x40258c
405a89:	57                   	push   %edi
405a8a:	53                   	push   %ebx
405a8b:	e8 c7 fe ff ff       	call   0x405957
405a90:	83 c4 1c             	add    $0x1c,%esp
405a93:	eb 0f                	jmp    0x405aa4
405a95:	68 b0 25 40 00       	push   $0x4025b0
405a9a:	57                   	push   %edi
405a9b:	53                   	push   %ebx
405a9c:	e8 b6 fe ff ff       	call   0x405957
405aa1:	83 c4 14             	add    $0x14,%esp
405aa4:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
405aa8:	8b d8                	mov    %eax,%ebx
405aaa:	74 14                	je     0x405ac0
405aac:	ff 76 4c             	push   0x4c(%esi)
405aaf:	68 c4 25 40 00       	push   $0x4025c4
405ab4:	57                   	push   %edi
405ab5:	53                   	push   %ebx
405ab6:	e8 9c fe ff ff       	call   0x405957
405abb:	83 c4 10             	add    $0x10,%esp
405abe:	8b d8                	mov    %eax,%ebx
405ac0:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
405ac6:	50                   	push   %eax
405ac7:	ff 76 04             	push   0x4(%esi)
405aca:	ff 15 38 b1 41 00    	call   *0x41b138
405ad0:	50                   	push   %eax
405ad1:	ff 76 24             	push   0x24(%esi)
405ad4:	ff b5 f8 fd ff ff    	push   -0x208(%ebp)
405ada:	68 e0 25 40 00       	push   $0x4025e0
405adf:	57                   	push   %edi
405ae0:	53                   	push   %ebx
405ae1:	e8 71 fe ff ff       	call   0x405957
405ae6:	33 c9                	xor    %ecx,%ecx
405ae8:	83 c4 20             	add    $0x20,%esp
405aeb:	39 4e 0c             	cmp    %ecx,0xc(%esi)
405aee:	75 0e                	jne    0x405afe
405af0:	39 4e 28             	cmp    %ecx,0x28(%esi)
405af3:	75 09                	jne    0x405afe
405af5:	39 4e 18             	cmp    %ecx,0x18(%esi)
405af8:	0f 84 85 00 00 00    	je     0x405b83
405afe:	68 14 26 40 00       	push   $0x402614
405b03:	57                   	push   %edi
405b04:	50                   	push   %eax
405b05:	e8 4d fe ff ff       	call   0x405957
405b0a:	83 c4 0c             	add    $0xc,%esp
405b0d:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
405b11:	74 12                	je     0x405b25
405b13:	ff 76 0c             	push   0xc(%esi)
405b16:	68 20 26 40 00       	push   $0x402620
405b1b:	57                   	push   %edi
405b1c:	50                   	push   %eax
405b1d:	e8 35 fe ff ff       	call   0x405957
405b22:	83 c4 10             	add    $0x10,%esp
405b25:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
405b29:	74 12                	je     0x405b3d
405b2b:	ff 76 28             	push   0x28(%esi)
405b2e:	68 38 26 40 00       	push   $0x402638
405b33:	57                   	push   %edi
405b34:	50                   	push   %eax
405b35:	e8 1d fe ff ff       	call   0x405957
405b3a:	83 c4 10             	add    $0x10,%esp
405b3d:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
405b41:	74 17                	je     0x405b5a
405b43:	ff 76 14             	push   0x14(%esi)
405b46:	ff 76 18             	push   0x18(%esi)
405b49:	68 60 26 40 00       	push   $0x402660
405b4e:	57                   	push   %edi
405b4f:	50                   	push   %eax
405b50:	e8 02 fe ff ff       	call   0x405957
405b55:	83 c4 14             	add    $0x14,%esp
405b58:	eb 29                	jmp    0x405b83
405b5a:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
405b5e:	74 14                	je     0x405b74
405b60:	ff 76 18             	push   0x18(%esi)
405b63:	68 78 26 40 00       	push   $0x402678
405b68:	57                   	push   %edi
405b69:	50                   	push   %eax
405b6a:	e8 e8 fd ff ff       	call   0x405957
405b6f:	83 c4 10             	add    $0x10,%esp
405b72:	eb 0f                	jmp    0x405b83
405b74:	68 88 26 40 00       	push   $0x402688
405b79:	57                   	push   %edi
405b7a:	50                   	push   %eax
405b7b:	e8 d7 fd ff ff       	call   0x405957
405b80:	83 c4 0c             	add    $0xc,%esp
405b83:	5f                   	pop    %edi
405b84:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405b87:	33 c0                	xor    %eax,%eax
405b89:	5e                   	pop    %esi
405b8a:	33 cd                	xor    %ebp,%ecx
405b8c:	5b                   	pop    %ebx
405b8d:	e8 4e dd 00 00       	call   0x4138e0
405b92:	c9                   	leave
405b93:	c2 04 00             	ret    $0x4
405b96:	8b ff                	mov    %edi,%edi
405b98:	57                   	push   %edi
405b99:	52                   	push   %edx
405b9a:	51                   	push   %ecx
405b9b:	ff 15 68 b1 41 00    	call   *0x41b168
405ba1:	50                   	push   %eax
405ba2:	ff 15 58 b1 41 00    	call   *0x41b158
405ba8:	83 3d 30 97 41 00 00 	cmpl   $0x0,0x419730
405baf:	8b f8                	mov    %eax,%edi
405bb1:	74 1a                	je     0x405bcd
405bb3:	56                   	push   %esi
405bb4:	57                   	push   %edi
405bb5:	ff 15 68 b1 41 00    	call   *0x41b168
405bbb:	8b 35 30 97 41 00    	mov    0x419730,%esi
405bc1:	8b ce                	mov    %esi,%ecx
405bc3:	50                   	push   %eax
405bc4:	ff 15 90 b3 41 00    	call   *0x41b390
405bca:	ff d6                	call   *%esi
405bcc:	5e                   	pop    %esi
405bcd:	8b c7                	mov    %edi,%eax
405bcf:	5f                   	pop    %edi
405bd0:	c3                   	ret
405bd1:	8b ff                	mov    %edi,%edi
405bd3:	55                   	push   %ebp
405bd4:	8b ec                	mov    %esp,%ebp
405bd6:	8b 45 08             	mov    0x8(%ebp),%eax
405bd9:	53                   	push   %ebx
405bda:	56                   	push   %esi
405bdb:	8b f1                	mov    %ecx,%esi
405bdd:	57                   	push   %edi
405bde:	83 26 00             	andl   $0x0,(%esi)
405be1:	83 66 04 00          	andl   $0x0,0x4(%esi)
405be5:	8b 58 04             	mov    0x4(%eax),%ebx
405be8:	8b 38                	mov    (%eax),%edi
405bea:	e8 15 00 00 00       	call   0x405c04
405bef:	85 ff                	test   %edi,%edi
405bf1:	74 08                	je     0x405bfb
405bf3:	89 3e                	mov    %edi,(%esi)
405bf5:	89 5e 04             	mov    %ebx,0x4(%esi)
405bf8:	f0 ff 07             	lock incl (%edi)
405bfb:	5f                   	pop    %edi
405bfc:	8b c6                	mov    %esi,%eax
405bfe:	5e                   	pop    %esi
405bff:	5b                   	pop    %ebx
405c00:	5d                   	pop    %ebp
405c01:	c2 04 00             	ret    $0x4
405c04:	8b ff                	mov    %edi,%edi
405c06:	56                   	push   %esi
405c07:	8b f1                	mov    %ecx,%esi
405c09:	8b 0e                	mov    (%esi),%ecx
405c0b:	85 c9                	test   %ecx,%ecx
405c0d:	74 21                	je     0x405c30
405c0f:	83 c8 ff             	or     $0xffffffff,%eax
405c12:	f0 0f c1 01          	lock xadd %eax,(%ecx)
405c16:	75 11                	jne    0x405c29
405c18:	ff 36                	push   (%esi)
405c1a:	6a 00                	push   $0x0
405c1c:	ff 15 68 b1 41 00    	call   *0x41b168
405c22:	50                   	push   %eax
405c23:	ff 15 28 b1 41 00    	call   *0x41b128
405c29:	83 26 00             	andl   $0x0,(%esi)
405c2c:	83 66 04 00          	andl   $0x0,0x4(%esi)
405c30:	5e                   	pop    %esi
405c31:	c3                   	ret
405c32:	8b ff                	mov    %edi,%edi
405c34:	55                   	push   %ebp
405c35:	8b ec                	mov    %esp,%ebp
405c37:	53                   	push   %ebx
405c38:	56                   	push   %esi
405c39:	8b 75 0c             	mov    0xc(%ebp),%esi
405c3c:	8b d9                	mov    %ecx,%ebx
405c3e:	85 f6                	test   %esi,%esi
405c40:	75 09                	jne    0x405c4b
405c42:	e8 bd ff ff ff       	call   0x405c04
405c47:	b0 01                	mov    $0x1,%al
405c49:	eb 4b                	jmp    0x405c96
405c4b:	57                   	push   %edi
405c4c:	8d 46 04             	lea    0x4(%esi),%eax
405c4f:	50                   	push   %eax
405c50:	6a 00                	push   $0x0
405c52:	ff 15 68 b1 41 00    	call   *0x41b168
405c58:	50                   	push   %eax
405c59:	ff 15 58 b1 41 00    	call   *0x41b158
405c5f:	8b f8                	mov    %eax,%edi
405c61:	85 ff                	test   %edi,%edi
405c63:	75 04                	jne    0x405c69
405c65:	32 c0                	xor    %al,%al
405c67:	eb 2c                	jmp    0x405c95
405c69:	83 27 00             	andl   $0x0,(%edi)
405c6c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
405c70:	74 12                	je     0x405c84
405c72:	56                   	push   %esi
405c73:	ff 75 08             	push   0x8(%ebp)
405c76:	8d 47 04             	lea    0x4(%edi),%eax
405c79:	56                   	push   %esi
405c7a:	50                   	push   %eax
405c7b:	ff 15 74 b3 41 00    	call   *0x41b374
405c81:	83 c4 10             	add    $0x10,%esp
405c84:	8b cb                	mov    %ebx,%ecx
405c86:	e8 79 ff ff ff       	call   0x405c04
405c8b:	89 3b                	mov    %edi,(%ebx)
405c8d:	89 73 04             	mov    %esi,0x4(%ebx)
405c90:	f0 ff 07             	lock incl (%edi)
405c93:	b0 01                	mov    $0x1,%al
405c95:	5f                   	pop    %edi
405c96:	5e                   	pop    %esi
405c97:	5b                   	pop    %ebx
405c98:	5d                   	pop    %ebp
405c99:	c2 08 00             	ret    $0x8
405c9c:	33 c0                	xor    %eax,%eax
405c9e:	89 0d 6c 97 41 00    	mov    %ecx,0x41976c
405ca4:	40                   	inc    %eax
405ca5:	f0 0f c1 05 64 97 41 	lock xadd %eax,0x419764
405cac:	00
405cad:	40                   	inc    %eax
405cae:	c3                   	ret
405caf:	33 c0                	xor    %eax,%eax
405cb1:	89 0d 08 97 41 00    	mov    %ecx,0x419708
405cb7:	40                   	inc    %eax
405cb8:	f0 0f c1 05 80 97 41 	lock xadd %eax,0x419780
405cbf:	00
405cc0:	40                   	inc    %eax
405cc1:	c3                   	ret
405cc2:	33 c0                	xor    %eax,%eax
405cc4:	89 0d 78 97 41 00    	mov    %ecx,0x419778
405cca:	40                   	inc    %eax
405ccb:	f0 0f c1 05 d8 97 41 	lock xadd %eax,0x4197d8
405cd2:	00
405cd3:	40                   	inc    %eax
405cd4:	c3                   	ret
405cd5:	cc                   	int3
405cd6:	cc                   	int3
405cd7:	cc                   	int3
405cd8:	cc                   	int3
405cd9:	cc                   	int3
405cda:	cc                   	int3
405cdb:	cc                   	int3
405cdc:	cc                   	int3
405cdd:	cc                   	int3
405cde:	cc                   	int3
405cdf:	cc                   	int3
405ce0:	8b ff                	mov    %edi,%edi
405ce2:	55                   	push   %ebp
405ce3:	8b ec                	mov    %esp,%ebp
405ce5:	8b 45 08             	mov    0x8(%ebp),%eax
405ce8:	a3 cc 97 41 00       	mov    %eax,0x4197cc
405ced:	33 c0                	xor    %eax,%eax
405cef:	40                   	inc    %eax
405cf0:	5d                   	pop    %ebp
405cf1:	c2 04 00             	ret    $0x4