46821f:	8a 96 fc 02 00 00    	mov    0x2fc(%esi),%dl
468225:	8b 09                	mov    (%ecx),%ecx
468227:	8d 44 24 08          	lea    0x8(%esp),%eax
46822b:	50                   	push   %eax
46822c:	e8 0a ef fd ff       	call   0x44713b
468231:	59                   	pop    %ecx
468232:	8b 4d 0c             	mov    0xc(%ebp),%ecx
468235:	8d 44 24 08          	lea    0x8(%esp),%eax
468239:	50                   	push   %eax
46823a:	e8 29 e9 f9 ff       	call   0x406b68
46823f:	8d 4c 24 08          	lea    0x8(%esp),%ecx
468243:	e8 ef 48 fa ff       	call   0x40cb37
468248:	33 c0                	xor    %eax,%eax
46824a:	5e                   	pop    %esi
46824b:	8b e5                	mov    %ebp,%esp
46824d:	5d                   	pop    %ebp
46824e:	c2 08 00             	ret    $0x8
468251:	55                   	push   %ebp
468252:	8b ec                	mov    %esp,%ebp
468254:	83 e4 f8             	and    $0xfffffff8,%esp
468257:	83 ec 14             	sub    $0x14,%esp
46825a:	56                   	push   %esi
46825b:	ff 75 08             	push   0x8(%ebp)
46825e:	8b f1                	mov    %ecx,%esi
468260:	e8 ef a7 f9 ff       	call   0x402a54
468265:	6a 01                	push   $0x1
468267:	8b ce                	mov    %esi,%ecx
468269:	e8 0b aa f9 ff       	call   0x402c79
46826e:	85 c0                	test   %eax,%eax
468270:	7f 22                	jg     0x468294
468272:	79 11                	jns    0x468285
468274:	f7 d8                	neg    %eax
468276:	6a 00                	push   $0x0
468278:	50                   	push   %eax
468279:	8b 06                	mov    (%esi),%eax
46827b:	8b 48 04             	mov    0x4(%eax),%ecx
46827e:	03 ce                	add    %esi,%ecx
468280:	e8 c7 4c fe ff       	call   0x44cf4c
468285:	8b 4d 0c             	mov    0xc(%ebp),%ecx
468288:	68 00 dc 49 00       	push   $0x49dc00
46828d:	e8 27 4b fa ff       	call   0x40cdb9
468292:	eb 2f                	jmp    0x4682c3
468294:	8d 4c 24 08          	lea    0x8(%esp),%ecx
468298:	e8 5a 55 fa ff       	call   0x40d7f7
46829d:	8b 8e f8 01 00 00    	mov    0x1f8(%esi),%ecx
4682a3:	8d 44 24 08          	lea    0x8(%esp),%eax
4682a7:	50                   	push   %eax
4682a8:	e8 45 52 fd ff       	call   0x43d4f2
4682ad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4682b0:	8d 44 24 08          	lea    0x8(%esp),%eax
4682b4:	50                   	push   %eax
4682b5:	e8 ae e8 f9 ff       	call   0x406b68
4682ba:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4682be:	e8 74 48 fa ff       	call   0x40cb37
4682c3:	33 c0                	xor    %eax,%eax
4682c5:	5e                   	pop    %esi
4682c6:	8b e5                	mov    %ebp,%esp
4682c8:	5d                   	pop    %ebp
4682c9:	c2 08 00             	ret    $0x8
4682cc:	55                   	push   %ebp
4682cd:	8b ec                	mov    %esp,%ebp
4682cf:	56                   	push   %esi
4682d0:	ff 75 08             	push   0x8(%ebp)
4682d3:	8b f1                	mov    %ecx,%esi
4682d5:	e8 7a a7 f9 ff       	call   0x402a54
4682da:	6a 01                	push   $0x1
4682dc:	8b ce                	mov    %esi,%ecx
4682de:	e8 96 a9 f9 ff       	call   0x402c79
4682e3:	85 c0                	test   %eax,%eax
4682e5:	7f 29                	jg     0x468310
4682e7:	79 11                	jns    0x4682fa
4682e9:	f7 d8                	neg    %eax
4682eb:	6a 00                	push   $0x0
4682ed:	50                   	push   %eax
4682ee:	8b 06                	mov    (%esi),%eax
4682f0:	8b 48 04             	mov    0x4(%eax),%ecx
4682f3:	03 ce                	add    %esi,%ecx
4682f5:	e8 52 4c fe ff       	call   0x44cf4c
4682fa:	8b 75 0c             	mov    0xc(%ebp),%esi
4682fd:	8b ce                	mov    %esi,%ecx
4682ff:	e8 1c a9 fa ff       	call   0x412c20
468304:	83 26 00             	andl   $0x0,(%esi)
468307:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46830e:	eb 18                	jmp    0x468328
468310:	8b 8e f8 01 00 00    	mov    0x1f8(%esi),%ecx
468316:	8b 09                	mov    (%ecx),%ecx
468318:	e8 da f8 fd ff       	call   0x447bf7
46831d:	8b 8e 14 03 00 00    	mov    0x314(%esi),%ecx
468323:	e8 30 f7 fd ff       	call   0x447a58
468328:	33 c0                	xor    %eax,%eax
46832a:	5e                   	pop    %esi
46832b:	5d                   	pop    %ebp
46832c:	c2 08 00             	ret    $0x8
46832f:	55                   	push   %ebp
468330:	8b ec                	mov    %esp,%ebp
468332:	83 e4 f8             	and    $0xfffffff8,%esp
468335:	83 ec 14             	sub    $0x14,%esp
468338:	53                   	push   %ebx
468339:	56                   	push   %esi
46833a:	57                   	push   %edi
46833b:	68 00 00 01 00       	push   $0x10000
468340:	8b d9                	mov    %ecx,%ebx
468342:	e8 a3 71 fb ff       	call   0x41f4ea
468347:	59                   	pop    %ecx
468348:	50                   	push   %eax
468349:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
46834d:	e8 65 c4 f9 ff       	call   0x4047b7
468352:	8b 83 f4 02 00 00    	mov    0x2f4(%ebx),%eax
468358:	8d 8b d8 01 00 00    	lea    0x1d8(%ebx),%ecx
46835e:	68 0c 3a 4b 00       	push   $0x4b3a0c
468363:	89 44 24 14          	mov    %eax,0x14(%esp)
468367:	e8 4d 4a fa ff       	call   0x40cdb9
46836c:	8d 8b e8 01 00 00    	lea    0x1e8(%ebx),%ecx
468372:	68 00 dc 49 00       	push   $0x49dc00
468377:	e8 e7 e6 f9 ff       	call   0x406a63
46837c:	8b 7d 08             	mov    0x8(%ebp),%edi
46837f:	8b 47 08             	mov    0x8(%edi),%eax
468382:	85 c0                	test   %eax,%eax
468384:	75 0c                	jne    0x468392
468386:	c7 83 f4 02 00 00 04 	movl   $0x4,0x2f4(%ebx)
46838d:	00 00 00
468390:	eb 3b                	jmp    0x4683cd
468392:	8b 47 04             	mov    0x4(%edi),%eax
468395:	8b 30                	mov    (%eax),%esi
468397:	8b ce                	mov    %esi,%ecx
468399:	e8 ce 0f fa ff       	call   0x40936c
46839e:	ff 76 08             	push   0x8(%esi)
4683a1:	8d 8b d8 01 00 00    	lea    0x1d8(%ebx),%ecx
4683a7:	e8 bc e7 f9 ff       	call   0x406b68
4683ac:	83 7f 08 01          	cmpl   $0x1,0x8(%edi)
4683b0:	76 1b                	jbe    0x4683cd
4683b2:	8b 47 04             	mov    0x4(%edi),%eax
4683b5:	8b 70 04             	mov    0x4(%eax),%esi
4683b8:	8b ce                	mov    %esi,%ecx
4683ba:	e8 ad 0f fa ff       	call   0x40936c
4683bf:	ff 76 08             	push   0x8(%esi)
4683c2:	8d 8b e8 01 00 00    	lea    0x1e8(%ebx),%ecx
4683c8:	e8 20 eb f9 ff       	call   0x406eed
4683cd:	33 f6                	xor    %esi,%esi
4683cf:	56                   	push   %esi
4683d0:	8b cb                	mov    %ebx,%ecx
4683d2:	e8 a2 a8 f9 ff       	call   0x402c79
4683d7:	85 c0                	test   %eax,%eax
4683d9:	79 29                	jns    0x468404
4683db:	f7 d8                	neg    %eax
4683dd:	56                   	push   %esi
4683de:	50                   	push   %eax
4683df:	8b 03                	mov    (%ebx),%eax
4683e1:	8b 48 04             	mov    0x4(%eax),%ecx
4683e4:	03 cb                	add    %ebx,%ecx
4683e6:	e8 61 4b fe ff       	call   0x44cf4c
4683eb:	8b 75 0c             	mov    0xc(%ebp),%esi
4683ee:	8b ce                	mov    %esi,%ecx
4683f0:	e8 2b a8 fa ff       	call   0x412c20
4683f5:	83 26 00             	andl   $0x0,(%esi)
4683f8:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4683ff:	e9 c6 00 00 00       	jmp    0x4684ca
468404:	8b bb 08 03 00 00    	mov    0x308(%ebx),%edi
46840a:	8b 44 24 10          	mov    0x10(%esp),%eax
46840e:	89 83 f4 02 00 00    	mov    %eax,0x2f4(%ebx)
468414:	6a 02                	push   $0x2
468416:	8d 47 01             	lea    0x1(%edi),%eax
468419:	50                   	push   %eax
46841a:	6a 02                	push   $0x2
46841c:	ff 75 0c             	push   0xc(%ebp)
46841f:	89 7c 24 24          	mov    %edi,0x24(%esp)
468423:	e8 28 3c fb ff       	call   0x41c050
468428:	56                   	push   %esi
468429:	56                   	push   %esi
46842a:	6a 02                	push   $0x2
46842c:	56                   	push   %esi
46842d:	ff 75 0c             	push   0xc(%ebp)
468430:	e8 5b 97 fa ff       	call   0x411b90
468435:	8b f0                	mov    %eax,%esi
468437:	83 c4 24             	add    $0x24,%esp
46843a:	8b ce                	mov    %esi,%ecx
46843c:	e8 df a7 fa ff       	call   0x412c20
468441:	33 c0                	xor    %eax,%eax
468443:	40                   	inc    %eax
468444:	89 46 0c             	mov    %eax,0xc(%esi)
468447:	89 3e                	mov    %edi,(%esi)
468449:	8b f0                	mov    %eax,%esi
46844b:	89 44 24 10          	mov    %eax,0x10(%esp)
46844f:	3b f8                	cmp    %eax,%edi
468451:	7c 77                	jl     0x4684ca
468453:	8b 83 04 03 00 00    	mov    0x304(%ebx),%eax
468459:	68 ff 7f 00 00       	push   $0x7fff
46845e:	ff 74 24 1c          	push   0x1c(%esp)
468462:	8b 44 b0 fc          	mov    -0x4(%eax,%esi,4),%eax
468466:	ff 30                	push   (%eax)
468468:	ff 15 30 d7 48 00    	call   *0x48d730
46846e:	33 ff                	xor    %edi,%edi
468470:	57                   	push   %edi
468471:	56                   	push   %esi
468472:	6a 02                	push   $0x2
468474:	57                   	push   %edi
468475:	ff 75 0c             	push   0xc(%ebp)
468478:	e8 13 97 fa ff       	call   0x411b90
46847d:	83 c4 14             	add    $0x14,%esp
468480:	8d 4c 24 18          	lea    0x18(%esp),%ecx
468484:	51                   	push   %ecx
468485:	8b c8                	mov    %eax,%ecx
468487:	e8 01 19 fe ff       	call   0x449d8d
46848c:	6a 01                	push   $0x1
46848e:	56                   	push   %esi
46848f:	6a 02                	push   $0x2
468491:	57                   	push   %edi
468492:	ff 75 0c             	push   0xc(%ebp)
468495:	e8 f6 96 fa ff       	call   0x411b90
46849a:	8b 8b 04 03 00 00    	mov    0x304(%ebx),%ecx
4684a0:	8b f8                	mov    %eax,%edi
4684a2:	8b 4c b1 fc          	mov    -0x4(%ecx,%esi,4),%ecx
4684a6:	83 c4 14             	add    $0x14,%esp
4684a9:	8b 31                	mov    (%ecx),%esi
4684ab:	8b cf                	mov    %edi,%ecx
4684ad:	e8 6e a7 fa ff       	call   0x412c20
4684b2:	89 37                	mov    %esi,(%edi)
4684b4:	8b 74 24 10          	mov    0x10(%esp),%esi
4684b8:	46                   	inc    %esi
4684b9:	c7 47 0c 07 00 00 00 	movl   $0x7,0xc(%edi)
4684c0:	89 74 24 10          	mov    %esi,0x10(%esp)
4684c4:	3b 74 24 14          	cmp    0x14(%esp),%esi
4684c8:	7e 89                	jle    0x468453
4684ca:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4684ce:	e8 0f c3 f9 ff       	call   0x4047e2
4684d3:	5f                   	pop    %edi
4684d4:	5e                   	pop    %esi
4684d5:	33 c0                	xor    %eax,%eax
4684d7:	5b                   	pop    %ebx
4684d8:	8b e5                	mov    %ebp,%esp
4684da:	5d                   	pop    %ebp
4684db:	c2 08 00             	ret    $0x8
4684de:	55                   	push   %ebp
4684df:	8b ec                	mov    %esp,%ebp
4684e1:	83 ec 24             	sub    $0x24,%esp
4684e4:	53                   	push   %ebx
4684e5:	56                   	push   %esi
4684e6:	8b 75 08             	mov    0x8(%ebp),%esi
4684e9:	57                   	push   %edi
4684ea:	8b 46 08             	mov    0x8(%esi),%eax
4684ed:	68 00 00 01 00       	push   $0x10000
4684f2:	8b d9                	mov    %ecx,%ebx
4684f4:	89 45 f0             	mov    %eax,-0x10(%ebp)
4684f7:	e8 ee 6f fb ff       	call   0x41f4ea
4684fc:	59                   	pop    %ecx
4684fd:	50                   	push   %eax
4684fe:	8d 4d dc             	lea    -0x24(%ebp),%ecx
468501:	e8 b1 c2 f9 ff       	call   0x4047b7
468506:	33 ff                	xor    %edi,%edi
468508:	56                   	push   %esi
468509:	8b cb                	mov    %ebx,%ecx
46850b:	89 7d ec             	mov    %edi,-0x14(%ebp)
46850e:	e8 41 a5 f9 ff       	call   0x402a54
468513:	6a 01                	push   $0x1
468515:	8b cb                	mov    %ebx,%ecx
468517:	e8 5d a7 f9 ff       	call   0x402c79
46851c:	85 c0                	test   %eax,%eax
46851e:	7f 14                	jg     0x468534
468520:	79 2d                	jns    0x46854f
468522:	f7 d8                	neg    %eax
468524:	57                   	push   %edi
468525:	50                   	push   %eax
468526:	8b 03                	mov    (%ebx),%eax
468528:	8b 48 04             	mov    0x4(%eax),%ecx
46852b:	03 cb                	add    %ebx,%ecx
46852d:	e8 1a 4a fe ff       	call   0x44cf4c
468532:	eb 1b                	jmp    0x46854f
468534:	8b 83 f8 01 00 00    	mov    0x1f8(%ebx),%eax
46853a:	8b 00                	mov    (%eax),%eax
46853c:	50                   	push   %eax
46853d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
468540:	ff 15 20 d6 48 00    	call   *0x48d620
468546:	8b f0                	mov    %eax,%esi
468548:	89 75 f8             	mov    %esi,-0x8(%ebp)
46854b:	85 f6                	test   %esi,%esi
46854d:	75 18                	jne    0x468567
46854f:	8b 75 0c             	mov    0xc(%ebp),%esi
468552:	8b ce                	mov    %esi,%ecx
468554:	e8 c7 a6 fa ff       	call   0x412c20
468559:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
468560:	89 3e                	mov    %edi,(%esi)
468562:	e9 20 01 00 00       	jmp    0x468687
468567:	6a 03                	push   $0x3
468569:	5f                   	pop    %edi
46856a:	89 7d f4             	mov    %edi,-0xc(%ebp)
46856d:	39 7d f0             	cmp    %edi,-0x10(%ebp)
468570:	0f 82 e0 00 00 00    	jb     0x468656
468576:	56                   	push   %esi
468577:	ff 15 b4 d5 48 00    	call   *0x48d5b4
46857d:	8b c8                	mov    %eax,%ecx
46857f:	85 c9                	test   %ecx,%ecx
468581:	0f 84 b9 00 00 00    	je     0x468640
468587:	33 c0                	xor    %eax,%eax
468589:	49                   	dec    %ecx
46858a:	89 45 fc             	mov    %eax,-0x4(%ebp)
46858d:	89 4d e8             	mov    %ecx,-0x18(%ebp)
468590:	68 00 04 00 00       	push   $0x400
468595:	68 ff 7f 00 00       	push   $0x7fff
46859a:	ff 75 dc             	push   -0x24(%ebp)
46859d:	50                   	push   %eax
46859e:	56                   	push   %esi
46859f:	ff 15 d8 d4 48 00    	call   *0x48d4d8
4685a5:	8b 45 08             	mov    0x8(%ebp),%eax
4685a8:	8b 40 04             	mov    0x4(%eax),%eax
4685ab:	8b 74 b8 fc          	mov    -0x4(%eax,%edi,4),%esi
4685af:	8b ce                	mov    %esi,%ecx
4685b1:	e8 b6 0d fa ff       	call   0x40936c
4685b6:	8b 46 08             	mov    0x8(%esi),%eax
4685b9:	8b 75 f4             	mov    -0xc(%ebp),%esi
4685bc:	8b 38                	mov    (%eax),%edi
4685be:	8b 45 08             	mov    0x8(%ebp),%eax
4685c1:	8b 40 04             	mov    0x4(%eax),%eax
4685c4:	8b 74 b0 fc          	mov    -0x4(%eax,%esi,4),%esi
4685c8:	8b ce                	mov    %esi,%ecx
4685ca:	e8 9d 0d fa ff       	call   0x40936c
4685cf:	8b 46 08             	mov    0x8(%esi),%eax
4685d2:	57                   	push   %edi
4685d3:	8b 30                	mov    (%eax),%esi
4685d5:	e8 01 87 fb ff       	call   0x420cdb
4685da:	50                   	push   %eax
4685db:	ff 75 dc             	push   -0x24(%ebp)
4685de:	56                   	push   %esi
4685df:	e8 11 91 fb ff       	call   0x4216f5
4685e4:	83 c4 10             	add    $0x10,%esp
4685e7:	85 c0                	test   %eax,%eax
4685e9:	74 14                	je     0x4685ff
4685eb:	8b 45 fc             	mov    -0x4(%ebp),%eax
4685ee:	40                   	inc    %eax
4685ef:	89 45 fc             	mov    %eax,-0x4(%ebp)
4685f2:	3b 45 e8             	cmp    -0x18(%ebp),%eax
4685f5:	77 49                	ja     0x468640
4685f7:	8b 75 f8             	mov    -0x8(%ebp),%esi
4685fa:	8b 7d f4             	mov    -0xc(%ebp),%edi
4685fd:	eb 91                	jmp    0x468590
4685ff:	8b 7d f4             	mov    -0xc(%ebp),%edi
468602:	ff 75 fc             	push   -0x4(%ebp)
468605:	3b 7d f0             	cmp    -0x10(%ebp),%edi
468608:	75 0f                	jne    0x468619
46860a:	8b 75 f8             	mov    -0x8(%ebp),%esi
46860d:	56                   	push   %esi
46860e:	ff 15 b0 d5 48 00    	call   *0x48d5b0
468614:	89 45 ec             	mov    %eax,-0x14(%ebp)
468617:	eb 15                	jmp    0x46862e
468619:	ff 75 f8             	push   -0x8(%ebp)
46861c:	ff 15 dc d4 48 00    	call   *0x48d4dc
468622:	8b f0                	mov    %eax,%esi
468624:	89 75 f8             	mov    %esi,-0x8(%ebp)
468627:	85 f6                	test   %esi,%esi
468629:	74 15                	je     0x468640
46862b:	8b 45 ec             	mov    -0x14(%ebp),%eax