40df3e:	ff 15 0c 30 45 00    	call   *0x45300c
40df44:	85 ff                	test   %edi,%edi
40df46:	0f 88 e5 a4 01 00    	js     0x428431
40df4c:	68 70 66 40 00       	push   $0x406670
40df51:	ff 75 34             	push   0x34(%ebp)
40df54:	8d 45 ec             	lea    -0x14(%ebp),%eax
40df57:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
40df5e:	68 78 66 40 00       	push   $0x406678
40df63:	50                   	push   %eax
40df64:	6a 03                	push   $0x3
40df66:	e8 25 18 00 00       	call   0x40f790
40df6b:	8b f8                	mov    %eax,%edi
40df6d:	83 c4 14             	add    $0x14,%esp
40df70:	85 ff                	test   %edi,%edi
40df72:	0f 88 b9 a4 01 00    	js     0x428431
40df78:	ff 75 ec             	push   -0x14(%ebp)
40df7b:	8b ce                	mov    %esi,%ecx
40df7d:	83 ec 0c             	sub    $0xc,%esp
40df80:	e8 3b fa ff ff       	call   0x40d9c0
40df85:	ff 75 ec             	push   -0x14(%ebp)
40df88:	8b f8                	mov    %eax,%edi
40df8a:	ff 15 0c 30 45 00    	call   *0x45300c
40df90:	85 ff                	test   %edi,%edi
40df92:	0f 88 99 a4 01 00    	js     0x428431
40df98:	8b 86 80 06 00 00    	mov    0x680(%esi),%eax
40df9e:	83 f8 0b             	cmp    $0xb,%eax
40dfa1:	0f 84 82 a3 01 00    	je     0x428329
40dfa7:	83 f8 08             	cmp    $0x8,%eax
40dfaa:	0f 84 79 a3 01 00    	je     0x428329
40dfb0:	8b 15 00 f0 44 00    	mov    0x44f000,%edx
40dfb6:	8b c8                	mov    %eax,%ecx
40dfb8:	81 fa 00 f0 44 00    	cmp    $0x44f000,%edx
40dfbe:	74 0a                	je     0x40dfca
40dfc0:	f6 42 1c 04          	testb  $0x4,0x1c(%edx)
40dfc4:	0f 85 7d a3 01 00    	jne    0x428347
40dfca:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
40dfd1:	83 f9 03             	cmp    $0x3,%ecx
40dfd4:	74 12                	je     0x40dfe8
40dfd6:	83 7e 20 01          	cmpl   $0x1,0x20(%esi)
40dfda:	75 0c                	jne    0x40dfe8
40dfdc:	8b 46 18             	mov    0x18(%esi),%eax
40dfdf:	83 f8 01             	cmp    $0x1,%eax
40dfe2:	0f 85 8f a3 01 00    	jne    0x428377
40dfe8:	56                   	push   %esi
40dfe9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40dfec:	50                   	push   %eax
40dfed:	8b 45 30             	mov    0x30(%ebp),%eax
40dff0:	51                   	push   %ecx
40dff1:	8b 4d 20             	mov    0x20(%ebp),%ecx
40dff4:	50                   	push   %eax
40dff5:	ff 75 2c             	push   0x2c(%ebp)
40dff8:	ff 75 28             	push   0x28(%ebp)
40dffb:	ff 75 24             	push   0x24(%ebp)
40dffe:	51                   	push   %ecx
40dfff:	ff 75 1c             	push   0x1c(%ebp)
40e002:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e005:	e8 36 2a 00 00       	call   0x410a40
40e00a:	8b d8                	mov    %eax,%ebx
40e00c:	85 db                	test   %ebx,%ebx
40e00e:	78 4e                	js     0x40e05e
40e010:	ff 75 f0             	push   -0x10(%ebp)
40e013:	56                   	push   %esi
40e014:	e8 be 45 00 00       	call   0x4125d7
40e019:	8b d8                	mov    %eax,%ebx
40e01b:	85 db                	test   %ebx,%ebx
40e01d:	0f 88 ac a3 01 00    	js     0x4283cf
40e023:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e026:	ff 75 3c             	push   0x3c(%ebp)
40e029:	ff 75 38             	push   0x38(%ebp)
40e02c:	8b 01                	mov    (%ecx),%eax
40e02e:	51                   	push   %ecx
40e02f:	8b 38                	mov    (%eax),%edi
40e031:	81 ff 90 30 41 00    	cmp    $0x413090,%edi
40e037:	0f 85 81 a3 01 00    	jne    0x4283be
40e03d:	e8 4e 50 00 00       	call   0x413090
40e042:	8b d8                	mov    %eax,%ebx
40e044:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e047:	51                   	push   %ecx
40e048:	8b 01                	mov    (%ecx),%eax
40e04a:	8b 78 08             	mov    0x8(%eax),%edi
40e04d:	81 ff 20 41 41 00    	cmp    $0x414120,%edi
40e053:	0f 85 c9 a3 01 00    	jne    0x428422
40e059:	e8 c2 60 00 00       	call   0x414120
40e05e:	83 c8 ff             	or     $0xffffffff,%eax
40e061:	f0 0f c1 06          	lock xadd %eax,(%esi)
40e065:	48                   	dec    %eax
40e066:	0f 84 dc a3 01 00    	je     0x428448
40e06c:	8b 7d 0c             	mov    0xc(%ebp),%edi
40e06f:	8b 0d 00 f0 44 00    	mov    0x44f000,%ecx
40e075:	8b 55 e8             	mov    -0x18(%ebp),%edx
40e078:	85 d2                	test   %edx,%edx
40e07a:	0f 85 e7 a3 01 00    	jne    0x428467
40e080:	0b 7d 10             	or     0x10(%ebp),%edi
40e083:	0f 85 f9 a3 01 00    	jne    0x428482
40e089:	81 f9 00 f0 44 00    	cmp    $0x44f000,%ecx
40e08f:	74 0a                	je     0x40e09b
40e091:	f6 41 1c 04          	testb  $0x4,0x1c(%ecx)
40e095:	0f 85 06 a4 01 00    	jne    0x4284a1
40e09b:	85 db                	test   %ebx,%ebx
40e09d:	0f 88 29 a4 01 00    	js     0x4284cc
40e0a3:	81 f9 00 f0 44 00    	cmp    $0x44f000,%ecx
40e0a9:	74 0a                	je     0x40e0b5
40e0ab:	f6 41 1c 04          	testb  $0x4,0x1c(%ecx)
40e0af:	0f 85 31 a4 01 00    	jne    0x4284e6
40e0b5:	8b c3                	mov    %ebx,%eax
40e0b7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e0ba:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40e0c1:	59                   	pop    %ecx
40e0c2:	5f                   	pop    %edi
40e0c3:	5e                   	pop    %esi
40e0c4:	5b                   	pop    %ebx
40e0c5:	8b e5                	mov    %ebp,%esp
40e0c7:	5d                   	pop    %ebp
40e0c8:	c2 38 00             	ret    $0x38
40e0cb:	cc                   	int3
40e0cc:	cc                   	int3
40e0cd:	cc                   	int3
40e0ce:	cc                   	int3
40e0cf:	cc                   	int3
40e0d0:	8b ff                	mov    %edi,%edi
40e0d2:	55                   	push   %ebp
40e0d3:	8b ec                	mov    %esp,%ebp
40e0d5:	6a ff                	push   $0xffffffff
40e0d7:	68 91 33 42 00       	push   $0x423391
40e0dc:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40e0e2:	50                   	push   %eax
40e0e3:	81 ec f4 04 00 00    	sub    $0x4f4,%esp
40e0e9:	a1 54 02 45 00       	mov    0x450254,%eax
40e0ee:	33 c5                	xor    %ebp,%eax
40e0f0:	89 45 f0             	mov    %eax,-0x10(%ebp)
40e0f3:	53                   	push   %ebx
40e0f4:	56                   	push   %esi
40e0f5:	57                   	push   %edi
40e0f6:	50                   	push   %eax
40e0f7:	8d 45 f4             	lea    -0xc(%ebp),%eax
40e0fa:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40e100:	8b f9                	mov    %ecx,%edi
40e102:	89 bd c0 fb ff ff    	mov    %edi,-0x440(%ebp)
40e108:	8b 45 14             	mov    0x14(%ebp),%eax
40e10b:	8b 5d 10             	mov    0x10(%ebp),%ebx
40e10e:	89 85 98 fb ff ff    	mov    %eax,-0x468(%ebp)
40e114:	8d 85 10 fb ff ff    	lea    -0x4f0(%ebp),%eax
40e11a:	50                   	push   %eax
40e11b:	89 9d c4 fb ff ff    	mov    %ebx,-0x43c(%ebp)
40e121:	c7 85 b4 fb ff ff 00 	movl   $0x0,-0x44c(%ebp)
40e128:	00 00 00
40e12b:	ff 15 00 30 45 00    	call   *0x453000
40e131:	8d 85 00 fb ff ff    	lea    -0x500(%ebp),%eax
40e137:	50                   	push   %eax
40e138:	ff 15 00 30 45 00    	call   *0x453000
40e13e:	8b 33                	mov    (%ebx),%esi
40e140:	8d 85 78 fb ff ff    	lea    -0x488(%ebp),%eax
40e146:	50                   	push   %eax
40e147:	8d 85 74 fb ff ff    	lea    -0x48c(%ebp),%eax
40e14d:	c7 85 74 fb ff ff 00 	movl   $0x0,-0x48c(%ebp)
40e154:	00 00 00
40e157:	50                   	push   %eax
40e158:	8b 76 10             	mov    0x10(%esi),%esi
40e15b:	8d 85 10 fb ff ff    	lea    -0x4f0(%ebp),%eax
40e161:	50                   	push   %eax
40e162:	6a 00                	push   $0x0
40e164:	68 a4 6a 40 00       	push   $0x406aa4
40e169:	53                   	push   %ebx
40e16a:	8b ce                	mov    %esi,%ecx
40e16c:	c7 85 78 fb ff ff 00 	movl   $0x0,-0x488(%ebp)
40e173:	00 00 00
40e176:	ff 15 c4 12 45 00    	call   *0x4512c4
40e17c:	ff d6                	call   *%esi
40e17e:	8b d8                	mov    %eax,%ebx
40e180:	85 db                	test   %ebx,%ebx
40e182:	0f 88 dd 02 00 00    	js     0x40e465
40e188:	66 83 bd 10 fb ff ff 	cmpw   $0x8,-0x4f0(%ebp)
40e18f:	08
40e190:	0f 85 3e a4 01 00    	jne    0x4285d4
40e196:	8b 85 c4 fb ff ff    	mov    -0x43c(%ebp),%eax
40e19c:	8d 8d 78 fb ff ff    	lea    -0x488(%ebp),%ecx
40e1a2:	51                   	push   %ecx
40e1a3:	8d 8d 74 fb ff ff    	lea    -0x48c(%ebp),%ecx
40e1a9:	51                   	push   %ecx
40e1aa:	8b 30                	mov    (%eax),%esi
40e1ac:	8d 8d 00 fb ff ff    	lea    -0x500(%ebp),%ecx
40e1b2:	51                   	push   %ecx
40e1b3:	6a 00                	push   $0x0
40e1b5:	68 90 6a 40 00       	push   $0x406a90
40e1ba:	8b 76 10             	mov    0x10(%esi),%esi
40e1bd:	8b ce                	mov    %esi,%ecx
40e1bf:	50                   	push   %eax
40e1c0:	ff 15 c4 12 45 00    	call   *0x4512c4
40e1c6:	ff d6                	call   *%esi
40e1c8:	8b d8                	mov    %eax,%ebx
40e1ca:	85 db                	test   %ebx,%ebx
40e1cc:	0f 88 93 02 00 00    	js     0x40e465
40e1d2:	66 83 bd 00 fb ff ff 	cmpw   $0x8,-0x500(%ebp)
40e1d9:	08
40e1da:	0f 85 f4 a3 01 00    	jne    0x4285d4
40e1e0:	8b 85 18 fb ff ff    	mov    -0x4e8(%ebp),%eax
40e1e6:	85 c0                	test   %eax,%eax
40e1e8:	0f 84 2e a3 01 00    	je     0x42851c
40e1ee:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40e1f3:	33 db                	xor    %ebx,%ebx
40e1f5:	66 39 18             	cmp    %bx,(%eax)
40e1f8:	74 0d                	je     0x40e207
40e1fa:	83 c0 02             	add    $0x2,%eax
40e1fd:	83 e9 01             	sub    $0x1,%ecx
40e200:	75 f3                	jne    0x40e1f5
40e202:	e9 04 a3 01 00       	jmp    0x42850b
40e207:	85 c9                	test   %ecx,%ecx
40e209:	0f 84 fc a2 01 00    	je     0x42850b
40e20f:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
40e214:	8b f2                	mov    %edx,%esi
40e216:	2b f1                	sub    %ecx,%esi
40e218:	85 db                	test   %ebx,%ebx
40e21a:	0f 88 06 a3 01 00    	js     0x428526
40e220:	8b 85 08 fb ff ff    	mov    -0x4f8(%ebp),%eax
40e226:	85 c0                	test   %eax,%eax
40e228:	0f 84 13 a3 01 00    	je     0x428541
40e22e:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40e233:	33 db                	xor    %ebx,%ebx
40e235:	66 39 18             	cmp    %bx,(%eax)
40e238:	74 0d                	je     0x40e247
40e23a:	83 c0 02             	add    $0x2,%eax
40e23d:	83 e9 01             	sub    $0x1,%ecx
40e240:	75 f3                	jne    0x40e235
40e242:	e9 ee a2 01 00       	jmp    0x428535
40e247:	85 c9                	test   %ecx,%ecx
40e249:	0f 84 e6 a2 01 00    	je     0x428535
40e24f:	2b d1                	sub    %ecx,%edx
40e251:	85 db                	test   %ebx,%ebx
40e253:	0f 88 ed a2 01 00    	js     0x428546
40e259:	8d 7a 02             	lea    0x2(%edx),%edi
40e25c:	03 fe                	add    %esi,%edi
40e25e:	57                   	push   %edi
40e25f:	6a 00                	push   $0x0
40e261:	89 bd b0 fb ff ff    	mov    %edi,-0x450(%ebp)
40e267:	ff 15 20 30 45 00    	call   *0x453020
40e26d:	89 85 b4 fb ff ff    	mov    %eax,-0x44c(%ebp)
40e273:	85 c0                	test   %eax,%eax
40e275:	0f 84 49 a3 01 00    	je     0x4285c4
40e27b:	33 db                	xor    %ebx,%ebx
40e27d:	85 ff                	test   %edi,%edi
40e27f:	0f 84 d0 a2 01 00    	je     0x428555
40e285:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40e28b:	0f 87 c4 a2 01 00    	ja     0x428555
40e291:	85 db                	test   %ebx,%ebx
40e293:	0f 88 d3 a2 01 00    	js     0x42856c
40e299:	8b 95 18 fb ff ff    	mov    -0x4e8(%ebp),%edx
40e29f:	33 db                	xor    %ebx,%ebx
40e2a1:	8b cf                	mov    %edi,%ecx
40e2a3:	8b f0                	mov    %eax,%esi
40e2a5:	85 ff                	test   %edi,%edi
40e2a7:	0f 84 b2 a2 01 00    	je     0x42855f
40e2ad:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40e2b2:	2b bd b0 fb ff ff    	sub    -0x450(%ebp),%edi
40e2b8:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
40e2bb:	85 c0                	test   %eax,%eax
40e2bd:	74 1b                	je     0x40e2da
40e2bf:	0f b7 02             	movzwl (%edx),%eax
40e2c2:	66 85 c0             	test   %ax,%ax
40e2c5:	74 13                	je     0x40e2da
40e2c7:	66 89 06             	mov    %ax,(%esi)
40e2ca:	83 c2 02             	add    $0x2,%edx
40e2cd:	83 c6 02             	add    $0x2,%esi
40e2d0:	83 e9 01             	sub    $0x1,%ecx
40e2d3:	75 e3                	jne    0x40e2b8
40e2d5:	e9 85 a2 01 00       	jmp    0x42855f
40e2da:	85 c9                	test   %ecx,%ecx
40e2dc:	0f 84 7d a2 01 00    	je     0x42855f
40e2e2:	8b bd b0 fb ff ff    	mov    -0x450(%ebp),%edi
40e2e8:	33 c0                	xor    %eax,%eax
40e2ea:	66 89 06             	mov    %ax,(%esi)
40e2ed:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40e2f3:	85 db                	test   %ebx,%ebx
40e2f5:	0f 88 64 01 00 00    	js     0x40e45f
40e2fb:	33 db                	xor    %ebx,%ebx
40e2fd:	85 ff                	test   %edi,%edi
40e2ff:	0f 84 79 a2 01 00    	je     0x42857e
40e305:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40e30b:	0f 87 6d a2 01 00    	ja     0x42857e
40e311:	85 db                	test   %ebx,%ebx
40e313:	0f 88 74 a2 01 00    	js     0x42858d
40e319:	33 db                	xor    %ebx,%ebx
40e31b:	8b cf                	mov    %edi,%ecx
40e31d:	85 ff                	test   %edi,%edi
40e31f:	0f 84 63 a2 01 00    	je     0x428588
40e325:	66 39 18             	cmp    %bx,(%eax)
40e328:	74 0d                	je     0x40e337
40e32a:	83 c0 02             	add    $0x2,%eax
40e32d:	83 e9 01             	sub    $0x1,%ecx
40e330:	75 f3                	jne    0x40e325
40e332:	e9 51 a2 01 00       	jmp    0x428588
40e337:	85 c9                	test   %ecx,%ecx
40e339:	0f 84 49 a2 01 00    	je     0x428588
40e33f:	8b f7                	mov    %edi,%esi
40e341:	2b f1                	sub    %ecx,%esi
40e343:	85 db                	test   %ebx,%ebx
40e345:	0f 88 14 01 00 00    	js     0x40e45f
40e34b:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40e351:	8b d7                	mov    %edi,%edx
40e353:	bb 00 00 00 00       	mov    $0x0,%ebx
40e358:	8d 0c 70             	lea    (%eax,%esi,2),%ecx
40e35b:	2b d6                	sub    %esi,%edx
40e35d:	0f 84 31 a2 01 00    	je     0x428594
40e363:	8b c2                	mov    %edx,%eax
40e365:	2b c7                	sub    %edi,%eax
40e367:	05 fe ff ff 7f       	add    $0x7ffffffe,%eax
40e36c:	03 f0                	add    %eax,%esi
40e36e:	b8 8c 6a 40 00       	mov    $0x406a8c,%eax
40e373:	2b c1                	sub    %ecx,%eax
40e375:	89 85 bc fb ff ff    	mov    %eax,-0x444(%ebp)
40e37b:	eb 03                	jmp    0x40e380
40e37d:	8d 49 00             	lea    0x0(%ecx),%ecx
40e380:	85 f6                	test   %esi,%esi
40e382:	74 0d                	je     0x40e391
40e384:	0f b7 04 08          	movzwl (%eax,%ecx,1),%eax
40e388:	66 85 c0             	test   %ax,%ax
40e38b:	0f 85 65 05 00 00    	jne    0x40e8f6
40e391:	85 d2                	test   %edx,%edx
40e393:	0f 84 fb a1 01 00    	je     0x428594
40e399:	33 c0                	xor    %eax,%eax
40e39b:	66 89 01             	mov    %ax,(%ecx)
40e39e:	85 db                	test   %ebx,%ebx
40e3a0:	0f 88 b9 00 00 00    	js     0x40e45f
40e3a6:	33 db                	xor    %ebx,%ebx
40e3a8:	85 ff                	test   %edi,%edi
40e3aa:	0f 84 f1 a1 01 00    	je     0x4285a1
40e3b0:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40e3b6:	0f 87 e5 a1 01 00    	ja     0x4285a1
40e3bc:	85 db                	test   %ebx,%ebx
40e3be:	0f 88 ec a1 01 00    	js     0x4285b0
40e3c4:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
40e3ca:	33 db                	xor    %ebx,%ebx
40e3cc:	8b cf                	mov    %edi,%ecx
40e3ce:	85 ff                	test   %edi,%edi
40e3d0:	0f 84 d5 a1 01 00    	je     0x4285ab
40e3d6:	66 39 18             	cmp    %bx,(%eax)
40e3d9:	74 0d                	je     0x40e3e8
40e3db:	83 c0 02             	add    $0x2,%eax
40e3de:	83 e9 01             	sub    $0x1,%ecx
40e3e1:	75 f3                	jne    0x40e3d6
40e3e3:	e9 c3 a1 01 00       	jmp    0x4285ab
40e3e8:	85 c9                	test   %ecx,%ecx
40e3ea:	0f 84 bb a1 01 00    	je     0x4285ab
40e3f0:	8b c7                	mov    %edi,%eax
40e3f2:	2b c1                	sub    %ecx,%eax
40e3f4:	89 85 ac fb ff ff    	mov    %eax,-0x454(%ebp)
40e3fa:	85 db                	test   %ebx,%ebx
40e3fc:	78 61                	js     0x40e45f
40e3fe:	8b 8d b4 fb ff ff    	mov    -0x44c(%ebp),%ecx
40e404:	8b f7                	mov    %edi,%esi
40e406:	8b 95 08 fb ff ff    	mov    -0x4f8(%ebp),%edx