42046f:	83 c4 08             	add    $0x8,%esp
420472:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
420476:	74 d8                	je     0x420450
420478:	5f                   	pop    %edi
420479:	6a 34                	push   $0x34
42047b:	ff 33                	push   (%ebx)
42047d:	e8 86 95 04 00       	call   0x469a08
420482:	83 c4 08             	add    $0x8,%esp
420485:	5e                   	pop    %esi
420486:	5b                   	pop    %ebx
420487:	c3                   	ret
420488:	cc                   	int3
420489:	cc                   	int3
42048a:	cc                   	int3
42048b:	cc                   	int3
42048c:	cc                   	int3
42048d:	cc                   	int3
42048e:	cc                   	int3
42048f:	cc                   	int3
420490:	8b 41 04             	mov    0x4(%ecx),%eax
420493:	85 c0                	test   %eax,%eax
420495:	74 0b                	je     0x4204a2
420497:	6a 34                	push   $0x34
420499:	50                   	push   %eax
42049a:	e8 69 95 04 00       	call   0x469a08
42049f:	83 c4 08             	add    $0x8,%esp
4204a2:	c3                   	ret
4204a3:	cc                   	int3
4204a4:	cc                   	int3
4204a5:	cc                   	int3
4204a6:	cc                   	int3
4204a7:	cc                   	int3
4204a8:	cc                   	int3
4204a9:	cc                   	int3
4204aa:	cc                   	int3
4204ab:	cc                   	int3
4204ac:	cc                   	int3
4204ad:	cc                   	int3
4204ae:	cc                   	int3
4204af:	cc                   	int3
4204b0:	55                   	push   %ebp
4204b1:	8b ec                	mov    %esp,%ebp
4204b3:	83 ec 10             	sub    $0x10,%esp
4204b6:	8b 45 08             	mov    0x8(%ebp),%eax
4204b9:	53                   	push   %ebx
4204ba:	8b d9                	mov    %ecx,%ebx
4204bc:	89 45 f8             	mov    %eax,-0x8(%ebp)
4204bf:	8b 45 0c             	mov    0xc(%ebp),%eax
4204c2:	8b c8                	mov    %eax,%ecx
4204c4:	56                   	push   %esi
4204c5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4204c8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4204cb:	2b c8                	sub    %eax,%ecx
4204cd:	8b 53 08             	mov    0x8(%ebx),%edx
4204d0:	57                   	push   %edi
4204d1:	8b 3b                	mov    (%ebx),%edi
4204d3:	2b d7                	sub    %edi,%edx
4204d5:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4204d8:	c1 f9 02             	sar    $0x2,%ecx
4204db:	c1 fa 02             	sar    $0x2,%edx
4204de:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4204e1:	3b ca                	cmp    %edx,%ecx
4204e3:	0f 86 a7 00 00 00    	jbe    0x420590
4204e9:	81 f9 ff ff ff 3f    	cmp    $0x3fffffff,%ecx
4204ef:	0f 87 fb 00 00 00    	ja     0x4205f0
4204f5:	8b f2                	mov    %edx,%esi
4204f7:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
4204fc:	d1 ee                	shr    $1,%esi
4204fe:	2b c6                	sub    %esi,%eax
420500:	3b d0                	cmp    %eax,%edx
420502:	76 07                	jbe    0x42050b
420504:	be ff ff ff 3f       	mov    $0x3fffffff,%esi
420509:	eb 07                	jmp    0x420512
42050b:	03 f2                	add    %edx,%esi
42050d:	3b f1                	cmp    %ecx,%esi
42050f:	0f 42 f1             	cmovb  %ecx,%esi
420512:	89 75 fc             	mov    %esi,-0x4(%ebp)
420515:	85 ff                	test   %edi,%edi
420517:	74 3f                	je     0x420558
420519:	c1 e2 02             	shl    $0x2,%edx
42051c:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
420522:	72 16                	jb     0x42053a
420524:	8b 4f fc             	mov    -0x4(%edi),%ecx
420527:	83 c2 23             	add    $0x23,%edx
42052a:	2b f9                	sub    %ecx,%edi
42052c:	8d 47 fc             	lea    -0x4(%edi),%eax
42052f:	83 f8 1f             	cmp    $0x1f,%eax
420532:	0f 87 bd 00 00 00    	ja     0x4205f5
420538:	8b f9                	mov    %ecx,%edi
42053a:	52                   	push   %edx
42053b:	57                   	push   %edi
42053c:	e8 c7 94 04 00       	call   0x469a08
420541:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
420547:	83 c4 08             	add    $0x8,%esp
42054a:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
420551:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
420558:	56                   	push   %esi
420559:	e8 a2 02 00 00       	call   0x420800
42055e:	ff 75 f4             	push   -0xc(%ebp)
420561:	8b f0                	mov    %eax,%esi
420563:	8b 45 fc             	mov    -0x4(%ebp),%eax
420566:	89 33                	mov    %esi,(%ebx)
420568:	89 73 04             	mov    %esi,0x4(%ebx)
42056b:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
42056e:	8b 45 f8             	mov    -0x8(%ebp),%eax
420571:	50                   	push   %eax
420572:	56                   	push   %esi
420573:	89 4b 08             	mov    %ecx,0x8(%ebx)
420576:	e8 a5 b0 04 00       	call   0x46b620
42057b:	8b 45 f0             	mov    -0x10(%ebp),%eax
42057e:	83 c4 0c             	add    $0xc,%esp
420581:	5f                   	pop    %edi
420582:	8d 04 86             	lea    (%esi,%eax,4),%eax
420585:	5e                   	pop    %esi
420586:	89 43 04             	mov    %eax,0x4(%ebx)
420589:	5b                   	pop    %ebx
42058a:	8b e5                	mov    %ebp,%esp
42058c:	5d                   	pop    %ebp
42058d:	c2 0c 00             	ret    $0xc
420590:	8b 73 04             	mov    0x4(%ebx),%esi
420593:	2b f7                	sub    %edi,%esi
420595:	c1 fe 02             	sar    $0x2,%esi
420598:	3b ce                	cmp    %esi,%ecx
42059a:	76 35                	jbe    0x4205d1
42059c:	c1 e6 02             	shl    $0x2,%esi
42059f:	56                   	push   %esi
4205a0:	50                   	push   %eax
4205a1:	57                   	push   %edi
4205a2:	e8 79 b0 04 00       	call   0x46b620
4205a7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4205aa:	8b 7b 04             	mov    0x4(%ebx),%edi
4205ad:	03 c6                	add    %esi,%eax
4205af:	8b 75 fc             	mov    -0x4(%ebp),%esi
4205b2:	2b f0                	sub    %eax,%esi
4205b4:	56                   	push   %esi
4205b5:	50                   	push   %eax
4205b6:	57                   	push   %edi
4205b7:	e8 64 b0 04 00       	call   0x46b620
4205bc:	83 c4 18             	add    $0x18,%esp
4205bf:	c1 fe 02             	sar    $0x2,%esi
4205c2:	8d 04 b7             	lea    (%edi,%esi,4),%eax
4205c5:	5f                   	pop    %edi
4205c6:	5e                   	pop    %esi
4205c7:	89 43 04             	mov    %eax,0x4(%ebx)
4205ca:	5b                   	pop    %ebx
4205cb:	8b e5                	mov    %ebp,%esp
4205cd:	5d                   	pop    %ebp
4205ce:	c2 0c 00             	ret    $0xc
4205d1:	ff 75 f4             	push   -0xc(%ebp)
4205d4:	50                   	push   %eax
4205d5:	57                   	push   %edi
4205d6:	e8 45 b0 04 00       	call   0x46b620
4205db:	8b 45 f0             	mov    -0x10(%ebp),%eax
4205de:	83 c4 0c             	add    $0xc,%esp
4205e1:	8d 04 87             	lea    (%edi,%eax,4),%eax
4205e4:	5f                   	pop    %edi
4205e5:	5e                   	pop    %esi
4205e6:	89 43 04             	mov    %eax,0x4(%ebx)
4205e9:	5b                   	pop    %ebx
4205ea:	8b e5                	mov    %ebp,%esp
4205ec:	5d                   	pop    %ebp
4205ed:	c2 0c 00             	ret    $0xc
4205f0:	e8 db 2e fe ff       	call   0x4034d0
4205f5:	e8 37 90 05 00       	call   0x479631
4205fa:	cc                   	int3
4205fb:	cc                   	int3
4205fc:	cc                   	int3
4205fd:	cc                   	int3
4205fe:	cc                   	int3
4205ff:	cc                   	int3
420600:	55                   	push   %ebp
420601:	8b ec                	mov    %esp,%ebp
420603:	83 ec 0c             	sub    $0xc,%esp
420606:	8b 45 08             	mov    0x8(%ebp),%eax
420609:	53                   	push   %ebx
42060a:	56                   	push   %esi
42060b:	8b f1                	mov    %ecx,%esi
42060d:	89 45 f8             	mov    %eax,-0x8(%ebp)
420610:	57                   	push   %edi
420611:	8b 16                	mov    (%esi),%edx
420613:	2b c2                	sub    %edx,%eax
420615:	c1 f8 02             	sar    $0x2,%eax
420618:	89 45 fc             	mov    %eax,-0x4(%ebp)
42061b:	8b 46 04             	mov    0x4(%esi),%eax
42061e:	2b c2                	sub    %edx,%eax
420620:	c1 f8 02             	sar    $0x2,%eax
420623:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
420628:	0f 84 d6 00 00 00    	je     0x420704
42062e:	8b 4e 08             	mov    0x8(%esi),%ecx
420631:	8d 78 01             	lea    0x1(%eax),%edi
420634:	2b ca                	sub    %edx,%ecx
420636:	89 7d f4             	mov    %edi,-0xc(%ebp)
420639:	c1 f9 02             	sar    $0x2,%ecx
42063c:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
420641:	8b d1                	mov    %ecx,%edx
420643:	d1 ea                	shr    $1,%edx
420645:	2b c2                	sub    %edx,%eax
420647:	3b c8                	cmp    %eax,%ecx
420649:	76 07                	jbe    0x420652
42064b:	bb ff ff ff 3f       	mov    $0x3fffffff,%ebx
420650:	eb 08                	jmp    0x42065a
420652:	8d 1c 0a             	lea    (%edx,%ecx,1),%ebx
420655:	3b df                	cmp    %edi,%ebx
420657:	0f 42 df             	cmovb  %edi,%ebx
42065a:	53                   	push   %ebx
42065b:	e8 a0 01 00 00       	call   0x420800
420660:	8b 4d 0c             	mov    0xc(%ebp),%ecx
420663:	8b f8                	mov    %eax,%edi
420665:	8b 45 fc             	mov    -0x4(%ebp),%eax
420668:	8b 55 f8             	mov    -0x8(%ebp),%edx
42066b:	8d 04 87             	lea    (%edi,%eax,4),%eax
42066e:	89 45 fc             	mov    %eax,-0x4(%ebp)
420671:	8b 09                	mov    (%ecx),%ecx
420673:	89 08                	mov    %ecx,(%eax)
420675:	8b 46 04             	mov    0x4(%esi),%eax
420678:	8b 0e                	mov    (%esi),%ecx
42067a:	3b d0                	cmp    %eax,%edx
42067c:	75 0f                	jne    0x42068d
42067e:	2b c1                	sub    %ecx,%eax
420680:	50                   	push   %eax
420681:	51                   	push   %ecx
420682:	57                   	push   %edi
420683:	e8 98 af 04 00       	call   0x46b620
420688:	83 c4 0c             	add    $0xc,%esp
42068b:	eb 23                	jmp    0x4206b0
42068d:	2b d1                	sub    %ecx,%edx
42068f:	52                   	push   %edx
420690:	51                   	push   %ecx
420691:	57                   	push   %edi
420692:	e8 89 af 04 00       	call   0x46b620
420697:	8b 46 04             	mov    0x4(%esi),%eax
42069a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42069d:	2b c1                	sub    %ecx,%eax
42069f:	50                   	push   %eax
4206a0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4206a3:	51                   	push   %ecx
4206a4:	83 c0 04             	add    $0x4,%eax
4206a7:	50                   	push   %eax
4206a8:	e8 73 af 04 00       	call   0x46b620
4206ad:	83 c4 18             	add    $0x18,%esp
4206b0:	8b 06                	mov    (%esi),%eax
4206b2:	85 c0                	test   %eax,%eax
4206b4:	74 2c                	je     0x4206e2
4206b6:	8b 4e 08             	mov    0x8(%esi),%ecx
4206b9:	2b c8                	sub    %eax,%ecx
4206bb:	83 e1 fc             	and    $0xfffffffc,%ecx
4206be:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4206c4:	72 12                	jb     0x4206d8
4206c6:	8b 50 fc             	mov    -0x4(%eax),%edx
4206c9:	83 c1 23             	add    $0x23,%ecx
4206cc:	2b c2                	sub    %edx,%eax
4206ce:	83 c0 fc             	add    $0xfffffffc,%eax
4206d1:	83 f8 1f             	cmp    $0x1f,%eax
4206d4:	77 29                	ja     0x4206ff
4206d6:	8b c2                	mov    %edx,%eax
4206d8:	51                   	push   %ecx
4206d9:	50                   	push   %eax
4206da:	e8 29 93 04 00       	call   0x469a08
4206df:	83 c4 08             	add    $0x8,%esp
4206e2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4206e5:	89 3e                	mov    %edi,(%esi)
4206e7:	8d 0c 87             	lea    (%edi,%eax,4),%ecx
4206ea:	8b 45 fc             	mov    -0x4(%ebp),%eax
4206ed:	89 4e 04             	mov    %ecx,0x4(%esi)
4206f0:	8d 0c 9f             	lea    (%edi,%ebx,4),%ecx
4206f3:	5f                   	pop    %edi
4206f4:	89 4e 08             	mov    %ecx,0x8(%esi)
4206f7:	5e                   	pop    %esi
4206f8:	5b                   	pop    %ebx
4206f9:	8b e5                	mov    %ebp,%esp
4206fb:	5d                   	pop    %ebp
4206fc:	c2 08 00             	ret    $0x8
4206ff:	e8 2d 8f 05 00       	call   0x479631
420704:	e8 c7 2d fe ff       	call   0x4034d0
420709:	cc                   	int3
42070a:	cc                   	int3
42070b:	cc                   	int3
42070c:	cc                   	int3
42070d:	cc                   	int3
42070e:	cc                   	int3
42070f:	cc                   	int3
420710:	55                   	push   %ebp
420711:	8b ec                	mov    %esp,%ebp
420713:	51                   	push   %ecx
420714:	8b 45 08             	mov    0x8(%ebp),%eax
420717:	53                   	push   %ebx
420718:	56                   	push   %esi
420719:	8b 75 0c             	mov    0xc(%ebp),%esi
42071c:	8b d9                	mov    %ecx,%ebx
42071e:	89 45 fc             	mov    %eax,-0x4(%ebp)
420721:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
420725:	75 2d                	jne    0x420754
420727:	57                   	push   %edi
420728:	ff 76 08             	push   0x8(%esi)
42072b:	8b cb                	mov    %ebx,%ecx
42072d:	50                   	push   %eax
42072e:	e8 dd ff ff ff       	call   0x420710
420733:	8b fe                	mov    %esi,%edi
420735:	8b 36                	mov    (%esi),%esi
420737:	8d 4f 10             	lea    0x10(%edi),%ecx
42073a:	e8 21 00 00 00       	call   0x420760
42073f:	6a 34                	push   $0x34
420741:	57                   	push   %edi
420742:	e8 c1 92 04 00       	call   0x469a08
420747:	8b 45 fc             	mov    -0x4(%ebp),%eax
42074a:	83 c4 08             	add    $0x8,%esp
42074d:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
420751:	74 d5                	je     0x420728
420753:	5f                   	pop    %edi
420754:	5e                   	pop    %esi
420755:	5b                   	pop    %ebx
420756:	8b e5                	mov    %ebp,%esp
420758:	5d                   	pop    %ebp
420759:	c2 08 00             	ret    $0x8
42075c:	cc                   	int3
42075d:	cc                   	int3
42075e:	cc                   	int3
42075f:	cc                   	int3
420760:	56                   	push   %esi
420761:	8b f1                	mov    %ecx,%esi
420763:	8b 46 18             	mov    0x18(%esi),%eax
420766:	85 c0                	test   %eax,%eax
420768:	74 41                	je     0x4207ab
42076a:	8b 4e 20             	mov    0x20(%esi),%ecx
42076d:	2b c8                	sub    %eax,%ecx
42076f:	83 e1 fc             	and    $0xfffffffc,%ecx
420772:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
420778:	72 12                	jb     0x42078c
42077a:	8b 50 fc             	mov    -0x4(%eax),%edx
42077d:	83 c1 23             	add    $0x23,%ecx
420780:	2b c2                	sub    %edx,%eax
420782:	83 c0 fc             	add    $0xfffffffc,%eax
420785:	83 f8 1f             	cmp    $0x1f,%eax
420788:	77 6b                	ja     0x4207f5
42078a:	8b c2                	mov    %edx,%eax
42078c:	51                   	push   %ecx
42078d:	50                   	push   %eax
42078e:	e8 75 92 04 00       	call   0x469a08
420793:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
42079a:	83 c4 08             	add    $0x8,%esp
42079d:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
4207a4:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
4207ab:	8b 4e 14             	mov    0x14(%esi),%ecx
4207ae:	83 f9 08             	cmp    $0x8,%ecx
4207b1:	72 2d                	jb     0x4207e0
4207b3:	8b 06                	mov    (%esi),%eax
4207b5:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4207bc:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4207c2:	72 12                	jb     0x4207d6
4207c4:	8b 50 fc             	mov    -0x4(%eax),%edx