4081bb:	5d                   	pop    %ebp
4081bc:	c2 04 00             	ret    $0x4
4081bf:	8b ff                	mov    %edi,%edi
4081c1:	55                   	push   %ebp
4081c2:	8b ec                	mov    %esp,%ebp
4081c4:	ff 75 0c             	push   0xc(%ebp)
4081c7:	e8 5f f6 ff ff       	call   0x40782b
4081cc:	59                   	pop    %ecx
4081cd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4081d0:	89 01                	mov    %eax,(%ecx)
4081d2:	f7 d8                	neg    %eax
4081d4:	1b c0                	sbb    %eax,%eax
4081d6:	83 e0 f4             	and    $0xfffffff4,%eax
4081d9:	83 c0 0c             	add    $0xc,%eax
4081dc:	5d                   	pop    %ebp
4081dd:	c3                   	ret
4081de:	8b ff                	mov    %edi,%edi
4081e0:	56                   	push   %esi
4081e1:	8b f1                	mov    %ecx,%esi
4081e3:	57                   	push   %edi
4081e4:	8b 7e 08             	mov    0x8(%esi),%edi
4081e7:	39 7e 04             	cmp    %edi,0x4(%esi)
4081ea:	74 04                	je     0x4081f0
4081ec:	33 c0                	xor    %eax,%eax
4081ee:	eb 72                	jmp    0x408262
4081f0:	83 3e 00             	cmpl   $0x0,(%esi)
4081f3:	75 26                	jne    0x40821b
4081f5:	6a 04                	push   $0x4
4081f7:	6a 04                	push   $0x4
4081f9:	e8 65 f7 ff ff       	call   0x407963
4081fe:	6a 00                	push   $0x0
408200:	89 06                	mov    %eax,(%esi)
408202:	e8 72 f6 ff ff       	call   0x407879
408207:	8b 06                	mov    (%esi),%eax
408209:	83 c4 0c             	add    $0xc,%esp
40820c:	85 c0                	test   %eax,%eax
40820e:	74 18                	je     0x408228
408210:	89 46 04             	mov    %eax,0x4(%esi)
408213:	83 c0 10             	add    $0x10,%eax
408216:	89 46 08             	mov    %eax,0x8(%esi)
408219:	eb d1                	jmp    0x4081ec
40821b:	2b 3e                	sub    (%esi),%edi
40821d:	c1 ff 02             	sar    $0x2,%edi
408220:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
408226:	76 05                	jbe    0x40822d
408228:	6a 0c                	push   $0xc
40822a:	58                   	pop    %eax
40822b:	eb 35                	jmp    0x408262
40822d:	53                   	push   %ebx
40822e:	6a 04                	push   $0x4
408230:	8d 1c 3f             	lea    (%edi,%edi,1),%ebx
408233:	53                   	push   %ebx
408234:	ff 36                	push   (%esi)
408236:	e8 73 1d 00 00       	call   0x409fae
40823b:	83 c4 0c             	add    $0xc,%esp
40823e:	85 c0                	test   %eax,%eax
408240:	75 05                	jne    0x408247
408242:	6a 0c                	push   $0xc
408244:	5e                   	pop    %esi
408245:	eb 10                	jmp    0x408257
408247:	89 06                	mov    %eax,(%esi)
408249:	8d 0c b8             	lea    (%eax,%edi,4),%ecx
40824c:	8d 04 98             	lea    (%eax,%ebx,4),%eax
40824f:	89 4e 04             	mov    %ecx,0x4(%esi)
408252:	89 46 08             	mov    %eax,0x8(%esi)
408255:	33 f6                	xor    %esi,%esi
408257:	6a 00                	push   $0x0
408259:	e8 1b f6 ff ff       	call   0x407879
40825e:	59                   	pop    %ecx
40825f:	8b c6                	mov    %esi,%eax
408261:	5b                   	pop    %ebx
408262:	5f                   	pop    %edi
408263:	5e                   	pop    %esi
408264:	c3                   	ret
408265:	8b ff                	mov    %edi,%edi
408267:	55                   	push   %ebp
408268:	8b ec                	mov    %esp,%ebp
40826a:	5d                   	pop    %ebp
40826b:	e9 fd f8 ff ff       	jmp    0x407b6d
408270:	8b ff                	mov    %edi,%edi
408272:	55                   	push   %ebp
408273:	8b ec                	mov    %esp,%ebp
408275:	56                   	push   %esi
408276:	8b 75 08             	mov    0x8(%ebp),%esi
408279:	85 f6                	test   %esi,%esi
40827b:	75 0f                	jne    0x40828c
40827d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408280:	e8 d4 00 00 00       	call   0x408359
408285:	33 c0                	xor    %eax,%eax
408287:	e9 a3 00 00 00       	jmp    0x40832f
40828c:	53                   	push   %ebx
40828d:	33 db                	xor    %ebx,%ebx
40828f:	66 39 1e             	cmp    %bx,(%esi)
408292:	75 25                	jne    0x4082b9
408294:	8b 75 0c             	mov    0xc(%ebp),%esi
408297:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40829a:	75 11                	jne    0x4082ad
40829c:	6a 01                	push   $0x1
40829e:	8b ce                	mov    %esi,%ecx
4082a0:	e8 8d 00 00 00       	call   0x408332
4082a5:	85 c0                	test   %eax,%eax
4082a7:	0f 85 81 00 00 00    	jne    0x40832e
4082ad:	8b 46 08             	mov    0x8(%esi),%eax
4082b0:	88 18                	mov    %bl,(%eax)
4082b2:	33 c0                	xor    %eax,%eax
4082b4:	89 5e 10             	mov    %ebx,0x10(%esi)
4082b7:	eb 75                	jmp    0x40832e
4082b9:	53                   	push   %ebx
4082ba:	53                   	push   %ebx
4082bb:	53                   	push   %ebx
4082bc:	53                   	push   %ebx
4082bd:	6a ff                	push   $0xffffffff
4082bf:	56                   	push   %esi
4082c0:	53                   	push   %ebx
4082c1:	ff 75 14             	push   0x14(%ebp)
4082c4:	e8 75 0b 00 00       	call   0x408e3e
4082c9:	83 c4 20             	add    $0x20,%esp
4082cc:	85 c0                	test   %eax,%eax
4082ce:	75 16                	jne    0x4082e6
4082d0:	ff 15 58 f0 40 00    	call   *0x40f058
4082d6:	50                   	push   %eax
4082d7:	e8 1a f6 ff ff       	call   0x4078f6
4082dc:	59                   	pop    %ecx
4082dd:	e8 6e f6 ff ff       	call   0x407950
4082e2:	8b 00                	mov    (%eax),%eax
4082e4:	eb 48                	jmp    0x40832e
4082e6:	57                   	push   %edi
4082e7:	8b 7d 0c             	mov    0xc(%ebp),%edi
4082ea:	3b 47 0c             	cmp    0xc(%edi),%eax
4082ed:	76 0c                	jbe    0x4082fb
4082ef:	50                   	push   %eax
4082f0:	8b cf                	mov    %edi,%ecx
4082f2:	e8 3b 00 00 00       	call   0x408332
4082f7:	85 c0                	test   %eax,%eax
4082f9:	75 32                	jne    0x40832d
4082fb:	ff 77 0c             	push   0xc(%edi)
4082fe:	8b 4d 10             	mov    0x10(%ebp),%ecx
408301:	ff 77 08             	push   0x8(%edi)
408304:	56                   	push   %esi
408305:	ff 75 14             	push   0x14(%ebp)
408308:	e8 ba fd ff ff       	call   0x4080c7
40830d:	85 c0                	test   %eax,%eax
40830f:	75 16                	jne    0x408327
408311:	ff 15 58 f0 40 00    	call   *0x40f058
408317:	50                   	push   %eax
408318:	e8 d9 f5 ff ff       	call   0x4078f6
40831d:	59                   	pop    %ecx
40831e:	e8 2d f6 ff ff       	call   0x407950
408323:	8b 00                	mov    (%eax),%eax
408325:	eb 06                	jmp    0x40832d
408327:	48                   	dec    %eax
408328:	89 47 10             	mov    %eax,0x10(%edi)
40832b:	33 c0                	xor    %eax,%eax
40832d:	5f                   	pop    %edi
40832e:	5b                   	pop    %ebx
40832f:	5e                   	pop    %esi
408330:	5d                   	pop    %ebp
408331:	c3                   	ret
408332:	8b ff                	mov    %edi,%edi
408334:	56                   	push   %esi
408335:	8b f1                	mov    %ecx,%esi
408337:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
40833b:	74 04                	je     0x408341
40833d:	c6 46 14 00          	movb   $0x0,0x14(%esi)
408341:	e8 0a f6 ff ff       	call   0x407950
408346:	6a 22                	push   $0x22
408348:	59                   	pop    %ecx
408349:	89 08                	mov    %ecx,(%eax)
40834b:	8b c1                	mov    %ecx,%eax
40834d:	83 66 0c 00          	andl   $0x0,0xc(%esi)
408351:	c6 46 14 00          	movb   $0x0,0x14(%esi)
408355:	5e                   	pop    %esi
408356:	c2 04 00             	ret    $0x4
408359:	33 c0                	xor    %eax,%eax
40835b:	38 41 14             	cmp    %al,0x14(%ecx)
40835e:	74 03                	je     0x408363
408360:	88 41 14             	mov    %al,0x14(%ecx)
408363:	89 41 08             	mov    %eax,0x8(%ecx)
408366:	89 41 0c             	mov    %eax,0xc(%ecx)
408369:	89 41 10             	mov    %eax,0x10(%ecx)
40836c:	c3                   	ret
40836d:	8b ff                	mov    %edi,%edi
40836f:	55                   	push   %ebp
408370:	8b ec                	mov    %esp,%ebp
408372:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
408378:	a1 14 60 41 00       	mov    0x416014,%eax
40837d:	33 c5                	xor    %ebp,%eax
40837f:	89 45 fc             	mov    %eax,-0x4(%ebp)
408382:	8b 45 08             	mov    0x8(%ebp),%eax
408385:	8d 8d f0 fd ff ff    	lea    -0x210(%ebp),%ecx
40838b:	68 05 01 00 00       	push   $0x105
408390:	51                   	push   %ecx
408391:	50                   	push   %eax
408392:	ff 15 04 f0 40 00    	call   *0x40f004
408398:	85 c0                	test   %eax,%eax
40839a:	75 11                	jne    0x4083ad
40839c:	ff 15 58 f0 40 00    	call   *0x40f058
4083a2:	50                   	push   %eax
4083a3:	e8 4e f5 ff ff       	call   0x4078f6
4083a8:	59                   	pop    %ecx
4083a9:	33 c0                	xor    %eax,%eax
4083ab:	eb 55                	jmp    0x408402
4083ad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4083b0:	8b 45 10             	mov    0x10(%ebp),%eax
4083b3:	83 a5 e4 fd ff ff 00 	andl   $0x0,-0x21c(%ebp)
4083ba:	89 8d d4 fd ff ff    	mov    %ecx,-0x22c(%ebp)
4083c0:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
4083c6:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
4083cc:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
4083d2:	c6 85 e8 fd ff ff 00 	movb   $0x0,-0x218(%ebp)
4083d9:	e8 0d fd ff ff       	call   0x4080eb
4083de:	50                   	push   %eax
4083df:	8d 85 ef fd ff ff    	lea    -0x211(%ebp),%eax
4083e5:	50                   	push   %eax
4083e6:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
4083ec:	50                   	push   %eax
4083ed:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
4083f3:	50                   	push   %eax
4083f4:	e8 77 fe ff ff       	call   0x408270
4083f9:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
4083ff:	83 c4 10             	add    $0x10,%esp
408402:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408405:	33 cd                	xor    %ebp,%ecx
408407:	e8 29 b2 ff ff       	call   0x403635
40840c:	c9                   	leave
40840d:	c3                   	ret
40840e:	6a 08                	push   $0x8
408410:	68 b8 4b 41 00       	push   $0x414bb8
408415:	e8 f6 af ff ff       	call   0x403410
40841a:	8b 45 08             	mov    0x8(%ebp),%eax
40841d:	ff 30                	push   (%eax)
40841f:	e8 a8 f3 ff ff       	call   0x4077cc
408424:	59                   	pop    %ecx
408425:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408429:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40842c:	e8 2a 00 00 00       	call   0x40845b
408431:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
408438:	e8 12 00 00 00       	call   0x40844f
40843d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408440:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408447:	59                   	pop    %ecx
408448:	5f                   	pop    %edi
408449:	5e                   	pop    %esi
40844a:	5b                   	pop    %ebx
40844b:	c9                   	leave
40844c:	c2 0c 00             	ret    $0xc
40844f:	8b 45 10             	mov    0x10(%ebp),%eax
408452:	ff 30                	push   (%eax)
408454:	e8 bb f3 ff ff       	call   0x407814
408459:	59                   	pop    %ecx
40845a:	c3                   	ret
40845b:	8b ff                	mov    %edi,%edi
40845d:	56                   	push   %esi
40845e:	8b f1                	mov    %ecx,%esi
408460:	b9 01 01 00 00       	mov    $0x101,%ecx
408465:	51                   	push   %ecx
408466:	8b 06                	mov    (%esi),%eax
408468:	8b 00                	mov    (%eax),%eax
40846a:	8b 40 48             	mov    0x48(%eax),%eax
40846d:	83 c0 18             	add    $0x18,%eax
408470:	50                   	push   %eax
408471:	51                   	push   %ecx
408472:	ff 35 44 70 41 00    	push   0x417044
408478:	e8 6d 07 00 00       	call   0x408bea
40847d:	8b 06                	mov    (%esi),%eax
40847f:	b9 00 01 00 00       	mov    $0x100,%ecx
408484:	51                   	push   %ecx
408485:	8b 00                	mov    (%eax),%eax
408487:	8b 40 48             	mov    0x48(%eax),%eax
40848a:	05 19 01 00 00       	add    $0x119,%eax
40848f:	50                   	push   %eax
408490:	51                   	push   %ecx
408491:	ff 35 48 70 41 00    	push   0x417048
408497:	e8 4e 07 00 00       	call   0x408bea
40849c:	8b 46 04             	mov    0x4(%esi),%eax
40849f:	83 c4 20             	add    $0x20,%esp
4084a2:	83 c9 ff             	or     $0xffffffff,%ecx
4084a5:	8b 00                	mov    (%eax),%eax
4084a7:	8b 00                	mov    (%eax),%eax
4084a9:	f0 0f c1 08          	lock xadd %ecx,(%eax)
4084ad:	75 15                	jne    0x4084c4
4084af:	8b 46 04             	mov    0x4(%esi),%eax
4084b2:	8b 00                	mov    (%eax),%eax
4084b4:	81 38 28 61 41 00    	cmpl   $0x416128,(%eax)
4084ba:	74 08                	je     0x4084c4
4084bc:	ff 30                	push   (%eax)
4084be:	e8 b6 f3 ff ff       	call   0x407879
4084c3:	59                   	pop    %ecx
4084c4:	8b 06                	mov    (%esi),%eax
4084c6:	8b 10                	mov    (%eax),%edx
4084c8:	8b 46 04             	mov    0x4(%esi),%eax
4084cb:	8b 08                	mov    (%eax),%ecx
4084cd:	8b 42 48             	mov    0x48(%edx),%eax
4084d0:	89 01                	mov    %eax,(%ecx)
4084d2:	8b 06                	mov    (%esi),%eax
4084d4:	8b 00                	mov    (%eax),%eax
4084d6:	8b 40 48             	mov    0x48(%eax),%eax
4084d9:	f0 ff 00             	lock incl (%eax)
4084dc:	5e                   	pop    %esi
4084dd:	c3                   	ret
4084de:	8b ff                	mov    %edi,%edi
4084e0:	55                   	push   %ebp
4084e1:	8b ec                	mov    %esp,%ebp
4084e3:	8b 45 08             	mov    0x8(%ebp),%eax
4084e6:	2d a4 03 00 00       	sub    $0x3a4,%eax
4084eb:	74 28                	je     0x408515
4084ed:	83 e8 04             	sub    $0x4,%eax
4084f0:	74 1c                	je     0x40850e
4084f2:	83 e8 0d             	sub    $0xd,%eax
4084f5:	74 10                	je     0x408507
4084f7:	83 e8 01             	sub    $0x1,%eax
4084fa:	74 04                	je     0x408500
4084fc:	33 c0                	xor    %eax,%eax
4084fe:	5d                   	pop    %ebp
4084ff:	c3                   	ret
408500:	a1 44 04 41 00       	mov    0x410444,%eax
408505:	5d                   	pop    %ebp
408506:	c3                   	ret
408507:	a1 40 04 41 00       	mov    0x410440,%eax
40850c:	5d                   	pop    %ebp
40850d:	c3                   	ret
40850e:	a1 3c 04 41 00       	mov    0x41043c,%eax
408513:	5d                   	pop    %ebp
408514:	c3                   	ret
408515:	a1 38 04 41 00       	mov    0x410438,%eax
40851a:	5d                   	pop    %ebp
40851b:	c3                   	ret
40851c:	8b ff                	mov    %edi,%edi
40851e:	55                   	push   %ebp
40851f:	8b ec                	mov    %esp,%ebp
408521:	83 ec 10             	sub    $0x10,%esp
408524:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408527:	6a 00                	push   $0x0
408529:	e8 f2 fa ff ff       	call   0x408020
40852e:	83 25 50 70 41 00 00 	andl   $0x0,0x417050
408535:	8b 45 08             	mov    0x8(%ebp),%eax
408538:	83 f8 fe             	cmp    $0xfffffffe,%eax
40853b:	75 12                	jne    0x40854f
40853d:	c7 05 50 70 41 00 01 	movl   $0x1,0x417050
408544:	00 00 00
408547:	ff 15 bc f0 40 00    	call   *0x40f0bc
40854d:	eb 2c                	jmp    0x40857b
40854f:	83 f8 fd             	cmp    $0xfffffffd,%eax
408552:	75 12                	jne    0x408566
408554:	c7 05 50 70 41 00 01 	movl   $0x1,0x417050
40855b:	00 00 00
40855e:	ff 15 b8 f0 40 00    	call   *0x40f0b8
408564:	eb 15                	jmp    0x40857b
408566:	83 f8 fc             	cmp    $0xfffffffc,%eax
408569:	75 10                	jne    0x40857b