40f04a:	8d 45 9c             	lea    -0x64(%ebp),%eax
40f04d:	50                   	push   %eax
40f04e:	8d 45 98             	lea    -0x68(%ebp),%eax
40f051:	50                   	push   %eax
40f052:	8d 45 94             	lea    -0x6c(%ebp),%eax
40f055:	50                   	push   %eax
40f056:	8d 45 90             	lea    -0x70(%ebp),%eax
40f059:	50                   	push   %eax
40f05a:	8d 45 8c             	lea    -0x74(%ebp),%eax
40f05d:	50                   	push   %eax
40f05e:	8d 45 88             	lea    -0x78(%ebp),%eax
40f061:	50                   	push   %eax
40f062:	8d 45 84             	lea    -0x7c(%ebp),%eax
40f065:	50                   	push   %eax
40f066:	8d 45 80             	lea    -0x80(%ebp),%eax
40f069:	50                   	push   %eax
40f06a:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40f070:	50                   	push   %eax
40f071:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
40f077:	50                   	push   %eax
40f078:	8b 47 18             	mov    0x18(%edi),%eax
40f07b:	51                   	push   %ecx
40f07c:	83 c0 08             	add    $0x8,%eax
40f07f:	50                   	push   %eax
40f080:	e8 08 37 ff ff       	call   0x40278d
40f085:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f088:	8b cf                	mov    %edi,%ecx
40f08a:	50                   	push   %eax
40f08b:	e8 b5 02 00 00       	call   0x40f345
40f090:	8b 4f 18             	mov    0x18(%edi),%ecx
40f093:	8b 46 04             	mov    0x4(%esi),%eax
40f096:	3b 41 44             	cmp    0x44(%ecx),%eax
40f099:	74 14                	je     0x40f0af
40f09b:	3b 41 3c             	cmp    0x3c(%ecx),%eax
40f09e:	75 06                	jne    0x40f0a6
40f0a0:	83 79 3c 00          	cmpl   $0x0,0x3c(%ecx)
40f0a4:	7c 09                	jl     0x40f0af
40f0a6:	56                   	push   %esi
40f0a7:	83 c1 40             	add    $0x40,%ecx
40f0aa:	e8 29 8c ff ff       	call   0x407cd8
40f0af:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f0b3:	74 09                	je     0x40f0be
40f0b5:	ff 75 fc             	push   -0x4(%ebp)
40f0b8:	ff 15 f8 30 43 00    	call   *0x4330f8
40f0be:	5f                   	pop    %edi
40f0bf:	b0 01                	mov    $0x1,%al
40f0c1:	5e                   	pop    %esi
40f0c2:	c9                   	leave
40f0c3:	c2 04 00             	ret    $0x4
40f0c6:	8b ff                	mov    %edi,%edi
40f0c8:	55                   	push   %ebp
40f0c9:	8b ec                	mov    %esp,%ebp
40f0cb:	83 e4 f8             	and    $0xfffffff8,%esp
40f0ce:	83 ec 14             	sub    $0x14,%esp
40f0d1:	53                   	push   %ebx
40f0d2:	56                   	push   %esi
40f0d3:	57                   	push   %edi
40f0d4:	8d 44 24 0c          	lea    0xc(%esp),%eax
40f0d8:	8b f1                	mov    %ecx,%esi
40f0da:	50                   	push   %eax
40f0db:	e8 65 02 00 00       	call   0x40f345
40f0e0:	8b 4e 18             	mov    0x18(%esi),%ecx
40f0e3:	8d 44 24 10          	lea    0x10(%esp),%eax
40f0e7:	50                   	push   %eax
40f0e8:	6a 00                	push   $0x0
40f0ea:	e8 ff 01 00 00       	call   0x40f2ee
40f0ef:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
40f0f4:	8a d8                	mov    %al,%bl
40f0f6:	74 0a                	je     0x40f102
40f0f8:	ff 74 24 0c          	push   0xc(%esp)
40f0fc:	ff 15 f8 30 43 00    	call   *0x4330f8
40f102:	84 db                	test   %bl,%bl
40f104:	74 09                	je     0x40f10f
40f106:	8b ce                	mov    %esi,%ecx
40f108:	e8 53 9f ff ff       	call   0x409060
40f10d:	eb 65                	jmp    0x40f174
40f10f:	e8 3d 9d ff ff       	call   0x408e51
40f114:	8b f8                	mov    %eax,%edi
40f116:	83 3f 05             	cmpl   $0x5,(%edi)
40f119:	76 59                	jbe    0x40f174
40f11b:	68 00 20 00 00       	push   $0x2000
40f120:	6a 00                	push   $0x0
40f122:	8b cf                	mov    %edi,%ecx
40f124:	e8 7e 34 ff ff       	call   0x4025a7
40f129:	84 c0                	test   %al,%al
40f12b:	74 47                	je     0x40f174
40f12d:	ff 15 50 31 43 00    	call   *0x433150
40f133:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
40f138:	ba 95 1a 40 00       	mov    $0x401a95,%edx
40f13d:	83 64 24 14 00       	andl   $0x0,0x14(%esp)
40f142:	89 44 24 0c          	mov    %eax,0xc(%esp)
40f146:	8d 44 24 18          	lea    0x18(%esp),%eax
40f14a:	89 44 24 10          	mov    %eax,0x10(%esp)
40f14e:	8d 44 24 0c          	lea    0xc(%esp),%eax
40f152:	50                   	push   %eax
40f153:	8d 44 24 18          	lea    0x18(%esp),%eax
40f157:	c7 44 24 1c 00 00 00 	movl   $0x1000000,0x1c(%esp)
40f15e:	01
40f15f:	50                   	push   %eax
40f160:	8d 44 24 18          	lea    0x18(%esp),%eax
40f164:	50                   	push   %eax
40f165:	8b 46 18             	mov    0x18(%esi),%eax
40f168:	51                   	push   %ecx
40f169:	83 c0 08             	add    $0x8,%eax
40f16c:	8b cf                	mov    %edi,%ecx
40f16e:	50                   	push   %eax
40f16f:	e8 ef 39 ff ff       	call   0x402b63
40f174:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
40f178:	74 08                	je     0x40f182
40f17a:	8d 4e 04             	lea    0x4(%esi),%ecx
40f17d:	e8 f5 97 ff ff       	call   0x408977
40f182:	5f                   	pop    %edi
40f183:	5e                   	pop    %esi
40f184:	5b                   	pop    %ebx
40f185:	8b e5                	mov    %ebp,%esp
40f187:	5d                   	pop    %ebp
40f188:	c2 04 00             	ret    $0x4
40f18b:	8b ff                	mov    %edi,%edi
40f18d:	55                   	push   %ebp
40f18e:	8b ec                	mov    %esp,%ebp
40f190:	51                   	push   %ecx
40f191:	51                   	push   %ecx
40f192:	53                   	push   %ebx
40f193:	56                   	push   %esi
40f194:	57                   	push   %edi
40f195:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f198:	33 db                	xor    %ebx,%ebx
40f19a:	50                   	push   %eax
40f19b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f19e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f1a1:	50                   	push   %eax
40f1a2:	53                   	push   %ebx
40f1a3:	68 fc 26 43 00       	push   $0x4326fc
40f1a8:	ff 15 e8 30 43 00    	call   *0x4330e8
40f1ae:	85 c0                	test   %eax,%eax
40f1b0:	74 5e                	je     0x40f210
40f1b2:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
40f1b5:	74 59                	je     0x40f210
40f1b7:	ff 75 08             	push   0x8(%ebp)
40f1ba:	bf 00 27 43 00       	mov    $0x432700,%edi
40f1bf:	c7 05 00 27 43 00 58 	movl   $0x401058,0x432700
40f1c6:	10 40 00
40f1c9:	89 7d fc             	mov    %edi,-0x4(%ebp)
40f1cc:	e8 10 15 00 00       	call   0x4106e1
40f1d1:	59                   	pop    %ecx
40f1d2:	e8 7a 9c ff ff       	call   0x408e51
40f1d7:	a3 04 27 43 00       	mov    %eax,0x432704
40f1dc:	a1 00 27 43 00       	mov    0x432700,%eax
40f1e1:	88 1d 08 27 43 00    	mov    %bl,0x432708
40f1e7:	c7 05 0c 27 43 00 01 	movl   $0x1,0x43270c
40f1ee:	00 00 00
40f1f1:	8b 70 04             	mov    0x4(%eax),%esi
40f1f4:	8b ce                	mov    %esi,%ecx
40f1f6:	ff 15 18 34 43 00    	call   *0x433418
40f1fc:	b9 00 27 43 00       	mov    $0x432700,%ecx
40f201:	ff d6                	call   *%esi
40f203:	57                   	push   %edi
40f204:	53                   	push   %ebx
40f205:	68 fc 26 43 00       	push   $0x4326fc
40f20a:	ff 15 ec 30 43 00    	call   *0x4330ec
40f210:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f213:	5f                   	pop    %edi
40f214:	5e                   	pop    %esi
40f215:	5b                   	pop    %ebx
40f216:	c9                   	leave
40f217:	c2 04 00             	ret    $0x4
40f21a:	8b ff                	mov    %edi,%edi
40f21c:	55                   	push   %ebp
40f21d:	8b ec                	mov    %esp,%ebp
40f21f:	51                   	push   %ecx
40f220:	53                   	push   %ebx
40f221:	56                   	push   %esi
40f222:	8b 35 88 26 43 00    	mov    0x432688,%esi
40f228:	57                   	push   %edi
40f229:	ff 15 50 31 43 00    	call   *0x433150
40f22f:	6a 0a                	push   $0xa
40f231:	8b f8                	mov    %eax,%edi
40f233:	33 d2                	xor    %edx,%edx
40f235:	59                   	pop    %ecx
40f236:	f7 f1                	div    %ecx
40f238:	8d 1c 96             	lea    (%esi,%edx,4),%ebx
40f23b:	8b 03                	mov    (%ebx),%eax
40f23d:	eb 07                	jmp    0x40f246
40f23f:	39 38                	cmp    %edi,(%eax)
40f241:	74 3c                	je     0x40f27f
40f243:	8b 40 04             	mov    0x4(%eax),%eax
40f246:	85 c0                	test   %eax,%eax
40f248:	75 f5                	jne    0x40f23f
40f24a:	38 45 08             	cmp    %al,0x8(%ebp)
40f24d:	74 35                	je     0x40f284
40f24f:	6a 0c                	push   $0xc
40f251:	5a                   	pop    %edx
40f252:	33 c9                	xor    %ecx,%ecx
40f254:	e8 1e 89 ff ff       	call   0x407b77
40f259:	8b f0                	mov    %eax,%esi
40f25b:	85 f6                	test   %esi,%esi
40f25d:	74 25                	je     0x40f284
40f25f:	83 66 04 00          	andl   $0x0,0x4(%esi)
40f263:	83 66 08 00          	andl   $0x0,0x8(%esi)
40f267:	89 3e                	mov    %edi,(%esi)
40f269:	8b 13                	mov    (%ebx),%edx
40f26b:	8b ce                	mov    %esi,%ecx
40f26d:	89 56 04             	mov    %edx,0x4(%esi)
40f270:	8b c2                	mov    %edx,%eax
40f272:	f0 0f b1 0b          	lock cmpxchg %ecx,(%ebx)
40f276:	3b c2                	cmp    %edx,%eax
40f278:	75 ef                	jne    0x40f269
40f27a:	8d 46 08             	lea    0x8(%esi),%eax
40f27d:	eb 07                	jmp    0x40f286
40f27f:	83 c0 08             	add    $0x8,%eax
40f282:	eb 02                	jmp    0x40f286
40f284:	33 c0                	xor    %eax,%eax
40f286:	5f                   	pop    %edi
40f287:	5e                   	pop    %esi
40f288:	5b                   	pop    %ebx
40f289:	c9                   	leave
40f28a:	c2 04 00             	ret    $0x4
40f28d:	8b ff                	mov    %edi,%edi
40f28f:	55                   	push   %ebp
40f290:	8b ec                	mov    %esp,%ebp
40f292:	53                   	push   %ebx
40f293:	57                   	push   %edi
40f294:	8b f9                	mov    %ecx,%edi
40f296:	8b 1f                	mov    (%edi),%ebx
40f298:	85 db                	test   %ebx,%ebx
40f29a:	74 17                	je     0x40f2b3
40f29c:	56                   	push   %esi
40f29d:	ff 15 4c 31 43 00    	call   *0x43314c
40f2a3:	53                   	push   %ebx
40f2a4:	8b f0                	mov    %eax,%esi
40f2a6:	e8 e6 90 ff ff       	call   0x408391
40f2ab:	56                   	push   %esi
40f2ac:	ff 15 24 31 43 00    	call   *0x433124
40f2b2:	5e                   	pop    %esi
40f2b3:	8b 45 08             	mov    0x8(%ebp),%eax
40f2b6:	89 07                	mov    %eax,(%edi)
40f2b8:	5f                   	pop    %edi
40f2b9:	5b                   	pop    %ebx
40f2ba:	5d                   	pop    %ebp
40f2bb:	c2 04 00             	ret    $0x4
40f2be:	8b ff                	mov    %edi,%edi
40f2c0:	56                   	push   %esi
40f2c1:	8b f1                	mov    %ecx,%esi
40f2c3:	8b 0e                	mov    (%esi),%ecx
40f2c5:	85 c9                	test   %ecx,%ecx
40f2c7:	74 23                	je     0x40f2ec
40f2c9:	83 c8 ff             	or     $0xffffffff,%eax
40f2cc:	f0 0f c1 01          	lock xadd %eax,(%ecx)
40f2d0:	75 17                	jne    0x40f2e9
40f2d2:	57                   	push   %edi
40f2d3:	8b 3e                	mov    (%esi),%edi
40f2d5:	85 ff                	test   %edi,%edi
40f2d7:	74 0f                	je     0x40f2e8
40f2d9:	8d 4f 04             	lea    0x4(%edi),%ecx
40f2dc:	e8 f6 a0 ff ff       	call   0x4093d7
40f2e1:	57                   	push   %edi
40f2e2:	e8 e3 0d 00 00       	call   0x4100ca
40f2e7:	59                   	pop    %ecx
40f2e8:	5f                   	pop    %edi
40f2e9:	83 26 00             	andl   $0x0,(%esi)
40f2ec:	5e                   	pop    %esi
40f2ed:	c3                   	ret
40f2ee:	8b ff                	mov    %edi,%edi
40f2f0:	55                   	push   %ebp
40f2f1:	8b ec                	mov    %esp,%ebp
40f2f3:	83 e4 f8             	and    $0xfffffff8,%esp
40f2f6:	83 ec 54             	sub    $0x54,%esp
40f2f9:	56                   	push   %esi
40f2fa:	8b 71 38             	mov    0x38(%ecx),%esi
40f2fd:	83 fe 01             	cmp    $0x1,%esi
40f300:	7c 28                	jl     0x40f32a
40f302:	8b 41 3c             	mov    0x3c(%ecx),%eax
40f305:	85 c0                	test   %eax,%eax
40f307:	78 06                	js     0x40f30f
40f309:	8b 45 08             	mov    0x8(%ebp),%eax
40f30c:	89 41 3c             	mov    %eax,0x3c(%ecx)
40f30f:	8b 55 0c             	mov    0xc(%ebp),%edx
40f312:	85 d2                	test   %edx,%edx
40f314:	74 02                	je     0x40f318
40f316:	89 02                	mov    %eax,(%edx)
40f318:	8d 46 ff             	lea    -0x1(%esi),%eax
40f31b:	85 c0                	test   %eax,%eax
40f31d:	89 41 38             	mov    %eax,0x38(%ecx)
40f320:	5e                   	pop    %esi
40f321:	0f 94 c0             	sete   %al
40f324:	8b e5                	mov    %ebp,%esp
40f326:	5d                   	pop    %ebp
40f327:	c2 08 00             	ret    $0x8
40f32a:	6a 50                	push   $0x50
40f32c:	8d 44 24 0c          	lea    0xc(%esp),%eax
40f330:	6a 00                	push   $0x0
40f332:	50                   	push   %eax
40f333:	e8 cf 17 00 00       	call   0x410b07
40f338:	83 c4 0c             	add    $0xc,%esp
40f33b:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40f33f:	e8 81 8d ff ff       	call   0x4080c5
40f344:	cc                   	int3
40f345:	8b ff                	mov    %edi,%edi
40f347:	55                   	push   %ebp
40f348:	8b ec                	mov    %esp,%ebp
40f34a:	51                   	push   %ecx
40f34b:	51                   	push   %ecx
40f34c:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40f350:	53                   	push   %ebx
40f351:	56                   	push   %esi
40f352:	8b b1 b8 00 00 00    	mov    0xb8(%ecx),%esi
40f358:	57                   	push   %edi
40f359:	85 f6                	test   %esi,%esi
40f35b:	74 15                	je     0x40f372
40f35d:	81 c6 9c 00 00 00    	add    $0x9c,%esi
40f363:	56                   	push   %esi
40f364:	ff 15 1c 31 43 00    	call   *0x43311c
40f36a:	33 db                	xor    %ebx,%ebx
40f36c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f36f:	43                   	inc    %ebx
40f370:	eb 08                	jmp    0x40f37a
40f372:	6a 02                	push   $0x2
40f374:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f377:	33 f6                	xor    %esi,%esi
40f379:	5b                   	pop    %ebx
40f37a:	8b 7d 08             	mov    0x8(%ebp),%edi
40f37d:	83 20 00             	andl   $0x0,(%eax)
40f380:	89 37                	mov    %esi,(%edi)
40f382:	f6 c3 02             	test   $0x2,%bl
40f385:	74 12                	je     0x40f399
40f387:	83 e3 fd             	and    $0xfffffffd,%ebx
40f38a:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f38e:	74 09                	je     0x40f399
40f390:	ff 75 fc             	push   -0x4(%ebp)
40f393:	ff 15 f8 30 43 00    	call   *0x4330f8
40f399:	f6 c3 01             	test   $0x1,%bl
40f39c:	74 0f                	je     0x40f3ad
40f39e:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40f3a2:	74 09                	je     0x40f3ad
40f3a4:	ff 75 f8             	push   -0x8(%ebp)
40f3a7:	ff 15 f8 30 43 00    	call   *0x4330f8
40f3ad:	8b c7                	mov    %edi,%eax
40f3af:	5f                   	pop    %edi
40f3b0:	5e                   	pop    %esi
40f3b1:	5b                   	pop    %ebx
40f3b2:	c9                   	leave
40f3b3:	c2 04 00             	ret    $0x4
40f3b6:	8b ff                	mov    %edi,%edi
40f3b8:	55                   	push   %ebp
40f3b9:	8b ec                	mov    %esp,%ebp
40f3bb:	81 ec 20 02 00 00    	sub    $0x220,%esp
40f3c1:	a1 64 10 41 00       	mov    0x411064,%eax
40f3c6:	33 c5                	xor    %ebp,%eax
40f3c8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f3cb:	53                   	push   %ebx