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
405cf4:	8b ff                	mov    %edi,%edi
405cf6:	55                   	push   %ebp
405cf7:	8b ec                	mov    %esp,%ebp
405cf9:	56                   	push   %esi
405cfa:	8b 35 54 97 41 00    	mov    0x419754,%esi
405d00:	85 f6                	test   %esi,%esi
405d02:	74 10                	je     0x405d14
405d04:	ff 75 08             	push   0x8(%ebp)
405d07:	6a 00                	push   $0x0
405d09:	51                   	push   %ecx
405d0a:	8b ce                	mov    %esi,%ecx
405d0c:	ff 15 90 b3 41 00    	call   *0x41b390
405d12:	ff d6                	call   *%esi
405d14:	6a 07                	push   $0x7
405d16:	59                   	pop    %ecx
405d17:	cd 29                	int    $0x29
405d19:	5e                   	pop    %esi
405d1a:	5d                   	pop    %ebp
405d1b:	c2 04 00             	ret    $0x4
405d1e:	8b ff                	mov    %edi,%edi
405d20:	55                   	push   %ebp
405d21:	8b ec                	mov    %esp,%ebp
405d23:	81 ec 10 01 00 00    	sub    $0x110,%esp
405d29:	a1 18 51 41 00       	mov    0x415118,%eax
405d2e:	33 c5                	xor    %ebp,%eax
405d30:	89 45 fc             	mov    %eax,-0x4(%ebp)
405d33:	8b 4d 10             	mov    0x10(%ebp),%ecx
405d36:	53                   	push   %ebx
405d37:	8b 5d 0c             	mov    0xc(%ebp),%ebx
405d3a:	56                   	push   %esi
405d3b:	8b 75 08             	mov    0x8(%ebp),%esi
405d3e:	57                   	push   %edi
405d3f:	33 ff                	xor    %edi,%edi
405d41:	89 8d f0 fe ff ff    	mov    %ecx,-0x110(%ebp)
405d47:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
405d4d:	85 f6                	test   %esi,%esi
405d4f:	74 28                	je     0x405d79
405d51:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
405d57:	50                   	push   %eax
405d58:	56                   	push   %esi
405d59:	6a 06                	push   $0x6
405d5b:	ff 15 bc b1 41 00    	call   *0x41b1bc
405d61:	85 c0                	test   %eax,%eax
405d63:	75 08                	jne    0x405d6d
405d65:	85 db                	test   %ebx,%ebx
405d67:	74 3b                	je     0x405da4
405d69:	89 3b                	mov    %edi,(%ebx)
405d6b:	eb 37                	jmp    0x405da4
405d6d:	8b bd f4 fe ff ff    	mov    -0x10c(%ebp),%edi
405d73:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
405d79:	85 db                	test   %ebx,%ebx
405d7b:	74 0c                	je     0x405d89
405d7d:	8b c6                	mov    %esi,%eax
405d7f:	2b c7                	sub    %edi,%eax
405d81:	f7 de                	neg    %esi
405d83:	1b f6                	sbb    %esi,%esi
405d85:	23 f0                	and    %eax,%esi
405d87:	89 33                	mov    %esi,(%ebx)
405d89:	85 c9                	test   %ecx,%ecx
405d8b:	74 57                	je     0x405de4
405d8d:	68 04 01 00 00       	push   $0x104
405d92:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
405d98:	50                   	push   %eax
405d99:	57                   	push   %edi
405d9a:	ff 15 c0 b1 41 00    	call   *0x41b1c0
405da0:	85 c0                	test   %eax,%eax
405da2:	75 04                	jne    0x405da8
405da4:	32 c0                	xor    %al,%al
405da6:	eb 3e                	jmp    0x405de6
405da8:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
405dae:	8d 51 01             	lea    0x1(%ecx),%edx
405db1:	8a 01                	mov    (%ecx),%al
405db3:	41                   	inc    %ecx
405db4:	84 c0                	test   %al,%al
405db6:	75 f9                	jne    0x405db1
405db8:	2b ca                	sub    %edx,%ecx
405dba:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
405dc0:	03 c1                	add    %ecx,%eax
405dc2:	eb 07                	jmp    0x405dcb
405dc4:	80 78 ff 5c          	cmpb   $0x5c,-0x1(%eax)
405dc8:	74 0b                	je     0x405dd5
405dca:	48                   	dec    %eax
405dcb:	8d 8d f8 fe ff ff    	lea    -0x108(%ebp),%ecx
405dd1:	3b c1                	cmp    %ecx,%eax
405dd3:	77 ef                	ja     0x405dc4
405dd5:	8b 55 14             	mov    0x14(%ebp),%edx
405dd8:	8b 8d f0 fe ff ff    	mov    -0x110(%ebp),%ecx
405dde:	50                   	push   %eax
405ddf:	e8 9c f9 ff ff       	call   0x405780
405de4:	b0 01                	mov    $0x1,%al
405de6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405de9:	5f                   	pop    %edi
405dea:	5e                   	pop    %esi
405deb:	33 cd                	xor    %ebp,%ecx
405ded:	5b                   	pop    %ebx
405dee:	e8 ed da 00 00       	call   0x4138e0
405df3:	c9                   	leave
405df4:	c2 10 00             	ret    $0x10
405df7:	cc                   	int3
405df8:	cc                   	int3
405df9:	cc                   	int3
405dfa:	cc                   	int3
405dfb:	cc                   	int3
405dfc:	cc                   	int3
405dfd:	cc                   	int3
405dfe:	cc                   	int3
405dff:	cc                   	int3
405e00:	80 3d 70 97 41 00 00 	cmpb   $0x0,0x419770
405e07:	56                   	push   %esi
405e08:	be 88 97 41 00       	mov    $0x419788,%esi
405e0d:	75 16                	jne    0x405e25
405e0f:	6a 40                	push   $0x40
405e11:	56                   	push   %esi
405e12:	6a 00                	push   $0x0
405e14:	68 e0 5c 40 00       	push   $0x405ce0
405e19:	e8 00 ff ff ff       	call   0x405d1e
405e1e:	c6 05 70 97 41 00 01 	movb   $0x1,0x419770
405e25:	8b c6                	mov    %esi,%eax
405e27:	5e                   	pop    %esi
405e28:	c3                   	ret
405e29:	cc                   	int3
405e2a:	cc                   	int3
405e2b:	cc                   	int3
405e2c:	cc                   	int3
405e2d:	cc                   	int3
405e2e:	cc                   	int3
405e2f:	cc                   	int3
405e30:	ff 25 70 b1 41 00    	jmp    *0x41b170
405e36:	cc                   	int3
405e37:	cc                   	int3
405e38:	cc                   	int3
405e39:	cc                   	int3
405e3a:	cc                   	int3
405e3b:	cc                   	int3
405e3c:	cc                   	int3
405e3d:	cc                   	int3
405e3e:	cc                   	int3
405e3f:	cc                   	int3
405e40:	8b ff                	mov    %edi,%edi
405e42:	55                   	push   %ebp
405e43:	8b ec                	mov    %esp,%ebp
405e45:	56                   	push   %esi
405e46:	68 8c 26 40 00       	push   $0x40268c
405e4b:	ff 15 6c b1 41 00    	call   *0x41b16c
405e51:	68 ac 26 40 00       	push   $0x4026ac
405e56:	50                   	push   %eax
405e57:	ff 15 5c b1 41 00    	call   *0x41b15c
405e5d:	8b f0                	mov    %eax,%esi
405e5f:	85 f6                	test   %esi,%esi
405e61:	74 13                	je     0x405e76
405e63:	ff 75 10             	push   0x10(%ebp)
405e66:	8b ce                	mov    %esi,%ecx
405e68:	ff 75 0c             	push   0xc(%ebp)
405e6b:	ff 75 08             	push   0x8(%ebp)
405e6e:	ff 15 90 b3 41 00    	call   *0x41b390
405e74:	ff d6                	call   *%esi
405e76:	5e                   	pop    %esi
405e77:	5d                   	pop    %ebp
405e78:	c2 0c 00             	ret    $0xc
405e7b:	8b ff                	mov    %edi,%edi
405e7d:	55                   	push   %ebp
405e7e:	8b ec                	mov    %esp,%ebp
405e80:	56                   	push   %esi
405e81:	57                   	push   %edi
405e82:	8b f2                	mov    %edx,%esi
405e84:	8b f9                	mov    %ecx,%edi
405e86:	ff 15 44 b1 41 00    	call   *0x41b144
405e8c:	85 c0                	test   %eax,%eax
405e8e:	75 1d                	jne    0x405ead
405e90:	68 9c 02 07 80       	push   $0x8007029c
405e95:	6a 02                	push   $0x2
405e97:	ff 75 14             	push   0x14(%ebp)
405e9a:	8b d6                	mov    %esi,%edx
405e9c:	8b cf                	mov    %edi,%ecx
405e9e:	50                   	push   %eax