41245f:	53                   	push   %ebx
412460:	57                   	push   %edi
412461:	8b 7d 0c             	mov    0xc(%ebp),%edi
412464:	85 ff                	test   %edi,%edi
412466:	0f 84 19 01 00 00    	je     0x412585
41246c:	8b 5d 10             	mov    0x10(%ebp),%ebx
41246f:	85 db                	test   %ebx,%ebx
412471:	0f 84 0e 01 00 00    	je     0x412585
412477:	80 3f 00             	cmpb   $0x0,(%edi)
41247a:	75 15                	jne    0x412491
41247c:	8b 45 08             	mov    0x8(%ebp),%eax
41247f:	85 c0                	test   %eax,%eax
412481:	0f 84 0c 01 00 00    	je     0x412593
412487:	33 c9                	xor    %ecx,%ecx
412489:	66 89 08             	mov    %cx,(%eax)
41248c:	e9 02 01 00 00       	jmp    0x412593
412491:	56                   	push   %esi
412492:	ff 75 14             	push   0x14(%ebp)
412495:	8d 4d f0             	lea    -0x10(%ebp),%ecx
412498:	e8 ad a5 ff ff       	call   0x40ca4a
41249d:	8b 45 f4             	mov    -0xc(%ebp),%eax
4124a0:	81 78 08 e9 fd 00 00 	cmpl   $0xfde9,0x8(%eax)
4124a7:	75 21                	jne    0x4124ca
4124a9:	68 28 73 42 00       	push   $0x427328
4124ae:	53                   	push   %ebx
4124af:	57                   	push   %edi
4124b0:	ff 75 08             	push   0x8(%ebp)
4124b3:	e8 4f 26 00 00       	call   0x414b07
4124b8:	8b f0                	mov    %eax,%esi
4124ba:	83 c4 10             	add    $0x10,%esp
4124bd:	85 f6                	test   %esi,%esi
4124bf:	0f 89 ab 00 00 00    	jns    0x412570
4124c5:	e9 a3 00 00 00       	jmp    0x41256d
4124ca:	83 b8 a8 00 00 00 00 	cmpl   $0x0,0xa8(%eax)
4124d1:	75 15                	jne    0x4124e8
4124d3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4124d6:	85 c9                	test   %ecx,%ecx
4124d8:	74 06                	je     0x4124e0
4124da:	0f b6 07             	movzbl (%edi),%eax
4124dd:	66 89 01             	mov    %ax,(%ecx)
4124e0:	33 f6                	xor    %esi,%esi
4124e2:	46                   	inc    %esi
4124e3:	e9 88 00 00 00       	jmp    0x412570
4124e8:	8d 45 f4             	lea    -0xc(%ebp),%eax
4124eb:	50                   	push   %eax
4124ec:	0f b6 07             	movzbl (%edi),%eax
4124ef:	50                   	push   %eax
4124f0:	e8 ac 25 00 00       	call   0x414aa1
4124f5:	59                   	pop    %ecx
4124f6:	59                   	pop    %ecx
4124f7:	85 c0                	test   %eax,%eax
4124f9:	74 42                	je     0x41253d
4124fb:	8b 75 f4             	mov    -0xc(%ebp),%esi
4124fe:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
412502:	7e 29                	jle    0x41252d
412504:	3b 5e 04             	cmp    0x4(%esi),%ebx
412507:	7c 27                	jl     0x412530
412509:	33 c0                	xor    %eax,%eax
41250b:	39 45 08             	cmp    %eax,0x8(%ebp)
41250e:	0f 95 c0             	setne  %al
412511:	50                   	push   %eax
412512:	ff 75 08             	push   0x8(%ebp)
412515:	ff 76 04             	push   0x4(%esi)
412518:	57                   	push   %edi
412519:	6a 09                	push   $0x9
41251b:	ff 76 08             	push   0x8(%esi)
41251e:	e8 a6 da ff ff       	call   0x40ffc9
412523:	8b 75 f4             	mov    -0xc(%ebp),%esi
412526:	83 c4 18             	add    $0x18,%esp
412529:	85 c0                	test   %eax,%eax
41252b:	75 0b                	jne    0x412538
41252d:	3b 5e 04             	cmp    0x4(%esi),%ebx
412530:	72 30                	jb     0x412562
412532:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
412536:	74 2a                	je     0x412562
412538:	8b 76 04             	mov    0x4(%esi),%esi
41253b:	eb 33                	jmp    0x412570
41253d:	33 c0                	xor    %eax,%eax
41253f:	39 45 08             	cmp    %eax,0x8(%ebp)
412542:	0f 95 c0             	setne  %al
412545:	33 f6                	xor    %esi,%esi
412547:	50                   	push   %eax
412548:	ff 75 08             	push   0x8(%ebp)
41254b:	8b 45 f4             	mov    -0xc(%ebp),%eax
41254e:	46                   	inc    %esi
41254f:	56                   	push   %esi
412550:	57                   	push   %edi
412551:	6a 09                	push   $0x9
412553:	ff 70 08             	push   0x8(%eax)
412556:	e8 6e da ff ff       	call   0x40ffc9
41255b:	83 c4 18             	add    $0x18,%esp
41255e:	85 c0                	test   %eax,%eax
412560:	75 0e                	jne    0x412570
412562:	e8 6c c7 ff ff       	call   0x40ecd3
412567:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
41256d:	83 ce ff             	or     $0xffffffff,%esi
412570:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
412574:	74 0a                	je     0x412580
412576:	8b 4d f0             	mov    -0x10(%ebp),%ecx
412579:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
412580:	8b c6                	mov    %esi,%eax
412582:	5e                   	pop    %esi
412583:	eb 10                	jmp    0x412595
412585:	83 25 28 73 42 00 00 	andl   $0x0,0x427328
41258c:	83 25 2c 73 42 00 00 	andl   $0x0,0x42732c
412593:	33 c0                	xor    %eax,%eax
412595:	5f                   	pop    %edi
412596:	5b                   	pop    %ebx
412597:	c9                   	leave
412598:	c3                   	ret
412599:	8b ff                	mov    %edi,%edi
41259b:	55                   	push   %ebp
41259c:	8b ec                	mov    %esp,%ebp
41259e:	6a 00                	push   $0x0
4125a0:	ff 75 10             	push   0x10(%ebp)
4125a3:	ff 75 0c             	push   0xc(%ebp)
4125a6:	ff 75 08             	push   0x8(%ebp)
4125a9:	e8 a9 fe ff ff       	call   0x412457
4125ae:	83 c4 10             	add    $0x10,%esp
4125b1:	5d                   	pop    %ebp
4125b2:	c3                   	ret
4125b3:	8b ff                	mov    %edi,%edi
4125b5:	55                   	push   %ebp
4125b6:	8b ec                	mov    %esp,%ebp
4125b8:	56                   	push   %esi
4125b9:	8b 75 0c             	mov    0xc(%ebp),%esi
4125bc:	8b 06                	mov    (%esi),%eax
4125be:	3b 05 1c 72 42 00    	cmp    0x42721c,%eax
4125c4:	74 17                	je     0x4125dd
4125c6:	8b 4d 08             	mov    0x8(%ebp),%ecx
4125c9:	a1 a0 66 42 00       	mov    0x4266a0,%eax
4125ce:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
4125d4:	75 07                	jne    0x4125dd
4125d6:	e8 1b eb ff ff       	call   0x4110f6
4125db:	89 06                	mov    %eax,(%esi)
4125dd:	5e                   	pop    %esi
4125de:	5d                   	pop    %ebp
4125df:	c3                   	ret
4125e0:	8b ff                	mov    %edi,%edi
4125e2:	55                   	push   %ebp
4125e3:	8b ec                	mov    %esp,%ebp
4125e5:	56                   	push   %esi
4125e6:	8b 75 0c             	mov    0xc(%ebp),%esi
4125e9:	8b 06                	mov    (%esi),%eax
4125eb:	3b 05 98 6e 42 00    	cmp    0x426e98,%eax
4125f1:	74 17                	je     0x41260a
4125f3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4125f6:	a1 a0 66 42 00       	mov    0x4266a0,%eax
4125fb:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
412601:	75 07                	jne    0x41260a
412603:	e8 b0 d6 ff ff       	call   0x40fcb8
412608:	89 06                	mov    %eax,(%esi)
41260a:	5e                   	pop    %esi
41260b:	5d                   	pop    %ebp
41260c:	c3                   	ret
41260d:	8b ff                	mov    %edi,%edi
41260f:	55                   	push   %ebp
412610:	8b ec                	mov    %esp,%ebp
412612:	8b 45 08             	mov    0x8(%ebp),%eax
412615:	33 c9                	xor    %ecx,%ecx
412617:	56                   	push   %esi
412618:	57                   	push   %edi
412619:	be ff 07 00 00       	mov    $0x7ff,%esi
41261e:	8b 38                	mov    (%eax),%edi
412620:	8b 50 04             	mov    0x4(%eax),%edx
412623:	8b c2                	mov    %edx,%eax
412625:	c1 e8 14             	shr    $0x14,%eax
412628:	23 c6                	and    %esi,%eax
41262a:	3b c6                	cmp    %esi,%eax
41262c:	75 3b                	jne    0x412669
41262e:	8b f2                	mov    %edx,%esi
412630:	8b c7                	mov    %edi,%eax
412632:	81 e6 ff ff 0f 00    	and    $0xfffff,%esi
412638:	0b c6                	or     %esi,%eax
41263a:	75 03                	jne    0x41263f
41263c:	40                   	inc    %eax
41263d:	eb 2c                	jmp    0x41266b
41263f:	b8 00 00 08 00       	mov    $0x80000,%eax
412644:	3b d1                	cmp    %ecx,%edx
412646:	7f 13                	jg     0x41265b
412648:	7c 04                	jl     0x41264e
41264a:	3b f9                	cmp    %ecx,%edi
41264c:	73 0d                	jae    0x41265b
41264e:	3b f9                	cmp    %ecx,%edi
412650:	75 09                	jne    0x41265b
412652:	3b f0                	cmp    %eax,%esi
412654:	75 05                	jne    0x41265b
412656:	6a 04                	push   $0x4
412658:	58                   	pop    %eax
412659:	eb 10                	jmp    0x41266b
41265b:	23 d0                	and    %eax,%edx
41265d:	0b ca                	or     %edx,%ecx
41265f:	74 04                	je     0x412665
412661:	6a 02                	push   $0x2
412663:	eb f3                	jmp    0x412658
412665:	6a 03                	push   $0x3
412667:	eb ef                	jmp    0x412658
412669:	33 c0                	xor    %eax,%eax
41266b:	5f                   	pop    %edi
41266c:	5e                   	pop    %esi
41266d:	5d                   	pop    %ebp
41266e:	c3                   	ret
41266f:	8b ff                	mov    %edi,%edi
412671:	55                   	push   %ebp
412672:	8b ec                	mov    %esp,%ebp
412674:	8b 45 08             	mov    0x8(%ebp),%eax
412677:	53                   	push   %ebx
412678:	0f bf 5d 14          	movswl 0x14(%ebp),%ebx
41267c:	56                   	push   %esi
41267d:	8b 70 04             	mov    0x4(%eax),%esi
412680:	8b cb                	mov    %ebx,%ecx
412682:	57                   	push   %edi
412683:	8b 38                	mov    (%eax),%edi
412685:	8b d6                	mov    %esi,%edx
412687:	23 55 10             	and    0x10(%ebp),%edx
41268a:	8b c7                	mov    %edi,%eax
41268c:	23 45 0c             	and    0xc(%ebp),%eax
41268f:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
412695:	e8 76 6d 00 00       	call   0x419410
41269a:	6a 08                	push   $0x8
41269c:	0f b7 c0             	movzwl %ax,%eax
41269f:	59                   	pop    %ecx
4126a0:	66 3b c1             	cmp    %cx,%ax
4126a3:	77 66                	ja     0x41270b
4126a5:	73 04                	jae    0x4126ab
4126a7:	32 c0                	xor    %al,%al
4126a9:	eb 62                	jmp    0x41270d
4126ab:	33 c0                	xor    %eax,%eax
4126ad:	33 d2                	xor    %edx,%edx
4126af:	40                   	inc    %eax
4126b0:	8b cb                	mov    %ebx,%ecx
4126b2:	e8 39 6d 00 00       	call   0x4193f0
4126b7:	83 c0 ff             	add    $0xffffffff,%eax
4126ba:	83 d2 ff             	adc    $0xffffffff,%edx
4126bd:	23 c7                	and    %edi,%eax
4126bf:	23 d6                	and    %esi,%edx
4126c1:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
4126c7:	0b c2                	or     %edx,%eax
4126c9:	75 40                	jne    0x41270b
4126cb:	66 83 7d 14 30       	cmpw   $0x30,0x14(%ebp)
4126d0:	74 22                	je     0x4126f4
4126d2:	0f ac f7 04          	shrd   $0x4,%esi,%edi
4126d6:	8b cb                	mov    %ebx,%ecx
4126d8:	23 7d 0c             	and    0xc(%ebp),%edi
4126db:	c1 ee 04             	shr    $0x4,%esi
4126de:	8b c7                	mov    %edi,%eax
4126e0:	23 75 10             	and    0x10(%ebp),%esi
4126e3:	81 e6 ff ff 00 00    	and    $0xffff,%esi
4126e9:	8b d6                	mov    %esi,%edx
4126eb:	e8 20 6d 00 00       	call   0x419410
4126f0:	8a c8                	mov    %al,%cl
4126f2:	eb 10                	jmp    0x412704
4126f4:	33 c9                	xor    %ecx,%ecx
4126f6:	81 e6 00 00 f0 7f    	and    $0x7ff00000,%esi
4126fc:	8b c1                	mov    %ecx,%eax
4126fe:	0b c6                	or     %esi,%eax
412700:	74 02                	je     0x412704
412702:	b1 01                	mov    $0x1,%cl
412704:	80 e1 01             	and    $0x1,%cl
412707:	8a c1                	mov    %cl,%al
412709:	eb 02                	jmp    0x41270d
41270b:	b0 01                	mov    $0x1,%al
41270d:	5f                   	pop    %edi
41270e:	5e                   	pop    %esi
41270f:	5b                   	pop    %ebx
412710:	5d                   	pop    %ebp
412711:	c3                   	ret
412712:	8b ff                	mov    %edi,%edi
412714:	55                   	push   %ebp
412715:	8b ec                	mov    %esp,%ebp
412717:	83 ec 38             	sub    $0x38,%esp
41271a:	33 c0                	xor    %eax,%eax
41271c:	57                   	push   %edi
41271d:	8b 7d 1c             	mov    0x1c(%ebp),%edi
412720:	85 ff                	test   %edi,%edi
412722:	79 02                	jns    0x412726
412724:	8b f8                	mov    %eax,%edi
412726:	53                   	push   %ebx
412727:	56                   	push   %esi
412728:	8b 75 0c             	mov    0xc(%ebp),%esi
41272b:	8d 4d c8             	lea    -0x38(%ebp),%ecx
41272e:	ff 75 28             	push   0x28(%ebp)
412731:	88 06                	mov    %al,(%esi)
412733:	e8 12 a3 ff ff       	call   0x40ca4a
412738:	8d 47 0b             	lea    0xb(%edi),%eax
41273b:	39 45 10             	cmp    %eax,0x10(%ebp)
41273e:	77 14                	ja     0x412754
412740:	e8 8e c5 ff ff       	call   0x40ecd3
412745:	6a 22                	push   $0x22
412747:	5f                   	pop    %edi
412748:	89 38                	mov    %edi,(%eax)
41274a:	e8 c7 c4 ff ff       	call   0x40ec16
41274f:	e9 b6 02 00 00       	jmp    0x412a0a
412754:	8b 5d 08             	mov    0x8(%ebp),%ebx
412757:	8b 4b 04             	mov    0x4(%ebx),%ecx
41275a:	8b c1                	mov    %ecx,%eax
41275c:	8b 13                	mov    (%ebx),%edx
41275e:	c1 e8 14             	shr    $0x14,%eax
412761:	25 ff 07 00 00       	and    $0x7ff,%eax
412766:	3d ff 07 00 00       	cmp    $0x7ff,%eax
41276b:	75 53                	jne    0x4127c0
41276d:	ff 75 2c             	push   0x2c(%ebp)
412770:	33 c0                	xor    %eax,%eax
412772:	50                   	push   %eax
412773:	ff 75 24             	push   0x24(%ebp)
412776:	50                   	push   %eax
412777:	57                   	push   %edi
412778:	ff 75 18             	push   0x18(%ebp)
41277b:	ff 75 14             	push   0x14(%ebp)
41277e:	ff 75 10             	push   0x10(%ebp)
412781:	56                   	push   %esi
412782:	53                   	push   %ebx
412783:	e8 99 02 00 00       	call   0x412a21
412788:	8b f8                	mov    %eax,%edi
41278a:	83 c4 28             	add    $0x28,%esp
41278d:	85 ff                	test   %edi,%edi
41278f:	74 08                	je     0x412799
412791:	c6 06 00             	movb   $0x0,(%esi)
412794:	e9 71 02 00 00       	jmp    0x412a0a
412799:	6a 65                	push   $0x65
41279b:	56                   	push   %esi
41279c:	e8 8f 88 00 00       	call   0x41b030
4127a1:	59                   	pop    %ecx
4127a2:	59                   	pop    %ecx
4127a3:	85 c0                	test   %eax,%eax
4127a5:	74 12                	je     0x4127b9
4127a7:	8a 4d 20             	mov    0x20(%ebp),%cl
4127aa:	80 f1 01             	xor    $0x1,%cl
4127ad:	c0 e1 05             	shl    $0x5,%cl
4127b0:	80 c1 50             	add    $0x50,%cl
4127b3:	88 08                	mov    %cl,(%eax)
4127b5:	c6 40 03 00          	movb   $0x0,0x3(%eax)
4127b9:	33 ff                	xor    %edi,%edi
4127bb:	e9 4a 02 00 00       	jmp    0x412a0a
4127c0:	33 c0                	xor    %eax,%eax
4127c2:	3b c8                	cmp    %eax,%ecx
4127c4:	7f 0d                	jg     0x4127d3
4127c6:	7c 04                	jl     0x4127cc
4127c8:	3b d0                	cmp    %eax,%edx
4127ca:	73 07                	jae    0x4127d3
4127cc:	c6 06 2d             	movb   $0x2d,(%esi)
4127cf:	46                   	inc    %esi
4127d0:	8b 4b 04             	mov    0x4(%ebx),%ecx
4127d3:	8a 45 20             	mov    0x20(%ebp),%al
4127d6:	8d 56 01             	lea    0x1(%esi),%edx
4127d9:	34 01                	xor    $0x1,%al
4127db:	c7 45 f4 ff 03 00 00 	movl   $0x3ff,-0xc(%ebp)
4127e2:	88 45 ff             	mov    %al,-0x1(%ebp)
4127e5:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
4127eb:	0f b6 c0             	movzbl %al,%eax