4153dd:	55                   	push   %ebp
4153de:	8b ec                	mov    %esp,%ebp
4153e0:	83 ec 1c             	sub    $0x1c,%esp
4153e3:	33 d2                	xor    %edx,%edx
4153e5:	53                   	push   %ebx
4153e6:	8b 5d 18             	mov    0x18(%ebp),%ebx
4153e9:	56                   	push   %esi
4153ea:	57                   	push   %edi
4153eb:	8b 7d 0c             	mov    0xc(%ebp),%edi
4153ee:	38 53 04             	cmp    %dl,0x4(%ebx)
4153f1:	0f 94 c2             	sete   %dl
4153f4:	4a                   	dec    %edx
4153f5:	83 e2 1d             	and    $0x1d,%edx
4153f8:	83 c2 17             	add    $0x17,%edx
4153fb:	83 ff 40             	cmp    $0x40,%edi
4153fe:	77 35                	ja     0x415435
415400:	8b 75 08             	mov    0x8(%ebp),%esi
415403:	83 3e 00             	cmpl   $0x0,(%esi)
415406:	76 0d                	jbe    0x415415
415408:	83 3e 01             	cmpl   $0x1,(%esi)
41540b:	8b 4e 04             	mov    0x4(%esi),%ecx
41540e:	76 07                	jbe    0x415417
415410:	8b 76 08             	mov    0x8(%esi),%esi
415413:	eb 04                	jmp    0x415419
415415:	33 c9                	xor    %ecx,%ecx
415417:	33 f6                	xor    %esi,%esi
415419:	8a 45 14             	mov    0x14(%ebp),%al
41541c:	34 01                	xor    $0x1,%al
41541e:	53                   	push   %ebx
41541f:	0f b6 c0             	movzbl %al,%eax
415422:	50                   	push   %eax
415423:	ff 75 10             	push   0x10(%ebp)
415426:	33 c0                	xor    %eax,%eax
415428:	03 c1                	add    %ecx,%eax
41542a:	52                   	push   %edx
41542b:	83 d6 00             	adc    $0x0,%esi
41542e:	56                   	push   %esi
41542f:	50                   	push   %eax
415430:	e9 2b 01 00 00       	jmp    0x415560
415435:	8b c7                	mov    %edi,%eax
415437:	c1 ef 05             	shr    $0x5,%edi
41543a:	83 e0 1f             	and    $0x1f,%eax
41543d:	89 45 f0             	mov    %eax,-0x10(%ebp)
415440:	8d 77 fe             	lea    -0x2(%edi),%esi
415443:	8b c6                	mov    %esi,%eax
415445:	c1 e0 05             	shl    $0x5,%eax
415448:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
41544c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41544f:	8b 45 08             	mov    0x8(%ebp),%eax
415452:	8b 4c b0 04          	mov    0x4(%eax,%esi,4),%ecx
415456:	89 4d e8             	mov    %ecx,-0x18(%ebp)
415459:	8b 0c b8             	mov    (%eax,%edi,4),%ecx
41545c:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41545f:	75 4a                	jne    0x4154ab
415461:	03 55 f8             	add    -0x8(%ebp),%edx
415464:	33 ff                	xor    %edi,%edi
415466:	03 7c b0 04          	add    0x4(%eax,%esi,4),%edi
41546a:	89 55 e8             	mov    %edx,-0x18(%ebp)
41546d:	83 d1 00             	adc    $0x0,%ecx
415470:	89 4d f4             	mov    %ecx,-0xc(%ebp)
415473:	8a 4d 14             	mov    0x14(%ebp),%cl
415476:	80 f1 01             	xor    $0x1,%cl
415479:	88 4d f0             	mov    %cl,-0x10(%ebp)
41547c:	85 f6                	test   %esi,%esi
41547e:	74 18                	je     0x415498
415480:	8d 50 04             	lea    0x4(%eax),%edx
415483:	83 3a 00             	cmpl   $0x0,(%edx)
415486:	8d 52 04             	lea    0x4(%edx),%edx
415489:	0f 95 c0             	setne  %al
41548c:	fe c8                	dec    %al
41548e:	22 c8                	and    %al,%cl
415490:	83 ee 01             	sub    $0x1,%esi
415493:	75 ee                	jne    0x415483
415495:	88 4d f0             	mov    %cl,-0x10(%ebp)
415498:	53                   	push   %ebx
415499:	ff 75 f0             	push   -0x10(%ebp)
41549c:	ff 75 10             	push   0x10(%ebp)
41549f:	ff 75 e8             	push   -0x18(%ebp)
4154a2:	ff 75 f4             	push   -0xc(%ebp)
4154a5:	57                   	push   %edi
4154a6:	e9 b5 00 00 00       	jmp    0x415560
4154ab:	8b 45 f0             	mov    -0x10(%ebp),%eax
4154ae:	33 db                	xor    %ebx,%ebx
4154b0:	8b c8                	mov    %eax,%ecx
4154b2:	43                   	inc    %ebx
4154b3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4154b6:	d3 65 fc             	shll   %cl,-0x4(%ebp)
4154b9:	ff 4d fc             	decl   -0x4(%ebp)
4154bc:	6a 40                	push   $0x40
4154be:	59                   	pop    %ecx
4154bf:	2b c8                	sub    %eax,%ecx
4154c1:	03 45 f8             	add    -0x8(%ebp),%eax
4154c4:	03 c2                	add    %edx,%eax
4154c6:	89 4d ec             	mov    %ecx,-0x14(%ebp)
4154c9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4154cc:	33 d2                	xor    %edx,%edx
4154ce:	8b 45 f4             	mov    -0xc(%ebp),%eax
4154d1:	8d 49 e0             	lea    -0x20(%ecx),%ecx
4154d4:	e8 67 89 01 00       	call   0x42de40
4154d9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4154dc:	89 45 f8             	mov    %eax,-0x8(%ebp)
4154df:	8b 45 fc             	mov    -0x4(%ebp),%eax
4154e2:	f7 d0                	not    %eax
4154e4:	89 55 f4             	mov    %edx,-0xc(%ebp)
4154e7:	23 45 e8             	and    -0x18(%ebp),%eax
4154ea:	33 d2                	xor    %edx,%edx
4154ec:	e8 6f 89 01 00       	call   0x42de60
4154f1:	01 45 f8             	add    %eax,-0x8(%ebp)
4154f4:	8b 45 08             	mov    0x8(%ebp),%eax
4154f7:	11 55 f4             	adc    %edx,-0xc(%ebp)
4154fa:	33 d2                	xor    %edx,%edx
4154fc:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4154ff:	8b 44 b8 04          	mov    0x4(%eax,%edi,4),%eax
415503:	8b 7d fc             	mov    -0x4(%ebp),%edi
415506:	23 c7                	and    %edi,%eax
415508:	e8 33 89 01 00       	call   0x42de40
41550d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
415510:	03 c8                	add    %eax,%ecx
415512:	8b 45 f4             	mov    -0xc(%ebp),%eax
415515:	89 4d f8             	mov    %ecx,-0x8(%ebp)
415518:	13 c2                	adc    %edx,%eax
41551a:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
41551e:	89 45 f4             	mov    %eax,-0xc(%ebp)
415521:	75 05                	jne    0x415528
415523:	85 7d e8             	test   %edi,-0x18(%ebp)
415526:	74 02                	je     0x41552a
415528:	32 db                	xor    %bl,%bl
41552a:	88 5d f0             	mov    %bl,-0x10(%ebp)
41552d:	85 f6                	test   %esi,%esi
41552f:	74 21                	je     0x415552
415531:	8b 4d 08             	mov    0x8(%ebp),%ecx
415534:	83 c1 04             	add    $0x4,%ecx
415537:	83 39 00             	cmpl   $0x0,(%ecx)
41553a:	8d 49 04             	lea    0x4(%ecx),%ecx
41553d:	0f 95 c0             	setne  %al
415540:	fe c8                	dec    %al
415542:	22 d8                	and    %al,%bl
415544:	88 5d f0             	mov    %bl,-0x10(%ebp)
415547:	83 ee 01             	sub    $0x1,%esi
41554a:	75 eb                	jne    0x415537
41554c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41554f:	8b 45 f4             	mov    -0xc(%ebp),%eax
415552:	ff 75 18             	push   0x18(%ebp)
415555:	ff 75 f0             	push   -0x10(%ebp)
415558:	ff 75 10             	push   0x10(%ebp)
41555b:	ff 75 e4             	push   -0x1c(%ebp)
41555e:	50                   	push   %eax
41555f:	51                   	push   %ecx
415560:	e8 1d fb ff ff       	call   0x415082
415565:	83 c4 18             	add    $0x18,%esp
415568:	5f                   	pop    %edi
415569:	5e                   	pop    %esi
41556a:	5b                   	pop    %ebx
41556b:	c9                   	leave
41556c:	c3                   	ret
41556d:	8b ff                	mov    %edi,%edi
41556f:	55                   	push   %ebp
415570:	8b ec                	mov    %esp,%ebp
415572:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415575:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
415579:	74 17                	je     0x415592
41557b:	e8 78 fa ff ff       	call   0x414ff8
415580:	8b c8                	mov    %eax,%ecx
415582:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
415586:	99                   	cltd
415587:	c1 e0 1f             	shl    $0x1f,%eax
41558a:	83 21 00             	andl   $0x0,(%ecx)
41558d:	89 41 04             	mov    %eax,0x4(%ecx)
415590:	5d                   	pop    %ebp
415591:	c3                   	ret
415592:	e8 86 fa ff ff       	call   0x41501d
415597:	0f b6 4d 08          	movzbl 0x8(%ebp),%ecx
41559b:	c1 e1 1f             	shl    $0x1f,%ecx
41559e:	89 08                	mov    %ecx,(%eax)
4155a0:	5d                   	pop    %ebp
4155a1:	c3                   	ret
4155a2:	8b ff                	mov    %edi,%edi
4155a4:	55                   	push   %ebp
4155a5:	8b ec                	mov    %esp,%ebp
4155a7:	81 ec 2c 0b 00 00    	sub    $0xb2c,%esp
4155ad:	a1 c0 d0 43 00       	mov    0x43d0c0,%eax
4155b2:	33 c5                	xor    %ebp,%eax
4155b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4155b7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4155ba:	33 c0                	xor    %eax,%eax
4155bc:	8b 55 08             	mov    0x8(%ebp),%edx
4155bf:	53                   	push   %ebx
4155c0:	56                   	push   %esi
4155c1:	38 41 04             	cmp    %al,0x4(%ecx)
4155c4:	8b 1a                	mov    (%edx),%ebx
4155c6:	0f 94 c0             	sete   %al
4155c9:	89 95 b4 f6 ff ff    	mov    %edx,-0x94c(%ebp)
4155cf:	48                   	dec    %eax
4155d0:	89 8d ac f6 ff ff    	mov    %ecx,-0x954(%ebp)
4155d6:	83 e0 1d             	and    $0x1d,%eax
4155d9:	83 c0 19             	add    $0x19,%eax
4155dc:	89 85 b0 f6 ff ff    	mov    %eax,-0x950(%ebp)
4155e2:	57                   	push   %edi
4155e3:	85 db                	test   %ebx,%ebx
4155e5:	79 02                	jns    0x4155e9
4155e7:	33 db                	xor    %ebx,%ebx
4155e9:	8b 42 04             	mov    0x4(%edx),%eax
4155ec:	8b cb                	mov    %ebx,%ecx
4155ee:	3b d8                	cmp    %eax,%ebx
4155f0:	72 02                	jb     0x4155f4
4155f2:	8b c8                	mov    %eax,%ecx
4155f4:	2b d9                	sub    %ecx,%ebx
4155f6:	8d 7a 08             	lea    0x8(%edx),%edi
4155f9:	83 c0 08             	add    $0x8,%eax
4155fc:	89 9d d0 f6 ff ff    	mov    %ebx,-0x930(%ebp)
415602:	83 c1 08             	add    $0x8,%ecx
415605:	89 bd c4 f6 ff ff    	mov    %edi,-0x93c(%ebp)
41560b:	03 ca                	add    %edx,%ecx
41560d:	03 c2                	add    %edx,%eax
41560f:	89 8d a8 f6 ff ff    	mov    %ecx,-0x958(%ebp)
415615:	33 db                	xor    %ebx,%ebx
415617:	89 85 a4 f6 ff ff    	mov    %eax,-0x95c(%ebp)
41561d:	33 f6                	xor    %esi,%esi
41561f:	2b c1                	sub    %ecx,%eax
415621:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
415627:	33 c9                	xor    %ecx,%ecx
415629:	89 85 c0 f6 ff ff    	mov    %eax,-0x940(%ebp)
41562f:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
415635:	89 b5 e0 f6 ff ff    	mov    %esi,-0x920(%ebp)
41563b:	3b bd a8 f6 ff ff    	cmp    -0x958(%ebp),%edi
415641:	0f 84 ae 06 00 00    	je     0x415cf5
415647:	83 f9 09             	cmp    $0x9,%ecx
41564a:	0f 85 04 01 00 00    	jne    0x415754
415650:	85 db                	test   %ebx,%ebx
415652:	0f 84 86 00 00 00    	je     0x4156de
415658:	33 c9                	xor    %ecx,%ecx
41565a:	bf 00 ca 9a 3b       	mov    $0x3b9aca00,%edi
41565f:	33 f6                	xor    %esi,%esi
415661:	8b 84 b5 30 fe ff ff 	mov    -0x1d0(%ebp,%esi,4),%eax
415668:	f7 e7                	mul    %edi
41566a:	03 c1                	add    %ecx,%eax
41566c:	89 84 b5 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%esi,4)
415673:	83 d2 00             	adc    $0x0,%edx
415676:	46                   	inc    %esi
415677:	8b ca                	mov    %edx,%ecx
415679:	3b f3                	cmp    %ebx,%esi
41567b:	75 e4                	jne    0x415661
41567d:	8b bd c4 f6 ff ff    	mov    -0x93c(%ebp),%edi
415683:	85 c9                	test   %ecx,%ecx
415685:	74 4b                	je     0x4156d2
415687:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
41568d:	83 f8 73             	cmp    $0x73,%eax
415690:	73 16                	jae    0x4156a8
415692:	89 8c 85 30 fe ff ff 	mov    %ecx,-0x1d0(%ebp,%eax,4)
415699:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
41569f:	43                   	inc    %ebx
4156a0:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
4156a6:	eb 30                	jmp    0x4156d8
4156a8:	33 c0                	xor    %eax,%eax
4156aa:	50                   	push   %eax
4156ab:	89 85 ec f6 ff ff    	mov    %eax,-0x914(%ebp)
4156b1:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
4156b7:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4156bd:	50                   	push   %eax
4156be:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
4156c4:	68 cc 01 00 00       	push   $0x1cc
4156c9:	50                   	push   %eax
4156ca:	e8 a9 2d 00 00       	call   0x418478
4156cf:	83 c4 10             	add    $0x10,%esp
4156d2:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
4156d8:	8b b5 e0 f6 ff ff    	mov    -0x920(%ebp),%esi
4156de:	85 f6                	test   %esi,%esi
4156e0:	74 6e                	je     0x415750
4156e2:	33 d2                	xor    %edx,%edx
4156e4:	85 db                	test   %ebx,%ebx
4156e6:	74 1c                	je     0x415704
4156e8:	33 c0                	xor    %eax,%eax
4156ea:	01 b4 95 30 fe ff ff 	add    %esi,-0x1d0(%ebp,%edx,4)
4156f1:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
4156f7:	13 c0                	adc    %eax,%eax
4156f9:	42                   	inc    %edx
4156fa:	8b f0                	mov    %eax,%esi
4156fc:	3b d3                	cmp    %ebx,%edx
4156fe:	75 e8                	jne    0x4156e8
415700:	85 c0                	test   %eax,%eax
415702:	74 4c                	je     0x415750
415704:	83 fb 73             	cmp    $0x73,%ebx
415707:	73 16                	jae    0x41571f
415709:	89 b4 9d 30 fe ff ff 	mov    %esi,-0x1d0(%ebp,%ebx,4)
415710:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
415716:	43                   	inc    %ebx
415717:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
41571d:	eb 31                	jmp    0x415750
41571f:	83 a5 ec f6 ff ff 00 	andl   $0x0,-0x914(%ebp)
415726:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
41572c:	83 a5 2c fe ff ff 00 	andl   $0x0,-0x1d4(%ebp)
415733:	6a 00                	push   $0x0
415735:	50                   	push   %eax
415736:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
41573c:	68 cc 01 00 00       	push   $0x1cc
415741:	50                   	push   %eax
415742:	e8 31 2d 00 00       	call   0x418478
415747:	8b 9d 2c fe ff ff    	mov    -0x1d4(%ebp),%ebx
41574d:	83 c4 10             	add    $0x10,%esp
415750:	33 f6                	xor    %esi,%esi
415752:	33 c9                	xor    %ecx,%ecx
415754:	0f b6 07             	movzbl (%edi),%eax
415757:	6b f6 0a             	imul   $0xa,%esi,%esi
41575a:	03 f0                	add    %eax,%esi
41575c:	41                   	inc    %ecx
41575d:	47                   	inc    %edi
41575e:	89 b5 e0 f6 ff ff    	mov    %esi,-0x920(%ebp)
415764:	89 bd c4 f6 ff ff    	mov    %edi,-0x93c(%ebp)
41576a:	3b bd a8 f6 ff ff    	cmp    -0x958(%ebp),%edi
415770:	0f 85 d1 fe ff ff    	jne    0x415647
415776:	89 8d bc f6 ff ff    	mov    %ecx,-0x944(%ebp)
41577c:	89 9d e8 f6 ff ff    	mov    %ebx,-0x918(%ebp)
415782:	85 c9                	test   %ecx,%ecx
415784:	0f 84 6f 05 00 00    	je     0x415cf9
41578a:	6a 0a                	push   $0xa
41578c:	33 d2                	xor    %edx,%edx
41578e:	8b c1                	mov    %ecx,%eax
415790:	5e                   	pop    %esi
415791:	f7 f6                	div    %esi
415793:	89 85 d4 f6 ff ff    	mov    %eax,-0x92c(%ebp)
415799:	85 c0                	test   %eax,%eax
41579b:	0f 84 de 03 00 00    	je     0x415b7f
4157a1:	83 f8 26             	cmp    $0x26,%eax
4157a4:	76 03                	jbe    0x4157a9
4157a6:	6a 26                	push   $0x26
4157a8:	58                   	pop    %eax
4157a9:	0f b6 0c 85 1e 2e 43 	movzbl 0x432e1e(,%eax,4),%ecx
4157b0:	00
4157b1:	0f b6 34 85 1f 2e 43 	movzbl 0x432e1f(,%eax,4),%esi
4157b8:	00
4157b9:	8b f9                	mov    %ecx,%edi
4157bb:	89 85 dc f6 ff ff    	mov    %eax,-0x924(%ebp)
4157c1:	c1 e7 02             	shl    $0x2,%edi
4157c4:	57                   	push   %edi
4157c5:	8d 04 31             	lea    (%ecx,%esi,1),%eax
4157c8:	89 85 ec f6 ff ff    	mov    %eax,-0x914(%ebp)
4157ce:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4157d4:	6a 00                	push   $0x0
4157d6:	50                   	push   %eax
4157d7:	e8 e4 5b ff ff       	call   0x40b3c0
4157dc:	8b c6                	mov    %esi,%eax
4157de:	c1 e0 02             	shl    $0x2,%eax
4157e1:	50                   	push   %eax
4157e2:	8b 85 dc f6 ff ff    	mov    -0x924(%ebp),%eax
4157e8:	0f b7 04 85 1c 2e 43 	movzwl 0x432e1c(,%eax,4),%eax
4157ef:	00
4157f0:	8d 04 85 18 25 43 00 	lea    0x432518(,%eax,4),%eax
4157f7:	50                   	push   %eax
4157f8:	8d 85 f0 f6 ff ff    	lea    -0x910(%ebp),%eax
4157fe:	03 c7                	add    %edi,%eax