403c27:	4e                   	dec    %esi
403c28:	a1 0c 80 40 00       	mov    0x40800c,%eax
403c2d:	3d 0c 80 40 00       	cmp    $0x40800c,%eax
403c32:	74 18                	je     0x403c4c
403c34:	f7 40 1c 00 01 00 00 	testl  $0x100,0x1c(%eax)
403c3b:	74 0f                	je     0x403c4c
403c3d:	56                   	push   %esi
403c3e:	ff 70 14             	push   0x14(%eax)
403c41:	ff 70 10             	push   0x10(%eax)
403c44:	6a 0b                	push   $0xb
403c46:	59                   	pop    %ecx
403c47:	e8 d3 f7 ff ff       	call   0x40341f
403c4c:	85 f6                	test   %esi,%esi
403c4e:	75 2c                	jne    0x403c7c
403c50:	85 ff                	test   %edi,%edi
403c52:	74 18                	je     0x403c6c
403c54:	c7 07 a4 15 40 00    	movl   $0x4015a4,(%edi)
403c5a:	f0 ff 0d c0 84 40 00 	lock decl 0x4084c0
403c61:	21 75 fc             	and    %esi,-0x4(%ebp)
403c64:	56                   	push   %esi
403c65:	57                   	push   %edi
403c66:	ff 15 10 90 40 00    	call   *0x409010
403c6c:	ff 35 70 84 40 00    	push   0x408470
403c72:	ff 15 94 90 40 00    	call   *0x409094
403c78:	33 c0                	xor    %eax,%eax
403c7a:	eb 02                	jmp    0x403c7e
403c7c:	8b c6                	mov    %esi,%eax
403c7e:	e8 a9 0d 00 00       	call   0x404a2c
403c83:	c2 04 00             	ret    $0x4
403c86:	cc                   	int3
403c87:	cc                   	int3
403c88:	cc                   	int3
403c89:	cc                   	int3
403c8a:	cc                   	int3
403c8b:	cc                   	int3
403c8c:	cc                   	int3
403c8d:	cc                   	int3
403c8e:	cc                   	int3
403c8f:	cc                   	int3
403c90:	6a 00                	push   $0x0
403c92:	b8 48 51 40 00       	mov    $0x405148,%eax
403c97:	e8 a4 0d 00 00       	call   0x404a40
403c9c:	a1 0c 80 40 00       	mov    0x40800c,%eax
403ca1:	3d 0c 80 40 00       	cmp    $0x40800c,%eax
403ca6:	74 1c                	je     0x403cc4
403ca8:	f7 40 1c 00 01 00 00 	testl  $0x100,0x1c(%eax)
403caf:	74 13                	je     0x403cc4
403cb1:	ff 70 14             	push   0x14(%eax)
403cb4:	ba a8 24 40 00       	mov    $0x4024a8,%edx
403cb9:	ff 70 10             	push   0x10(%eax)
403cbc:	6a 0c                	push   $0xc
403cbe:	59                   	pop    %ecx
403cbf:	e8 3d f7 ff ff       	call   0x403401
403cc4:	8b 75 14             	mov    0x14(%ebp),%esi
403cc7:	83 26 00             	andl   $0x0,(%esi)
403cca:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
403cce:	74 07                	je     0x403cd7
403cd0:	be 10 01 04 80       	mov    $0x80040110,%esi
403cd5:	eb 5a                	jmp    0x403d31
403cd7:	68 c0 84 40 00       	push   $0x4084c0
403cdc:	68 64 84 40 00       	push   $0x408464
403ce1:	68 68 84 40 00       	push   $0x408468
403ce6:	ff 35 6c 84 40 00    	push   0x40846c
403cec:	ff 15 04 90 40 00    	call   *0x409004
403cf2:	8b f8                	mov    %eax,%edi
403cf4:	85 ff                	test   %edi,%edi
403cf6:	75 13                	jne    0x403d0b
403cf8:	ff 35 70 84 40 00    	push   0x408470
403cfe:	be 0e 00 07 80       	mov    $0x8007000e,%esi
403d03:	ff 15 94 90 40 00    	call   *0x409094
403d09:	eb 26                	jmp    0x403d31
403d0b:	8b 07                	mov    (%edi),%eax
403d0d:	56                   	push   %esi
403d0e:	ff 75 10             	push   0x10(%ebp)
403d11:	8b 30                	mov    (%eax),%esi
403d13:	8b ce                	mov    %esi,%ecx
403d15:	57                   	push   %edi
403d16:	ff 15 5c 91 40 00    	call   *0x40915c
403d1c:	ff d6                	call   *%esi
403d1e:	8b f0                	mov    %eax,%esi
403d20:	85 f6                	test   %esi,%esi
403d22:	79 0d                	jns    0x403d31
403d24:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403d28:	6a 00                	push   $0x0
403d2a:	57                   	push   %edi
403d2b:	ff 15 10 90 40 00    	call   *0x409010
403d31:	a1 0c 80 40 00       	mov    0x40800c,%eax
403d36:	3d 0c 80 40 00       	cmp    $0x40800c,%eax
403d3b:	74 1c                	je     0x403d59
403d3d:	f7 40 1c 00 01 00 00 	testl  $0x100,0x1c(%eax)
403d44:	74 13                	je     0x403d59
403d46:	ff 70 14             	push   0x14(%eax)
403d49:	ba a8 24 40 00       	mov    $0x4024a8,%edx
403d4e:	ff 70 10             	push   0x10(%eax)
403d51:	6a 0d                	push   $0xd
403d53:	59                   	pop    %ecx
403d54:	e8 a8 f6 ff ff       	call   0x403401
403d59:	8b c6                	mov    %esi,%eax
403d5b:	e8 cc 0c 00 00       	call   0x404a2c
403d60:	c2 10 00             	ret    $0x10
403d63:	cc                   	int3
403d64:	cc                   	int3
403d65:	cc                   	int3
403d66:	cc                   	int3
403d67:	cc                   	int3
403d68:	cc                   	int3
403d69:	cc                   	int3
403d6a:	cc                   	int3
403d6b:	cc                   	int3
403d6c:	cc                   	int3
403d6d:	cc                   	int3
403d6e:	cc                   	int3
403d6f:	cc                   	int3
403d70:	8b ff                	mov    %edi,%edi
403d72:	55                   	push   %ebp
403d73:	8b ec                	mov    %esp,%ebp
403d75:	56                   	push   %esi
403d76:	57                   	push   %edi
403d77:	a1 0c 80 40 00       	mov    0x40800c,%eax
403d7c:	bf 0c 80 40 00       	mov    $0x40800c,%edi
403d81:	be 00 01 00 00       	mov    $0x100,%esi
403d86:	3b c7                	cmp    %edi,%eax
403d88:	74 18                	je     0x403da2
403d8a:	85 70 1c             	test   %esi,0x1c(%eax)
403d8d:	74 13                	je     0x403da2
403d8f:	ff 70 14             	push   0x14(%eax)
403d92:	ba a8 24 40 00       	mov    $0x4024a8,%edx
403d97:	ff 70 10             	push   0x10(%eax)
403d9a:	6a 0e                	push   $0xe
403d9c:	59                   	pop    %ecx
403d9d:	e8 5f f6 ff ff       	call   0x403401
403da2:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
403da6:	74 09                	je     0x403db1
403da8:	f0 ff 05 bc 84 40 00 	lock incl 0x4084bc
403daf:	eb 07                	jmp    0x403db8
403db1:	f0 ff 0d bc 84 40 00 	lock decl 0x4084bc
403db8:	a1 0c 80 40 00       	mov    0x40800c,%eax
403dbd:	3b c7                	cmp    %edi,%eax
403dbf:	74 19                	je     0x403dda
403dc1:	85 70 1c             	test   %esi,0x1c(%eax)
403dc4:	74 14                	je     0x403dda
403dc6:	ff 35 bc 84 40 00    	push   0x4084bc
403dcc:	ff 70 14             	push   0x14(%eax)
403dcf:	ff 70 10             	push   0x10(%eax)
403dd2:	6a 0f                	push   $0xf
403dd4:	59                   	pop    %ecx
403dd5:	e8 45 f6 ff ff       	call   0x40341f
403dda:	5f                   	pop    %edi
403ddb:	33 c0                	xor    %eax,%eax
403ddd:	5e                   	pop    %esi
403dde:	5d                   	pop    %ebp
403ddf:	c2 08 00             	ret    $0x8
403de2:	8b ff                	mov    %edi,%edi
403de4:	55                   	push   %ebp
403de5:	8b ec                	mov    %esp,%ebp
403de7:	ff 35 d8 24 40 00    	push   0x4024d8
403ded:	ff 75 0c             	push   0xc(%ebp)
403df0:	ff 35 3c 90 40 00    	push   0x40903c
403df6:	ff 35 d8 24 40 00    	push   0x4024d8
403dfc:	ff 75 08             	push   0x8(%ebp)
403dff:	68 00 00 40 00       	push   $0x400000
403e04:	ff 15 44 90 40 00    	call   *0x409044
403e0a:	5d                   	pop    %ebp
403e0b:	c2 08 00             	ret    $0x8
403e0e:	8b ff                	mov    %edi,%edi
403e10:	55                   	push   %ebp
403e11:	8b ec                	mov    %esp,%ebp
403e13:	33 c0                	xor    %eax,%eax
403e15:	39 45 08             	cmp    %eax,0x8(%ebp)
403e18:	74 11                	je     0x403e2b
403e1a:	ff 75 08             	push   0x8(%ebp)
403e1d:	e8 be ea ff ff       	call   0x4028e0
403e22:	59                   	pop    %ecx
403e23:	85 c0                	test   %eax,%eax
403e25:	0f 84 61 03 00 00    	je     0x40418c
403e2b:	5d                   	pop    %ebp
403e2c:	c3                   	ret
403e2d:	8b ff                	mov    %edi,%edi
403e2f:	55                   	push   %ebp
403e30:	8b ec                	mov    %esp,%ebp
403e32:	56                   	push   %esi
403e33:	ff 75 08             	push   0x8(%ebp)
403e36:	8b f1                	mov    %ecx,%esi
403e38:	83 66 10 00          	andl   $0x0,0x10(%esi)
403e3c:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403e43:	c6 06 00             	movb   $0x0,(%esi)
403e46:	e8 2d 06 00 00       	call   0x404478
403e4b:	59                   	pop    %ecx
403e4c:	50                   	push   %eax
403e4d:	ff 75 08             	push   0x8(%ebp)
403e50:	8b ce                	mov    %esi,%ecx
403e52:	e8 44 04 00 00       	call   0x40429b
403e57:	8b c6                	mov    %esi,%eax
403e59:	5e                   	pop    %esi
403e5a:	5d                   	pop    %ebp
403e5b:	c2 04 00             	ret    $0x4
403e5e:	cc                   	int3
403e5f:	cc                   	int3
403e60:	8b ff                	mov    %edi,%edi
403e62:	55                   	push   %ebp
403e63:	8b ec                	mov    %esp,%ebp
403e65:	51                   	push   %ecx
403e66:	56                   	push   %esi
403e67:	ff 75 08             	push   0x8(%ebp)
403e6a:	8b f1                	mov    %ecx,%esi
403e6c:	89 75 fc             	mov    %esi,-0x4(%ebp)
403e6f:	e8 9c 0b 00 00       	call   0x404a10
403e74:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
403e7a:	8b c6                	mov    %esi,%eax
403e7c:	5e                   	pop    %esi
403e7d:	c9                   	leave
403e7e:	c2 04 00             	ret    $0x4
403e81:	8b ff                	mov    %edi,%edi
403e83:	55                   	push   %ebp
403e84:	8b ec                	mov    %esp,%ebp
403e86:	51                   	push   %ecx
403e87:	56                   	push   %esi
403e88:	6a 01                	push   $0x1
403e8a:	8d 45 fc             	lea    -0x4(%ebp),%eax
403e8d:	c7 45 fc 00 18 40 00 	movl   $0x401800,-0x4(%ebp)
403e94:	50                   	push   %eax
403e95:	8b f1                	mov    %ecx,%esi
403e97:	e8 6a 0b 00 00       	call   0x404a06
403e9c:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
403ea2:	8b c6                	mov    %esi,%eax
403ea4:	5e                   	pop    %esi
403ea5:	c9                   	leave
403ea6:	c3                   	ret
403ea7:	cc                   	int3
403ea8:	cc                   	int3
403ea9:	cc                   	int3
403eaa:	cc                   	int3
403eab:	cc                   	int3
403eac:	cc                   	int3
403ead:	cc                   	int3
403eae:	cc                   	int3
403eaf:	cc                   	int3
403eb0:	8b ff                	mov    %edi,%edi
403eb2:	55                   	push   %ebp
403eb3:	8b ec                	mov    %esp,%ebp
403eb5:	51                   	push   %ecx
403eb6:	56                   	push   %esi
403eb7:	ff 75 08             	push   0x8(%ebp)
403eba:	8b f1                	mov    %ecx,%esi
403ebc:	89 75 fc             	mov    %esi,-0x4(%ebp)
403ebf:	e8 4c 0b 00 00       	call   0x404a10
403ec4:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
403eca:	8b c6                	mov    %esi,%eax
403ecc:	5e                   	pop    %esi
403ecd:	c9                   	leave
403ece:	c2 04 00             	ret    $0x4
403ed1:	8b ff                	mov    %edi,%edi
403ed3:	55                   	push   %ebp
403ed4:	8b ec                	mov    %esp,%ebp
403ed6:	51                   	push   %ecx
403ed7:	8b 45 08             	mov    0x8(%ebp),%eax
403eda:	56                   	push   %esi
403edb:	8b f1                	mov    %ecx,%esi
403edd:	89 75 fc             	mov    %esi,-0x4(%ebp)
403ee0:	89 45 fc             	mov    %eax,-0x4(%ebp)
403ee3:	8d 45 fc             	lea    -0x4(%ebp),%eax
403ee6:	50                   	push   %eax
403ee7:	e8 14 0b 00 00       	call   0x404a00
403eec:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
403ef2:	8b c6                	mov    %esi,%eax
403ef4:	5e                   	pop    %esi
403ef5:	c9                   	leave
403ef6:	c2 04 00             	ret    $0x4
403ef9:	cc                   	int3
403efa:	cc                   	int3
403efb:	cc                   	int3
403efc:	cc                   	int3
403efd:	cc                   	int3
403efe:	cc                   	int3
403eff:	cc                   	int3
403f00:	c7 01 00 10 40 00    	movl   $0x401000,(%ecx)
403f06:	e9 0b 0b 00 00       	jmp    0x404a16
403f0b:	cc                   	int3
403f0c:	cc                   	int3
403f0d:	cc                   	int3
403f0e:	cc                   	int3
403f0f:	cc                   	int3
403f10:	e9 01 0b 00 00       	jmp    0x404a16
403f15:	8b ff                	mov    %edi,%edi
403f17:	55                   	push   %ebp
403f18:	8b ec                	mov    %esp,%ebp
403f1a:	8b 55 08             	mov    0x8(%ebp),%edx
403f1d:	8b 41 04             	mov    0x4(%ecx),%eax
403f20:	3b 42 04             	cmp    0x4(%edx),%eax
403f23:	75 0a                	jne    0x403f2f
403f25:	8b 01                	mov    (%ecx),%eax
403f27:	3b 02                	cmp    (%edx),%eax
403f29:	75 04                	jne    0x403f2f
403f2b:	b0 01                	mov    $0x1,%al
403f2d:	eb 02                	jmp    0x403f31
403f2f:	32 c0                	xor    %al,%al
403f31:	5d                   	pop    %ebp
403f32:	c2 04 00             	ret    $0x4
403f35:	cc                   	int3
403f36:	cc                   	int3
403f37:	cc                   	int3
403f38:	cc                   	int3
403f39:	cc                   	int3
403f3a:	cc                   	int3
403f3b:	cc                   	int3
403f3c:	cc                   	int3
403f3d:	cc                   	int3
403f3e:	cc                   	int3
403f3f:	cc                   	int3
403f40:	8b ff                	mov    %edi,%edi
403f42:	55                   	push   %ebp
403f43:	8b ec                	mov    %esp,%ebp
403f45:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
403f49:	56                   	push   %esi
403f4a:	8b f1                	mov    %ecx,%esi
403f4c:	c7 06 10 10 40 00    	movl   $0x401010,(%esi)
403f52:	74 07                	je     0x403f5b
403f54:	56                   	push   %esi
403f55:	e8 9a e9 ff ff       	call   0x4028f4
403f5a:	59                   	pop    %ecx
403f5b:	8b c6                	mov    %esi,%eax
403f5d:	5e                   	pop    %esi
403f5e:	5d                   	pop    %ebp
403f5f:	c2 04 00             	ret    $0x4
403f62:	cc                   	int3
403f63:	cc                   	int3
403f64:	cc                   	int3
403f65:	cc                   	int3
403f66:	cc                   	int3
403f67:	cc                   	int3
403f68:	cc                   	int3
403f69:	cc                   	int3
403f6a:	cc                   	int3
403f6b:	cc                   	int3
403f6c:	cc                   	int3
403f6d:	cc                   	int3
403f6e:	cc                   	int3
403f6f:	cc                   	int3
403f70:	8b ff                	mov    %edi,%edi
403f72:	55                   	push   %ebp
403f73:	8b ec                	mov    %esp,%ebp
403f75:	56                   	push   %esi
403f76:	8b f1                	mov    %ecx,%esi
403f78:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
403f7e:	e8 93 0a 00 00       	call   0x404a16
403f83:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
403f87:	74 07                	je     0x403f90
403f89:	56                   	push   %esi
403f8a:	e8 65 e9 ff ff       	call   0x4028f4
403f8f:	59                   	pop    %ecx