422ea6:	74 38                	je     0x422ee0
422ea8:	83 e8 01             	sub    $0x1,%eax
422eab:	74 0d                	je     0x422eba
422ead:	83 e8 01             	sub    $0x1,%eax
422eb0:	75 41                	jne    0x422ef3
422eb2:	57                   	push   %edi
422eb3:	e8 f8 38 ff ff       	call   0x4167b0
422eb8:	eb 36                	jmp    0x422ef0
422eba:	85 ff                	test   %edi,%edi
422ebc:	78 19                	js     0x422ed7
422ebe:	bf 9c 02 07 80       	mov    $0x8007029c,%edi
422ec3:	57                   	push   %edi
422ec4:	6a 02                	push   $0x2
422ec6:	ff 75 14             	push   0x14(%ebp)
422ec9:	ff 75 10             	push   0x10(%ebp)
422ecc:	ff 75 0c             	push   0xc(%ebp)
422ecf:	ff 75 08             	push   0x8(%ebp)
422ed2:	e8 87 05 00 00       	call   0x42345e
422ed7:	8b cf                	mov    %edi,%ecx
422ed9:	e8 9a 02 00 00       	call   0x423178
422ede:	eb 10                	jmp    0x422ef0
422ee0:	8b cf                	mov    %edi,%ecx
422ee2:	e8 a4 02 00 00       	call   0x42318b
422ee7:	eb 07                	jmp    0x422ef0
422ee9:	8b cf                	mov    %edi,%ecx
422eeb:	e8 75 02 00 00       	call   0x423165
422ef0:	89 45 fc             	mov    %eax,-0x4(%ebp)
422ef3:	8b 75 38             	mov    0x38(%ebp),%esi
422ef6:	8b 45 18             	mov    0x18(%ebp),%eax
422ef9:	89 06                	mov    %eax,(%esi)
422efb:	33 c0                	xor    %eax,%eax
422efd:	89 7e 04             	mov    %edi,0x4(%esi)
422f00:	40                   	inc    %eax
422f01:	f0 0f c1 05 d8 a7 43 	lock xadd %eax,0x43a7d8
422f08:	00
422f09:	40                   	inc    %eax
422f0a:	89 46 08             	mov    %eax,0x8(%esi)
422f0d:	8b 45 20             	mov    0x20(%ebp),%eax
422f10:	85 c0                	test   %eax,%eax
422f12:	74 07                	je     0x422f1b
422f14:	33 c9                	xor    %ecx,%ecx
422f16:	66 39 08             	cmp    %cx,(%eax)
422f19:	75 02                	jne    0x422f1d
422f1b:	33 c0                	xor    %eax,%eax
422f1d:	89 46 0c             	mov    %eax,0xc(%esi)
422f20:	ff 15 f4 a1 44 00    	call   *0x44a1f4
422f26:	89 46 10             	mov    %eax,0x10(%esi)
422f29:	8d 7e 2c             	lea    0x2c(%esi),%edi
422f2c:	8b 45 08             	mov    0x8(%ebp),%eax
422f2f:	33 d2                	xor    %edx,%edx
422f31:	89 46 1c             	mov    %eax,0x1c(%esi)
422f34:	8b 45 f8             	mov    -0x8(%ebp),%eax
422f37:	89 46 20             	mov    %eax,0x20(%esi)
422f3a:	8b 45 fc             	mov    -0x4(%ebp),%eax
422f3d:	89 46 24             	mov    %eax,0x24(%esi)
422f40:	8b 45 10             	mov    0x10(%ebp),%eax
422f43:	89 46 14             	mov    %eax,0x14(%esi)
422f46:	8b 45 0c             	mov    0xc(%ebp),%eax
422f49:	89 46 18             	mov    %eax,0x18(%esi)
422f4c:	8b 45 14             	mov    0x14(%ebp),%eax
422f4f:	89 46 48             	mov    %eax,0x48(%esi)
422f52:	8b 45 f4             	mov    -0xc(%ebp),%eax
422f55:	89 46 4c             	mov    %eax,0x4c(%esi)
422f58:	33 c0                	xor    %eax,%eax
422f5a:	6a 06                	push   $0x6
422f5c:	59                   	pop    %ecx
422f5d:	89 56 28             	mov    %edx,0x28(%esi)
422f60:	f3 ab                	rep stos %eax,%es:(%edi)
422f62:	8b 3d 48 90 44 00    	mov    0x449048,%edi
422f68:	85 ff                	test   %edi,%edi
422f6a:	74 0a                	je     0x422f76
422f6c:	8b cf                	mov    %edi,%ecx
422f6e:	ff 15 c4 a4 44 00    	call   *0x44a4c4
422f74:	ff d7                	call   *%edi
422f76:	8b 3d 4c e5 42 00    	mov    0x42e54c,%edi
422f7c:	89 46 44             	mov    %eax,0x44(%esi)
422f7f:	85 ff                	test   %edi,%edi
422f81:	74 13                	je     0x422f96
422f83:	68 00 04 00 00       	push   $0x400
422f88:	ff 75 30             	push   0x30(%ebp)
422f8b:	8b cf                	mov    %edi,%ecx
422f8d:	56                   	push   %esi
422f8e:	ff 15 c4 a4 44 00    	call   *0x44a4c4
422f94:	ff d7                	call   *%edi
422f96:	8b 3d 78 90 44 00    	mov    0x449078,%edi
422f9c:	85 ff                	test   %edi,%edi
422f9e:	74 0b                	je     0x422fab
422fa0:	56                   	push   %esi
422fa1:	8b cf                	mov    %edi,%ecx
422fa3:	ff 15 c4 a4 44 00    	call   *0x44a4c4
422fa9:	ff d7                	call   *%edi
422fab:	8b 3d 80 90 44 00    	mov    0x449080,%edi
422fb1:	85 ff                	test   %edi,%edi
422fb3:	74 0b                	je     0x422fc0
422fb5:	56                   	push   %esi
422fb6:	8b cf                	mov    %edi,%ecx
422fb8:	ff 15 c4 a4 44 00    	call   *0x44a4c4
422fbe:	ff d7                	call   *%edi
422fc0:	33 c0                	xor    %eax,%eax
422fc2:	39 46 04             	cmp    %eax,0x4(%esi)
422fc5:	7c 11                	jl     0x422fd8
422fc7:	83 7d 18 03          	cmpl   $0x3,0x18(%ebp)
422fcb:	0f 85 90 00 00 00    	jne    0x423061
422fd1:	c7 46 04 ff ff 00 80 	movl   $0x8000ffff,0x4(%esi)
422fd8:	e8 5a fe ff ff       	call   0x422e37
422fdd:	8b 3d 6c 90 44 00    	mov    0x44906c,%edi
422fe3:	84 c0                	test   %al,%al
422fe5:	75 1d                	jne    0x423004
422fe7:	85 ff                	test   %edi,%edi
422fe9:	74 52                	je     0x42303d
422feb:	38 05 71 90 44 00    	cmp    %al,0x449071
422ff1:	75 4a                	jne    0x42303d
422ff3:	33 c0                	xor    %eax,%eax
422ff5:	8b cf                	mov    %edi,%ecx
422ff7:	50                   	push   %eax
422ff8:	50                   	push   %eax
422ff9:	56                   	push   %esi
422ffa:	ff 15 c4 a4 44 00    	call   *0x44a4c4
423000:	ff d7                	call   *%edi
423002:	eb 39                	jmp    0x42303d
423004:	85 ff                	test   %edi,%edi
423006:	74 1a                	je     0x423022
423008:	80 3d 71 90 44 00 00 	cmpb   $0x0,0x449071
42300f:	75 11                	jne    0x423022
423011:	68 00 08 00 00       	push   $0x800
423016:	53                   	push   %ebx
423017:	56                   	push   %esi
423018:	8b cf                	mov    %edi,%ecx
42301a:	ff 15 c4 a4 44 00    	call   *0x44a4c4
423020:	ff d7                	call   *%edi
423022:	33 c0                	xor    %eax,%eax
423024:	66 39 03             	cmp    %ax,(%ebx)
423027:	75 0d                	jne    0x423036
423029:	56                   	push   %esi
42302a:	ba 00 08 00 00       	mov    $0x800,%edx
42302f:	8b cb                	mov    %ebx,%ecx
423031:	e8 23 f8 ff ff       	call   0x422859
423036:	53                   	push   %ebx
423037:	ff 15 5c a0 44 00    	call   *0x44a05c
42303d:	80 3d 70 90 44 00 00 	cmpb   $0x0,0x449070
423044:	74 14                	je     0x42305a
423046:	8b 35 40 90 44 00    	mov    0x449040,%esi
42304c:	85 f6                	test   %esi,%esi
42304e:	74 0a                	je     0x42305a
423050:	8b ce                	mov    %esi,%ecx
423052:	ff 15 c4 a4 44 00    	call   *0x44a4c4
423058:	ff d6                	call   *%esi
42305a:	5f                   	pop    %edi
42305b:	5e                   	pop    %esi
42305c:	5b                   	pop    %ebx
42305d:	c9                   	leave
42305e:	c2 34 00             	ret    $0x34
423061:	e8 ac 4c ff ff       	call   0x417d12
423066:	cc                   	int3
423067:	8b ff                	mov    %edi,%edi
423069:	55                   	push   %ebp
42306a:	8b ec                	mov    %esp,%ebp
42306c:	8b 55 0c             	mov    0xc(%ebp),%edx
42306f:	8d 45 14             	lea    0x14(%ebp),%eax
423072:	56                   	push   %esi
423073:	8b 75 08             	mov    0x8(%ebp),%esi
423076:	2b d6                	sub    %esi,%edx
423078:	50                   	push   %eax
423079:	ff 75 10             	push   0x10(%ebp)
42307c:	d1 fa                	sar    $1,%edx
42307e:	8b ce                	mov    %esi,%ecx
423080:	e8 08 6a fe ff       	call   0x409a8d
423085:	39 75 0c             	cmp    %esi,0xc(%ebp)
423088:	74 17                	je     0x4230a1
42308a:	8b ce                	mov    %esi,%ecx
42308c:	8d 51 02             	lea    0x2(%ecx),%edx
42308f:	66 8b 01             	mov    (%ecx),%ax
423092:	83 c1 02             	add    $0x2,%ecx
423095:	66 85 c0             	test   %ax,%ax
423098:	75 f5                	jne    0x42308f
42309a:	2b ca                	sub    %edx,%ecx
42309c:	d1 f9                	sar    $1,%ecx
42309e:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
4230a1:	8b c6                	mov    %esi,%eax
4230a3:	5e                   	pop    %esi
4230a4:	5d                   	pop    %ebp
4230a5:	c3                   	ret
4230a6:	8b ff                	mov    %edi,%edi
4230a8:	55                   	push   %ebp
4230a9:	8b ec                	mov    %esp,%ebp
4230ab:	83 e4 f8             	and    $0xfffffff8,%esp
4230ae:	83 ec 14             	sub    $0x14,%esp
4230b1:	53                   	push   %ebx
4230b2:	56                   	push   %esi
4230b3:	57                   	push   %edi
4230b4:	8b 7d 08             	mov    0x8(%ebp),%edi
4230b7:	8b da                	mov    %edx,%ebx
4230b9:	6a 40                	push   $0x40
4230bb:	5a                   	pop    %edx
4230bc:	6a 08                	push   $0x8
4230be:	83 27 00             	andl   $0x0,(%edi)
4230c1:	8b f1                	mov    %ecx,%esi
4230c3:	59                   	pop    %ecx
4230c4:	e8 c4 4b ff ff       	call   0x417c8d
4230c9:	89 44 24 14          	mov    %eax,0x14(%esp)
4230cd:	89 44 24 10          	mov    %eax,0x10(%esp)
4230d1:	85 c0                	test   %eax,%eax
4230d3:	75 1a                	jne    0x4230ef
4230d5:	8b 4d 04             	mov    0x4(%ebp),%ecx
4230d8:	be 0e 00 07 80       	mov    $0x8007000e,%esi
4230dd:	56                   	push   %esi
4230de:	68 7c 34 40 00       	push   $0x40347c
4230e3:	ba 42 01 00 00       	mov    $0x142,%edx
4230e8:	e8 e7 03 00 00       	call   0x4234d4
4230ed:	eb 5c                	jmp    0x42314b
4230ef:	33 c9                	xor    %ecx,%ecx
4230f1:	89 4c 24 18          	mov    %ecx,0x18(%esp)
4230f5:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
4230f9:	a8 03                	test   $0x3,%al
4230fb:	75 62                	jne    0x42315f
4230fd:	51                   	push   %ecx
4230fe:	c1 e8 02             	shr    $0x2,%eax
423101:	50                   	push   %eax
423102:	51                   	push   %ecx
423103:	56                   	push   %esi
423104:	8d 4c 24 28          	lea    0x28(%esp),%ecx
423108:	e8 77 f4 ff ff       	call   0x422584
42310d:	8b f0                	mov    %eax,%esi
42310f:	85 f6                	test   %esi,%esi
423111:	79 15                	jns    0x423128
423113:	8b 4d 04             	mov    0x4(%ebp),%ecx
423116:	ba 45 01 00 00       	mov    $0x145,%edx
42311b:	56                   	push   %esi
42311c:	68 7c 34 40 00       	push   $0x40347c
423121:	e8 ae 03 00 00       	call   0x4234d4
423126:	eb 1a                	jmp    0x423142
423128:	8b 74 24 14          	mov    0x14(%esp),%esi
42312c:	8d 44 24 18          	lea    0x18(%esp),%eax
423130:	50                   	push   %eax
423131:	53                   	push   %ebx
423132:	8b ce                	mov    %esi,%ecx
423134:	e8 35 f1 ff ff       	call   0x42226e
423139:	83 64 24 10 00       	andl   $0x0,0x10(%esp)
42313e:	89 37                	mov    %esi,(%edi)
423140:	33 f6                	xor    %esi,%esi
423142:	8d 4c 24 18          	lea    0x18(%esp),%ecx
423146:	e8 f0 f1 ff ff       	call   0x42233b
42314b:	8d 4c 24 10          	lea    0x10(%esp),%ecx
42314f:	e8 cd f1 ff ff       	call   0x422321
423154:	5f                   	pop    %edi
423155:	8b c6                	mov    %esi,%eax
423157:	5e                   	pop    %esi
423158:	5b                   	pop    %ebx
423159:	8b e5                	mov    %ebp,%esp
42315b:	5d                   	pop    %ebp
42315c:	c2 04 00             	ret    $0x4
42315f:	e8 ae 4b ff ff       	call   0x417d12
423164:	cc                   	int3
423165:	33 c0                	xor    %eax,%eax
423167:	89 0d 54 e5 42 00    	mov    %ecx,0x42e554
42316d:	40                   	inc    %eax
42316e:	f0 0f c1 05 d0 a7 43 	lock xadd %eax,0x43a7d0
423175:	00
423176:	40                   	inc    %eax
423177:	c3                   	ret
423178:	33 c0                	xor    %eax,%eax
42317a:	89 0d 58 e5 42 00    	mov    %ecx,0x42e558
423180:	40                   	inc    %eax
423181:	f0 0f c1 05 dc a7 43 	lock xadd %eax,0x43a7dc
423188:	00
423189:	40                   	inc    %eax
42318a:	c3                   	ret
42318b:	33 c0                	xor    %eax,%eax
42318d:	89 0d 40 e5 42 00    	mov    %ecx,0x42e540
423193:	40                   	inc    %eax
423194:	f0 0f c1 05 d4 a7 43 	lock xadd %eax,0x43a7d4
42319b:	00
42319c:	40                   	inc    %eax
42319d:	c3                   	ret
42319e:	8b ff                	mov    %edi,%edi
4231a0:	55                   	push   %ebp
4231a1:	8b ec                	mov    %esp,%ebp
4231a3:	83 ec 24             	sub    $0x24,%esp
4231a6:	80 3d 84 90 44 00 00 	cmpb   $0x0,0x449084
4231ad:	53                   	push   %ebx
4231ae:	56                   	push   %esi
4231af:	57                   	push   %edi
4231b0:	8b f9                	mov    %ecx,%edi
4231b2:	0f 85 f6 00 00 00    	jne    0x4232ae
4231b8:	8b 1d 3c 90 44 00    	mov    0x44903c,%ebx
4231be:	33 f6                	xor    %esi,%esi
4231c0:	85 db                	test   %ebx,%ebx
4231c2:	74 0f                	je     0x4231d3
4231c4:	8b cb                	mov    %ebx,%ecx
4231c6:	ff 15 c4 a4 44 00    	call   *0x44a4c4
4231cc:	ff d3                	call   *%ebx
4231ce:	0f b6 c0             	movzbl %al,%eax
4231d1:	eb 02                	jmp    0x4231d5
4231d3:	8b c6                	mov    %esi,%eax
4231d5:	85 c0                	test   %eax,%eax
4231d7:	0f 85 d1 00 00 00    	jne    0x4232ae
4231dd:	83 ec 0c             	sub    $0xc,%esp
4231e0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4231e3:	8d 4f 04             	lea    0x4(%edi),%ecx
4231e6:	50                   	push   %eax
4231e7:	e8 f0 07 00 00       	call   0x4239dc
4231ec:	8b 07                	mov    (%edi),%eax
4231ee:	83 e8 01             	sub    $0x1,%eax
4231f1:	89 07                	mov    %eax,(%edi)
4231f3:	0f 85 97 00 00 00    	jne    0x423290
4231f9:	8b 4f 08             	mov    0x8(%edi),%ecx
4231fc:	85 c9                	test   %ecx,%ecx
4231fe:	74 05                	je     0x423205
423200:	e8 1f 08 00 00       	call   0x423a24
423205:	89 77 08             	mov    %esi,0x8(%edi)
423208:	8b 4f 0c             	mov    0xc(%edi),%ecx
42320b:	85 c9                	test   %ecx,%ecx
42320d:	74 05                	je     0x423214
42320f:	e8 10 08 00 00       	call   0x423a24
423214:	8b 4d fc             	mov    -0x4(%ebp),%ecx
423217:	89 77 0c             	mov    %esi,0xc(%edi)
42321a:	85 c9                	test   %ecx,%ecx
42321c:	74 05                	je     0x423223
42321e:	e8 30 08 00 00       	call   0x423a53
423223:	8d 4f 18             	lea    0x18(%edi),%ecx
423226:	e8 a1 f0 ff ff       	call   0x4222cc
42322b:	8b 47 0c             	mov    0xc(%edi),%eax
42322e:	85 c0                	test   %eax,%eax
423230:	74 15                	je     0x423247
423232:	8d 55 f8             	lea    -0x8(%ebp),%edx
423235:	89 45 f8             	mov    %eax,-0x8(%ebp)
423238:	8d 4d f4             	lea    -0xc(%ebp),%ecx
42323b:	c7 45 f4 60 25 42 00 	movl   $0x422560,-0xc(%ebp)
423242:	e8 33 4a ff ff       	call   0x417c7a
423247:	8b 47 08             	mov    0x8(%edi),%eax
42324a:	85 c0                	test   %eax,%eax
42324c:	74 15                	je     0x423263
42324e:	8d 55 f0             	lea    -0x10(%ebp),%edx
423251:	89 45 f0             	mov    %eax,-0x10(%ebp)
423254:	8d 4d ec             	lea    -0x14(%ebp),%ecx
423257:	c7 45 ec 60 25 42 00 	movl   $0x422560,-0x14(%ebp)
42325e:	e8 17 4a ff ff       	call   0x417c7a
423263:	8b 47 04             	mov    0x4(%edi),%eax
423266:	85 c0                	test   %eax,%eax
423268:	74 15                	je     0x42327f
42326a:	8d 55 e8             	lea    -0x18(%ebp),%edx
42326d:	89 45 e8             	mov    %eax,-0x18(%ebp)
423270:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
423273:	c7 45 e4 60 25 42 00 	movl   $0x422560,-0x1c(%ebp)
42327a:	e8 fb 49 ff ff       	call   0x417c7a
42327f:	57                   	push   %edi
423280:	56                   	push   %esi
423281:	ff 15 34 a1 44 00    	call   *0x44a134
423287:	50                   	push   %eax
423288:	ff 15 3c a1 44 00    	call   *0x44a13c