40a7cb:	e9 f3 01 00 00       	jmp    0x40a9c3
40a7d0:	fd                   	std
40a7d1:	a7                   	cmpsl  %es:(%edi),%ds:(%esi)
40a7d2:	40                   	inc    %eax
40a7d3:	00 5b a8             	add    %bl,-0x58(%ebx)
40a7d6:	40                   	inc    %eax
40a7d7:	00 92 a8 40 00 92    	add    %dl,-0x6dffbf58(%edx)
40a7dd:	a8 40                	test   $0x40,%al
40a7df:	00 fc                	add    %bh,%ah
40a7e1:	a8 40                	test   $0x40,%al
40a7e3:	00 49 4e             	add    %cl,0x4e(%ecx)
40a7e6:	46                   	inc    %esi
40a7e7:	4e                   	dec    %esi
40a7e8:	41                   	inc    %ecx
40a7e9:	4e                   	dec    %esi
40a7ea:	ac                   	lods   %ds:(%esi),%al
40a7eb:	08 c0                	or     %al,%al
40a7ed:	75 03                	jne    0x40a7f2
40a7ef:	b0 30                	mov    $0x30,%al
40a7f1:	4e                   	dec    %esi
40a7f2:	c3                   	ret
40a7f3:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
40a7f7:	74 03                	je     0x40a7fc
40a7f9:	b0 2d                	mov    $0x2d,%al
40a7fb:	aa                   	stos   %al,%es:(%edi)
40a7fc:	c3                   	ret
40a7fd:	e8 f1 ff ff ff       	call   0x40a7f3
40a802:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
40a806:	31 d2                	xor    %edx,%edx
40a808:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
40a80b:	7f 1d                	jg     0x40a82a
40a80d:	83 f9 fd             	cmp    $0xfffffffd,%ecx
40a810:	7c 18                	jl     0x40a82a
40a812:	09 c9                	or     %ecx,%ecx
40a814:	7f 1a                	jg     0x40a830
40a816:	b0 30                	mov    $0x30,%al
40a818:	aa                   	stos   %al,%es:(%edi)
40a819:	80 3e 00             	cmpb   $0x0,(%esi)
40a81c:	74 3c                	je     0x40a85a
40a81e:	8a 45 fb             	mov    -0x5(%ebp),%al
40a821:	aa                   	stos   %al,%es:(%edi)
40a822:	f7 d9                	neg    %ecx
40a824:	b0 30                	mov    $0x30,%al
40a826:	f3 aa                	rep stos %al,%es:(%edi)
40a828:	eb 1a                	jmp    0x40a844
40a82a:	b9 01 00 00 00       	mov    $0x1,%ecx
40a82f:	42                   	inc    %edx
40a830:	ac                   	lods   %ds:(%esi),%al
40a831:	08 c0                	or     %al,%al
40a833:	74 17                	je     0x40a84c
40a835:	aa                   	stos   %al,%es:(%edi)
40a836:	e2 f8                	loop   0x40a830
40a838:	ac                   	lods   %ds:(%esi),%al
40a839:	08 c0                	or     %al,%al
40a83b:	74 13                	je     0x40a850
40a83d:	88 c4                	mov    %al,%ah
40a83f:	8a 45 fb             	mov    -0x5(%ebp),%al
40a842:	66 ab                	stos   %ax,%es:(%edi)
40a844:	ac                   	lods   %ds:(%esi),%al
40a845:	08 c0                	or     %al,%al
40a847:	74 07                	je     0x40a850
40a849:	aa                   	stos   %al,%es:(%edi)
40a84a:	eb f8                	jmp    0x40a844
40a84c:	b0 30                	mov    $0x30,%al
40a84e:	f3 aa                	rep stos %al,%es:(%edi)
40a850:	09 d2                	or     %edx,%edx
40a852:	74 06                	je     0x40a85a
40a854:	31 c0                	xor    %eax,%eax
40a856:	31 c9                	xor    %ecx,%ecx
40a858:	eb 28                	jmp    0x40a882
40a85a:	c3                   	ret
40a85b:	e8 93 ff ff ff       	call   0x40a7f3
40a860:	e8 85 ff ff ff       	call   0x40a7ea
40a865:	8a 65 fb             	mov    -0x5(%ebp),%ah
40a868:	66 ab                	stos   %ax,%es:(%edi)
40a86a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a86d:	49                   	dec    %ecx
40a86e:	e8 77 ff ff ff       	call   0x40a7ea
40a873:	aa                   	stos   %al,%es:(%edi)
40a874:	e2 f8                	loop   0x40a86e
40a876:	b4 2b                	mov    $0x2b,%ah
40a878:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a87b:	83 f9 04             	cmp    $0x4,%ecx
40a87e:	72 02                	jb     0x40a882
40a880:	31 c9                	xor    %ecx,%ecx
40a882:	b0 45                	mov    $0x45,%al
40a884:	8a 5d d7             	mov    -0x29(%ebp),%bl
40a887:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
40a88b:	4a                   	dec    %edx
40a88c:	e8 1f fe ff ff       	call   0x40a6b0
40a891:	c3                   	ret
40a892:	e8 5c ff ff ff       	call   0x40a7f3
40a897:	8b 55 08             	mov    0x8(%ebp),%edx
40a89a:	83 fa 12             	cmp    $0x12,%edx
40a89d:	72 05                	jb     0x40a8a4
40a89f:	ba 12 00 00 00       	mov    $0x12,%edx
40a8a4:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
40a8a8:	09 c9                	or     %ecx,%ecx
40a8aa:	7f 05                	jg     0x40a8b1
40a8ac:	b0 30                	mov    $0x30,%al
40a8ae:	aa                   	stos   %al,%es:(%edi)
40a8af:	eb 2a                	jmp    0x40a8db
40a8b1:	31 db                	xor    %ebx,%ebx
40a8b3:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
40a8b7:	74 0a                	je     0x40a8c3
40a8b9:	89 c8                	mov    %ecx,%eax
40a8bb:	48                   	dec    %eax
40a8bc:	b3 03                	mov    $0x3,%bl
40a8be:	f6 f3                	div    %bl
40a8c0:	88 e3                	mov    %ah,%bl
40a8c2:	43                   	inc    %ebx
40a8c3:	e8 22 ff ff ff       	call   0x40a7ea
40a8c8:	aa                   	stos   %al,%es:(%edi)
40a8c9:	49                   	dec    %ecx
40a8ca:	74 0f                	je     0x40a8db
40a8cc:	4b                   	dec    %ebx
40a8cd:	75 f4                	jne    0x40a8c3
40a8cf:	8a 45 fa             	mov    -0x6(%ebp),%al
40a8d2:	84 c0                	test   %al,%al
40a8d4:	74 ed                	je     0x40a8c3
40a8d6:	aa                   	stos   %al,%es:(%edi)
40a8d7:	b3 03                	mov    $0x3,%bl
40a8d9:	eb e8                	jmp    0x40a8c3
40a8db:	09 d2                	or     %edx,%edx
40a8dd:	74 1c                	je     0x40a8fb
40a8df:	8a 45 fb             	mov    -0x5(%ebp),%al
40a8e2:	84 c0                	test   %al,%al
40a8e4:	74 01                	je     0x40a8e7
40a8e6:	aa                   	stos   %al,%es:(%edi)
40a8e7:	e3 09                	jecxz  0x40a8f2
40a8e9:	b0 30                	mov    $0x30,%al
40a8eb:	aa                   	stos   %al,%es:(%edi)
40a8ec:	4a                   	dec    %edx
40a8ed:	74 0c                	je     0x40a8fb
40a8ef:	41                   	inc    %ecx
40a8f0:	75 f9                	jne    0x40a8eb
40a8f2:	e8 f3 fe ff ff       	call   0x40a7ea
40a8f7:	aa                   	stos   %al,%es:(%edi)
40a8f8:	4a                   	dec    %edx
40a8f9:	75 f7                	jne    0x40a8f2
40a8fb:	c3                   	ret
40a8fc:	31 db                	xor    %ebx,%ebx
40a8fe:	8a 5d f3             	mov    -0xd(%ebp),%bl
40a901:	b9 03 00 00 00       	mov    $0x3,%ecx
40a906:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
40a90a:	74 08                	je     0x40a914
40a90c:	8a 5d f2             	mov    -0xe(%ebp),%bl
40a90f:	b9 0f 04 00 00       	mov    $0x40f,%ecx
40a914:	38 cb                	cmp    %cl,%bl
40a916:	76 02                	jbe    0x40a91a
40a918:	88 cb                	mov    %cl,%bl
40a91a:	00 eb                	add    %ch,%bl
40a91c:	8d 9c 9b 5f a9 40 00 	lea    0x40a95f(%ebx,%ebx,4),%ebx
40a923:	03 5d ec             	add    -0x14(%ebp),%ebx
40a926:	b9 05 00 00 00       	mov    $0x5,%ecx
40a92b:	8a 03                	mov    (%ebx),%al
40a92d:	3c 40                	cmp    $0x40,%al
40a92f:	74 1e                	je     0x40a94f
40a931:	51                   	push   %ecx
40a932:	53                   	push   %ebx
40a933:	3c 24                	cmp    $0x24,%al
40a935:	74 07                	je     0x40a93e
40a937:	3c 2a                	cmp    $0x2a,%al
40a939:	74 0a                	je     0x40a945
40a93b:	aa                   	stos   %al,%es:(%edi)
40a93c:	eb 0c                	jmp    0x40a94a
40a93e:	e8 0d 00 00 00       	call   0x40a950
40a943:	eb 05                	jmp    0x40a94a
40a945:	e8 4d ff ff ff       	call   0x40a897
40a94a:	5b                   	pop    %ebx
40a94b:	59                   	pop    %ecx
40a94c:	43                   	inc    %ebx
40a94d:	e2 dc                	loop   0x40a92b
40a94f:	c3                   	ret
40a950:	56                   	push   %esi
40a951:	8b 75 f4             	mov    -0xc(%ebp),%esi
40a954:	85 f6                	test   %esi,%esi
40a956:	74 05                	je     0x40a95d
40a958:	8b 4e fc             	mov    -0x4(%esi),%ecx
40a95b:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40a95d:	5e                   	pop    %esi
40a95e:	c3                   	ret
40a95f:	24 2a                	and    $0x2a,%al
40a961:	40                   	inc    %eax
40a962:	40                   	inc    %eax
40a963:	40                   	inc    %eax
40a964:	2a 24 40             	sub    (%eax,%eax,2),%ah
40a967:	40                   	inc    %eax
40a968:	40                   	inc    %eax
40a969:	24 20                	and    $0x20,%al
40a96b:	2a 40 40             	sub    0x40(%eax),%al
40a96e:	2a 20                	sub    (%eax),%ah
40a970:	24 40                	and    $0x40,%al
40a972:	40                   	inc    %eax
40a973:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
40a976:	29 40 2d             	sub    %eax,0x2d(%eax)
40a979:	24 2a                	and    $0x2a,%al
40a97b:	40                   	inc    %eax
40a97c:	40                   	inc    %eax
40a97d:	24 2d                	and    $0x2d,%al
40a97f:	2a 40 40             	sub    0x40(%eax),%al
40a982:	24 2a                	and    $0x2a,%al
40a984:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
40a989:	24 29                	and    $0x29,%al
40a98b:	40                   	inc    %eax
40a98c:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
40a991:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
40a997:	24 2d                	and    $0x2d,%al
40a999:	40                   	inc    %eax
40a99a:	40                   	inc    %eax
40a99b:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
40a9a0:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
40a9a5:	2a 20                	sub    (%eax),%ah
40a9a7:	24 2d                	and    $0x2d,%al
40a9a9:	40                   	inc    %eax
40a9aa:	24 20                	and    $0x20,%al
40a9ac:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
40a9b2:	2a 40 2a             	sub    0x2a(%eax),%al
40a9b5:	2d 20 24 40 28       	sub    $0x28402420,%eax
40a9ba:	24 20                	and    $0x20,%al
40a9bc:	2a 29                	sub    (%ecx),%ch
40a9be:	28 2a                	sub    %ch,(%edx)
40a9c0:	20 24 29             	and    %ah,(%ecx,%ebp,1)
40a9c3:	8b e5                	mov    %ebp,%esp
40a9c5:	5d                   	pop    %ebp
40a9c6:	c2 0c 00             	ret    $0xc
40a9c9:	8d 40 00             	lea    0x0(%eax),%eax
40a9cc:	55                   	push   %ebp
40a9cd:	8b ec                	mov    %esp,%ebp
40a9cf:	83 c4 e0             	add    $0xffffffe0,%esp
40a9d2:	57                   	push   %edi
40a9d3:	56                   	push   %esi
40a9d4:	53                   	push   %ebx
40a9d5:	89 c3                	mov    %eax,%ebx
40a9d7:	89 d6                	mov    %edx,%esi
40a9d9:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40a9e0:	80 f9 00             	cmp    $0x0,%cl
40a9e3:	74 0a                	je     0x40a9ef
40a9e5:	e8 31 01 00 00       	call   0x40ab1b
40a9ea:	e9 00 02 00 00       	jmp    0x40abef
40a9ef:	e8 05 00 00 00       	call   0x40a9f9
40a9f4:	e9 f6 01 00 00       	jmp    0x40abef
40a9f9:	66 8b 46 08          	mov    0x8(%esi),%ax
40a9fd:	89 c2                	mov    %eax,%edx
40a9ff:	25 ff 7f 00 00       	and    $0x7fff,%eax
40aa04:	74 1e                	je     0x40aa24
40aa06:	3d ff 7f 00 00       	cmp    $0x7fff,%eax
40aa0b:	75 22                	jne    0x40aa2f
40aa0d:	66 f7 46 06 00 80    	testw  $0x8000,0x6(%esi)
40aa13:	74 11                	je     0x40aa26
40aa15:	83 3e 00             	cmpl   $0x0,(%esi)
40aa18:	75 09                	jne    0x40aa23
40aa1a:	81 7e 04 00 00 00 80 	cmpl   $0x80000000,0x4(%esi)
40aa21:	74 03                	je     0x40aa26
40aa23:	40                   	inc    %eax
40aa24:	31 d2                	xor    %edx,%edx
40aa26:	c6 43 03 00          	movb   $0x0,0x3(%ebx)
40aa2a:	e9 cd 00 00 00       	jmp    0x40aafc
40aa2f:	db 2e                	fldt   (%esi)
40aa31:	2d ff 3f 00 00       	sub    $0x3fff,%eax
40aa36:	69 c0 10 4d 00 00    	imul   $0x4d10,%eax,%eax
40aa3c:	c1 f8 10             	sar    $0x10,%eax
40aa3f:	40                   	inc    %eax
40aa40:	89 45 f8             	mov    %eax,-0x8(%ebp)
40aa43:	b8 12 00 00 00       	mov    $0x12,%eax
40aa48:	2b 45 f8             	sub    -0x8(%ebp),%eax
40aa4b:	d9 e1                	fabs
40aa4d:	53                   	push   %ebx
40aa4e:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40aa51:	e8 72 8b ff ff       	call   0x4035c8
40aa56:	5b                   	pop    %ebx
40aa57:	d9 fc                	frndint
40aa59:	8b 7d fc             	mov    -0x4(%ebp),%edi
40aa5c:	db af 7c a1 68 00    	fldt   0x68a17c(%edi)
40aa62:	d8 d9                	fcomp  %st(1)
40aa64:	9b dd 7d f6          	fstsw  -0xa(%ebp)
40aa68:	9b                   	fwait
40aa69:	66 f7 45 f6 00 41    	testw  $0x4100,-0xa(%ebp)
40aa6f:	74 09                	je     0x40aa7a
40aa71:	da b7 88 a1 68 00    	fidivl 0x68a188(%edi)
40aa77:	ff 45 f8             	incl   -0x8(%ebp)
40aa7a:	df 75 e8             	fbstp  -0x18(%ebp)
40aa7d:	8d 7b 03             	lea    0x3(%ebx),%edi
40aa80:	ba 09 00 00 00       	mov    $0x9,%edx
40aa85:	9b                   	fwait
40aa86:	8a 44 2a e7          	mov    -0x19(%edx,%ebp,1),%al
40aa8a:	88 c4                	mov    %al,%ah
40aa8c:	c0 e8 04             	shr    $0x4,%al
40aa8f:	80 e4 0f             	and    $0xf,%ah
40aa92:	66 05 30 30          	add    $0x3030,%ax
40aa96:	66 ab                	stos   %ax,%es:(%edi)
40aa98:	4a                   	dec    %edx
40aa99:	75 eb                	jne    0x40aa86
40aa9b:	32 c0                	xor    %al,%al
40aa9d:	aa                   	stos   %al,%es:(%edi)
40aa9e:	8b 7d f8             	mov    -0x8(%ebp),%edi
40aaa1:	03 7d 08             	add    0x8(%ebp),%edi
40aaa4:	79 07                	jns    0x40aaad
40aaa6:	31 c0                	xor    %eax,%eax
40aaa8:	e9 77 ff ff ff       	jmp    0x40aa24
40aaad:	3b 7d 0c             	cmp    0xc(%ebp),%edi
40aab0:	72 03                	jb     0x40aab5
40aab2:	8b 7d 0c             	mov    0xc(%ebp),%edi
40aab5:	83 ff 12             	cmp    $0x12,%edi
40aab8:	73 27                	jae    0x40aae1
40aaba:	80 7c 3b 03 35       	cmpb   $0x35,0x3(%ebx,%edi,1)
40aabf:	72 25                	jb     0x40aae6
40aac1:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
40aac6:	4f                   	dec    %edi
40aac7:	78 0d                	js     0x40aad6
40aac9:	fe 44 3b 03          	incb   0x3(%ebx,%edi,1)
40aacd:	80 7c 3b 03 39       	cmpb   $0x39,0x3(%ebx,%edi,1)
40aad2:	77 ed                	ja     0x40aac1
40aad4:	eb 1f                	jmp    0x40aaf5
40aad6:	66 c7 43 03 31 00    	movw   $0x31,0x3(%ebx)
40aadc:	ff 45 f8             	incl   -0x8(%ebp)
40aadf:	eb 14                	jmp    0x40aaf5
40aae1:	bf 12 00 00 00       	mov    $0x12,%edi
40aae6:	c6 44 3b 03 00       	movb   $0x0,0x3(%ebx,%edi,1)
40aaeb:	4f                   	dec    %edi
40aaec:	78 19                	js     0x40ab07
40aaee:	80 7c 3b 03 30       	cmpb   $0x30,0x3(%ebx,%edi,1)
40aaf3:	74 f1                	je     0x40aae6
40aaf5:	66 8b 56 08          	mov    0x8(%esi),%dx
40aaf9:	8b 45 f8             	mov    -0x8(%ebp),%eax
40aafc:	66 c1 ea 0f          	shr    $0xf,%dx
40ab00:	66 89 03             	mov    %ax,(%ebx)
40ab03:	88 53 02             	mov    %dl,0x2(%ebx)
40ab06:	c3                   	ret
40ab07:	31 d2                	xor    %edx,%edx
40ab09:	eb ee                	jmp    0x40aaf9
40ab0b:	0a 00                	or     (%eax),%al
40ab0d:	00 00                	add    %al,(%eax)
40ab0f:	64 00 00             	add    %al,%fs:(%eax)
40ab12:	00 e8                	add    %ch,%al
40ab14:	03 00                	add    (%eax),%eax
40ab16:	00 10                	add    %dl,(%eax)
40ab18:	27                   	daa
40ab19:	00 00                	add    %al,(%eax)
40ab1b:	8b 06                	mov    (%esi),%eax
40ab1d:	8b 56 04             	mov    0x4(%esi),%edx
40ab20:	89 c1                	mov    %eax,%ecx
40ab22:	09 d1                	or     %edx,%ecx
40ab24:	0f 84 b7 00 00 00    	je     0x40abe1
40ab2a:	09 d2                	or     %edx,%edx
40ab2c:	79 07                	jns    0x40ab35
40ab2e:	f7 da                	neg    %edx
40ab30:	f7 d8                	neg    %eax
40ab32:	83 da 00             	sbb    $0x0,%edx
40ab35:	31 c9                	xor    %ecx,%ecx