6302dc:	8d 45 e0             	lea    -0x20(%ebp),%eax
6302df:	83 66 04 00          	andl   $0x0,0x4(%esi)
6302e3:	50                   	push   %eax
6302e4:	e8 f2 64 fe ff       	call   0x6167db
6302e9:	8b 45 e8             	mov    -0x18(%ebp),%eax
6302ec:	83 ec 0c             	sub    $0xc,%esp
6302ef:	8b cf                	mov    %edi,%ecx
6302f1:	89 46 08             	mov    %eax,0x8(%esi)
6302f4:	54                   	push   %esp
6302f5:	e8 cf fe ff ff       	call   0x6301c9
6302fa:	83 ec 0c             	sub    $0xc,%esp
6302fd:	8d 45 ec             	lea    -0x14(%ebp),%eax
630300:	8b f4                	mov    %esp,%esi
630302:	8b ce                	mov    %esi,%ecx
630304:	50                   	push   %eax
630305:	83 26 00             	andl   $0x0,(%esi)
630308:	83 66 04 00          	andl   $0x0,0x4(%esi)
63030c:	e8 ca 64 fe ff       	call   0x6167db
630311:	8b 45 f4             	mov    -0xc(%ebp),%eax
630314:	89 46 08             	mov    %eax,0x8(%esi)
630317:	8d 45 d4             	lea    -0x2c(%ebp),%eax
63031a:	50                   	push   %eax
63031b:	e8 3d eb ff ff       	call   0x62ee5d
630320:	83 c4 28             	add    $0x28,%esp
630323:	85 db                	test   %ebx,%ebx
630325:	74 0f                	je     0x630336
630327:	83 6f 10 01          	subl   $0x1,0x10(%edi)
63032b:	75 04                	jne    0x630331
63032d:	83 67 0c 00          	andl   $0x0,0xc(%edi)
630331:	83 eb 01             	sub    $0x1,%ebx
630334:	75 f1                	jne    0x630327
630336:	ff 75 fc             	push   -0x4(%ebp)
630339:	8d 45 d4             	lea    -0x2c(%ebp),%eax
63033c:	8b cf                	mov    %edi,%ecx
63033e:	ff 75 08             	push   0x8(%ebp)
630341:	50                   	push   %eax
630342:	e8 6c fe ff ff       	call   0x6301b3
630347:	8b c8                	mov    %eax,%ecx
630349:	e8 3c ef ff ff       	call   0x62f28a
63034e:	8b 45 08             	mov    0x8(%ebp),%eax
630351:	5f                   	pop    %edi
630352:	5e                   	pop    %esi
630353:	5b                   	pop    %ebx
630354:	8b e5                	mov    %ebp,%esp
630356:	5d                   	pop    %ebp
630357:	c2 1c 00             	ret    $0x1c
63035a:	55                   	push   %ebp
63035b:	8b ec                	mov    %esp,%ebp
63035d:	83 ec 2c             	sub    $0x2c,%esp
630360:	53                   	push   %ebx
630361:	56                   	push   %esi
630362:	57                   	push   %edi
630363:	83 ec 0c             	sub    $0xc,%esp
630366:	8d 45 0c             	lea    0xc(%ebp),%eax
630369:	8b f4                	mov    %esp,%esi
63036b:	8b f9                	mov    %ecx,%edi
63036d:	33 db                	xor    %ebx,%ebx
63036f:	8b ce                	mov    %esi,%ecx
630371:	50                   	push   %eax
630372:	89 1e                	mov    %ebx,(%esi)
630374:	89 5e 04             	mov    %ebx,0x4(%esi)
630377:	e8 5f 64 fe ff       	call   0x6167db
63037c:	8b 45 14             	mov    0x14(%ebp),%eax
63037f:	8b cf                	mov    %edi,%ecx
630381:	89 46 08             	mov    %eax,0x8(%esi)
630384:	8d 45 e0             	lea    -0x20(%ebp),%eax
630387:	50                   	push   %eax
630388:	e8 44 fc ff ff       	call   0x62ffd1
63038d:	83 ec 0c             	sub    $0xc,%esp
630390:	8d 45 18             	lea    0x18(%ebp),%eax
630393:	8b f4                	mov    %esp,%esi
630395:	8b ce                	mov    %esi,%ecx
630397:	50                   	push   %eax
630398:	89 1e                	mov    %ebx,(%esi)
63039a:	89 5e 04             	mov    %ebx,0x4(%esi)
63039d:	e8 39 64 fe ff       	call   0x6167db
6303a2:	8b 45 20             	mov    0x20(%ebp),%eax
6303a5:	8b cf                	mov    %edi,%ecx
6303a7:	89 46 08             	mov    %eax,0x8(%esi)
6303aa:	8d 45 ec             	lea    -0x14(%ebp),%eax
6303ad:	50                   	push   %eax
6303ae:	e8 1e fc ff ff       	call   0x62ffd1
6303b3:	8d 45 d4             	lea    -0x2c(%ebp),%eax
6303b6:	8b cf                	mov    %edi,%ecx
6303b8:	50                   	push   %eax
6303b9:	e8 f5 fd ff ff       	call   0x6301b3
6303be:	8b 5d f4             	mov    -0xc(%ebp),%ebx
6303c1:	8b 48 08             	mov    0x8(%eax),%ecx
6303c4:	8b 45 e8             	mov    -0x18(%ebp),%eax
6303c7:	8b f0                	mov    %eax,%esi
6303c9:	2b d8                	sub    %eax,%ebx
6303cb:	2b f1                	sub    %ecx,%esi
6303cd:	8d 45 d4             	lea    -0x2c(%ebp),%eax
6303d0:	89 75 fc             	mov    %esi,-0x4(%ebp)
6303d3:	50                   	push   %eax
6303d4:	8b cf                	mov    %edi,%ecx
6303d6:	e8 ee fd ff ff       	call   0x6301c9
6303db:	83 ec 0c             	sub    $0xc,%esp
6303de:	8b 40 08             	mov    0x8(%eax),%eax
6303e1:	2b 45 f4             	sub    -0xc(%ebp),%eax
6303e4:	3b f0                	cmp    %eax,%esi
6303e6:	8b f4                	mov    %esp,%esi
6303e8:	8b ce                	mov    %esi,%ecx
6303ea:	73 64                	jae    0x630450
6303ec:	83 26 00             	andl   $0x0,(%esi)
6303ef:	8d 45 ec             	lea    -0x14(%ebp),%eax
6303f2:	83 66 04 00          	andl   $0x0,0x4(%esi)
6303f6:	50                   	push   %eax
6303f7:	e8 df 63 fe ff       	call   0x6167db
6303fc:	8b 45 f4             	mov    -0xc(%ebp),%eax
6303ff:	83 ec 0c             	sub    $0xc,%esp
630402:	89 46 08             	mov    %eax,0x8(%esi)
630405:	8b f4                	mov    %esp,%esi
630407:	8d 45 e0             	lea    -0x20(%ebp),%eax
63040a:	8b ce                	mov    %esi,%ecx
63040c:	50                   	push   %eax
63040d:	83 26 00             	andl   $0x0,(%esi)
630410:	83 66 04 00          	andl   $0x0,0x4(%esi)
630414:	e8 c2 63 fe ff       	call   0x6167db
630419:	8b 45 e8             	mov    -0x18(%ebp),%eax
63041c:	83 ec 0c             	sub    $0xc,%esp
63041f:	8b cf                	mov    %edi,%ecx
630421:	89 46 08             	mov    %eax,0x8(%esi)
630424:	54                   	push   %esp
630425:	e8 89 fd ff ff       	call   0x6301b3
63042a:	8d 45 d4             	lea    -0x2c(%ebp),%eax
63042d:	50                   	push   %eax
63042e:	e8 a1 eb ff ff       	call   0x62efd4
630433:	83 c4 28             	add    $0x28,%esp
630436:	85 db                	test   %ebx,%ebx
630438:	74 73                	je     0x6304ad
63043a:	83 6f 10 01          	subl   $0x1,0x10(%edi)
63043e:	75 06                	jne    0x630446
630440:	83 67 0c 00          	andl   $0x0,0xc(%edi)
630444:	eb 03                	jmp    0x630449
630446:	ff 47 0c             	incl   0xc(%edi)
630449:	83 eb 01             	sub    $0x1,%ebx
63044c:	75 ec                	jne    0x63043a
63044e:	eb 5d                	jmp    0x6304ad
630450:	83 26 00             	andl   $0x0,(%esi)
630453:	8d 45 e0             	lea    -0x20(%ebp),%eax
630456:	83 66 04 00          	andl   $0x0,0x4(%esi)
63045a:	50                   	push   %eax
63045b:	e8 7b 63 fe ff       	call   0x6167db
630460:	8b 45 e8             	mov    -0x18(%ebp),%eax
630463:	83 ec 0c             	sub    $0xc,%esp
630466:	8b cf                	mov    %edi,%ecx
630468:	89 46 08             	mov    %eax,0x8(%esi)
63046b:	54                   	push   %esp
63046c:	e8 58 fd ff ff       	call   0x6301c9
630471:	83 ec 0c             	sub    $0xc,%esp
630474:	8d 45 ec             	lea    -0x14(%ebp),%eax
630477:	8b f4                	mov    %esp,%esi
630479:	8b ce                	mov    %esi,%ecx
63047b:	50                   	push   %eax
63047c:	83 26 00             	andl   $0x0,(%esi)
63047f:	83 66 04 00          	andl   $0x0,0x4(%esi)
630483:	e8 53 63 fe ff       	call   0x6167db
630488:	8b 45 f4             	mov    -0xc(%ebp),%eax
63048b:	89 46 08             	mov    %eax,0x8(%esi)
63048e:	8d 45 d4             	lea    -0x2c(%ebp),%eax
630491:	50                   	push   %eax
630492:	e8 33 ea ff ff       	call   0x62eeca
630497:	83 c4 28             	add    $0x28,%esp
63049a:	85 db                	test   %ebx,%ebx
63049c:	74 0f                	je     0x6304ad
63049e:	83 6f 10 01          	subl   $0x1,0x10(%edi)
6304a2:	75 04                	jne    0x6304a8
6304a4:	83 67 0c 00          	andl   $0x0,0xc(%edi)
6304a8:	83 eb 01             	sub    $0x1,%ebx
6304ab:	75 f1                	jne    0x63049e
6304ad:	ff 75 fc             	push   -0x4(%ebp)
6304b0:	8d 45 d4             	lea    -0x2c(%ebp),%eax
6304b3:	8b cf                	mov    %edi,%ecx
6304b5:	ff 75 08             	push   0x8(%ebp)
6304b8:	50                   	push   %eax
6304b9:	e8 f5 fc ff ff       	call   0x6301b3
6304be:	8b c8                	mov    %eax,%ecx
6304c0:	e8 c5 ed ff ff       	call   0x62f28a
6304c5:	8b 45 08             	mov    0x8(%ebp),%eax
6304c8:	5f                   	pop    %edi
6304c9:	5e                   	pop    %esi
6304ca:	5b                   	pop    %ebx
6304cb:	8b e5                	mov    %ebp,%esp
6304cd:	5d                   	pop    %ebp
6304ce:	c2 1c 00             	ret    $0x1c
6304d1:	55                   	push   %ebp
6304d2:	8b ec                	mov    %esp,%ebp
6304d4:	56                   	push   %esi
6304d5:	8b f1                	mov    %ecx,%esi
6304d7:	8b 46 0c             	mov    0xc(%esi),%eax
6304da:	8b 4e 10             	mov    0x10(%esi),%ecx
6304dd:	03 c1                	add    %ecx,%eax
6304df:	a8 03                	test   $0x3,%al
6304e1:	75 14                	jne    0x6304f7
6304e3:	8d 41 04             	lea    0x4(%ecx),%eax
6304e6:	c1 e8 02             	shr    $0x2,%eax
6304e9:	39 46 08             	cmp    %eax,0x8(%esi)
6304ec:	77 09                	ja     0x6304f7
6304ee:	6a 01                	push   $0x1
6304f0:	8b ce                	mov    %esi,%ecx
6304f2:	e8 6b f1 ff ff       	call   0x62f662
6304f7:	8b 46 08             	mov    0x8(%esi),%eax
6304fa:	53                   	push   %ebx
6304fb:	57                   	push   %edi
6304fc:	8d 04 85 ff ff ff ff 	lea    -0x1(,%eax,4),%eax
630503:	21 46 0c             	and    %eax,0xc(%esi)
630506:	8b 7e 10             	mov    0x10(%esi),%edi
630509:	03 7e 0c             	add    0xc(%esi),%edi
63050c:	8b 5e 08             	mov    0x8(%esi),%ebx
63050f:	8b c7                	mov    %edi,%eax
630511:	c1 e8 02             	shr    $0x2,%eax
630514:	4b                   	dec    %ebx
630515:	23 d8                	and    %eax,%ebx
630517:	8b 46 04             	mov    0x4(%esi),%eax
63051a:	83 3c 98 00          	cmpl   $0x0,(%eax,%ebx,4)
63051e:	75 14                	jne    0x630534
630520:	6a 01                	push   $0x1
630522:	6a 04                	push   $0x4
630524:	6a 04                	push   $0x4
630526:	e8 75 72 e0 ff       	call   0x4377a0
63052b:	8b 4e 04             	mov    0x4(%esi),%ecx
63052e:	83 c4 0c             	add    $0xc,%esp
630531:	89 04 99             	mov    %eax,(%ecx,%ebx,4)
630534:	8b 46 04             	mov    0x4(%esi),%eax
630537:	83 e7 03             	and    $0x3,%edi
63053a:	8b 04 98             	mov    (%eax,%ebx,4),%eax
63053d:	8d 0c b8             	lea    (%eax,%edi,4),%ecx
630540:	5f                   	pop    %edi
630541:	5b                   	pop    %ebx
630542:	85 c9                	test   %ecx,%ecx
630544:	74 07                	je     0x63054d
630546:	8b 45 08             	mov    0x8(%ebp),%eax
630549:	8b 00                	mov    (%eax),%eax
63054b:	89 01                	mov    %eax,(%ecx)
63054d:	ff 46 10             	incl   0x10(%esi)
630550:	5e                   	pop    %esi
630551:	5d                   	pop    %ebp
630552:	c2 04 00             	ret    $0x4
630555:	55                   	push   %ebp
630556:	8b ec                	mov    %esp,%ebp
630558:	56                   	push   %esi
630559:	8b f1                	mov    %ecx,%esi
63055b:	8b 46 0c             	mov    0xc(%esi),%eax
63055e:	8b 4e 10             	mov    0x10(%esi),%ecx
630561:	03 c1                	add    %ecx,%eax
630563:	a8 01                	test   $0x1,%al
630565:	75 13                	jne    0x63057a
630567:	8d 41 02             	lea    0x2(%ecx),%eax
63056a:	d1 e8                	shr    $1,%eax
63056c:	39 46 08             	cmp    %eax,0x8(%esi)
63056f:	77 09                	ja     0x63057a
630571:	6a 01                	push   $0x1
630573:	8b ce                	mov    %esi,%ecx
630575:	e8 fe f1 ff ff       	call   0x62f778
63057a:	8b 46 08             	mov    0x8(%esi),%eax
63057d:	53                   	push   %ebx
63057e:	57                   	push   %edi
63057f:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
630586:	21 46 0c             	and    %eax,0xc(%esi)
630589:	8b 5e 10             	mov    0x10(%esi),%ebx
63058c:	03 5e 0c             	add    0xc(%esi),%ebx
63058f:	8b 7e 08             	mov    0x8(%esi),%edi
630592:	8b c3                	mov    %ebx,%eax
630594:	d1 e8                	shr    $1,%eax
630596:	4f                   	dec    %edi
630597:	23 f8                	and    %eax,%edi
630599:	8b 46 04             	mov    0x4(%esi),%eax
63059c:	83 3c b8 00          	cmpl   $0x0,(%eax,%edi,4)
6305a0:	75 14                	jne    0x6305b6
6305a2:	6a 01                	push   $0x1
6305a4:	6a 08                	push   $0x8
6305a6:	6a 02                	push   $0x2
6305a8:	e8 f3 71 e0 ff       	call   0x4377a0
6305ad:	8b 4e 04             	mov    0x4(%esi),%ecx
6305b0:	83 c4 0c             	add    $0xc,%esp
6305b3:	89 04 b9             	mov    %eax,(%ecx,%edi,4)
6305b6:	8b 46 04             	mov    0x4(%esi),%eax
6305b9:	83 e3 01             	and    $0x1,%ebx
6305bc:	8b 04 b8             	mov    (%eax,%edi,4),%eax
6305bf:	5f                   	pop    %edi
6305c0:	8d 14 d8             	lea    (%eax,%ebx,8),%edx
6305c3:	5b                   	pop    %ebx
6305c4:	85 d2                	test   %edx,%edx
6305c6:	74 0d                	je     0x6305d5
6305c8:	8b 4d 08             	mov    0x8(%ebp),%ecx
6305cb:	8b 01                	mov    (%ecx),%eax
6305cd:	89 02                	mov    %eax,(%edx)
6305cf:	8b 41 04             	mov    0x4(%ecx),%eax
6305d2:	89 42 04             	mov    %eax,0x4(%edx)
6305d5:	ff 46 10             	incl   0x10(%esi)
6305d8:	5e                   	pop    %esi
6305d9:	5d                   	pop    %ebp
6305da:	c2 04 00             	ret    $0x4
6305dd:	55                   	push   %ebp
6305de:	8b ec                	mov    %esp,%ebp
6305e0:	56                   	push   %esi
6305e1:	8b f1                	mov    %ecx,%esi
6305e3:	57                   	push   %edi
6305e4:	f6 46 0c 03          	testb  $0x3,0xc(%esi)
6305e8:	75 15                	jne    0x6305ff
6305ea:	8b 46 10             	mov    0x10(%esi),%eax
6305ed:	83 c0 04             	add    $0x4,%eax
6305f0:	c1 e8 02             	shr    $0x2,%eax
6305f3:	39 46 08             	cmp    %eax,0x8(%esi)
6305f6:	77 07                	ja     0x6305ff
6305f8:	6a 01                	push   $0x1
6305fa:	e8 63 f0 ff ff       	call   0x62f662
6305ff:	8b 46 08             	mov    0x8(%esi),%eax
630602:	8d 04 85 ff ff ff ff 	lea    -0x1(,%eax,4),%eax
630609:	21 46 0c             	and    %eax,0xc(%esi)
63060c:	8b 7e 0c             	mov    0xc(%esi),%edi
63060f:	75 06                	jne    0x630617
630611:	8b 7e 08             	mov    0x8(%esi),%edi
630614:	c1 e7 02             	shl    $0x2,%edi
630617:	4f                   	dec    %edi
630618:	53                   	push   %ebx
630619:	8b 5e 08             	mov    0x8(%esi),%ebx
63061c:	8b c7                	mov    %edi,%eax
63061e:	c1 e8 02             	shr    $0x2,%eax
630621:	4b                   	dec    %ebx
630622:	23 d8                	and    %eax,%ebx
630624:	8b 46 04             	mov    0x4(%esi),%eax
630627:	83 3c 98 00          	cmpl   $0x0,(%eax,%ebx,4)
63062b:	75 14                	jne    0x630641
63062d:	6a 01                	push   $0x1
63062f:	6a 04                	push   $0x4
630631:	6a 04                	push   $0x4
630633:	e8 68 71 e0 ff       	call   0x4377a0
630638:	8b 4e 04             	mov    0x4(%esi),%ecx
63063b:	83 c4 0c             	add    $0xc,%esp
63063e:	89 04 99             	mov    %eax,(%ecx,%ebx,4)
630641:	8b 46 04             	mov    0x4(%esi),%eax
630644:	8b cf                	mov    %edi,%ecx
630646:	83 e1 03             	and    $0x3,%ecx
630649:	8b 04 98             	mov    (%eax,%ebx,4),%eax
63064c:	5b                   	pop    %ebx
63064d:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
630650:	85 c9                	test   %ecx,%ecx
630652:	74 07                	je     0x63065b
630654:	8b 45 08             	mov    0x8(%ebp),%eax
630657:	8b 00                	mov    (%eax),%eax
630659:	89 01                	mov    %eax,(%ecx)
63065b:	89 7e 0c             	mov    %edi,0xc(%esi)
63065e:	ff 46 10             	incl   0x10(%esi)
630661:	5f                   	pop    %edi
630662:	5e                   	pop    %esi
630663:	5d                   	pop    %ebp
630664:	c2 04 00             	ret    $0x4
630667:	55                   	push   %ebp