40a968:	51                   	push   %ecx
40a969:	53                   	push   %ebx
40a96a:	56                   	push   %esi
40a96b:	57                   	push   %edi
40a96c:	8b f9                	mov    %ecx,%edi
40a96e:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40a974:	57                   	push   %edi
40a975:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a978:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40a97e:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a981:	83 67 08 00          	andl   $0x0,0x8(%edi)
40a985:	85 db                	test   %ebx,%ebx
40a987:	66 c7 07 08 00       	movw   $0x8,(%edi)
40a98c:	74 49                	je     0x40a9d7
40a98e:	53                   	push   %ebx
40a98f:	ff 15 88 03 4b 00    	call   *0x4b0388
40a995:	66 83 7d 0c 0e       	cmpw   $0xe,0xc(%ebp)
40a99a:	75 0a                	jne    0x40a9a6
40a99c:	50                   	push   %eax
40a99d:	53                   	push   %ebx
40a99e:	ff 15 00 05 4b 00    	call   *0x4b0500
40a9a4:	eb 25                	jmp    0x40a9cb
40a9a6:	8b f0                	mov    %eax,%esi
40a9a8:	46                   	inc    %esi
40a9a9:	8d 04 36             	lea    (%esi,%esi,1),%eax
40a9ac:	83 c0 03             	add    $0x3,%eax
40a9af:	83 e0 fc             	and    $0xfffffffc,%eax
40a9b2:	e8 39 bd 00 00       	call   0x4166f0
40a9b7:	8b c4                	mov    %esp,%eax
40a9b9:	ff 75 fc             	push   -0x4(%ebp)
40a9bc:	56                   	push   %esi
40a9bd:	53                   	push   %ebx
40a9be:	50                   	push   %eax
40a9bf:	e8 f4 b9 ff ff       	call   0x4063b8
40a9c4:	50                   	push   %eax
40a9c5:	ff 15 94 04 4b 00    	call   *0x4b0494
40a9cb:	85 c0                	test   %eax,%eax
40a9cd:	89 47 08             	mov    %eax,0x8(%edi)
40a9d0:	75 05                	jne    0x40a9d7
40a9d2:	e8 40 aa 02 00       	call   0x435417
40a9d7:	8d 65 f0             	lea    -0x10(%ebp),%esp
40a9da:	5f                   	pop    %edi
40a9db:	5e                   	pop    %esi
40a9dc:	5b                   	pop    %ebx
40a9dd:	c9                   	leave
40a9de:	c2 08 00             	ret    $0x8
40a9e1:	56                   	push   %esi
40a9e2:	57                   	push   %edi
40a9e3:	8b f1                	mov    %ecx,%esi
40a9e5:	56                   	push   %esi
40a9e6:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40a9ec:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40a9f0:	6a 10                	push   $0x10
40a9f2:	57                   	push   %edi
40a9f3:	56                   	push   %esi
40a9f4:	e8 77 ce 00 00       	call   0x417870
40a9f9:	66 83 27 00          	andw   $0x0,(%edi)
40a9fd:	83 c4 0c             	add    $0xc,%esp
40aa00:	5f                   	pop    %edi
40aa01:	5e                   	pop    %esi
40aa02:	c2 04 00             	ret    $0x4
40aa05:	55                   	push   %ebp
40aa06:	8b ec                	mov    %esp,%ebp
40aa08:	83 ec 0c             	sub    $0xc,%esp
40aa0b:	57                   	push   %edi
40aa0c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40aa0f:	8b f9                	mov    %ecx,%edi
40aa11:	50                   	push   %eax
40aa12:	ff 77 08             	push   0x8(%edi)
40aa15:	ff 15 e4 04 4b 00    	call   *0x4b04e4
40aa1b:	50                   	push   %eax
40aa1c:	e8 73 f3 ff ff       	call   0x409d94
40aa21:	ff 77 08             	push   0x8(%edi)
40aa24:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40aa2a:	83 f8 01             	cmp    $0x1,%eax
40aa2d:	75 55                	jne    0x40aa84
40aa2f:	53                   	push   %ebx
40aa30:	56                   	push   %esi
40aa31:	8d 45 f8             	lea    -0x8(%ebp),%eax
40aa34:	50                   	push   %eax
40aa35:	6a 01                	push   $0x1
40aa37:	ff 77 08             	push   0x8(%edi)
40aa3a:	ff 15 dc 04 4b 00    	call   *0x4b04dc
40aa40:	8d 45 fc             	lea    -0x4(%ebp),%eax
40aa43:	50                   	push   %eax
40aa44:	6a 01                	push   $0x1
40aa46:	ff 77 08             	push   0x8(%edi)
40aa49:	ff 15 e0 04 4b 00    	call   *0x4b04e0
40aa4f:	8b 75 fc             	mov    -0x4(%ebp),%esi
40aa52:	2b 75 f8             	sub    -0x8(%ebp),%esi
40aa55:	ff 77 08             	push   0x8(%edi)
40aa58:	46                   	inc    %esi
40aa59:	ff 15 d8 04 4b 00    	call   *0x4b04d8
40aa5f:	8b d8                	mov    %eax,%ebx
40aa61:	0f af de             	imul   %esi,%ebx
40aa64:	8b 75 08             	mov    0x8(%ebp),%esi
40aa67:	6a ff                	push   $0xffffffff
40aa69:	53                   	push   %ebx
40aa6a:	8b ce                	mov    %esi,%ecx
40aa6c:	e8 3e 1e 03 00       	call   0x43c8af
40aa71:	53                   	push   %ebx
40aa72:	ff 75 f4             	push   -0xc(%ebp)
40aa75:	ff 76 04             	push   0x4(%esi)
40aa78:	e8 f3 cd 00 00       	call   0x417870
40aa7d:	83 c4 0c             	add    $0xc,%esp
40aa80:	5e                   	pop    %esi
40aa81:	5b                   	pop    %ebx
40aa82:	eb 0c                	jmp    0x40aa90
40aa84:	8b 4d 08             	mov    0x8(%ebp),%ecx
40aa87:	6a ff                	push   $0xffffffff
40aa89:	6a 00                	push   $0x0
40aa8b:	e8 1f 1e 03 00       	call   0x43c8af
40aa90:	ff 77 08             	push   0x8(%edi)
40aa93:	ff 15 e8 04 4b 00    	call   *0x4b04e8
40aa99:	5f                   	pop    %edi
40aa9a:	c9                   	leave
40aa9b:	c2 04 00             	ret    $0x4
40aa9e:	55                   	push   %ebp
40aa9f:	8b ec                	mov    %esp,%ebp
40aaa1:	53                   	push   %ebx
40aaa2:	56                   	push   %esi
40aaa3:	57                   	push   %edi
40aaa4:	8b f9                	mov    %ecx,%edi
40aaa6:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40aaac:	57                   	push   %edi
40aaad:	8b d8                	mov    %eax,%ebx
40aaaf:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40aab5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40aab9:	66 c7 07 08 00       	movw   $0x8,(%edi)
40aabe:	75 10                	jne    0x40aad0
40aac0:	83 67 08 00          	andl   $0x0,0x8(%edi)
40aac4:	8b c7                	mov    %edi,%eax
40aac6:	8d 65 f4             	lea    -0xc(%ebp),%esp
40aac9:	5f                   	pop    %edi
40aaca:	5e                   	pop    %esi
40aacb:	5b                   	pop    %ebx
40aacc:	5d                   	pop    %ebp
40aacd:	c2 04 00             	ret    $0x4
40aad0:	ff 75 08             	push   0x8(%ebp)
40aad3:	ff 15 88 03 4b 00    	call   *0x4b0388
40aad9:	8b f0                	mov    %eax,%esi
40aadb:	46                   	inc    %esi
40aadc:	8d 04 36             	lea    (%esi,%esi,1),%eax
40aadf:	83 c0 03             	add    $0x3,%eax
40aae2:	83 e0 fc             	and    $0xfffffffc,%eax
40aae5:	e8 06 bc 00 00       	call   0x4166f0
40aaea:	8b c4                	mov    %esp,%eax
40aaec:	53                   	push   %ebx
40aaed:	56                   	push   %esi
40aaee:	ff 75 08             	push   0x8(%ebp)
40aaf1:	50                   	push   %eax
40aaf2:	e8 c1 b8 ff ff       	call   0x4063b8
40aaf7:	50                   	push   %eax
40aaf8:	ff 15 94 04 4b 00    	call   *0x4b0494
40aafe:	85 c0                	test   %eax,%eax
40ab00:	89 47 08             	mov    %eax,0x8(%edi)
40ab03:	75 bf                	jne    0x40aac4
40ab05:	e8 0d a9 02 00       	call   0x435417
40ab0a:	cc                   	int3
40ab0b:	55                   	push   %ebp
40ab0c:	8b ec                	mov    %esp,%ebp
40ab0e:	51                   	push   %ecx
40ab0f:	53                   	push   %ebx
40ab10:	56                   	push   %esi
40ab11:	57                   	push   %edi
40ab12:	8b f9                	mov    %ecx,%edi
40ab14:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40ab1a:	57                   	push   %edi
40ab1b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ab1e:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ab24:	8b 45 08             	mov    0x8(%ebp),%eax
40ab27:	66 c7 07 08 00       	movw   $0x8,(%edi)
40ab2c:	8b 18                	mov    (%eax),%ebx
40ab2e:	85 db                	test   %ebx,%ebx
40ab30:	75 04                	jne    0x40ab36
40ab32:	33 c0                	xor    %eax,%eax
40ab34:	eb 25                	jmp    0x40ab5b
40ab36:	53                   	push   %ebx
40ab37:	ff 15 88 03 4b 00    	call   *0x4b0388
40ab3d:	8b f0                	mov    %eax,%esi
40ab3f:	46                   	inc    %esi
40ab40:	8d 04 36             	lea    (%esi,%esi,1),%eax
40ab43:	83 c0 03             	add    $0x3,%eax
40ab46:	83 e0 fc             	and    $0xfffffffc,%eax
40ab49:	e8 a2 bb 00 00       	call   0x4166f0
40ab4e:	8b c4                	mov    %esp,%eax
40ab50:	ff 75 fc             	push   -0x4(%ebp)
40ab53:	56                   	push   %esi
40ab54:	53                   	push   %ebx
40ab55:	50                   	push   %eax
40ab56:	e8 5d b8 ff ff       	call   0x4063b8
40ab5b:	50                   	push   %eax
40ab5c:	ff 15 94 04 4b 00    	call   *0x4b0494
40ab62:	85 c0                	test   %eax,%eax
40ab64:	89 47 08             	mov    %eax,0x8(%edi)
40ab67:	75 05                	jne    0x40ab6e
40ab69:	e8 a9 a8 02 00       	call   0x435417
40ab6e:	8b c7                	mov    %edi,%eax
40ab70:	8d 65 f0             	lea    -0x10(%ebp),%esp
40ab73:	5f                   	pop    %edi
40ab74:	5e                   	pop    %esi
40ab75:	5b                   	pop    %ebx
40ab76:	c9                   	leave
40ab77:	c2 04 00             	ret    $0x4
40ab7a:	56                   	push   %esi
40ab7b:	8b f1                	mov    %ecx,%esi
40ab7d:	66 83 3e 11          	cmpw   $0x11,(%esi)
40ab81:	74 0c                	je     0x40ab8f
40ab83:	56                   	push   %esi
40ab84:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ab8a:	66 c7 06 11 00       	movw   $0x11,(%esi)
40ab8f:	8a 44 24 08          	mov    0x8(%esp),%al
40ab93:	88 46 08             	mov    %al,0x8(%esi)
40ab96:	8b c6                	mov    %esi,%eax
40ab98:	5e                   	pop    %esi
40ab99:	c2 04 00             	ret    $0x4
40ab9c:	56                   	push   %esi
40ab9d:	8b f1                	mov    %ecx,%esi
40ab9f:	66 8b 06             	mov    (%esi),%ax
40aba2:	66 3d 02 00          	cmp    $0x2,%ax
40aba6:	74 1e                	je     0x40abc6
40aba8:	66 3d 0b 00          	cmp    $0xb,%ax
40abac:	75 0c                	jne    0x40abba
40abae:	66 8b 44 24 08       	mov    0x8(%esp),%ax
40abb3:	66 f7 d8             	neg    %ax
40abb6:	1b c0                	sbb    %eax,%eax
40abb8:	eb 11                	jmp    0x40abcb
40abba:	56                   	push   %esi
40abbb:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40abc1:	66 c7 06 02 00       	movw   $0x2,(%esi)
40abc6:	66 8b 44 24 08       	mov    0x8(%esp),%ax
40abcb:	66 89 46 08          	mov    %ax,0x8(%esi)
40abcf:	8b c6                	mov    %esi,%eax
40abd1:	5e                   	pop    %esi
40abd2:	c2 04 00             	ret    $0x4
40abd5:	56                   	push   %esi
40abd6:	8b f1                	mov    %ecx,%esi
40abd8:	66 8b 06             	mov    (%esi),%ax
40abdb:	66 3d 03 00          	cmp    $0x3,%ax
40abdf:	74 26                	je     0x40ac07
40abe1:	66 3d 0a 00          	cmp    $0xa,%ax
40abe5:	74 20                	je     0x40ac07
40abe7:	66 3d 0b 00          	cmp    $0xb,%ax
40abeb:	75 0e                	jne    0x40abfb
40abed:	8b 44 24 08          	mov    0x8(%esp),%eax
40abf1:	f7 d8                	neg    %eax
40abf3:	1b c0                	sbb    %eax,%eax
40abf5:	66 89 46 08          	mov    %ax,0x8(%esi)
40abf9:	eb 13                	jmp    0x40ac0e
40abfb:	56                   	push   %esi
40abfc:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac02:	66 c7 06 03 00       	movw   $0x3,(%esi)
40ac07:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac0b:	89 46 08             	mov    %eax,0x8(%esi)
40ac0e:	8b c6                	mov    %esi,%eax
40ac10:	5e                   	pop    %esi
40ac11:	c2 04 00             	ret    $0x4
40ac14:	56                   	push   %esi
40ac15:	8b f1                	mov    %ecx,%esi
40ac17:	66 83 3e 06          	cmpw   $0x6,(%esi)
40ac1b:	74 0c                	je     0x40ac29
40ac1d:	56                   	push   %esi
40ac1e:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac24:	66 c7 06 06 00       	movw   $0x6,(%esi)
40ac29:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac2d:	8b 08                	mov    (%eax),%ecx
40ac2f:	89 4e 08             	mov    %ecx,0x8(%esi)
40ac32:	8b 40 04             	mov    0x4(%eax),%eax
40ac35:	89 46 0c             	mov    %eax,0xc(%esi)
40ac38:	8b c6                	mov    %esi,%eax
40ac3a:	5e                   	pop    %esi
40ac3b:	c2 04 00             	ret    $0x4
40ac3e:	56                   	push   %esi
40ac3f:	8b f1                	mov    %ecx,%esi
40ac41:	66 83 3e 04          	cmpw   $0x4,(%esi)
40ac45:	74 0c                	je     0x40ac53
40ac47:	56                   	push   %esi
40ac48:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac4e:	66 c7 06 04 00       	movw   $0x4,(%esi)
40ac53:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac57:	89 46 08             	mov    %eax,0x8(%esi)
40ac5a:	8b c6                	mov    %esi,%eax
40ac5c:	5e                   	pop    %esi
40ac5d:	c2 04 00             	ret    $0x4
40ac60:	56                   	push   %esi
40ac61:	8b f1                	mov    %ecx,%esi
40ac63:	66 83 3e 05          	cmpw   $0x5,(%esi)
40ac67:	74 0c                	je     0x40ac75
40ac69:	56                   	push   %esi
40ac6a:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac70:	66 c7 06 05 00       	movw   $0x5,(%esi)
40ac75:	dd 44 24 08          	fldl   0x8(%esp)
40ac79:	8b c6                	mov    %esi,%eax
40ac7b:	dd 5e 08             	fstpl  0x8(%esi)
40ac7e:	5e                   	pop    %esi
40ac7f:	c2 08 00             	ret    $0x8
40ac82:	56                   	push   %esi
40ac83:	8b f1                	mov    %ecx,%esi
40ac85:	66 83 3e 07          	cmpw   $0x7,(%esi)
40ac89:	74 0c                	je     0x40ac97
40ac8b:	56                   	push   %esi
40ac8c:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40ac92:	66 c7 06 07 00       	movw   $0x7,(%esi)
40ac97:	8b 44 24 08          	mov    0x8(%esp),%eax
40ac9b:	dd 00                	fldl   (%eax)
40ac9d:	8b c6                	mov    %esi,%eax
40ac9f:	dd 5e 08             	fstpl  0x8(%esi)
40aca2:	5e                   	pop    %esi
40aca3:	c2 04 00             	ret    $0x4
40aca6:	53                   	push   %ebx
40aca7:	8b 5c 24 08          	mov    0x8(%esp),%ebx
40acab:	56                   	push   %esi
40acac:	57                   	push   %edi
40acad:	8b 7b 08             	mov    0x8(%ebx),%edi
40acb0:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
40acb6:	8b f1                	mov    %ecx,%esi
40acb8:	7e 05                	jle    0x40acbf
40acba:	e8 58 a7 02 00       	call   0x435417
40acbf:	57                   	push   %edi
40acc0:	56                   	push   %esi
40acc1:	e8 57 f3 ff ff       	call   0x40a01d
40acc6:	57                   	push   %edi
40acc7:	ff 73 04             	push   0x4(%ebx)
40acca:	ff 76 08             	push   0x8(%esi)
40accd:	e8 f6 f3 ff ff       	call   0x40a0c8
40acd2:	5f                   	pop    %edi
40acd3:	8b c6                	mov    %esi,%eax
40acd5:	5e                   	pop    %esi
40acd6:	5b                   	pop    %ebx
40acd7:	c2 04 00             	ret    $0x4
40acda:	8b 44 24 04          	mov    0x4(%esp),%eax
40acde:	0f b7 08             	movzwl (%eax),%ecx
40ace1:	83 f9 0d             	cmp    $0xd,%ecx
40ace4:	77 3f                	ja     0x40ad25
40ace6:	ff 24 8d 2a ad 40 00 	jmp    *0x40ad2a(,%ecx,4)
40aced:	0f bf 40 08          	movswl 0x8(%eax),%eax
40acf1:	eb 2d                	jmp    0x40ad20
40acf3:	d9 40 08             	flds   0x8(%eax)
40acf6:	d8 0d 78 be 48 00    	fmuls  0x48be78
40acfc:	e8 eb c0 00 00       	call   0x416dec
40ad01:	eb 24                	jmp    0x40ad27
40ad03:	dd 40 08             	fldl   0x8(%eax)
40ad06:	dc 0d 70 be 48 00    	fmull  0x48be70
40ad0c:	e8 db c0 00 00       	call   0x416dec
40ad11:	eb 14                	jmp    0x40ad27
40ad13:	ff 70 08             	push   0x8(%eax)
40ad16:	e8 a2 54 03 00       	call   0x4401bd
40ad1b:	eb 0a                	jmp    0x40ad27
40ad1d:	8b 40 08             	mov    0x8(%eax),%eax
40ad20:	c1 e8 04             	shr    $0x4,%eax