403729:	66 3b c8             	cmp    %ax,%cx
40372c:	75 12                	jne    0x403740
40372e:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
403735:	75 05                	jne    0x40373c
403737:	39 55 08             	cmp    %edx,0x8(%ebp)
40373a:	74 04                	je     0x403740
40373c:	6a 04                	push   $0x4
40373e:	eb ce                	jmp    0x40370e
403740:	33 c0                	xor    %eax,%eax
403742:	5d                   	pop    %ebp
403743:	c3                   	ret
403744:	8b ff                	mov    %edi,%edi
403746:	55                   	push   %ebp
403747:	8b ec                	mov    %esp,%ebp
403749:	d9 ee                	fldz
40374b:	dc 55 08             	fcoml  0x8(%ebp)
40374e:	df e0                	fnstsw %ax
403750:	f6 c4 44             	test   $0x44,%ah
403753:	7a 07                	jp     0x40375c
403755:	33 d2                	xor    %edx,%edx
403757:	e9 9a 00 00 00       	jmp    0x4037f6
40375c:	8b 55 0e             	mov    0xe(%ebp),%edx
40375f:	33 c9                	xor    %ecx,%ecx
403761:	f7 c2 f0 7f 00 00    	test   $0x7ff0,%edx
403767:	75 6b                	jne    0x4037d4
403769:	f7 45 0c ff ff 0f 00 	testl  $0xfffff,0xc(%ebp)
403770:	75 05                	jne    0x403777
403772:	39 4d 08             	cmp    %ecx,0x8(%ebp)
403775:	74 5d                	je     0x4037d4
403777:	dc 5d 08             	fcompl 0x8(%ebp)
40377a:	ba 03 fc ff ff       	mov    $0xfffffc03,%edx
40377f:	df e0                	fnstsw %ax
403781:	f6 c4 41             	test   $0x41,%ah
403784:	75 05                	jne    0x40378b
403786:	33 c0                	xor    %eax,%eax
403788:	40                   	inc    %eax
403789:	eb 18                	jmp    0x4037a3
40378b:	33 c0                	xor    %eax,%eax
40378d:	eb 14                	jmp    0x4037a3
40378f:	d1 65 0c             	shll   $1,0xc(%ebp)
403792:	f7 45 08 00 00 00 80 	testl  $0x80000000,0x8(%ebp)
403799:	74 04                	je     0x40379f
40379b:	83 4d 0c 01          	orl    $0x1,0xc(%ebp)
40379f:	d1 65 08             	shll   $1,0x8(%ebp)
4037a2:	4a                   	dec    %edx
4037a3:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
4037a7:	74 e6                	je     0x40378f
4037a9:	56                   	push   %esi
4037aa:	be ef ff 00 00       	mov    $0xffef,%esi
4037af:	66 21 75 0e          	and    %si,0xe(%ebp)
4037b3:	5e                   	pop    %esi
4037b4:	3b c1                	cmp    %ecx,%eax
4037b6:	74 09                	je     0x4037c1
4037b8:	b8 00 80 00 00       	mov    $0x8000,%eax
4037bd:	66 09 45 0e          	or     %ax,0xe(%ebp)
4037c1:	dd 45 08             	fldl   0x8(%ebp)
4037c4:	51                   	push   %ecx
4037c5:	51                   	push   %ecx
4037c6:	51                   	push   %ecx
4037c7:	dd 1c 24             	fstpl  (%esp)
4037ca:	e8 e9 fe ff ff       	call   0x4036b8
4037cf:	83 c4 0c             	add    $0xc,%esp
4037d2:	eb 22                	jmp    0x4037f6
4037d4:	51                   	push   %ecx
4037d5:	dd d8                	fstp   %st(0)
4037d7:	dd 45 08             	fldl   0x8(%ebp)
4037da:	51                   	push   %ecx
4037db:	51                   	push   %ecx
4037dc:	dd 1c 24             	fstpl  (%esp)
4037df:	e8 d4 fe ff ff       	call   0x4036b8
4037e4:	c1 ea 04             	shr    $0x4,%edx
4037e7:	81 e2 ff 07 00 00    	and    $0x7ff,%edx
4037ed:	83 c4 0c             	add    $0xc,%esp
4037f0:	81 ea fe 03 00 00    	sub    $0x3fe,%edx
4037f6:	8b 45 10             	mov    0x10(%ebp),%eax
4037f9:	89 10                	mov    %edx,(%eax)
4037fb:	5d                   	pop    %ebp
4037fc:	c3                   	ret
4037fd:	8b ff                	mov    %edi,%edi
4037ff:	55                   	push   %ebp
403800:	8b ec                	mov    %esp,%ebp
403802:	51                   	push   %ecx
403803:	9b dd 7d fc          	fstsw  -0x4(%ebp)
403807:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40380b:	c9                   	leave
40380c:	c3                   	ret
40380d:	8b ff                	mov    %edi,%edi
40380f:	55                   	push   %ebp
403810:	8b ec                	mov    %esp,%ebp
403812:	51                   	push   %ecx
403813:	dd 7d fc             	fnstsw -0x4(%ebp)
403816:	db e2                	fnclex
403818:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40381c:	c9                   	leave
40381d:	c3                   	ret
40381e:	8b ff                	mov    %edi,%edi
403820:	55                   	push   %ebp
403821:	8b ec                	mov    %esp,%ebp
403823:	51                   	push   %ecx
403824:	9b d9 7d fc          	fstcw  -0x4(%ebp)
403828:	8b 45 0c             	mov    0xc(%ebp),%eax
40382b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40382e:	23 4d 0c             	and    0xc(%ebp),%ecx
403831:	f7 d0                	not    %eax
403833:	23 45 fc             	and    -0x4(%ebp),%eax
403836:	0b c1                	or     %ecx,%eax
403838:	0f b7 c0             	movzwl %ax,%eax
40383b:	89 45 0c             	mov    %eax,0xc(%ebp)
40383e:	d9 6d 0c             	fldcw  0xc(%ebp)
403841:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
403845:	c9                   	leave
403846:	c3                   	ret
403847:	8b ff                	mov    %edi,%edi
403849:	55                   	push   %ebp
40384a:	8b ec                	mov    %esp,%ebp
40384c:	51                   	push   %ecx
40384d:	51                   	push   %ecx
40384e:	8a 4d 08             	mov    0x8(%ebp),%cl
403851:	f6 c1 01             	test   $0x1,%cl
403854:	74 0a                	je     0x403860
403856:	db 2d c0 f3 41 00    	fldt   0x41f3c0
40385c:	db 5d 08             	fistpl 0x8(%ebp)
40385f:	9b                   	fwait
403860:	f6 c1 08             	test   $0x8,%cl
403863:	74 10                	je     0x403875
403865:	9b df e0             	fstsw  %ax
403868:	db 2d c0 f3 41 00    	fldt   0x41f3c0
40386e:	dd 5d f8             	fstpl  -0x8(%ebp)
403871:	9b 9b df e0          	fstsw  %ax
403875:	f6 c1 10             	test   $0x10,%cl
403878:	74 0a                	je     0x403884
40387a:	db 2d cc f3 41 00    	fldt   0x41f3cc
403880:	dd 5d f8             	fstpl  -0x8(%ebp)
403883:	9b                   	fwait
403884:	f6 c1 04             	test   $0x4,%cl
403887:	74 09                	je     0x403892
403889:	d9 ee                	fldz
40388b:	d9 e8                	fld1
40388d:	de f1                	fdivp  %st,%st(1)
40388f:	dd d8                	fstp   %st(0)
403891:	9b                   	fwait
403892:	f6 c1 20             	test   $0x20,%cl
403895:	74 06                	je     0x40389d
403897:	d9 eb                	fldpi
403899:	dd 5d f8             	fstpl  -0x8(%ebp)
40389c:	9b                   	fwait
40389d:	c9                   	leave
40389e:	c3                   	ret
40389f:	6a 08                	push   $0x8
4038a1:	68 c8 e6 41 00       	push   $0x41e6c8
4038a6:	e8 d5 f2 ff ff       	call   0x402b80
4038ab:	33 c0                	xor    %eax,%eax
4038ad:	39 05 b8 2e de 02    	cmp    %eax,0x2de2eb8
4038b3:	74 56                	je     0x40390b
4038b5:	f6 45 08 40          	testb  $0x40,0x8(%ebp)
4038b9:	74 48                	je     0x403903
4038bb:	39 05 d8 f3 41 00    	cmp    %eax,0x41f3d8
4038c1:	74 40                	je     0x403903
4038c3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038c6:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
4038ca:	eb 2e                	jmp    0x4038fa
4038cc:	8b 45 ec             	mov    -0x14(%ebp),%eax
4038cf:	8b 00                	mov    (%eax),%eax
4038d1:	8b 00                	mov    (%eax),%eax
4038d3:	3d 05 00 00 c0       	cmp    $0xc0000005,%eax
4038d8:	74 0a                	je     0x4038e4
4038da:	3d 1d 00 00 c0       	cmp    $0xc000001d,%eax
4038df:	74 03                	je     0x4038e4
4038e1:	33 c0                	xor    %eax,%eax
4038e3:	c3                   	ret
4038e4:	33 c0                	xor    %eax,%eax
4038e6:	40                   	inc    %eax
4038e7:	c3                   	ret
4038e8:	8b 65 e8             	mov    -0x18(%ebp),%esp
4038eb:	83 25 d8 f3 41 00 00 	andl   $0x0,0x41f3d8
4038f2:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
4038f6:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
4038fa:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403901:	eb 08                	jmp    0x40390b
403903:	83 65 08 bf          	andl   $0xffffffbf,0x8(%ebp)
403907:	0f ae 55 08          	ldmxcsr 0x8(%ebp)
40390b:	e8 b5 f2 ff ff       	call   0x402bc5
403910:	c3                   	ret
403911:	6a 08                	push   $0x8
403913:	68 e8 e6 41 00       	push   $0x41e6e8
403918:	e8 63 f2 ff ff       	call   0x402b80
40391d:	e8 58 ef ff ff       	call   0x40287a
403922:	8b 40 78             	mov    0x78(%eax),%eax
403925:	85 c0                	test   %eax,%eax
403927:	74 16                	je     0x40393f
403929:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40392d:	ff d0                	call   *%eax
40392f:	eb 07                	jmp    0x403938
403931:	33 c0                	xor    %eax,%eax
403933:	40                   	inc    %eax
403934:	c3                   	ret
403935:	8b 65 e8             	mov    -0x18(%ebp),%esp
403938:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40393f:	e8 dc 33 00 00       	call   0x406d20
403944:	e8 7c f2 ff ff       	call   0x402bc5
403949:	c3                   	ret
40394a:	68 11 39 40 00       	push   $0x403911
40394f:	e8 5f ec ff ff       	call   0x4025b3
403954:	59                   	pop    %ecx
403955:	a3 30 0e 43 00       	mov    %eax,0x430e30
40395a:	c3                   	ret
40395b:	8b ff                	mov    %edi,%edi
40395d:	56                   	push   %esi
40395e:	57                   	push   %edi
40395f:	33 f6                	xor    %esi,%esi
403961:	bf 38 0e 43 00       	mov    $0x430e38,%edi
403966:	83 3c f5 e4 f3 41 00 	cmpl   $0x1,0x41f3e4(,%esi,8)
40396d:	01
40396e:	75 1e                	jne    0x40398e
403970:	8d 04 f5 e0 f3 41 00 	lea    0x41f3e0(,%esi,8),%eax
403977:	89 38                	mov    %edi,(%eax)
403979:	68 a0 0f 00 00       	push   $0xfa0
40397e:	ff 30                	push   (%eax)
403980:	83 c7 18             	add    $0x18,%edi
403983:	e8 d4 07 00 00       	call   0x40415c
403988:	59                   	pop    %ecx
403989:	59                   	pop    %ecx
40398a:	85 c0                	test   %eax,%eax
40398c:	74 0c                	je     0x40399a
40398e:	46                   	inc    %esi
40398f:	83 fe 24             	cmp    $0x24,%esi
403992:	7c d2                	jl     0x403966
403994:	33 c0                	xor    %eax,%eax
403996:	40                   	inc    %eax
403997:	5f                   	pop    %edi
403998:	5e                   	pop    %esi
403999:	c3                   	ret
40399a:	83 24 f5 e0 f3 41 00 	andl   $0x0,0x41f3e0(,%esi,8)
4039a1:	00
4039a2:	33 c0                	xor    %eax,%eax
4039a4:	eb f1                	jmp    0x403997
4039a6:	8b ff                	mov    %edi,%edi
4039a8:	53                   	push   %ebx
4039a9:	8b 1d a8 d0 41 00    	mov    0x41d0a8,%ebx
4039af:	56                   	push   %esi
4039b0:	be e0 f3 41 00       	mov    $0x41f3e0,%esi
4039b5:	57                   	push   %edi
4039b6:	8b 3e                	mov    (%esi),%edi
4039b8:	85 ff                	test   %edi,%edi
4039ba:	74 13                	je     0x4039cf
4039bc:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
4039c0:	74 0d                	je     0x4039cf
4039c2:	57                   	push   %edi
4039c3:	ff d3                	call   *%ebx
4039c5:	57                   	push   %edi
4039c6:	e8 d8 13 00 00       	call   0x404da3
4039cb:	83 26 00             	andl   $0x0,(%esi)
4039ce:	59                   	pop    %ecx
4039cf:	83 c6 08             	add    $0x8,%esi
4039d2:	81 fe 00 f5 41 00    	cmp    $0x41f500,%esi
4039d8:	7c dc                	jl     0x4039b6
4039da:	be e0 f3 41 00       	mov    $0x41f3e0,%esi
4039df:	5f                   	pop    %edi
4039e0:	8b 06                	mov    (%esi),%eax
4039e2:	85 c0                	test   %eax,%eax
4039e4:	74 09                	je     0x4039ef
4039e6:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
4039ea:	75 03                	jne    0x4039ef
4039ec:	50                   	push   %eax
4039ed:	ff d3                	call   *%ebx
4039ef:	83 c6 08             	add    $0x8,%esi
4039f2:	81 fe 00 f5 41 00    	cmp    $0x41f500,%esi
4039f8:	7c e6                	jl     0x4039e0
4039fa:	5e                   	pop    %esi
4039fb:	5b                   	pop    %ebx
4039fc:	c3                   	ret
4039fd:	8b ff                	mov    %edi,%edi
4039ff:	55                   	push   %ebp
403a00:	8b ec                	mov    %esp,%ebp
403a02:	8b 45 08             	mov    0x8(%ebp),%eax
403a05:	ff 34 c5 e0 f3 41 00 	push   0x41f3e0(,%eax,8)
403a0c:	ff 15 e4 d0 41 00    	call   *0x41d0e4
403a12:	5d                   	pop    %ebp
403a13:	c3                   	ret
403a14:	6a 0c                	push   $0xc
403a16:	68 08 e7 41 00       	push   $0x41e708
403a1b:	e8 60 f1 ff ff       	call   0x402b80
403a20:	33 ff                	xor    %edi,%edi
403a22:	47                   	inc    %edi
403a23:	89 7d e4             	mov    %edi,-0x1c(%ebp)
403a26:	33 db                	xor    %ebx,%ebx
403a28:	39 1d 24 0e 43 00    	cmp    %ebx,0x430e24
403a2e:	75 18                	jne    0x403a48
403a30:	e8 7b e2 ff ff       	call   0x401cb0
403a35:	6a 1e                	push   $0x1e
403a37:	e8 c9 e0 ff ff       	call   0x401b05
403a3c:	68 ff 00 00 00       	push   $0xff
403a41:	e8 0b de ff ff       	call   0x401851
403a46:	59                   	pop    %ecx
403a47:	59                   	pop    %ecx
403a48:	8b 75 08             	mov    0x8(%ebp),%esi
403a4b:	8d 34 f5 e0 f3 41 00 	lea    0x41f3e0(,%esi,8),%esi
403a52:	39 1e                	cmp    %ebx,(%esi)
403a54:	74 04                	je     0x403a5a
403a56:	8b c7                	mov    %edi,%eax
403a58:	eb 6e                	jmp    0x403ac8
403a5a:	6a 18                	push   $0x18
403a5c:	e8 d0 13 00 00       	call   0x404e31
403a61:	59                   	pop    %ecx
403a62:	8b f8                	mov    %eax,%edi
403a64:	3b fb                	cmp    %ebx,%edi
403a66:	75 0f                	jne    0x403a77
403a68:	e8 df f3 ff ff       	call   0x402e4c
403a6d:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
403a73:	33 c0                	xor    %eax,%eax
403a75:	eb 51                	jmp    0x403ac8
403a77:	6a 0a                	push   $0xa
403a79:	e8 59 00 00 00       	call   0x403ad7
403a7e:	59                   	pop    %ecx
403a7f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403a82:	39 1e                	cmp    %ebx,(%esi)
403a84:	75 2c                	jne    0x403ab2
403a86:	68 a0 0f 00 00       	push   $0xfa0
403a8b:	57                   	push   %edi
403a8c:	e8 cb 06 00 00       	call   0x40415c
403a91:	59                   	pop    %ecx
403a92:	59                   	pop    %ecx
403a93:	85 c0                	test   %eax,%eax
403a95:	75 17                	jne    0x403aae
403a97:	57                   	push   %edi
403a98:	e8 06 13 00 00       	call   0x404da3
403a9d:	59                   	pop    %ecx
403a9e:	e8 a9 f3 ff ff       	call   0x402e4c
403aa3:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
403aa9:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
403aac:	eb 0b                	jmp    0x403ab9
403aae:	89 3e                	mov    %edi,(%esi)
403ab0:	eb 07                	jmp    0x403ab9
403ab2:	57                   	push   %edi
403ab3:	e8 eb 12 00 00       	call   0x404da3
403ab8:	59                   	pop    %ecx
403ab9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403ac0:	e8 09 00 00 00       	call   0x403ace
403ac5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
403ac8:	e8 f8 f0 ff ff       	call   0x402bc5
403acd:	c3                   	ret
403ace:	6a 0a                	push   $0xa
403ad0:	e8 28 ff ff ff       	call   0x4039fd
403ad5:	59                   	pop    %ecx
403ad6:	c3                   	ret
403ad7:	8b ff                	mov    %edi,%edi
403ad9:	55                   	push   %ebp
403ada:	8b ec                	mov    %esp,%ebp
403adc:	8b 45 08             	mov    0x8(%ebp),%eax
403adf:	56                   	push   %esi