402c11:	7f 38                	jg     0x402c4b
402c13:	33 c9                	xor    %ecx,%ecx
402c15:	89 46 f4             	mov    %eax,-0xc(%esi)
402c18:	66 89 0c 46          	mov    %cx,(%esi,%eax,2)
402c1c:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
402c23:	83 c6 f0             	add    $0xfffffff0,%esi
402c26:	83 c8 ff             	or     $0xffffffff,%eax
402c29:	f0 0f c1 46 0c       	lock xadd %eax,0xc(%esi)
402c2e:	48                   	dec    %eax
402c2f:	85 c0                	test   %eax,%eax
402c31:	7f 08                	jg     0x402c3b
402c33:	8b 0e                	mov    (%esi),%ecx
402c35:	56                   	push   %esi
402c36:	8b 01                	mov    (%ecx),%eax
402c38:	ff 50 04             	call   *0x4(%eax)
402c3b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402c3e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402c45:	59                   	pop    %ecx
402c46:	5e                   	pop    %esi
402c47:	8b e5                	mov    %ebp,%esp
402c49:	5d                   	pop    %ebp
402c4a:	c3                   	ret
402c4b:	68 57 00 07 80       	push   $0x80070057
402c50:	e8 6b e7 ff ff       	call   0x4013c0
402c55:	cc                   	int3
402c56:	cc                   	int3
402c57:	cc                   	int3
402c58:	cc                   	int3
402c59:	cc                   	int3
402c5a:	cc                   	int3
402c5b:	cc                   	int3
402c5c:	cc                   	int3
402c5d:	cc                   	int3
402c5e:	cc                   	int3
402c5f:	cc                   	int3
402c60:	55                   	push   %ebp
402c61:	8b ec                	mov    %esp,%ebp
402c63:	6a ff                	push   $0xffffffff
402c65:	68 90 a2 41 00       	push   $0x41a290
402c6a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402c70:	50                   	push   %eax
402c71:	a1 0c 30 42 00       	mov    0x42300c,%eax
402c76:	33 c5                	xor    %ebp,%eax
402c78:	50                   	push   %eax
402c79:	8d 45 f4             	lea    -0xc(%ebp),%eax
402c7c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402c82:	e8 29 02 00 00       	call   0x402eb0
402c87:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402c8a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402c91:	59                   	pop    %ecx
402c92:	8b e5                	mov    %ebp,%esp
402c94:	5d                   	pop    %ebp
402c95:	c3                   	ret
402c96:	cc                   	int3
402c97:	cc                   	int3
402c98:	cc                   	int3
402c99:	cc                   	int3
402c9a:	cc                   	int3
402c9b:	cc                   	int3
402c9c:	cc                   	int3
402c9d:	cc                   	int3
402c9e:	cc                   	int3
402c9f:	cc                   	int3
402ca0:	55                   	push   %ebp
402ca1:	8b ec                	mov    %esp,%ebp
402ca3:	6a ff                	push   $0xffffffff
402ca5:	68 b0 a2 41 00       	push   $0x41a2b0
402caa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402cb0:	50                   	push   %eax
402cb1:	83 ec 08             	sub    $0x8,%esp
402cb4:	53                   	push   %ebx
402cb5:	56                   	push   %esi
402cb6:	57                   	push   %edi
402cb7:	a1 0c 30 42 00       	mov    0x42300c,%eax
402cbc:	33 c5                	xor    %ebp,%eax
402cbe:	50                   	push   %eax
402cbf:	8d 45 f4             	lea    -0xc(%ebp),%eax
402cc2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402cc8:	89 65 f0             	mov    %esp,-0x10(%ebp)
402ccb:	8b f1                	mov    %ecx,%esi
402ccd:	89 75 ec             	mov    %esi,-0x14(%ebp)
402cd0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
402cd6:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
402cdd:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
402ce4:	68 08 02 00 00       	push   $0x208
402ce9:	e8 6c 07 00 00       	call   0x40345a
402cee:	83 c4 04             	add    $0x4,%esp
402cf1:	89 06                	mov    %eax,(%esi)
402cf3:	89 46 04             	mov    %eax,0x4(%esi)
402cf6:	05 08 02 00 00       	add    $0x208,%eax
402cfb:	89 46 08             	mov    %eax,0x8(%esi)
402cfe:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402d05:	68 08 02 00 00       	push   $0x208
402d0a:	6a 00                	push   $0x0
402d0c:	ff 36                	push   (%esi)
402d0e:	e8 4d 1d 00 00       	call   0x404a60
402d13:	83 c4 0c             	add    $0xc,%esp
402d16:	81 46 04 08 02 00 00 	addl   $0x208,0x4(%esi)
402d1d:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
402d24:	8b c6                	mov    %esi,%eax
402d26:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402d29:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402d30:	59                   	pop    %ecx
402d31:	5f                   	pop    %edi
402d32:	5e                   	pop    %esi
402d33:	5b                   	pop    %ebx
402d34:	8b e5                	mov    %ebp,%esp
402d36:	5d                   	pop    %ebp
402d37:	c2 04 00             	ret    $0x4
402d3a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
402d3d:	e8 6e 01 00 00       	call   0x402eb0
402d42:	6a 00                	push   $0x0
402d44:	6a 00                	push   $0x0
402d46:	e8 ec 17 00 00       	call   0x404537
402d4b:	cc                   	int3
402d4c:	cc                   	int3
402d4d:	cc                   	int3
402d4e:	cc                   	int3
402d4f:	cc                   	int3
402d50:	55                   	push   %ebp
402d51:	8b ec                	mov    %esp,%ebp
402d53:	6a ff                	push   $0xffffffff
402d55:	68 d0 a2 41 00       	push   $0x41a2d0
402d5a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402d60:	50                   	push   %eax
402d61:	51                   	push   %ecx
402d62:	53                   	push   %ebx
402d63:	56                   	push   %esi
402d64:	57                   	push   %edi
402d65:	a1 0c 30 42 00       	mov    0x42300c,%eax
402d6a:	33 c5                	xor    %ebp,%eax
402d6c:	50                   	push   %eax
402d6d:	8d 45 f4             	lea    -0xc(%ebp),%eax
402d70:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402d76:	89 65 f0             	mov    %esp,-0x10(%ebp)
402d79:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
402d80:	8b 0d 68 47 42 00    	mov    0x424768,%ecx
402d86:	85 c9                	test   %ecx,%ecx
402d88:	74 09                	je     0x402d93
402d8a:	8b 01                	mov    (%ecx),%eax
402d8c:	68 64 47 42 00       	push   $0x424764
402d91:	ff 10                	call   *(%eax)
402d93:	c7 05 64 47 42 00 00 	movl   $0x0,0x424764
402d9a:	00 00 00
402d9d:	c7 05 68 47 42 00 00 	movl   $0x0,0x424768
402da4:	00 00 00
402da7:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
402dae:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402db1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402db8:	59                   	pop    %ecx
402db9:	5f                   	pop    %edi
402dba:	5e                   	pop    %esi
402dbb:	5b                   	pop    %ebx
402dbc:	8b e5                	mov    %ebp,%esp
402dbe:	5d                   	pop    %ebp
402dbf:	c3                   	ret
402dc0:	b8 a7 2d 40 00       	mov    $0x402da7,%eax
402dc5:	c3                   	ret
402dc6:	cc                   	int3
402dc7:	cc                   	int3
402dc8:	cc                   	int3
402dc9:	cc                   	int3
402dca:	cc                   	int3
402dcb:	cc                   	int3
402dcc:	cc                   	int3
402dcd:	cc                   	int3
402dce:	cc                   	int3
402dcf:	cc                   	int3
402dd0:	55                   	push   %ebp
402dd1:	8b ec                	mov    %esp,%ebp
402dd3:	83 ec 08             	sub    $0x8,%esp
402dd6:	53                   	push   %ebx
402dd7:	8b 5d 08             	mov    0x8(%ebp),%ebx
402dda:	56                   	push   %esi
402ddb:	57                   	push   %edi
402ddc:	8b f9                	mov    %ecx,%edi
402dde:	85 db                	test   %ebx,%ebx
402de0:	0f 84 a0 00 00 00    	je     0x402e86
402de6:	8b 07                	mov    (%edi),%eax
402de8:	8b 70 f4             	mov    -0xc(%eax),%esi
402deb:	89 75 fc             	mov    %esi,-0x4(%ebp)
402dee:	e8 dd e2 ff ff       	call   0x4010d0
402df3:	ff 75 0c             	push   0xc(%ebp)
402df6:	89 45 f8             	mov    %eax,-0x8(%ebp)
402df9:	6a 00                	push   $0x0
402dfb:	8b 08                	mov    (%eax),%ecx
402dfd:	53                   	push   %ebx
402dfe:	6a 00                	push   $0x0
402e00:	6a 00                	push   $0x0
402e02:	ff 70 04             	push   0x4(%eax)
402e05:	83 c9 06             	or     $0x6,%ecx
402e08:	51                   	push   %ecx
402e09:	e8 d3 38 00 00       	call   0x4066e1
402e0e:	83 c9 ff             	or     $0xffffffff,%ecx
402e11:	83 c4 1c             	add    $0x1c,%esp
402e14:	85 c0                	test   %eax,%eax
402e16:	0f 48 c1             	cmovs  %ecx,%eax
402e19:	89 45 08             	mov    %eax,0x8(%ebp)
402e1c:	85 c0                	test   %eax,%eax
402e1e:	78 70                	js     0x402e90
402e20:	03 f0                	add    %eax,%esi
402e22:	78 76                	js     0x402e9a
402e24:	8b 07                	mov    (%edi),%eax
402e26:	b9 01 00 00 00       	mov    $0x1,%ecx
402e2b:	2b 48 fc             	sub    -0x4(%eax),%ecx
402e2e:	8b 40 f8             	mov    -0x8(%eax),%eax
402e31:	2b c6                	sub    %esi,%eax
402e33:	0b c8                	or     %eax,%ecx
402e35:	7d 08                	jge    0x402e3f
402e37:	56                   	push   %esi
402e38:	8b cf                	mov    %edi,%ecx
402e3a:	e8 c1 f8 ff ff       	call   0x402700
402e3f:	ff 75 0c             	push   0xc(%ebp)
402e42:	8b 45 08             	mov    0x8(%ebp),%eax
402e45:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402e48:	40                   	inc    %eax
402e49:	6a 00                	push   $0x0
402e4b:	53                   	push   %ebx
402e4c:	50                   	push   %eax
402e4d:	8b 07                	mov    (%edi),%eax
402e4f:	8d 04 48             	lea    (%eax,%ecx,2),%eax
402e52:	8b 4d f8             	mov    -0x8(%ebp),%ecx
402e55:	50                   	push   %eax
402e56:	8b 01                	mov    (%ecx),%eax
402e58:	ff 71 04             	push   0x4(%ecx)
402e5b:	83 c8 04             	or     $0x4,%eax
402e5e:	50                   	push   %eax
402e5f:	e8 a1 38 00 00       	call   0x406705
402e64:	83 c4 1c             	add    $0x1c,%esp
402e67:	85 f6                	test   %esi,%esi
402e69:	78 1b                	js     0x402e86
402e6b:	8b 07                	mov    (%edi),%eax
402e6d:	3b 70 f8             	cmp    -0x8(%eax),%esi
402e70:	7f 14                	jg     0x402e86
402e72:	89 70 f4             	mov    %esi,-0xc(%eax)
402e75:	33 c9                	xor    %ecx,%ecx
402e77:	8b 07                	mov    (%edi),%eax
402e79:	5f                   	pop    %edi
402e7a:	66 89 0c 70          	mov    %cx,(%eax,%esi,2)
402e7e:	5e                   	pop    %esi
402e7f:	5b                   	pop    %ebx
402e80:	8b e5                	mov    %ebp,%esp
402e82:	5d                   	pop    %ebp
402e83:	c2 08 00             	ret    $0x8
402e86:	68 57 00 07 80       	push   $0x80070057
402e8b:	e8 30 e5 ff ff       	call   0x4013c0
402e90:	68 05 40 00 80       	push   $0x80004005
402e95:	e8 26 e5 ff ff       	call   0x4013c0
402e9a:	68 57 00 07 80       	push   $0x80070057
402e9f:	e8 1c e5 ff ff       	call   0x4013c0
402ea4:	cc                   	int3
402ea5:	cc                   	int3
402ea6:	cc                   	int3
402ea7:	cc                   	int3
402ea8:	cc                   	int3
402ea9:	cc                   	int3
402eaa:	cc                   	int3
402eab:	cc                   	int3
402eac:	cc                   	int3
402ead:	cc                   	int3
402eae:	cc                   	int3
402eaf:	cc                   	int3
402eb0:	56                   	push   %esi
402eb1:	8b f1                	mov    %ecx,%esi
402eb3:	8b 16                	mov    (%esi),%edx
402eb5:	85 d2                	test   %edx,%edx
402eb7:	74 4e                	je     0x402f07
402eb9:	8b 46 08             	mov    0x8(%esi),%eax
402ebc:	2b c2                	sub    %edx,%eax
402ebe:	d1 f8                	sar    $1,%eax
402ec0:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
402ec5:	77 42                	ja     0x402f09
402ec7:	03 c0                	add    %eax,%eax
402ec9:	3d 00 10 00 00       	cmp    $0x1000,%eax
402ece:	72 1a                	jb     0x402eea
402ed0:	f6 c2 1f             	test   $0x1f,%dl
402ed3:	75 39                	jne    0x402f0e
402ed5:	8b 42 fc             	mov    -0x4(%edx),%eax
402ed8:	3b c2                	cmp    %edx,%eax
402eda:	73 37                	jae    0x402f13
402edc:	2b d0                	sub    %eax,%edx
402ede:	83 fa 04             	cmp    $0x4,%edx
402ee1:	72 35                	jb     0x402f18
402ee3:	83 fa 23             	cmp    $0x23,%edx
402ee6:	77 35                	ja     0x402f1d
402ee8:	8b d0                	mov    %eax,%edx
402eea:	52                   	push   %edx
402eeb:	e8 77 00 00 00       	call   0x402f67
402ef0:	83 c4 04             	add    $0x4,%esp
402ef3:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
402ef9:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
402f00:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
402f07:	5e                   	pop    %esi
402f08:	c3                   	ret
402f09:	e8 30 4d 00 00       	call   0x407c3e
402f0e:	e8 2b 4d 00 00       	call   0x407c3e
402f13:	e8 26 4d 00 00       	call   0x407c3e
402f18:	e8 21 4d 00 00       	call   0x407c3e
402f1d:	e8 1c 4d 00 00       	call   0x407c3e
402f22:	cc                   	int3
402f23:	55                   	push   %ebp
402f24:	8b ec                	mov    %esp,%ebp
402f26:	56                   	push   %esi
402f27:	ff 75 08             	push   0x8(%ebp)
402f2a:	8b f1                	mov    %ecx,%esi
402f2c:	e8 8f f9 ff ff       	call   0x4028c0
402f31:	c7 06 30 b2 41 00    	movl   $0x41b230,(%esi)
402f37:	8b c6                	mov    %esi,%eax
402f39:	5e                   	pop    %esi
402f3a:	5d                   	pop    %ebp
402f3b:	c2 04 00             	ret    $0x4
402f3e:	83 61 04 00          	andl   $0x0,0x4(%ecx)
402f42:	8b c1                	mov    %ecx,%eax
402f44:	83 61 08 00          	andl   $0x0,0x8(%ecx)
402f48:	c7 41 04 38 b2 41 00 	movl   $0x41b238,0x4(%ecx)
402f4f:	c7 01 30 b2 41 00    	movl   $0x41b230,(%ecx)
402f55:	c3                   	ret
402f56:	3b 0d 0c 30 42 00    	cmp    0x42300c,%ecx
402f5c:	f2 75 02             	bnd jne 0x402f61
402f5f:	f2 c3                	bnd ret
402f61:	f2 e9 85 07 00 00    	bnd jmp 0x4036ec
402f67:	e9 f3 4a 00 00       	jmp    0x407a5f
402f6c:	55                   	push   %ebp
402f6d:	8b ec                	mov    %esp,%ebp
402f6f:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
402f73:	56                   	push   %esi
402f74:	8b f1                	mov    %ecx,%esi
402f76:	c7 06 4c b2 41 00    	movl   $0x41b24c,(%esi)
402f7c:	74 0a                	je     0x402f88
402f7e:	6a 0c                	push   $0xc
402f80:	56                   	push   %esi
402f81:	e8 71 02 00 00       	call   0x4031f7
402f86:	59                   	pop    %ecx
402f87:	59                   	pop    %ecx
402f88:	8b c6                	mov    %esi,%eax
402f8a:	5e                   	pop    %esi
402f8b:	5d                   	pop    %ebp
402f8c:	c2 04 00             	ret    $0x4
402f8f:	55                   	push   %ebp
402f90:	8b ec                	mov    %esp,%ebp
402f92:	8b 45 08             	mov    0x8(%ebp),%eax
402f95:	56                   	push   %esi
402f96:	8b 48 3c             	mov    0x3c(%eax),%ecx
402f99:	03 c8                	add    %eax,%ecx
402f9b:	0f b7 41 14          	movzwl 0x14(%ecx),%eax
402f9f:	8d 51 18             	lea    0x18(%ecx),%edx
402fa2:	03 d0                	add    %eax,%edx
402fa4:	0f b7 41 06          	movzwl 0x6(%ecx),%eax
402fa8:	6b f0 28             	imul   $0x28,%eax,%esi
402fab:	03 f2                	add    %edx,%esi