417352:	8b 4d 08             	mov    0x8(%ebp),%ecx
417355:	53                   	push   %ebx
417356:	56                   	push   %esi
417357:	33 db                	xor    %ebx,%ebx
417359:	57                   	push   %edi
41735a:	33 ff                	xor    %edi,%edi
41735c:	8d 71 08             	lea    0x8(%ecx),%esi
41735f:	8b d7                	mov    %edi,%edx
417361:	38 50 04             	cmp    %dl,0x4(%eax)
417364:	8b 41 04             	mov    0x4(%ecx),%eax
417367:	0f 94 c3             	sete   %bl
41736a:	89 55 fc             	mov    %edx,-0x4(%ebp)
41736d:	4b                   	dec    %ebx
41736e:	83 c0 08             	add    $0x8,%eax
417371:	83 e3 1d             	and    $0x1d,%ebx
417374:	03 c1                	add    %ecx,%eax
417376:	83 c3 17             	add    $0x17,%ebx
417379:	89 45 f8             	mov    %eax,-0x8(%ebp)
41737c:	03 19                	add    (%ecx),%ebx
41737e:	3b f0                	cmp    %eax,%esi
417380:	74 36                	je     0x4173b8
417382:	8b 4d 0c             	mov    0xc(%ebp),%ecx
417385:	e8 0e 06 00 00       	call   0x417998
41738a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41738d:	3b ca                	cmp    %edx,%ecx
41738f:	77 21                	ja     0x4173b2
417391:	72 04                	jb     0x417397
417393:	3b f8                	cmp    %eax,%edi
417395:	77 1b                	ja     0x4173b2
417397:	0f b6 06             	movzbl (%esi),%eax
41739a:	46                   	inc    %esi
41739b:	0f a4 f9 04          	shld   $0x4,%edi,%ecx
41739f:	99                   	cltd
4173a0:	c1 e7 04             	shl    $0x4,%edi
4173a3:	03 f8                	add    %eax,%edi
4173a5:	13 ca                	adc    %edx,%ecx
4173a7:	83 eb 04             	sub    $0x4,%ebx
4173aa:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4173ad:	3b 75 f8             	cmp    -0x8(%ebp),%esi
4173b0:	75 d0                	jne    0x417382
4173b2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4173b5:	8b 55 fc             	mov    -0x4(%ebp),%edx
4173b8:	b0 01                	mov    $0x1,%al
4173ba:	eb 0c                	jmp    0x4173c8
4173bc:	84 c0                	test   %al,%al
4173be:	74 10                	je     0x4173d0
4173c0:	8a 06                	mov    (%esi),%al
4173c2:	46                   	inc    %esi
4173c3:	84 c0                	test   %al,%al
4173c5:	0f 94 c0             	sete   %al
4173c8:	88 45 fc             	mov    %al,-0x4(%ebp)
4173cb:	3b 75 f8             	cmp    -0x8(%ebp),%esi
4173ce:	75 ec                	jne    0x4173bc
4173d0:	ff 75 0c             	push   0xc(%ebp)
4173d3:	0f b6 81 08 03 00 00 	movzbl 0x308(%ecx),%eax
4173da:	ff 75 fc             	push   -0x4(%ebp)
4173dd:	50                   	push   %eax
4173de:	53                   	push   %ebx
4173df:	52                   	push   %edx
4173e0:	57                   	push   %edi
4173e1:	e8 9c dc ff ff       	call   0x415082
4173e6:	83 c4 18             	add    $0x18,%esp
4173e9:	5f                   	pop    %edi
4173ea:	5e                   	pop    %esi
4173eb:	5b                   	pop    %ebx
4173ec:	c9                   	leave
4173ed:	c3                   	ret
4173ee:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
4173f2:	74 09                	je     0x4173fd
4173f4:	83 c8 ff             	or     $0xffffffff,%eax
4173f7:	ba ff ff 0f 00       	mov    $0xfffff,%edx
4173fc:	c3                   	ret
4173fd:	b8 ff ff 7f 00       	mov    $0x7fffff,%eax
417402:	33 d2                	xor    %edx,%edx
417404:	c3                   	ret
417405:	cc                   	int3
417406:	cc                   	int3
417407:	cc                   	int3
417408:	cc                   	int3
417409:	cc                   	int3
41740a:	cc                   	int3
41740b:	cc                   	int3
41740c:	cc                   	int3
41740d:	cc                   	int3
41740e:	cc                   	int3
41740f:	cc                   	int3
417410:	8b ff                	mov    %edi,%edi
417412:	55                   	push   %ebp
417413:	8b ec                	mov    %esp,%ebp
417415:	81 ec 20 02 00 00    	sub    $0x220,%esp
41741b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41741e:	53                   	push   %ebx
41741f:	56                   	push   %esi
417420:	57                   	push   %edi
417421:	8b 01                	mov    (%ecx),%eax
417423:	89 45 f8             	mov    %eax,-0x8(%ebp)
417426:	85 c0                	test   %eax,%eax
417428:	0f 84 82 04 00 00    	je     0x4178b0
41742e:	8b 7d 0c             	mov    0xc(%ebp),%edi
417431:	8b 37                	mov    (%edi),%esi
417433:	89 75 ec             	mov    %esi,-0x14(%ebp)
417436:	85 f6                	test   %esi,%esi
417438:	0f 84 72 04 00 00    	je     0x4178b0
41743e:	48                   	dec    %eax
41743f:	89 45 f4             	mov    %eax,-0xc(%ebp)
417442:	83 c6 ff             	add    $0xffffffff,%esi
417445:	0f 85 3e 01 00 00    	jne    0x417589
41744b:	8b 5f 04             	mov    0x4(%edi),%ebx
41744e:	83 fb 01             	cmp    $0x1,%ebx
417451:	75 3b                	jne    0x41748e
417453:	8b 55 08             	mov    0x8(%ebp),%edx
417456:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
41745c:	8b 71 04             	mov    0x4(%ecx),%esi
41745f:	83 c1 04             	add    $0x4,%ecx
417462:	6a 00                	push   $0x0
417464:	50                   	push   %eax
417465:	68 cc 01 00 00       	push   $0x1cc
41746a:	51                   	push   %ecx
41746b:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
417472:	00 00 00
417475:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
41747b:	e8 f8 0f 00 00       	call   0x418478
417480:	83 c4 10             	add    $0x10,%esp
417483:	8b c6                	mov    %esi,%eax
417485:	33 d2                	xor    %edx,%edx
417487:	5f                   	pop    %edi
417488:	5e                   	pop    %esi
417489:	5b                   	pop    %ebx
41748a:	8b e5                	mov    %ebp,%esp
41748c:	5d                   	pop    %ebp
41748d:	c3                   	ret
41748e:	85 c0                	test   %eax,%eax
417490:	75 48                	jne    0x4174da
417492:	8b 79 04             	mov    0x4(%ecx),%edi
417495:	8d 71 04             	lea    0x4(%ecx),%esi
417498:	50                   	push   %eax
417499:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
41749f:	89 01                	mov    %eax,(%ecx)
4174a1:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
4174a7:	50                   	push   %eax
4174a8:	68 cc 01 00 00       	push   $0x1cc
4174ad:	56                   	push   %esi
4174ae:	e8 c5 0f 00 00       	call   0x418478
4174b3:	33 d2                	xor    %edx,%edx
4174b5:	8b c7                	mov    %edi,%eax
4174b7:	f7 f3                	div    %ebx
4174b9:	83 c4 10             	add    $0x10,%esp
4174bc:	33 c0                	xor    %eax,%eax
4174be:	3b c2                	cmp    %edx,%eax
4174c0:	89 16                	mov    %edx,(%esi)
4174c2:	8b 55 08             	mov    0x8(%ebp),%edx
4174c5:	8b c7                	mov    %edi,%eax
4174c7:	1b c9                	sbb    %ecx,%ecx
4174c9:	f7 d9                	neg    %ecx
4174cb:	5f                   	pop    %edi
4174cc:	89 0a                	mov    %ecx,(%edx)
4174ce:	33 d2                	xor    %edx,%edx
4174d0:	f7 f3                	div    %ebx
4174d2:	5e                   	pop    %esi
4174d3:	33 d2                	xor    %edx,%edx
4174d5:	5b                   	pop    %ebx
4174d6:	8b e5                	mov    %ebp,%esp
4174d8:	5d                   	pop    %ebp
4174d9:	c3                   	ret
4174da:	33 ff                	xor    %edi,%edi
4174dc:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4174e3:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4174ea:	89 7d ec             	mov    %edi,-0x14(%ebp)
4174ed:	83 f8 ff             	cmp    $0xffffffff,%eax
4174f0:	74 4a                	je     0x41753c
4174f2:	40                   	inc    %eax
4174f3:	8d 04 81             	lea    (%ecx,%eax,4),%eax
4174f6:	89 45 e8             	mov    %eax,-0x18(%ebp)
4174f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
417500:	6a 00                	push   $0x0
417502:	53                   	push   %ebx
417503:	33 f6                	xor    %esi,%esi
417505:	0b 30                	or     (%eax),%esi
417507:	57                   	push   %edi
417508:	56                   	push   %esi
417509:	e8 12 68 01 00       	call   0x42dd20
41750e:	6a 00                	push   $0x0
417510:	33 c9                	xor    %ecx,%ecx
417512:	03 c1                	add    %ecx,%eax
417514:	53                   	push   %ebx
417515:	13 4d f4             	adc    -0xc(%ebp),%ecx
417518:	57                   	push   %edi
417519:	56                   	push   %esi
41751a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41751d:	89 45 f4             	mov    %eax,-0xc(%ebp)
417520:	e8 6b 68 01 00       	call   0x42dd90
417525:	8b f8                	mov    %eax,%edi
417527:	89 55 ec             	mov    %edx,-0x14(%ebp)
41752a:	8b 45 e8             	mov    -0x18(%ebp),%eax
41752d:	83 e8 04             	sub    $0x4,%eax
417530:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
417534:	89 45 e8             	mov    %eax,-0x18(%ebp)
417537:	75 c7                	jne    0x417500
417539:	8b 4d 08             	mov    0x8(%ebp),%ecx
41753c:	6a 00                	push   $0x0
41753e:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
417544:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
41754b:	00 00 00
41754e:	50                   	push   %eax
41754f:	8d 71 04             	lea    0x4(%ecx),%esi
417552:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
417558:	68 cc 01 00 00       	push   $0x1cc
41755d:	56                   	push   %esi
41755e:	e8 15 0f 00 00       	call   0x418478
417563:	8b 45 ec             	mov    -0x14(%ebp),%eax
417566:	83 c4 10             	add    $0x10,%esp
417569:	8b 55 08             	mov    0x8(%ebp),%edx
41756c:	33 c9                	xor    %ecx,%ecx
41756e:	3b c8                	cmp    %eax,%ecx
417570:	89 3e                	mov    %edi,(%esi)
417572:	1b c9                	sbb    %ecx,%ecx
417574:	f7 d9                	neg    %ecx
417576:	89 42 08             	mov    %eax,0x8(%edx)
417579:	8b 45 f4             	mov    -0xc(%ebp),%eax
41757c:	41                   	inc    %ecx
41757d:	5f                   	pop    %edi
41757e:	5e                   	pop    %esi
41757f:	89 0a                	mov    %ecx,(%edx)
417581:	8b 55 fc             	mov    -0x4(%ebp),%edx
417584:	5b                   	pop    %ebx
417585:	8b e5                	mov    %ebp,%esp
417587:	5d                   	pop    %ebp
417588:	c3                   	ret
417589:	3b f0                	cmp    %eax,%esi
41758b:	0f 87 1f 03 00 00    	ja     0x4178b0
417591:	8b d0                	mov    %eax,%edx
417593:	8b d8                	mov    %eax,%ebx
417595:	2b d6                	sub    %esi,%edx
417597:	3b da                	cmp    %edx,%ebx
417599:	7c 1f                	jl     0x4175ba
41759b:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
41759e:	83 c1 04             	add    $0x4,%ecx
4175a1:	46                   	inc    %esi
4175a2:	8d 34 b7             	lea    (%edi,%esi,4),%esi
4175a5:	8b 3e                	mov    (%esi),%edi
4175a7:	3b 39                	cmp    (%ecx),%edi
4175a9:	75 0d                	jne    0x4175b8
4175ab:	48                   	dec    %eax
4175ac:	83 ee 04             	sub    $0x4,%esi
4175af:	83 e9 04             	sub    $0x4,%ecx
4175b2:	3b c2                	cmp    %edx,%eax
4175b4:	7d ef                	jge    0x4175a5
4175b6:	eb 02                	jmp    0x4175ba
4175b8:	73 01                	jae    0x4175bb
4175ba:	42                   	inc    %edx
4175bb:	85 d2                	test   %edx,%edx
4175bd:	0f 84 ed 02 00 00    	je     0x4178b0
4175c3:	8b 7d ec             	mov    -0x14(%ebp),%edi
4175c6:	8b 75 0c             	mov    0xc(%ebp),%esi
4175c9:	8b 44 be fc          	mov    -0x4(%esi,%edi,4),%eax
4175cd:	8b 1c be             	mov    (%esi,%edi,4),%ebx
4175d0:	89 45 e0             	mov    %eax,-0x20(%ebp)
4175d3:	0f bd c3             	bsr    %ebx,%eax
4175d6:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4175d9:	74 09                	je     0x4175e4
4175db:	b9 1f 00 00 00       	mov    $0x1f,%ecx
4175e0:	2b c8                	sub    %eax,%ecx
4175e2:	eb 05                	jmp    0x4175e9
4175e4:	b9 20 00 00 00       	mov    $0x20,%ecx
4175e9:	b8 20 00 00 00       	mov    $0x20,%eax
4175ee:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4175f1:	2b c1                	sub    %ecx,%eax
4175f3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4175f6:	85 c9                	test   %ecx,%ecx
4175f8:	74 2d                	je     0x417627
4175fa:	8b 45 e0             	mov    -0x20(%ebp),%eax
4175fd:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
417600:	d3 e8                	shr    %cl,%eax
417602:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
417605:	d3 e3                	shl    %cl,%ebx
417607:	0b d8                	or     %eax,%ebx
417609:	89 5d d0             	mov    %ebx,-0x30(%ebp)
41760c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
41760f:	d3 e3                	shl    %cl,%ebx
417611:	89 5d e0             	mov    %ebx,-0x20(%ebp)
417614:	83 ff 02             	cmp    $0x2,%edi
417617:	76 0e                	jbe    0x417627
417619:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
41761d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
417620:	d3 e8                	shr    %cl,%eax
417622:	0b d8                	or     %eax,%ebx
417624:	89 5d e0             	mov    %ebx,-0x20(%ebp)
417627:	8d 5a ff             	lea    -0x1(%edx),%ebx
41762a:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
417631:	33 f6                	xor    %esi,%esi
417633:	89 5d b0             	mov    %ebx,-0x50(%ebp)
417636:	85 db                	test   %ebx,%ebx
417638:	0f 88 31 02 00 00    	js     0x41786f
41763e:	8b 55 08             	mov    0x8(%ebp),%edx
417641:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
417644:	89 45 c8             	mov    %eax,-0x38(%ebp)
417647:	8d 4a 04             	lea    0x4(%edx),%ecx
41764a:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
41764d:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
417650:	8d 4a fc             	lea    -0x4(%edx),%ecx
417653:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
417656:	89 4d e8             	mov    %ecx,-0x18(%ebp)
417659:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
417660:	3b 45 f4             	cmp    -0xc(%ebp),%eax
417663:	77 05                	ja     0x41766a
417665:	8b 51 08             	mov    0x8(%ecx),%edx
417668:	eb 02                	jmp    0x41766c
41766a:	33 d2                	xor    %edx,%edx
41766c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
417670:	8b 41 04             	mov    0x4(%ecx),%eax
417673:	8b 19                	mov    (%ecx),%ebx
417675:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
41767c:	89 55 b8             	mov    %edx,-0x48(%ebp)
41767f:	89 45 fc             	mov    %eax,-0x4(%ebp)
417682:	89 55 dc             	mov    %edx,-0x24(%ebp)
417685:	89 5d f8             	mov    %ebx,-0x8(%ebp)
417688:	76 3c                	jbe    0x4176c6
41768a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
41768d:	8b fb                	mov    %ebx,%edi
41768f:	d3 ef                	shr    %cl,%edi
417691:	33 f6                	xor    %esi,%esi
417693:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
417696:	e8 a5 67 01 00       	call   0x42de40
41769b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41769e:	0b c7                	or     %edi,%eax
4176a0:	0b d6                	or     %esi,%edx
4176a2:	d3 e3                	shl    %cl,%ebx
4176a4:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
4176a8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4176ab:	89 55 dc             	mov    %edx,-0x24(%ebp)
4176ae:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4176b1:	72 13                	jb     0x4176c6
4176b3:	8b 45 e8             	mov    -0x18(%ebp),%eax
4176b6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4176b9:	8b 40 fc             	mov    -0x4(%eax),%eax
4176bc:	d3 e8                	shr    %cl,%eax
4176be:	0b d8                	or     %eax,%ebx
4176c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4176c3:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4176c6:	8b 75 d0             	mov    -0x30(%ebp),%esi
4176c9:	6a 00                	push   $0x0
4176cb:	56                   	push   %esi
4176cc:	52                   	push   %edx
4176cd:	50                   	push   %eax
4176ce:	e8 4d 66 01 00       	call   0x42dd20
4176d3:	6a 00                	push   $0x0
4176d5:	56                   	push   %esi
4176d6:	ff 75 dc             	push   -0x24(%ebp)
4176d9:	8b d8                	mov    %eax,%ebx
4176db:	89 55 f0             	mov    %edx,-0x10(%ebp)