421378:	8b 74 07 18          	mov    0x18(%edi,%eax,1),%esi
42137c:	8a 44 07 29          	mov    0x29(%edi,%eax,1),%al
421380:	88 45 ff             	mov    %al,-0x1(%ebp)
421383:	89 75 ec             	mov    %esi,-0x14(%ebp)
421386:	33 f6                	xor    %esi,%esi
421388:	0f be c0             	movsbl %al,%eax
42138b:	83 e8 01             	sub    $0x1,%eax
42138e:	74 33                	je     0x4213c3
421390:	83 e8 01             	sub    $0x1,%eax
421393:	75 24                	jne    0x4213b9
421395:	8b c1                	mov    %ecx,%eax
421397:	f7 d0                	not    %eax
421399:	84 c3                	test   %al,%bl
42139b:	75 1c                	jne    0x4213b9
42139d:	e8 bc b2 ff ff       	call   0x41c65e
4213a2:	21 30                	and    %esi,(%eax)
4213a4:	e8 c8 b2 ff ff       	call   0x41c671
4213a9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4213af:	e8 3a c0 fe ff       	call   0x40d3ee
4213b4:	e9 b5 01 00 00       	jmp    0x42156e
4213b9:	8b d9                	mov    %ecx,%ebx
4213bb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4213be:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4213c1:	eb 73                	jmp    0x421436
4213c3:	8b c1                	mov    %ecx,%eax
4213c5:	f7 d0                	not    %eax
4213c7:	84 c3                	test   %al,%bl
4213c9:	74 d2                	je     0x42139d
4213cb:	6a 04                	push   $0x4
4213cd:	d1 e9                	shr    $1,%ecx
4213cf:	5b                   	pop    %ebx
4213d0:	3b cb                	cmp    %ebx,%ecx
4213d2:	72 02                	jb     0x4213d6
4213d4:	8b d9                	mov    %ecx,%ebx
4213d6:	53                   	push   %ebx
4213d7:	e8 54 58 fe ff       	call   0x406c30
4213dc:	6a 00                	push   $0x0
4213de:	8b f0                	mov    %eax,%esi
4213e0:	e8 2b 58 fe ff       	call   0x406c10
4213e5:	6a 00                	push   $0x0
4213e7:	e8 24 58 fe ff       	call   0x406c10
4213ec:	83 c4 0c             	add    $0xc,%esp
4213ef:	89 75 f4             	mov    %esi,-0xc(%ebp)
4213f2:	85 f6                	test   %esi,%esi
4213f4:	75 1b                	jne    0x421411
4213f6:	e8 76 b2 ff ff       	call   0x41c671
4213fb:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
421401:	e8 58 b2 ff ff       	call   0x41c65e
421406:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
42140c:	e9 5d 01 00 00       	jmp    0x42156e
421411:	6a 01                	push   $0x1
421413:	6a 00                	push   $0x0
421415:	6a 00                	push   $0x0
421417:	ff 75 08             	push   0x8(%ebp)
42141a:	e8 db 05 00 00       	call   0x4219fa
42141f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
421422:	83 c4 10             	add    $0x10,%esp
421425:	8b 0c 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%ecx
42142c:	89 44 0f 20          	mov    %eax,0x20(%edi,%ecx,1)
421430:	89 54 0f 24          	mov    %edx,0x24(%edi,%ecx,1)
421434:	8b ce                	mov    %esi,%ecx
421436:	8b 45 f8             	mov    -0x8(%ebp),%eax
421439:	33 ff                	xor    %edi,%edi
42143b:	89 4d e0             	mov    %ecx,-0x20(%ebp)
42143e:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
421445:	89 45 e8             	mov    %eax,-0x18(%ebp)
421448:	8b d0                	mov    %eax,%edx
42144a:	8b 45 f0             	mov    -0x10(%ebp),%eax
42144d:	f6 44 10 28 48       	testb  $0x48,0x28(%eax,%edx,1)
421452:	8b 55 08             	mov    0x8(%ebp),%edx
421455:	0f 84 b6 00 00 00    	je     0x421511
42145b:	8b 4d e8             	mov    -0x18(%ebp),%ecx
42145e:	8a 44 08 2a          	mov    0x2a(%eax,%ecx,1),%al
421462:	8b 4d f4             	mov    -0xc(%ebp),%ecx
421465:	3c 0a                	cmp    $0xa,%al
421467:	0f 84 a4 00 00 00    	je     0x421511
42146d:	85 db                	test   %ebx,%ebx
42146f:	0f 84 9c 00 00 00    	je     0x421511
421475:	8b 55 f0             	mov    -0x10(%ebp),%edx
421478:	47                   	inc    %edi
421479:	88 01                	mov    %al,(%ecx)
42147b:	41                   	inc    %ecx
42147c:	8b 45 f8             	mov    -0x8(%ebp),%eax
42147f:	4b                   	dec    %ebx
421480:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
421484:	89 4d f4             	mov    %ecx,-0xc(%ebp)
421487:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
42148e:	c6 44 02 2a 0a       	movb   $0xa,0x2a(%edx,%eax,1)
421493:	8b 55 08             	mov    0x8(%ebp),%edx
421496:	74 79                	je     0x421511
421498:	8b 45 f8             	mov    -0x8(%ebp),%eax
42149b:	8b 55 f0             	mov    -0x10(%ebp),%edx
42149e:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
4214a5:	8a 44 02 2b          	mov    0x2b(%edx,%eax,1),%al
4214a9:	8b 55 08             	mov    0x8(%ebp),%edx
4214ac:	3c 0a                	cmp    $0xa,%al
4214ae:	74 61                	je     0x421511
4214b0:	85 db                	test   %ebx,%ebx
4214b2:	74 5d                	je     0x421511
4214b4:	8b 55 f0             	mov    -0x10(%ebp),%edx
4214b7:	88 01                	mov    %al,(%ecx)
4214b9:	41                   	inc    %ecx
4214ba:	8b 45 f8             	mov    -0x8(%ebp),%eax
4214bd:	4b                   	dec    %ebx
4214be:	80 7d ff 01          	cmpb   $0x1,-0x1(%ebp)
4214c2:	6a 02                	push   $0x2
4214c4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4214c7:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
4214ce:	5f                   	pop    %edi
4214cf:	c6 44 02 2b 0a       	movb   $0xa,0x2b(%edx,%eax,1)
4214d4:	8b 55 08             	mov    0x8(%ebp),%edx
4214d7:	75 38                	jne    0x421511
4214d9:	8b 45 f8             	mov    -0x8(%ebp),%eax
4214dc:	8b 55 f0             	mov    -0x10(%ebp),%edx
4214df:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
4214e6:	8a 44 02 2c          	mov    0x2c(%edx,%eax,1),%al
4214ea:	8b 55 08             	mov    0x8(%ebp),%edx
4214ed:	3c 0a                	cmp    $0xa,%al
4214ef:	74 20                	je     0x421511
4214f1:	85 db                	test   %ebx,%ebx
4214f3:	74 1c                	je     0x421511
4214f5:	88 01                	mov    %al,(%ecx)
4214f7:	41                   	inc    %ecx
4214f8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4214fb:	4b                   	dec    %ebx
4214fc:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4214ff:	8b 4d f0             	mov    -0x10(%ebp),%ecx
421502:	6a 03                	push   $0x3
421504:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
42150b:	5f                   	pop    %edi
42150c:	c6 44 01 2c 0a       	movb   $0xa,0x2c(%ecx,%eax,1)
421511:	52                   	push   %edx
421512:	e8 c1 6c 00 00       	call   0x4281d8
421517:	59                   	pop    %ecx
421518:	85 c0                	test   %eax,%eax
42151a:	74 6f                	je     0x42158b
42151c:	8b 45 f8             	mov    -0x8(%ebp),%eax
42151f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
421522:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
421529:	80 7c 01 28 00       	cmpb   $0x0,0x28(%ecx,%eax,1)
42152e:	7d 5b                	jge    0x42158b
421530:	8d 45 dc             	lea    -0x24(%ebp),%eax
421533:	50                   	push   %eax
421534:	ff 75 ec             	push   -0x14(%ebp)
421537:	ff 15 7c 10 43 00    	call   *0x43107c
42153d:	85 c0                	test   %eax,%eax
42153f:	74 4a                	je     0x42158b
421541:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
421545:	75 48                	jne    0x42158f
421547:	6a 00                	push   $0x0
421549:	8d 45 e8             	lea    -0x18(%ebp),%eax
42154c:	d1 eb                	shr    $1,%ebx
42154e:	50                   	push   %eax
42154f:	53                   	push   %ebx
421550:	8b 5d f4             	mov    -0xc(%ebp),%ebx
421553:	53                   	push   %ebx
421554:	ff 75 ec             	push   -0x14(%ebp)
421557:	ff 15 78 10 43 00    	call   *0x431078
42155d:	85 c0                	test   %eax,%eax
42155f:	75 1f                	jne    0x421580
421561:	ff 15 08 11 43 00    	call   *0x431108
421567:	50                   	push   %eax
421568:	e8 aa b0 ff ff       	call   0x41c617
42156d:	59                   	pop    %ecx
42156e:	83 cf ff             	or     $0xffffffff,%edi
421571:	56                   	push   %esi
421572:	e8 99 56 fe ff       	call   0x406c10
421577:	59                   	pop    %ecx
421578:	8b c7                	mov    %edi,%eax
42157a:	5e                   	pop    %esi
42157b:	e9 d6 00 00 00       	jmp    0x421656
421580:	8b 45 e8             	mov    -0x18(%ebp),%eax
421583:	8b 4d 10             	mov    0x10(%ebp),%ecx
421586:	8d 3c 47             	lea    (%edi,%eax,2),%edi
421589:	eb 27                	jmp    0x4215b2
42158b:	c6 45 e4 00          	movb   $0x0,-0x1c(%ebp)
42158f:	6a 00                	push   $0x0
421591:	8d 45 e8             	lea    -0x18(%ebp),%eax
421594:	50                   	push   %eax
421595:	53                   	push   %ebx
421596:	8b 5d f4             	mov    -0xc(%ebp),%ebx
421599:	53                   	push   %ebx
42159a:	ff 75 ec             	push   -0x14(%ebp)
42159d:	ff 15 d8 10 43 00    	call   *0x4310d8
4215a3:	85 c0                	test   %eax,%eax
4215a5:	74 5c                	je     0x421603
4215a7:	8b 4d 10             	mov    0x10(%ebp),%ecx
4215aa:	39 4d e8             	cmp    %ecx,-0x18(%ebp)
4215ad:	77 54                	ja     0x421603
4215af:	03 7d e8             	add    -0x18(%ebp),%edi
4215b2:	8b 45 f8             	mov    -0x8(%ebp),%eax
4215b5:	8b 55 f0             	mov    -0x10(%ebp),%edx
4215b8:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
4215bf:	80 7c 02 28 00       	cmpb   $0x0,0x28(%edx,%eax,1)
4215c4:	7d ab                	jge    0x421571
4215c6:	80 7d ff 02          	cmpb   $0x2,-0x1(%ebp)
4215ca:	74 17                	je     0x4215e3
4215cc:	d1 e9                	shr    $1,%ecx
4215ce:	51                   	push   %ecx
4215cf:	ff 75 0c             	push   0xc(%ebp)
4215d2:	57                   	push   %edi
4215d3:	53                   	push   %ebx
4215d4:	ff 75 08             	push   0x8(%ebp)
4215d7:	e8 05 fa ff ff       	call   0x420fe1
4215dc:	83 c4 14             	add    $0x14,%esp
4215df:	8b f8                	mov    %eax,%edi
4215e1:	eb 8e                	jmp    0x421571
4215e3:	d1 ef                	shr    $1,%edi
4215e5:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
4215e9:	57                   	push   %edi
4215ea:	ff 75 e0             	push   -0x20(%ebp)
4215ed:	ff 75 08             	push   0x8(%ebp)
4215f0:	74 0a                	je     0x4215fc
4215f2:	e8 41 fb ff ff       	call   0x421138
4215f7:	83 c4 0c             	add    $0xc,%esp
4215fa:	eb e3                	jmp    0x4215df
4215fc:	e8 26 f8 ff ff       	call   0x420e27
421601:	eb f4                	jmp    0x4215f7
421603:	ff 15 08 11 43 00    	call   *0x431108
421609:	6a 05                	push   $0x5
42160b:	5f                   	pop    %edi
42160c:	3b c7                	cmp    %edi,%eax
42160e:	75 17                	jne    0x421627
421610:	e8 5c b0 ff ff       	call   0x41c671
421615:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
42161b:	e8 3e b0 ff ff       	call   0x41c65e
421620:	89 38                	mov    %edi,(%eax)
421622:	e9 47 ff ff ff       	jmp    0x42156e
421627:	83 f8 6d             	cmp    $0x6d,%eax
42162a:	0f 85 37 ff ff ff    	jne    0x421567
421630:	33 ff                	xor    %edi,%edi
421632:	e9 3a ff ff ff       	jmp    0x421571
421637:	33 c0                	xor    %eax,%eax
421639:	eb 1b                	jmp    0x421656
42163b:	e8 1e b0 ff ff       	call   0x41c65e
421640:	83 20 00             	andl   $0x0,(%eax)
421643:	e8 29 b0 ff ff       	call   0x41c671
421648:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
42164e:	e8 9b bd fe ff       	call   0x40d3ee
421653:	83 c8 ff             	or     $0xffffffff,%eax
421656:	5f                   	pop    %edi
421657:	5b                   	pop    %ebx
421658:	c9                   	leave
421659:	c3                   	ret
42165a:	8b ff                	mov    %edi,%edi
42165c:	55                   	push   %ebp
42165d:	8b ec                	mov    %esp,%ebp
42165f:	8b 45 08             	mov    0x8(%ebp),%eax
421662:	56                   	push   %esi
421663:	85 c0                	test   %eax,%eax
421665:	75 18                	jne    0x42167f
421667:	e8 05 b0 ff ff       	call   0x41c671
42166c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
421672:	e8 77 bd fe ff       	call   0x40d3ee
421677:	83 c8 ff             	or     $0xffffffff,%eax
42167a:	e9 67 01 00 00       	jmp    0x4217e6
42167f:	8b 40 0c             	mov    0xc(%eax),%eax
421682:	53                   	push   %ebx
421683:	90                   	nop
421684:	33 db                	xor    %ebx,%ebx
421686:	c1 e8 0d             	shr    $0xd,%eax
421689:	43                   	inc    %ebx
42168a:	84 c3                	test   %al,%bl
42168c:	0f 84 50 01 00 00    	je     0x4217e2
421692:	8b 45 08             	mov    0x8(%ebp),%eax
421695:	8b 40 0c             	mov    0xc(%eax),%eax
421698:	90                   	nop
421699:	c1 e8 0c             	shr    $0xc,%eax
42169c:	84 c3                	test   %al,%bl
42169e:	0f 85 3e 01 00 00    	jne    0x4217e2
4216a4:	8b 45 08             	mov    0x8(%ebp),%eax
4216a7:	8b 40 0c             	mov    0xc(%eax),%eax
4216aa:	90                   	nop
4216ab:	d1 e8                	shr    $1,%eax
4216ad:	84 c3                	test   %al,%bl
4216af:	8b 45 08             	mov    0x8(%ebp),%eax
4216b2:	74 0e                	je     0x4216c2
4216b4:	6a 10                	push   $0x10
4216b6:	59                   	pop    %ecx
4216b7:	83 c0 0c             	add    $0xc,%eax
4216ba:	f0 09 08             	lock or %ecx,(%eax)
4216bd:	e9 20 01 00 00       	jmp    0x4217e2
4216c2:	83 c0 0c             	add    $0xc,%eax
4216c5:	f0 09 18             	lock or %ebx,(%eax)
4216c8:	8b 45 08             	mov    0x8(%ebp),%eax
4216cb:	8b 40 0c             	mov    0xc(%eax),%eax
4216ce:	90                   	nop
4216cf:	a9 c0 04 00 00       	test   $0x4c0,%eax
4216d4:	75 09                	jne    0x4216df
4216d6:	ff 75 08             	push   0x8(%ebp)
4216d9:	e8 eb 84 00 00       	call   0x429bc9
4216de:	59                   	pop    %ecx
4216df:	8b 45 08             	mov    0x8(%ebp),%eax
4216e2:	57                   	push   %edi
4216e3:	8b 48 04             	mov    0x4(%eax),%ecx
4216e6:	89 08                	mov    %ecx,(%eax)
4216e8:	8b 45 08             	mov    0x8(%ebp),%eax
4216eb:	50                   	push   %eax
4216ec:	8b 70 18             	mov    0x18(%eax),%esi
4216ef:	8b 78 04             	mov    0x4(%eax),%edi
4216f2:	e8 49 c1 ff ff       	call   0x41d840
4216f7:	56                   	push   %esi
4216f8:	57                   	push   %edi
4216f9:	50                   	push   %eax
4216fa:	e8 b7 fa ff ff       	call   0x4211b6
4216ff:	8b 4d 08             	mov    0x8(%ebp),%ecx
421702:	83 c4 10             	add    $0x10,%esp
421705:	89 41 08             	mov    %eax,0x8(%ecx)
421708:	8b 45 08             	mov    0x8(%ebp),%eax
42170b:	5f                   	pop    %edi
42170c:	8b 50 08             	mov    0x8(%eax),%edx
42170f:	85 d2                	test   %edx,%edx
421711:	0f 84 b0 00 00 00    	je     0x4217c7
421717:	83 fa ff             	cmp    $0xffffffff,%edx
42171a:	0f 84 a7 00 00 00    	je     0x4217c7
421720:	8b 40 0c             	mov    0xc(%eax),%eax
421723:	90                   	nop
421724:	a8 06                	test   $0x6,%al
421726:	75 5e                	jne    0x421786
421728:	ff 75 08             	push   0x8(%ebp)
42172b:	e8 10 c1 ff ff       	call   0x41d840
421730:	59                   	pop    %ecx
421731:	83 f8 ff             	cmp    $0xffffffff,%eax
421734:	74 36                	je     0x42176c
421736:	ff 75 08             	push   0x8(%ebp)
421739:	e8 02 c1 ff ff       	call   0x41d840
42173e:	59                   	pop    %ecx
42173f:	83 f8 fe             	cmp    $0xfffffffe,%eax
421742:	74 28                	je     0x42176c
421744:	ff 75 08             	push   0x8(%ebp)
421747:	e8 f4 c0 ff ff       	call   0x41d840
42174c:	ff 75 08             	push   0x8(%ebp)
42174f:	8b f0                	mov    %eax,%esi
421751:	c1 fe 06             	sar    $0x6,%esi
421754:	e8 e7 c0 ff ff       	call   0x41d840
421759:	59                   	pop    %ecx
42175a:	83 e0 3f             	and    $0x3f,%eax
42175d:	59                   	pop    %ecx
42175e:	6b c8 38             	imul   $0x38,%eax,%ecx
421761:	8b 04 b5 00 f8 43 00 	mov    0x43f800(,%esi,4),%eax
421768:	03 c1                	add    %ecx,%eax
42176a:	eb 05                	jmp    0x421771
42176c:	b8 d0 d2 43 00       	mov    $0x43d2d0,%eax
421771:	8a 40 28             	mov    0x28(%eax),%al
421774:	24 82                	and    $0x82,%al
421776:	3c 82                	cmp    $0x82,%al
421778:	75 0c                	jne    0x421786
42177a:	8b 45 08             	mov    0x8(%ebp),%eax
42177d:	6a 20                	push   $0x20
42177f:	59                   	pop    %ecx