438536:	88 95 a7 f8 ff ff    	mov    %dl,-0x759(%ebp)
43853c:	3b f8                	cmp    %eax,%edi
43853e:	0f 84 88 01 00 00    	je     0x4386cc
438544:	8b 85 2c fe ff ff    	mov    -0x1d4(%ebp),%eax
43854a:	89 85 88 f8 ff ff    	mov    %eax,-0x778(%ebp)
438550:	85 c0                	test   %eax,%eax
438552:	0f 84 74 01 00 00    	je     0x4386cc
438558:	33 ff                	xor    %edi,%edi
43855a:	33 c9                	xor    %ecx,%ecx
43855c:	8b 84 8d 30 fe ff ff 	mov    -0x1d0(%ebp,%ecx,4),%eax
438563:	ba 00 ca 9a 3b       	mov    $0x3b9aca00,%edx
438568:	f7 e2                	mul    %edx
43856a:	03 c7                	add    %edi,%eax
43856c:	89 84 8d 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%ecx,4)
438573:	83 d2 00             	adc    $0x0,%edx
438576:	41                   	inc    %ecx
438577:	8b fa                	mov    %edx,%edi
438579:	3b 8d 88 f8 ff ff    	cmp    -0x778(%ebp),%ecx
43857f:	75 db                	jne    0x43855c
438581:	89 bd 88 f8 ff ff    	mov    %edi,-0x778(%ebp)
438587:	85 ff                	test   %edi,%edi
438589:	8b bd b8 f8 ff ff    	mov    -0x748(%ebp),%edi
43858f:	0f 84 8e 00 00 00    	je     0x438623
438595:	8b 8d 2c fe ff ff    	mov    -0x1d4(%ebp),%ecx
43859b:	83 f9 73             	cmp    $0x73,%ecx
43859e:	73 5d                	jae    0x4385fd
4385a0:	8b c2                	mov    %edx,%eax
4385a2:	89 84 8d 30 fe ff ff 	mov    %eax,-0x1d0(%ebp,%ecx,4)
4385a9:	ff 85 2c fe ff ff    	incl   -0x1d4(%ebp)
4385af:	eb 72                	jmp    0x438623
4385b1:	33 c0                	xor    %eax,%eax
4385b3:	50                   	push   %eax
4385b4:	89 85 8c f6 ff ff    	mov    %eax,-0x974(%ebp)
4385ba:	89 85 5c fc ff ff    	mov    %eax,-0x3a4(%ebp)
4385c0:	8d 85 90 f6 ff ff    	lea    -0x970(%ebp),%eax
4385c6:	50                   	push   %eax
4385c7:	8d 85 60 fc ff ff    	lea    -0x3a0(%ebp),%eax
4385cd:	56                   	push   %esi
4385ce:	50                   	push   %eax
4385cf:	e8 21 de fe ff       	call   0x4263f5
4385d4:	83 c4 10             	add    $0x10,%esp
4385d7:	e9 17 ff ff ff       	jmp    0x4384f3
4385dc:	85 c0                	test   %eax,%eax
4385de:	75 0b                	jne    0x4385eb
4385e0:	ff 8d 7c f8 ff ff    	decl   -0x784(%ebp)
4385e6:	e9 0e ff ff ff       	jmp    0x4384f9
4385eb:	04 30                	add    $0x30,%al
4385ed:	8d 79 01             	lea    0x1(%ecx),%edi
4385f0:	88 01                	mov    %al,(%ecx)
4385f2:	89 bd b8 f8 ff ff    	mov    %edi,-0x748(%ebp)
4385f8:	e9 fc fe ff ff       	jmp    0x4384f9
4385fd:	33 c0                	xor    %eax,%eax
4385ff:	50                   	push   %eax
438600:	89 85 8c f6 ff ff    	mov    %eax,-0x974(%ebp)
438606:	89 85 2c fe ff ff    	mov    %eax,-0x1d4(%ebp)
43860c:	8d 85 90 f6 ff ff    	lea    -0x970(%ebp),%eax
438612:	50                   	push   %eax
438613:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
438619:	56                   	push   %esi
43861a:	50                   	push   %eax
43861b:	e8 d5 dd fe ff       	call   0x4263f5
438620:	83 c4 10             	add    $0x10,%esp
438623:	8d 85 5c fc ff ff    	lea    -0x3a4(%ebp),%eax
438629:	50                   	push   %eax
43862a:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
438630:	50                   	push   %eax
438631:	e8 5a e4 fe ff       	call   0x426a90
438636:	59                   	pop    %ecx
438637:	59                   	pop    %ecx
438638:	8b 8d ac f8 ff ff    	mov    -0x754(%ebp),%ecx
43863e:	89 85 a8 f8 ff ff    	mov    %eax,-0x758(%ebp)
438644:	2b cf                	sub    %edi,%ecx
438646:	c7 85 90 f8 ff ff 08 	movl   $0x8,-0x770(%ebp)
43864d:	00 00 00
438650:	33 d2                	xor    %edx,%edx
438652:	f7 b5 b0 f8 ff ff    	divl   -0x750(%ebp)
438658:	8b c2                	mov    %edx,%eax
43865a:	33 d2                	xor    %edx,%edx
43865c:	04 30                	add    $0x30,%al
43865e:	89 85 78 f8 ff ff    	mov    %eax,-0x788(%ebp)
438664:	8b 85 a8 f8 ff ff    	mov    -0x758(%ebp),%eax
43866a:	f7 b5 b0 f8 ff ff    	divl   -0x750(%ebp)
438670:	8b 95 78 f8 ff ff    	mov    -0x788(%ebp),%edx
438676:	89 85 a8 f8 ff ff    	mov    %eax,-0x758(%ebp)
43867c:	8b 85 90 f8 ff ff    	mov    -0x770(%ebp),%eax
438682:	3b c8                	cmp    %eax,%ecx
438684:	77 0f                	ja     0x438695
438686:	80 fa 30             	cmp    $0x30,%dl
438689:	74 0d                	je     0x438698
43868b:	8a d3                	mov    %bl,%dl
43868d:	88 95 a7 f8 ff ff    	mov    %dl,-0x759(%ebp)
438693:	eb 09                	jmp    0x43869e
438695:	88 14 38             	mov    %dl,(%eax,%edi,1)
438698:	8a 95 a7 f8 ff ff    	mov    -0x759(%ebp),%dl
43869e:	48                   	dec    %eax
43869f:	89 85 90 f8 ff ff    	mov    %eax,-0x770(%ebp)
4386a5:	83 f8 ff             	cmp    $0xffffffff,%eax
4386a8:	8b 85 a8 f8 ff ff    	mov    -0x758(%ebp),%eax
4386ae:	75 a0                	jne    0x438650
4386b0:	83 f9 09             	cmp    $0x9,%ecx
4386b3:	76 03                	jbe    0x4386b8
4386b5:	6a 09                	push   $0x9
4386b7:	59                   	pop    %ecx
4386b8:	03 f9                	add    %ecx,%edi
4386ba:	89 bd b8 f8 ff ff    	mov    %edi,-0x748(%ebp)
4386c0:	3b bd ac f8 ff ff    	cmp    -0x754(%ebp),%edi
4386c6:	0f 85 78 fe ff ff    	jne    0x438544
4386cc:	c6 07 00             	movb   $0x0,(%edi)
4386cf:	83 bd 2c fe ff ff 00 	cmpl   $0x0,-0x1d4(%ebp)
4386d6:	75 04                	jne    0x4386dc
4386d8:	84 d2                	test   %dl,%dl
4386da:	74 02                	je     0x4386de
4386dc:	33 db                	xor    %ebx,%ebx
4386de:	ff b5 70 f8 ff ff    	push   -0x790(%ebp)
4386e4:	8d 85 88 f8 ff ff    	lea    -0x778(%ebp),%eax
4386ea:	ff b5 6c f8 ff ff    	push   -0x794(%ebp)
4386f0:	50                   	push   %eax
4386f1:	e8 6a 35 ff ff       	call   0x42bc60
4386f6:	83 c4 0c             	add    $0xc,%esp
4386f9:	80 bd 68 f8 ff ff 00 	cmpb   $0x0,-0x798(%ebp)
438700:	5f                   	pop    %edi
438701:	5e                   	pop    %esi
438702:	74 0d                	je     0x438711
438704:	8d 85 60 f8 ff ff    	lea    -0x7a0(%ebp),%eax
43870a:	50                   	push   %eax
43870b:	e8 29 2c 00 00       	call   0x43b339
438710:	59                   	pop    %ecx
438711:	8b 4d fc             	mov    -0x4(%ebp),%ecx
438714:	8b c3                	mov    %ebx,%eax
438716:	33 cd                	xor    %ebp,%ecx
438718:	5b                   	pop    %ebx
438719:	e8 b2 31 fe ff       	call   0x41b8d0
43871e:	c9                   	leave
43871f:	c3                   	ret
438720:	33 c0                	xor    %eax,%eax
438722:	50                   	push   %eax
438723:	50                   	push   %eax
438724:	50                   	push   %eax
438725:	50                   	push   %eax
438726:	50                   	push   %eax
438727:	e8 70 83 fe ff       	call   0x420a9c
43872c:	cc                   	int3
43872d:	8b ff                	mov    %edi,%edi
43872f:	55                   	push   %ebp
438730:	8b ec                	mov    %esp,%ebp
438732:	8b 55 08             	mov    0x8(%ebp),%edx
438735:	85 d2                	test   %edx,%edx
438737:	75 0f                	jne    0x438748
438739:	33 c9                	xor    %ecx,%ecx
43873b:	8b 45 10             	mov    0x10(%ebp),%eax
43873e:	89 08                	mov    %ecx,(%eax)
438740:	89 48 04             	mov    %ecx,0x4(%eax)
438743:	33 c0                	xor    %eax,%eax
438745:	40                   	inc    %eax
438746:	5d                   	pop    %ebp
438747:	c3                   	ret
438748:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43874b:	85 c9                	test   %ecx,%ecx
43874d:	75 04                	jne    0x438753
43874f:	88 0a                	mov    %cl,(%edx)
438751:	eb e8                	jmp    0x43873b
438753:	f7 c1 80 ff ff ff    	test   $0xffffff80,%ecx
438759:	75 04                	jne    0x43875f
43875b:	88 0a                	mov    %cl,(%edx)
43875d:	eb e4                	jmp    0x438743
43875f:	53                   	push   %ebx
438760:	56                   	push   %esi
438761:	f7 c1 00 f8 ff ff    	test   $0xfffff800,%ecx
438767:	75 07                	jne    0x438770
438769:	33 f6                	xor    %esi,%esi
43876b:	b3 c0                	mov    $0xc0,%bl
43876d:	46                   	inc    %esi
43876e:	eb 33                	jmp    0x4387a3
438770:	f7 c1 00 00 ff ff    	test   $0xffff0000,%ecx
438776:	75 16                	jne    0x43878e
438778:	81 f9 00 d8 00 00    	cmp    $0xd800,%ecx
43877e:	72 08                	jb     0x438788
438780:	81 f9 ff df 00 00    	cmp    $0xdfff,%ecx
438786:	76 44                	jbe    0x4387cc
438788:	6a 02                	push   $0x2
43878a:	b3 e0                	mov    $0xe0,%bl
43878c:	eb 14                	jmp    0x4387a2
43878e:	f7 c1 00 00 e0 ff    	test   $0xffe00000,%ecx
438794:	75 36                	jne    0x4387cc
438796:	81 f9 ff ff 10 00    	cmp    $0x10ffff,%ecx
43879c:	77 2e                	ja     0x4387cc
43879e:	6a 03                	push   $0x3
4387a0:	b3 f0                	mov    $0xf0,%bl
4387a2:	5e                   	pop    %esi
4387a3:	57                   	push   %edi
4387a4:	8b fe                	mov    %esi,%edi
4387a6:	8a c1                	mov    %cl,%al
4387a8:	c1 e9 06             	shr    $0x6,%ecx
4387ab:	24 3f                	and    $0x3f,%al
4387ad:	0c 80                	or     $0x80,%al
4387af:	88 04 17             	mov    %al,(%edi,%edx,1)
4387b2:	83 ef 01             	sub    $0x1,%edi
4387b5:	75 ef                	jne    0x4387a6
4387b7:	ff 75 10             	push   0x10(%ebp)
4387ba:	8d 46 01             	lea    0x1(%esi),%eax
4387bd:	0a cb                	or     %bl,%cl
4387bf:	50                   	push   %eax
4387c0:	88 0a                	mov    %cl,(%edx)
4387c2:	e8 46 2e 00 00       	call   0x43b60d
4387c7:	59                   	pop    %ecx
4387c8:	59                   	pop    %ecx
4387c9:	5f                   	pop    %edi
4387ca:	eb 0d                	jmp    0x4387d9
4387cc:	ff 75 14             	push   0x14(%ebp)
4387cf:	ff 75 10             	push   0x10(%ebp)
4387d2:	e8 4a 2e 00 00       	call   0x43b621
4387d7:	59                   	pop    %ecx
4387d8:	59                   	pop    %ecx
4387d9:	5e                   	pop    %esi
4387da:	5b                   	pop    %ebx
4387db:	5d                   	pop    %ebp
4387dc:	c3                   	ret
4387dd:	8b ff                	mov    %edi,%edi
4387df:	55                   	push   %ebp
4387e0:	8b ec                	mov    %esp,%ebp
4387e2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4387e5:	80 39 00             	cmpb   $0x0,(%ecx)
4387e8:	75 05                	jne    0x4387ef
4387ea:	33 c0                	xor    %eax,%eax
4387ec:	40                   	inc    %eax
4387ed:	eb 16                	jmp    0x438805
4387ef:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
4387f3:	75 05                	jne    0x4387fa
4387f5:	6a 02                	push   $0x2
4387f7:	58                   	pop    %eax
4387f8:	eb 0b                	jmp    0x438805
4387fa:	33 c0                	xor    %eax,%eax
4387fc:	38 41 02             	cmp    %al,0x2(%ecx)
4387ff:	0f 95 c0             	setne  %al
438802:	83 c0 03             	add    $0x3,%eax
438805:	5d                   	pop    %ebp
438806:	c2 04 00             	ret    $0x4
438809:	8b ff                	mov    %edi,%edi
43880b:	55                   	push   %ebp
43880c:	8b ec                	mov    %esp,%ebp
43880e:	51                   	push   %ecx
43880f:	ff 75 18             	push   0x18(%ebp)
438812:	8d 45 fc             	lea    -0x4(%ebp),%eax
438815:	ff 75 14             	push   0x14(%ebp)
438818:	ff 75 10             	push   0x10(%ebp)
43881b:	ff 75 0c             	push   0xc(%ebp)
43881e:	50                   	push   %eax
43881f:	e8 1f 2e 00 00       	call   0x43b643
438824:	8b d0                	mov    %eax,%edx
438826:	83 c4 14             	add    $0x14,%esp
438829:	83 fa 04             	cmp    $0x4,%edx
43882c:	77 1a                	ja     0x438848
43882e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
438831:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
438837:	76 05                	jbe    0x43883e
438839:	b9 fd ff 00 00       	mov    $0xfffd,%ecx
43883e:	8b 45 08             	mov    0x8(%ebp),%eax
438841:	85 c0                	test   %eax,%eax
438843:	74 03                	je     0x438848
438845:	66 89 08             	mov    %cx,(%eax)
438848:	8b c2                	mov    %edx,%eax
43884a:	c9                   	leave
43884b:	c3                   	ret
43884c:	8b ff                	mov    %edi,%edi
43884e:	55                   	push   %ebp
43884f:	8b ec                	mov    %esp,%ebp
438851:	51                   	push   %ecx
438852:	51                   	push   %ecx
438853:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
438857:	53                   	push   %ebx
438858:	56                   	push   %esi
438859:	57                   	push   %edi
43885a:	8b 7d 0c             	mov    0xc(%ebp),%edi
43885d:	8b 3f                	mov    (%edi),%edi
43885f:	0f 84 a4 00 00 00    	je     0x438909
438865:	8b 5d 10             	mov    0x10(%ebp),%ebx
438868:	8b 75 08             	mov    0x8(%ebp),%esi
43886b:	85 db                	test   %ebx,%ebx
43886d:	74 6b                	je     0x4388da
43886f:	57                   	push   %edi
438870:	8d 4d ff             	lea    -0x1(%ebp),%ecx
438873:	e8 65 ff ff ff       	call   0x4387dd
438878:	ff 75 18             	push   0x18(%ebp)
43887b:	ff 75 14             	push   0x14(%ebp)
43887e:	50                   	push   %eax
43887f:	8d 45 f8             	lea    -0x8(%ebp),%eax
438882:	57                   	push   %edi
438883:	50                   	push   %eax
438884:	e8 ba 2d 00 00       	call   0x43b643
438889:	8b d0                	mov    %eax,%edx
43888b:	83 c4 14             	add    $0x14,%esp
43888e:	83 fa ff             	cmp    $0xffffffff,%edx
438891:	74 5e                	je     0x4388f1
438893:	85 d2                	test   %edx,%edx
438895:	74 51                	je     0x4388e8
438897:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43889a:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
4388a0:	76 2b                	jbe    0x4388cd
4388a2:	83 fb 01             	cmp    $0x1,%ebx
4388a5:	76 33                	jbe    0x4388da
4388a7:	81 e9 00 00 01 00    	sub    $0x10000,%ecx
4388ad:	4b                   	dec    %ebx
4388ae:	8b c1                	mov    %ecx,%eax
4388b0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4388b3:	c1 e8 0a             	shr    $0xa,%eax
4388b6:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
4388bc:	0d 00 d8 00 00       	or     $0xd800,%eax
4388c1:	66 89 06             	mov    %ax,(%esi)
4388c4:	83 c6 02             	add    $0x2,%esi
4388c7:	81 c9 00 dc 00 00    	or     $0xdc00,%ecx
4388cd:	66 89 0e             	mov    %cx,(%esi)
4388d0:	03 fa                	add    %edx,%edi
4388d2:	83 c6 02             	add    $0x2,%esi
4388d5:	83 eb 01             	sub    $0x1,%ebx
4388d8:	75 95                	jne    0x43886f
4388da:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4388dd:	2b 75 08             	sub    0x8(%ebp),%esi
4388e0:	d1 fe                	sar    $1,%esi
4388e2:	89 3b                	mov    %edi,(%ebx)
4388e4:	8b c6                	mov    %esi,%eax
4388e6:	eb 67                	jmp    0x43894f
4388e8:	33 ff                	xor    %edi,%edi
4388ea:	33 c0                	xor    %eax,%eax
4388ec:	66 89 06             	mov    %ax,(%esi)
4388ef:	eb e9                	jmp    0x4388da
4388f1:	8b 45 0c             	mov    0xc(%ebp),%eax
4388f4:	89 38                	mov    %edi,(%eax)
4388f6:	8b 45 18             	mov    0x18(%ebp),%eax
4388f9:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
4388fd:	c7 40 18 2a 00 00 00 	movl   $0x2a,0x18(%eax)
438904:	83 c8 ff             	or     $0xffffffff,%eax
438907:	eb 46                	jmp    0x43894f
438909:	57                   	push   %edi
43890a:	8d 4d ff             	lea    -0x1(%ebp),%ecx
43890d:	33 f6                	xor    %esi,%esi
43890f:	e8 c9 fe ff ff       	call   0x4387dd
438914:	8b 5d 18             	mov    0x18(%ebp),%ebx
438917:	eb 16                	jmp    0x43892f
438919:	85 c0                	test   %eax,%eax
43891b:	74 c7                	je     0x4388e4
43891d:	83 f8 04             	cmp    $0x4,%eax
438920:	75 01                	jne    0x438923
438922:	46                   	inc    %esi
438923:	03 f8                	add    %eax,%edi
438925:	8d 4d ff             	lea    -0x1(%ebp),%ecx
438928:	57                   	push   %edi
438929:	46                   	inc    %esi
43892a:	e8 ae fe ff ff       	call   0x4387dd
43892f:	53                   	push   %ebx
438930:	ff 75 14             	push   0x14(%ebp)