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
402fad:	3b d6                	cmp    %esi,%edx
402faf:	74 19                	je     0x402fca
402fb1:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402fb4:	3b 4a 0c             	cmp    0xc(%edx),%ecx
402fb7:	72 0a                	jb     0x402fc3
402fb9:	8b 42 08             	mov    0x8(%edx),%eax
402fbc:	03 42 0c             	add    0xc(%edx),%eax
402fbf:	3b c8                	cmp    %eax,%ecx
402fc1:	72 0c                	jb     0x402fcf
402fc3:	83 c2 28             	add    $0x28,%edx
402fc6:	3b d6                	cmp    %esi,%edx
402fc8:	75 ea                	jne    0x402fb4
402fca:	33 c0                	xor    %eax,%eax
402fcc:	5e                   	pop    %esi
402fcd:	5d                   	pop    %ebp
402fce:	c3                   	ret
402fcf:	8b c2                	mov    %edx,%eax
402fd1:	eb f9                	jmp    0x402fcc
402fd3:	e8 ad 09 00 00       	call   0x403985
402fd8:	85 c0                	test   %eax,%eax
402fda:	75 03                	jne    0x402fdf
402fdc:	32 c0                	xor    %al,%al
402fde:	c3                   	ret
402fdf:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
402fe5:	56                   	push   %esi
402fe6:	be ac 3a 42 00       	mov    $0x423aac,%esi
402feb:	8b 50 04             	mov    0x4(%eax),%edx
402fee:	eb 04                	jmp    0x402ff4
402ff0:	3b d0                	cmp    %eax,%edx
402ff2:	74 10                	je     0x403004
402ff4:	33 c0                	xor    %eax,%eax
402ff6:	8b ca                	mov    %edx,%ecx
402ff8:	f0 0f b1 0e          	lock cmpxchg %ecx,(%esi)
402ffc:	85 c0                	test   %eax,%eax
402ffe:	75 f0                	jne    0x402ff0
403000:	32 c0                	xor    %al,%al
403002:	5e                   	pop    %esi
403003:	c3                   	ret
403004:	b0 01                	mov    $0x1,%al
403006:	5e                   	pop    %esi
403007:	c3                   	ret
403008:	55                   	push   %ebp
403009:	8b ec                	mov    %esp,%ebp
40300b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40300f:	75 07                	jne    0x403018
403011:	c6 05 c8 3a 42 00 01 	movb   $0x1,0x423ac8
403018:	e8 ca 07 00 00       	call   0x4037e7
40301d:	e8 83 15 00 00       	call   0x4045a5
403022:	84 c0                	test   %al,%al
403024:	75 04                	jne    0x40302a
403026:	32 c0                	xor    %al,%al
403028:	5d                   	pop    %ebp
403029:	c3                   	ret
40302a:	e8 b3 61 00 00       	call   0x4091e2
40302f:	84 c0                	test   %al,%al
403031:	75 0a                	jne    0x40303d
403033:	6a 00                	push   $0x0
403035:	e8 94 15 00 00       	call   0x4045ce
40303a:	59                   	pop    %ecx
40303b:	eb e9                	jmp    0x403026
40303d:	b0 01                	mov    $0x1,%al
40303f:	5d                   	pop    %ebp
403040:	c3                   	ret
403041:	55                   	push   %ebp
403042:	8b ec                	mov    %esp,%ebp
403044:	83 ec 0c             	sub    $0xc,%esp
403047:	56                   	push   %esi
403048:	8b 75 08             	mov    0x8(%ebp),%esi
40304b:	85 f6                	test   %esi,%esi
40304d:	74 05                	je     0x403054
40304f:	83 fe 01             	cmp    $0x1,%esi
403052:	75 7c                	jne    0x4030d0
403054:	e8 2c 09 00 00       	call   0x403985
403059:	85 c0                	test   %eax,%eax
40305b:	74 2a                	je     0x403087
40305d:	85 f6                	test   %esi,%esi
40305f:	75 26                	jne    0x403087
403061:	68 b0 3a 42 00       	push   $0x423ab0
403066:	e8 22 60 00 00       	call   0x40908d
40306b:	59                   	pop    %ecx
40306c:	85 c0                	test   %eax,%eax
40306e:	74 04                	je     0x403074
403070:	32 c0                	xor    %al,%al
403072:	eb 57                	jmp    0x4030cb
403074:	68 bc 3a 42 00       	push   $0x423abc
403079:	e8 0f 60 00 00       	call   0x40908d
40307e:	f7 d8                	neg    %eax
403080:	59                   	pop    %ecx
403081:	1a c0                	sbb    %al,%al
403083:	fe c0                	inc    %al
403085:	eb 44                	jmp    0x4030cb
403087:	a1 0c 30 42 00       	mov    0x42300c,%eax
40308c:	8d 75 f4             	lea    -0xc(%ebp),%esi
40308f:	57                   	push   %edi
403090:	83 e0 1f             	and    $0x1f,%eax
403093:	bf b0 3a 42 00       	mov    $0x423ab0,%edi
403098:	6a 20                	push   $0x20
40309a:	59                   	pop    %ecx
40309b:	2b c8                	sub    %eax,%ecx
40309d:	83 c8 ff             	or     $0xffffffff,%eax
4030a0:	d3 c8                	ror    %cl,%eax
4030a2:	33 05 0c 30 42 00    	xor    0x42300c,%eax
4030a8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4030ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
4030ae:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030b1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030b2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030b3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030b4:	bf bc 3a 42 00       	mov    $0x423abc,%edi
4030b9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4030bc:	89 45 f8             	mov    %eax,-0x8(%ebp)
4030bf:	8d 75 f4             	lea    -0xc(%ebp),%esi
4030c2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4030c5:	b0 01                	mov    $0x1,%al
4030c7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030c8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030c9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4030ca:	5f                   	pop    %edi
4030cb:	5e                   	pop    %esi
4030cc:	8b e5                	mov    %ebp,%esp
4030ce:	5d                   	pop    %ebp
4030cf:	c3                   	ret
4030d0:	6a 05                	push   $0x5
4030d2:	e8 ba 08 00 00       	call   0x403991
4030d7:	cc                   	int3
4030d8:	6a 08                	push   $0x8
4030da:	68 e0 1a 42 00       	push   $0x421ae0
4030df:	e8 6c 0a 00 00       	call   0x403b50
4030e4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4030e8:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
4030ed:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
4030f4:	75 5d                	jne    0x403153
4030f6:	a1 3c 00 40 00       	mov    0x40003c,%eax
4030fb:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
403102:	45 00 00
403105:	75 4c                	jne    0x403153
403107:	b9 0b 01 00 00       	mov    $0x10b,%ecx
40310c:	66 39 88 18 00 40 00 	cmp    %cx,0x400018(%eax)
403113:	75 3e                	jne    0x403153
403115:	8b 45 08             	mov    0x8(%ebp),%eax
403118:	b9 00 00 40 00       	mov    $0x400000,%ecx
40311d:	2b c1                	sub    %ecx,%eax
40311f:	50                   	push   %eax
403120:	51                   	push   %ecx
403121:	e8 69 fe ff ff       	call   0x402f8f
403126:	59                   	pop    %ecx
403127:	59                   	pop    %ecx
403128:	85 c0                	test   %eax,%eax
40312a:	74 27                	je     0x403153
40312c:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
403130:	7c 21                	jl     0x403153
403132:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403139:	b0 01                	mov    $0x1,%al
40313b:	eb 1f                	jmp    0x40315c
40313d:	8b 45 ec             	mov    -0x14(%ebp),%eax
403140:	8b 00                	mov    (%eax),%eax
403142:	33 c9                	xor    %ecx,%ecx
403144:	81 38 05 00 00 c0    	cmpl   $0xc0000005,(%eax)
40314a:	0f 94 c1             	sete   %cl
40314d:	8b c1                	mov    %ecx,%eax
40314f:	c3                   	ret
403150:	8b 65 e8             	mov    -0x18(%ebp),%esp
403153:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40315a:	32 c0                	xor    %al,%al
40315c:	e8 35 0a 00 00       	call   0x403b96
403161:	c3                   	ret
403162:	55                   	push   %ebp
403163:	8b ec                	mov    %esp,%ebp
403165:	e8 1b 08 00 00       	call   0x403985
40316a:	85 c0                	test   %eax,%eax
40316c:	74 0f                	je     0x40317d
40316e:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
403172:	75 09                	jne    0x40317d
403174:	33 c0                	xor    %eax,%eax
403176:	b9 ac 3a 42 00       	mov    $0x423aac,%ecx