4086e9:	eb c4                	jmp    0x4086af
4086eb:	3b d3                	cmp    %ebx,%edx
4086ed:	c6 06 30             	movb   $0x30,(%esi)
4086f0:	8d 46 01             	lea    0x1(%esi),%eax
4086f3:	7e 1a                	jle    0x40870f
4086f5:	8a 0f                	mov    (%edi),%cl
4086f7:	3a cb                	cmp    %bl,%cl
4086f9:	74 06                	je     0x408701
4086fb:	0f be c9             	movsbl %cl,%ecx
4086fe:	47                   	inc    %edi
4086ff:	eb 03                	jmp    0x408704
408701:	6a 30                	push   $0x30
408703:	59                   	pop    %ecx
408704:	88 08                	mov    %cl,(%eax)
408706:	40                   	inc    %eax
408707:	4a                   	dec    %edx
408708:	3b d3                	cmp    %ebx,%edx
40870a:	7f e9                	jg     0x4086f5
40870c:	8b 4d 14             	mov    0x14(%ebp),%ecx
40870f:	3b d3                	cmp    %ebx,%edx
408711:	88 18                	mov    %bl,(%eax)
408713:	7c 12                	jl     0x408727
408715:	80 3f 35             	cmpb   $0x35,(%edi)
408718:	7c 0d                	jl     0x408727
40871a:	eb 03                	jmp    0x40871f
40871c:	c6 00 30             	movb   $0x30,(%eax)
40871f:	48                   	dec    %eax
408720:	80 38 39             	cmpb   $0x39,(%eax)
408723:	74 f7                	je     0x40871c
408725:	fe 00                	incb   (%eax)
408727:	80 3e 31             	cmpb   $0x31,(%esi)
40872a:	75 05                	jne    0x408731
40872c:	ff 41 04             	incl   0x4(%ecx)
40872f:	eb 15                	jmp    0x408746
408731:	8d 7e 01             	lea    0x1(%esi),%edi
408734:	57                   	push   %edi
408735:	e8 56 bd ff ff       	call   0x404490
40873a:	40                   	inc    %eax
40873b:	50                   	push   %eax
40873c:	57                   	push   %edi
40873d:	56                   	push   %esi
40873e:	e8 ed f7 ff ff       	call   0x407f30
408743:	83 c4 10             	add    $0x10,%esp
408746:	33 c0                	xor    %eax,%eax
408748:	5f                   	pop    %edi
408749:	5e                   	pop    %esi
40874a:	5b                   	pop    %ebx
40874b:	5d                   	pop    %ebp
40874c:	c3                   	ret
40874d:	8b ff                	mov    %edi,%edi
40874f:	55                   	push   %ebp
408750:	8b ec                	mov    %esp,%ebp
408752:	51                   	push   %ecx
408753:	8b 55 0c             	mov    0xc(%ebp),%edx
408756:	0f b7 42 06          	movzwl 0x6(%edx),%eax
40875a:	53                   	push   %ebx
40875b:	8b c8                	mov    %eax,%ecx
40875d:	56                   	push   %esi
40875e:	57                   	push   %edi
40875f:	c1 e9 04             	shr    $0x4,%ecx
408762:	25 00 80 00 00       	and    $0x8000,%eax
408767:	bf ff 07 00 00       	mov    $0x7ff,%edi
40876c:	23 cf                	and    %edi,%ecx
40876e:	89 45 0c             	mov    %eax,0xc(%ebp)
408771:	8b 42 04             	mov    0x4(%edx),%eax
408774:	8b 12                	mov    (%edx),%edx
408776:	0f b7 d9             	movzwl %cx,%ebx
408779:	be 00 00 00 80       	mov    $0x80000000,%esi
40877e:	25 ff ff 0f 00       	and    $0xfffff,%eax
408783:	89 75 fc             	mov    %esi,-0x4(%ebp)
408786:	85 db                	test   %ebx,%ebx
408788:	74 13                	je     0x40879d
40878a:	3b df                	cmp    %edi,%ebx
40878c:	74 08                	je     0x408796
40878e:	81 c1 00 3c 00 00    	add    $0x3c00,%ecx
408794:	eb 28                	jmp    0x4087be
408796:	bf ff 7f 00 00       	mov    $0x7fff,%edi
40879b:	eb 24                	jmp    0x4087c1
40879d:	33 db                	xor    %ebx,%ebx
40879f:	3b c3                	cmp    %ebx,%eax
4087a1:	75 12                	jne    0x4087b5
4087a3:	3b d3                	cmp    %ebx,%edx
4087a5:	75 0e                	jne    0x4087b5
4087a7:	8b 45 08             	mov    0x8(%ebp),%eax
4087aa:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
4087ae:	89 58 04             	mov    %ebx,0x4(%eax)
4087b1:	89 18                	mov    %ebx,(%eax)
4087b3:	eb 4c                	jmp    0x408801
4087b5:	81 c1 01 3c 00 00    	add    $0x3c01,%ecx
4087bb:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4087be:	0f b7 f9             	movzwl %cx,%edi
4087c1:	8b ca                	mov    %edx,%ecx
4087c3:	c1 e9 15             	shr    $0x15,%ecx
4087c6:	c1 e0 0b             	shl    $0xb,%eax
4087c9:	0b c8                	or     %eax,%ecx
4087cb:	0b 4d fc             	or     -0x4(%ebp),%ecx
4087ce:	8b 45 08             	mov    0x8(%ebp),%eax
4087d1:	c1 e2 0b             	shl    $0xb,%edx
4087d4:	89 48 04             	mov    %ecx,0x4(%eax)
4087d7:	89 10                	mov    %edx,(%eax)
4087d9:	85 ce                	test   %ecx,%esi
4087db:	75 1f                	jne    0x4087fc
4087dd:	8b 08                	mov    (%eax),%ecx
4087df:	8b 50 04             	mov    0x4(%eax),%edx
4087e2:	8b d9                	mov    %ecx,%ebx
4087e4:	03 d2                	add    %edx,%edx
4087e6:	c1 eb 1f             	shr    $0x1f,%ebx
4087e9:	0b d3                	or     %ebx,%edx
4087eb:	03 c9                	add    %ecx,%ecx
4087ed:	81 c7 ff ff 00 00    	add    $0xffff,%edi
4087f3:	89 50 04             	mov    %edx,0x4(%eax)
4087f6:	89 08                	mov    %ecx,(%eax)
4087f8:	85 d6                	test   %edx,%esi
4087fa:	74 e1                	je     0x4087dd
4087fc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4087ff:	0b cf                	or     %edi,%ecx
408801:	5f                   	pop    %edi
408802:	5e                   	pop    %esi
408803:	66 89 48 08          	mov    %cx,0x8(%eax)
408807:	5b                   	pop    %ebx
408808:	c9                   	leave
408809:	c3                   	ret
40880a:	8b ff                	mov    %edi,%edi
40880c:	55                   	push   %ebp
40880d:	8b ec                	mov    %esp,%ebp
40880f:	83 ec 30             	sub    $0x30,%esp
408812:	a1 04 f0 41 00       	mov    0x41f004,%eax
408817:	33 c5                	xor    %ebp,%eax
408819:	89 45 fc             	mov    %eax,-0x4(%ebp)
40881c:	8b 45 14             	mov    0x14(%ebp),%eax
40881f:	53                   	push   %ebx
408820:	8b 5d 10             	mov    0x10(%ebp),%ebx
408823:	56                   	push   %esi
408824:	89 45 d0             	mov    %eax,-0x30(%ebp)
408827:	57                   	push   %edi
408828:	8d 45 08             	lea    0x8(%ebp),%eax
40882b:	50                   	push   %eax
40882c:	8d 45 f0             	lea    -0x10(%ebp),%eax
40882f:	50                   	push   %eax
408830:	e8 18 ff ff ff       	call   0x40874d
408835:	59                   	pop    %ecx
408836:	59                   	pop    %ecx
408837:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40883a:	50                   	push   %eax
40883b:	6a 00                	push   $0x0
40883d:	6a 11                	push   $0x11
40883f:	83 ec 0c             	sub    $0xc,%esp
408842:	8d 75 f0             	lea    -0x10(%ebp),%esi
408845:	8b fc                	mov    %esp,%edi
408847:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408848:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408849:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40884b:	e8 57 17 00 00       	call   0x409fa7
408850:	8b 75 d0             	mov    -0x30(%ebp),%esi
408853:	89 43 08             	mov    %eax,0x8(%ebx)
408856:	0f be 45 d6          	movsbl -0x2a(%ebp),%eax
40885a:	89 03                	mov    %eax,(%ebx)
40885c:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
408860:	89 43 04             	mov    %eax,0x4(%ebx)
408863:	8d 45 d8             	lea    -0x28(%ebp),%eax
408866:	50                   	push   %eax
408867:	ff 75 18             	push   0x18(%ebp)
40886a:	56                   	push   %esi
40886b:	e8 ab bc ff ff       	call   0x40451b
408870:	83 c4 24             	add    $0x24,%esp
408873:	85 c0                	test   %eax,%eax
408875:	74 0f                	je     0x408886
408877:	33 c0                	xor    %eax,%eax
408879:	50                   	push   %eax
40887a:	50                   	push   %eax
40887b:	50                   	push   %eax
40887c:	50                   	push   %eax
40887d:	50                   	push   %eax
40887e:	e8 96 b2 ff ff       	call   0x403b19
408883:	83 c4 14             	add    $0x14,%esp
408886:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408889:	5f                   	pop    %edi
40888a:	89 73 0c             	mov    %esi,0xc(%ebx)
40888d:	5e                   	pop    %esi
40888e:	8b c3                	mov    %ebx,%eax
408890:	33 cd                	xor    %ebp,%ecx
408892:	5b                   	pop    %ebx
408893:	e8 68 87 ff ff       	call   0x401000
408898:	c9                   	leave
408899:	c3                   	ret
40889a:	cc                   	int3
40889b:	cc                   	int3
40889c:	cc                   	int3
40889d:	cc                   	int3
40889e:	cc                   	int3
40889f:	cc                   	int3
4088a0:	57                   	push   %edi
4088a1:	56                   	push   %esi
4088a2:	55                   	push   %ebp
4088a3:	33 ff                	xor    %edi,%edi
4088a5:	33 ed                	xor    %ebp,%ebp
4088a7:	8b 44 24 14          	mov    0x14(%esp),%eax
4088ab:	0b c0                	or     %eax,%eax
4088ad:	7d 15                	jge    0x4088c4
4088af:	47                   	inc    %edi
4088b0:	45                   	inc    %ebp
4088b1:	8b 54 24 10          	mov    0x10(%esp),%edx
4088b5:	f7 d8                	neg    %eax
4088b7:	f7 da                	neg    %edx
4088b9:	83 d8 00             	sbb    $0x0,%eax
4088bc:	89 44 24 14          	mov    %eax,0x14(%esp)
4088c0:	89 54 24 10          	mov    %edx,0x10(%esp)
4088c4:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4088c8:	0b c0                	or     %eax,%eax
4088ca:	7d 14                	jge    0x4088e0
4088cc:	47                   	inc    %edi
4088cd:	8b 54 24 18          	mov    0x18(%esp),%edx
4088d1:	f7 d8                	neg    %eax
4088d3:	f7 da                	neg    %edx
4088d5:	83 d8 00             	sbb    $0x0,%eax
4088d8:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4088dc:	89 54 24 18          	mov    %edx,0x18(%esp)
4088e0:	0b c0                	or     %eax,%eax
4088e2:	75 28                	jne    0x40890c
4088e4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4088e8:	8b 44 24 14          	mov    0x14(%esp),%eax
4088ec:	33 d2                	xor    %edx,%edx
4088ee:	f7 f1                	div    %ecx
4088f0:	8b d8                	mov    %eax,%ebx
4088f2:	8b 44 24 10          	mov    0x10(%esp),%eax
4088f6:	f7 f1                	div    %ecx
4088f8:	8b f0                	mov    %eax,%esi
4088fa:	8b c3                	mov    %ebx,%eax
4088fc:	f7 64 24 18          	mull   0x18(%esp)
408900:	8b c8                	mov    %eax,%ecx
408902:	8b c6                	mov    %esi,%eax
408904:	f7 64 24 18          	mull   0x18(%esp)
408908:	03 d1                	add    %ecx,%edx
40890a:	eb 47                	jmp    0x408953
40890c:	8b d8                	mov    %eax,%ebx
40890e:	8b 4c 24 18          	mov    0x18(%esp),%ecx
408912:	8b 54 24 14          	mov    0x14(%esp),%edx
408916:	8b 44 24 10          	mov    0x10(%esp),%eax
40891a:	d1 eb                	shr    $1,%ebx
40891c:	d1 d9                	rcr    $1,%ecx
40891e:	d1 ea                	shr    $1,%edx
408920:	d1 d8                	rcr    $1,%eax
408922:	0b db                	or     %ebx,%ebx
408924:	75 f4                	jne    0x40891a
408926:	f7 f1                	div    %ecx
408928:	8b f0                	mov    %eax,%esi
40892a:	f7 64 24 1c          	mull   0x1c(%esp)
40892e:	8b c8                	mov    %eax,%ecx
408930:	8b 44 24 18          	mov    0x18(%esp),%eax
408934:	f7 e6                	mul    %esi
408936:	03 d1                	add    %ecx,%edx
408938:	72 0e                	jb     0x408948
40893a:	3b 54 24 14          	cmp    0x14(%esp),%edx
40893e:	77 08                	ja     0x408948
408940:	72 0f                	jb     0x408951
408942:	3b 44 24 10          	cmp    0x10(%esp),%eax
408946:	76 09                	jbe    0x408951
408948:	4e                   	dec    %esi
408949:	2b 44 24 18          	sub    0x18(%esp),%eax
40894d:	1b 54 24 1c          	sbb    0x1c(%esp),%edx
408951:	33 db                	xor    %ebx,%ebx
408953:	2b 44 24 10          	sub    0x10(%esp),%eax
408957:	1b 54 24 14          	sbb    0x14(%esp),%edx
40895b:	4d                   	dec    %ebp
40895c:	79 07                	jns    0x408965
40895e:	f7 da                	neg    %edx
408960:	f7 d8                	neg    %eax
408962:	83 da 00             	sbb    $0x0,%edx
408965:	8b ca                	mov    %edx,%ecx
408967:	8b d3                	mov    %ebx,%edx
408969:	8b d9                	mov    %ecx,%ebx
40896b:	8b c8                	mov    %eax,%ecx
40896d:	8b c6                	mov    %esi,%eax
40896f:	4f                   	dec    %edi
408970:	75 07                	jne    0x408979
408972:	f7 da                	neg    %edx
408974:	f7 d8                	neg    %eax
408976:	83 da 00             	sbb    $0x0,%edx
408979:	5d                   	pop    %ebp
40897a:	5e                   	pop    %esi
40897b:	5f                   	pop    %edi
40897c:	c2 10 00             	ret    $0x10
40897f:	cc                   	int3
408980:	80 f9 40             	cmp    $0x40,%cl
408983:	73 15                	jae    0x40899a
408985:	80 f9 20             	cmp    $0x20,%cl
408988:	73 06                	jae    0x408990
40898a:	0f ad d0             	shrd   %cl,%edx,%eax
40898d:	d3 ea                	shr    %cl,%edx
40898f:	c3                   	ret
408990:	8b c2                	mov    %edx,%eax
408992:	33 d2                	xor    %edx,%edx
408994:	80 e1 1f             	and    $0x1f,%cl
408997:	d3 e8                	shr    %cl,%eax
408999:	c3                   	ret
40899a:	33 c0                	xor    %eax,%eax
40899c:	33 d2                	xor    %edx,%edx
40899e:	c3                   	ret
40899f:	8b ff                	mov    %edi,%edi
4089a1:	55                   	push   %ebp
4089a2:	8b ec                	mov    %esp,%ebp
4089a4:	8b 45 10             	mov    0x10(%ebp),%eax
4089a7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4089aa:	25 ff ff f7 ff       	and    $0xfff7ffff,%eax
4089af:	23 c8                	and    %eax,%ecx
4089b1:	56                   	push   %esi
4089b2:	f7 c1 e0 fc f0 fc    	test   $0xfcf0fce0,%ecx
4089b8:	74 31                	je     0x4089eb
4089ba:	57                   	push   %edi
4089bb:	8b 7d 08             	mov    0x8(%ebp),%edi
4089be:	33 f6                	xor    %esi,%esi
4089c0:	3b fe                	cmp    %esi,%edi
4089c2:	74 0b                	je     0x4089cf
4089c4:	56                   	push   %esi
4089c5:	56                   	push   %esi
4089c6:	e8 2e 20 00 00       	call   0x40a9f9
4089cb:	59                   	pop    %ecx
4089cc:	59                   	pop    %ecx
4089cd:	89 07                	mov    %eax,(%edi)
4089cf:	e8 78 a4 ff ff       	call   0x402e4c
4089d4:	6a 16                	push   $0x16
4089d6:	5f                   	pop    %edi
4089d7:	56                   	push   %esi
4089d8:	56                   	push   %esi
4089d9:	56                   	push   %esi
4089da:	56                   	push   %esi
4089db:	56                   	push   %esi
4089dc:	89 38                	mov    %edi,(%eax)
4089de:	e8 5e b2 ff ff       	call   0x403c41
4089e3:	83 c4 14             	add    $0x14,%esp
4089e6:	8b c7                	mov    %edi,%eax
4089e8:	5f                   	pop    %edi
4089e9:	eb 1d                	jmp    0x408a08
4089eb:	8b 75 08             	mov    0x8(%ebp),%esi
4089ee:	50                   	push   %eax
4089ef:	ff 75 0c             	push   0xc(%ebp)
4089f2:	85 f6                	test   %esi,%esi
4089f4:	74 09                	je     0x4089ff
4089f6:	e8 fe 1f 00 00       	call   0x40a9f9
4089fb:	89 06                	mov    %eax,(%esi)
4089fd:	eb 05                	jmp    0x408a04
4089ff:	e8 f5 1f 00 00       	call   0x40a9f9
408a04:	59                   	pop    %ecx
408a05:	59                   	pop    %ecx
408a06:	33 c0                	xor    %eax,%eax
408a08:	5e                   	pop    %esi
408a09:	5d                   	pop    %ebp
408a0a:	c3                   	ret
408a0b:	55                   	push   %ebp
408a0c:	8b ec                	mov    %esp,%ebp