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
46862e:	47                   	inc    %edi
46862f:	89 7d f4             	mov    %edi,-0xc(%ebp)
468632:	3b 7d f0             	cmp    -0x10(%ebp),%edi
468635:	0f 86 3b ff ff ff    	jbe    0x468576
46863b:	83 f8 ff             	cmp    $0xffffffff,%eax
46863e:	75 16                	jne    0x468656
468640:	8b 75 0c             	mov    0xc(%ebp),%esi
468643:	8b ce                	mov    %esi,%ecx
468645:	e8 d6 a5 fa ff       	call   0x412c20
46864a:	83 26 00             	andl   $0x0,(%esi)
46864d:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
468654:	eb 31                	jmp    0x468687
468656:	8b 75 e4             	mov    -0x1c(%ebp),%esi
468659:	b2 01                	mov    $0x1,%dl
46865b:	8b ce                	mov    %esi,%ecx
46865d:	e8 f3 d8 fd ff       	call   0x445f55
468662:	6a 00                	push   $0x0
468664:	ff 75 ec             	push   -0x14(%ebp)
468667:	68 11 01 00 00       	push   $0x111
46866c:	56                   	push   %esi
46866d:	ff 15 78 d6 48 00    	call   *0x48d678
468673:	32 d2                	xor    %dl,%dl
468675:	8b ce                	mov    %esi,%ecx
468677:	e8 d9 d8 fd ff       	call   0x445f55
46867c:	8b 8b 14 03 00 00    	mov    0x314(%ebx),%ecx
468682:	e8 d1 f3 fd ff       	call   0x447a58
468687:	8d 4d dc             	lea    -0x24(%ebp),%ecx
46868a:	e8 53 c1 f9 ff       	call   0x4047e2
46868f:	5f                   	pop    %edi
468690:	5e                   	pop    %esi
468691:	33 c0                	xor    %eax,%eax
468693:	5b                   	pop    %ebx
468694:	c9                   	leave
468695:	c2 08 00             	ret    $0x8
468698:	56                   	push   %esi
468699:	6a 00                	push   $0x0
46869b:	68 ec 35 4b 00       	push   $0x4b35ec
4686a0:	8b f1                	mov    %ecx,%esi
4686a2:	ff 15 c8 d5 48 00    	call   *0x48d5c8
4686a8:	6a 00                	push   $0x0
4686aa:	68 97 01 00 00       	push   $0x197
4686af:	68 11 01 00 00       	push   $0x111
4686b4:	50                   	push   %eax
4686b5:	ff 15 78 d6 48 00    	call   *0x48d678
4686bb:	8b 8e 14 03 00 00    	mov    0x314(%esi),%ecx
4686c1:	e8 92 f3 fd ff       	call   0x447a58
4686c6:	33 c0                	xor    %eax,%eax
4686c8:	5e                   	pop    %esi
4686c9:	c2 08 00             	ret    $0x8
4686cc:	56                   	push   %esi
4686cd:	6a 00                	push   $0x0
4686cf:	68 a0 01 00 00       	push   $0x1a0
4686d4:	68 11 01 00 00       	push   $0x111
4686d9:	6a 00                	push   $0x0
4686db:	68 ec 35 4b 00       	push   $0x4b35ec
4686e0:	8b f1                	mov    %ecx,%esi
4686e2:	ff 15 c8 d5 48 00    	call   *0x48d5c8
4686e8:	50                   	push   %eax
4686e9:	ff 15 78 d6 48 00    	call   *0x48d678
4686ef:	8b 8e 14 03 00 00    	mov    0x314(%esi),%ecx
4686f5:	e8 5e f3 fd ff       	call   0x447a58
4686fa:	33 c0                	xor    %eax,%eax
4686fc:	5e                   	pop    %esi
4686fd:	c2 08 00             	ret    $0x8
468700:	55                   	push   %ebp
468701:	8b ec                	mov    %esp,%ebp
468703:	83 e4 f8             	and    $0xfffffff8,%esp
468706:	83 ec 24             	sub    $0x24,%esp
468709:	53                   	push   %ebx
46870a:	56                   	push   %esi
46870b:	57                   	push   %edi
46870c:	8b 7d 08             	mov    0x8(%ebp),%edi
46870f:	57                   	push   %edi
468710:	8b 5f 08             	mov    0x8(%edi),%ebx
468713:	8b f1                	mov    %ecx,%esi
468715:	89 5c 24 18          	mov    %ebx,0x18(%esp)
468719:	e8 36 a3 f9 ff       	call   0x402a54
46871e:	6a 01                	push   $0x1
468720:	8b ce                	mov    %esi,%ecx
468722:	e8 52 a5 f9 ff       	call   0x402c79
468727:	85 c0                	test   %eax,%eax
468729:	7f 2c                	jg     0x468757
46872b:	79 11                	jns    0x46873e
46872d:	f7 d8                	neg    %eax
46872f:	6a 00                	push   $0x0
468731:	50                   	push   %eax
468732:	8b 06                	mov    (%esi),%eax
468734:	8b 48 04             	mov    0x4(%eax),%ecx
468737:	03 ce                	add    %esi,%ecx
468739:	e8 0e 48 fe ff       	call   0x44cf4c
46873e:	8b 75 0c             	mov    0xc(%ebp),%esi
468741:	8b ce                	mov    %esi,%ecx
468743:	e8 d8 a4 fa ff       	call   0x412c20
468748:	83 26 00             	andl   $0x0,(%esi)
46874b:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
468752:	e9 a7 01 00 00       	jmp    0x4688fe
468757:	8b 86 f8 01 00 00    	mov    0x1f8(%esi),%eax
46875d:	6a f0                	push   $0xfffffff0
46875f:	ff 30                	push   (%eax)
468761:	ff 15 44 d6 48 00    	call   *0x48d644
468767:	8b 8e f8 01 00 00    	mov    0x1f8(%esi),%ecx
46876d:	a9 00 00 00 40       	test   $0x40000000,%eax
468772:	8d 44 24 20          	lea    0x20(%esp),%eax
468776:	74 04                	je     0x46877c
468778:	6a 01                	push   $0x1
46877a:	eb 02                	jmp    0x46877e
46877c:	6a 00                	push   $0x0
46877e:	50                   	push   %eax
46877f:	e8 fe 4c fd ff       	call   0x43d482
468784:	83 fb 05             	cmp    $0x5,%ebx
468787:	72 1e                	jb     0x4687a7
468789:	8b 47 04             	mov    0x4(%edi),%eax
46878c:	6a 29                	push   $0x29
46878e:	8b 58 10             	mov    0x10(%eax),%ebx
468791:	8b cb                	mov    %ebx,%ecx
468793:	e8 54 94 f9 ff       	call   0x401bec
468798:	84 c0                	test   %al,%al
46879a:	75 0b                	jne    0x4687a7
46879c:	8b cb                	mov    %ebx,%ecx
46879e:	e8 e3 4a fa ff       	call   0x40d286
4687a3:	8b d8                	mov    %eax,%ebx
4687a5:	eb 08                	jmp    0x4687af
4687a7:	8b 5c 24 28          	mov    0x28(%esp),%ebx
4687ab:	2b 5c 24 20          	sub    0x20(%esp),%ebx
4687af:	83 7c 24 14 06       	cmpl   $0x6,0x14(%esp)
4687b4:	72 1e                	jb     0x4687d4
4687b6:	8b 47 04             	mov    0x4(%edi),%eax
4687b9:	6a 29                	push   $0x29
4687bb:	8b 78 14             	mov    0x14(%eax),%edi
4687be:	8b cf                	mov    %edi,%ecx
4687c0:	e8 27 94 f9 ff       	call   0x401bec
4687c5:	84 c0                	test   %al,%al
4687c7:	75 0b                	jne    0x4687d4
4687c9:	8b cf                	mov    %edi,%ecx
4687cb:	e8 b6 4a fa ff       	call   0x40d286
4687d0:	8b f8                	mov    %eax,%edi
4687d2:	eb 08                	jmp    0x4687dc
4687d4:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
4687d8:	2b 7c 24 24          	sub    0x24(%esp),%edi
4687dc:	8b 45 08             	mov    0x8(%ebp),%eax
4687df:	6a 29                	push   $0x29
4687e1:	8b 40 04             	mov    0x4(%eax),%eax
4687e4:	8b 40 08             	mov    0x8(%eax),%eax
4687e7:	8b c8                	mov    %eax,%ecx
4687e9:	89 44 24 20          	mov    %eax,0x20(%esp)
4687ed:	e8 fa 93 f9 ff       	call   0x401bec
4687f2:	84 c0                	test   %al,%al
4687f4:	74 06                	je     0x4687fc
4687f6:	8b 44 24 20          	mov    0x20(%esp),%eax
4687fa:	eb 09                	jmp    0x468805
4687fc:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
468800:	e8 81 4a fa ff       	call   0x40d286
468805:	89 44 24 10          	mov    %eax,0x10(%esp)
468809:	8b 45 08             	mov    0x8(%ebp),%eax
46880c:	6a 29                	push   $0x29
46880e:	8b 48 04             	mov    0x4(%eax),%ecx
468811:	8b 41 0c             	mov    0xc(%ecx),%eax
468814:	8b c8                	mov    %eax,%ecx
468816:	89 44 24 20          	mov    %eax,0x20(%esp)
46881a:	e8 cd 93 f9 ff       	call   0x401bec
46881f:	84 c0                	test   %al,%al
468821:	74 06                	je     0x468829
468823:	8b 44 24 24          	mov    0x24(%esp),%eax
468827:	eb 09                	jmp    0x468832
468829:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
46882d:	e8 54 4a fa ff       	call   0x40d286
468832:	83 7c 24 14 07       	cmpl   $0x7,0x14(%esp)
468837:	89 44 24 0c          	mov    %eax,0xc(%esp)
46883b:	0f 82 8d 00 00 00    	jb     0x4688ce
468841:	8b 45 08             	mov    0x8(%ebp),%eax
468844:	8b 48 04             	mov    0x4(%eax),%ecx
468847:	8b 49 18             	mov    0x18(%ecx),%ecx
46884a:	e8 37 4a fa ff       	call   0x40d286
46884f:	89 44 24 1c          	mov    %eax,0x1c(%esp)
468853:	83 f8 ff             	cmp    $0xffffffff,%eax