4507ff:	52                   	push   %edx
450800:	8b ce                	mov    %esi,%ecx
450802:	e8 39 4a ff ff       	call   0x445240
450807:	5f                   	pop    %edi
450808:	8b c6                	mov    %esi,%eax
45080a:	5e                   	pop    %esi
45080b:	8b e5                	mov    %ebp,%esp
45080d:	5d                   	pop    %ebp
45080e:	c2 04 00             	ret    $0x4
450811:	cc                   	int3
450812:	cc                   	int3
450813:	cc                   	int3
450814:	cc                   	int3
450815:	cc                   	int3
450816:	cc                   	int3
450817:	cc                   	int3
450818:	cc                   	int3
450819:	cc                   	int3
45081a:	cc                   	int3
45081b:	cc                   	int3
45081c:	cc                   	int3
45081d:	cc                   	int3
45081e:	cc                   	int3
45081f:	cc                   	int3
450820:	55                   	push   %ebp
450821:	8b ec                	mov    %esp,%ebp
450823:	51                   	push   %ecx
450824:	8b 51 08             	mov    0x8(%ecx),%edx
450827:	8b ca                	mov    %edx,%ecx
450829:	56                   	push   %esi
45082a:	8b 75 08             	mov    0x8(%ebp),%esi
45082d:	57                   	push   %edi
45082e:	89 75 fc             	mov    %esi,-0x4(%ebp)
450831:	8d 79 01             	lea    0x1(%ecx),%edi
450834:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
45083b:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
450842:	c6 06 00             	movb   $0x0,(%esi)
450845:	8a 01                	mov    (%ecx),%al
450847:	41                   	inc    %ecx
450848:	84 c0                	test   %al,%al
45084a:	75 f9                	jne    0x450845
45084c:	2b cf                	sub    %edi,%ecx
45084e:	51                   	push   %ecx
45084f:	52                   	push   %edx
450850:	8b ce                	mov    %esi,%ecx
450852:	e8 e9 49 ff ff       	call   0x445240
450857:	5f                   	pop    %edi
450858:	8b c6                	mov    %esi,%eax
45085a:	5e                   	pop    %esi
45085b:	8b e5                	mov    %ebp,%esp
45085d:	5d                   	pop    %ebp
45085e:	c2 04 00             	ret    $0x4
450861:	cc                   	int3
450862:	cc                   	int3
450863:	cc                   	int3
450864:	cc                   	int3
450865:	cc                   	int3
450866:	cc                   	int3
450867:	cc                   	int3
450868:	cc                   	int3
450869:	cc                   	int3
45086a:	cc                   	int3
45086b:	cc                   	int3
45086c:	cc                   	int3
45086d:	cc                   	int3
45086e:	cc                   	int3
45086f:	cc                   	int3
450870:	55                   	push   %ebp
450871:	8b ec                	mov    %esp,%ebp
450873:	8a 45 08             	mov    0x8(%ebp),%al
450876:	5d                   	pop    %ebp
450877:	c2 08 00             	ret    $0x8
45087a:	cc                   	int3
45087b:	cc                   	int3
45087c:	cc                   	int3
45087d:	cc                   	int3
45087e:	cc                   	int3
45087f:	cc                   	int3
450880:	55                   	push   %ebp
450881:	8b ec                	mov    %esp,%ebp
450883:	8b 55 14             	mov    0x14(%ebp),%edx
450886:	56                   	push   %esi
450887:	8b 75 08             	mov    0x8(%ebp),%esi
45088a:	57                   	push   %edi
45088b:	8b 7d 0c             	mov    0xc(%ebp),%edi
45088e:	8b cf                	mov    %edi,%ecx
450890:	2b ce                	sub    %esi,%ecx
450892:	51                   	push   %ecx
450893:	56                   	push   %esi
450894:	52                   	push   %edx
450895:	e8 66 26 19 00       	call   0x5e2f00
45089a:	83 c4 0c             	add    $0xc,%esp
45089d:	8b c7                	mov    %edi,%eax
45089f:	5f                   	pop    %edi
4508a0:	5e                   	pop    %esi
4508a1:	5d                   	pop    %ebp
4508a2:	c2 10 00             	ret    $0x10
4508a5:	cc                   	int3
4508a6:	cc                   	int3
4508a7:	cc                   	int3
4508a8:	cc                   	int3
4508a9:	cc                   	int3
4508aa:	cc                   	int3
4508ab:	cc                   	int3
4508ac:	cc                   	int3
4508ad:	cc                   	int3
4508ae:	cc                   	int3
4508af:	cc                   	int3
4508b0:	55                   	push   %ebp
4508b1:	8b ec                	mov    %esp,%ebp
4508b3:	83 ec 54             	sub    $0x54,%esp
4508b6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
4508bb:	33 c5                	xor    %ebp,%eax
4508bd:	89 45 fc             	mov    %eax,-0x4(%ebp)
4508c0:	0f b6 45 f5          	movzbl -0xb(%ebp),%eax
4508c4:	53                   	push   %ebx
4508c5:	56                   	push   %esi
4508c6:	8b 75 14             	mov    0x14(%ebp),%esi
4508c9:	89 4d ac             	mov    %ecx,-0x54(%ebp)
4508cc:	8b 5d ac             	mov    -0x54(%ebp),%ebx
4508cf:	c7 45 b0 2b 00 00 00 	movl   $0x2b,-0x50(%ebp)
4508d6:	8b 4e 14             	mov    0x14(%esi),%ecx
4508d9:	8b d1                	mov    %ecx,%edx
4508db:	83 e2 20             	and    $0x20,%edx
4508de:	c6 45 f4 25          	movb   $0x25,-0xc(%ebp)
4508e2:	57                   	push   %edi
4508e3:	0f 45 45 b0          	cmovne -0x50(%ebp),%eax
4508e7:	85 d2                	test   %edx,%edx
4508e9:	8b 7d 08             	mov    0x8(%ebp),%edi
4508ec:	8d 55 f6             	lea    -0xa(%ebp),%edx
4508ef:	88 45 f5             	mov    %al,-0xb(%ebp)
4508f2:	8d 45 f5             	lea    -0xb(%ebp),%eax
4508f5:	0f 45 c2             	cmovne %edx,%eax
4508f8:	f6 c1 08             	test   $0x8,%cl
4508fb:	74 04                	je     0x450901
4508fd:	c6 00 23             	movb   $0x23,(%eax)
450900:	40                   	inc    %eax
450901:	8b d1                	mov    %ecx,%edx
450903:	c6 00 6c             	movb   $0x6c,(%eax)
450906:	81 e2 00 0e 00 00    	and    $0xe00,%edx
45090c:	81 fa 00 04 00 00    	cmp    $0x400,%edx
450912:	75 04                	jne    0x450918
450914:	b1 6f                	mov    $0x6f,%cl
450916:	eb 17                	jmp    0x45092f
450918:	81 fa 00 08 00 00    	cmp    $0x800,%edx
45091e:	74 04                	je     0x450924
450920:	b1 64                	mov    $0x64,%cl
450922:	eb 0b                	jmp    0x45092f
450924:	c0 e1 03             	shl    $0x3,%cl
450927:	f6 d1                	not    %cl
450929:	80 e1 20             	and    $0x20,%cl
45092c:	80 c9 58             	or     $0x58,%cl
45092f:	ff 75 1c             	push   0x1c(%ebp)
450932:	88 48 01             	mov    %cl,0x1(%eax)
450935:	c6 40 02 00          	movb   $0x0,0x2(%eax)
450939:	8d 45 f4             	lea    -0xc(%ebp),%eax
45093c:	50                   	push   %eax
45093d:	8d 45 b4             	lea    -0x4c(%ebp),%eax
450940:	6a 40                	push   $0x40
450942:	50                   	push   %eax
450943:	e8 08 8c fe ff       	call   0x439550
450948:	50                   	push   %eax
450949:	8d 45 b4             	lea    -0x4c(%ebp),%eax
45094c:	50                   	push   %eax
45094d:	ff 75 18             	push   0x18(%ebp)
450950:	56                   	push   %esi
450951:	ff 75 10             	push   0x10(%ebp)
450954:	ff 75 0c             	push   0xc(%ebp)
450957:	57                   	push   %edi
450958:	53                   	push   %ebx
450959:	e8 22 f6 ff ff       	call   0x44ff80
45095e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
450961:	83 c4 30             	add    $0x30,%esp
450964:	8b c7                	mov    %edi,%eax
450966:	33 cd                	xor    %ebp,%ecx
450968:	5f                   	pop    %edi
450969:	5e                   	pop    %esi
45096a:	5b                   	pop    %ebx
45096b:	e8 6a 0b 19 00       	call   0x5e14da
450970:	8b e5                	mov    %ebp,%esp
450972:	5d                   	pop    %ebp
450973:	c2 18 00             	ret    $0x18
450976:	cc                   	int3
450977:	cc                   	int3
450978:	cc                   	int3
450979:	cc                   	int3
45097a:	cc                   	int3
45097b:	cc                   	int3
45097c:	cc                   	int3
45097d:	cc                   	int3
45097e:	cc                   	int3
45097f:	cc                   	int3
450980:	55                   	push   %ebp
450981:	8b ec                	mov    %esp,%ebp
450983:	83 ec 54             	sub    $0x54,%esp
450986:	a1 d4 89 72 00       	mov    0x7289d4,%eax
45098b:	33 c5                	xor    %ebp,%eax
45098d:	89 45 fc             	mov    %eax,-0x4(%ebp)
450990:	0f b6 45 f5          	movzbl -0xb(%ebp),%eax
450994:	53                   	push   %ebx
450995:	56                   	push   %esi
450996:	8b 75 14             	mov    0x14(%ebp),%esi
450999:	89 4d ac             	mov    %ecx,-0x54(%ebp)
45099c:	8b 5d ac             	mov    -0x54(%ebp),%ebx
45099f:	c7 45 b0 2b 00 00 00 	movl   $0x2b,-0x50(%ebp)
4509a6:	8b 4e 14             	mov    0x14(%esi),%ecx
4509a9:	8b d1                	mov    %ecx,%edx
4509ab:	83 e2 20             	and    $0x20,%edx
4509ae:	c6 45 f4 25          	movb   $0x25,-0xc(%ebp)
4509b2:	57                   	push   %edi
4509b3:	0f 45 45 b0          	cmovne -0x50(%ebp),%eax
4509b7:	85 d2                	test   %edx,%edx
4509b9:	8b 7d 08             	mov    0x8(%ebp),%edi
4509bc:	8d 55 f6             	lea    -0xa(%ebp),%edx
4509bf:	88 45 f5             	mov    %al,-0xb(%ebp)
4509c2:	8d 45 f5             	lea    -0xb(%ebp),%eax
4509c5:	0f 45 c2             	cmovne %edx,%eax
4509c8:	f6 c1 08             	test   $0x8,%cl
4509cb:	74 04                	je     0x4509d1
4509cd:	c6 00 23             	movb   $0x23,(%eax)
4509d0:	40                   	inc    %eax
4509d1:	8b d1                	mov    %ecx,%edx
4509d3:	c6 00 6c             	movb   $0x6c,(%eax)
4509d6:	81 e2 00 0e 00 00    	and    $0xe00,%edx
4509dc:	81 fa 00 04 00 00    	cmp    $0x400,%edx
4509e2:	75 04                	jne    0x4509e8
4509e4:	b1 6f                	mov    $0x6f,%cl
4509e6:	eb 17                	jmp    0x4509ff
4509e8:	81 fa 00 08 00 00    	cmp    $0x800,%edx
4509ee:	74 04                	je     0x4509f4
4509f0:	b1 75                	mov    $0x75,%cl
4509f2:	eb 0b                	jmp    0x4509ff
4509f4:	c0 e1 03             	shl    $0x3,%cl
4509f7:	f6 d1                	not    %cl
4509f9:	80 e1 20             	and    $0x20,%cl
4509fc:	80 c9 58             	or     $0x58,%cl
4509ff:	ff 75 1c             	push   0x1c(%ebp)
450a02:	88 48 01             	mov    %cl,0x1(%eax)
450a05:	c6 40 02 00          	movb   $0x0,0x2(%eax)
450a09:	8d 45 f4             	lea    -0xc(%ebp),%eax
450a0c:	50                   	push   %eax
450a0d:	8d 45 b4             	lea    -0x4c(%ebp),%eax
450a10:	6a 40                	push   $0x40
450a12:	50                   	push   %eax
450a13:	e8 38 8b fe ff       	call   0x439550
450a18:	50                   	push   %eax
450a19:	8d 45 b4             	lea    -0x4c(%ebp),%eax
450a1c:	50                   	push   %eax
450a1d:	ff 75 18             	push   0x18(%ebp)
450a20:	56                   	push   %esi
450a21:	ff 75 10             	push   0x10(%ebp)
450a24:	ff 75 0c             	push   0xc(%ebp)
450a27:	57                   	push   %edi
450a28:	53                   	push   %ebx
450a29:	e8 52 f5 ff ff       	call   0x44ff80
450a2e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
450a31:	83 c4 30             	add    $0x30,%esp
450a34:	8b c7                	mov    %edi,%eax
450a36:	33 cd                	xor    %ebp,%ecx
450a38:	5f                   	pop    %edi
450a39:	5e                   	pop    %esi
450a3a:	5b                   	pop    %ebx
450a3b:	e8 9a 0a 19 00       	call   0x5e14da
450a40:	8b e5                	mov    %ebp,%esp
450a42:	5d                   	pop    %ebp
450a43:	c2 18 00             	ret    $0x18
450a46:	cc                   	int3
450a47:	cc                   	int3
450a48:	cc                   	int3
450a49:	cc                   	int3
450a4a:	cc                   	int3
450a4b:	cc                   	int3
450a4c:	cc                   	int3
450a4d:	cc                   	int3
450a4e:	cc                   	int3
450a4f:	cc                   	int3
450a50:	55                   	push   %ebp
450a51:	8b ec                	mov    %esp,%ebp
450a53:	6a ff                	push   $0xffffffff
450a55:	68 88 e0 64 00       	push   $0x64e088
450a5a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
450a60:	50                   	push   %eax
450a61:	83 ec 38             	sub    $0x38,%esp
450a64:	a1 d4 89 72 00       	mov    0x7289d4,%eax
450a69:	33 c5                	xor    %ebp,%eax
450a6b:	89 45 f0             	mov    %eax,-0x10(%ebp)
450a6e:	56                   	push   %esi
450a6f:	57                   	push   %edi
450a70:	50                   	push   %eax
450a71:	8d 45 f4             	lea    -0xc(%ebp),%eax
450a74:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
450a7a:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
450a7d:	8b 45 08             	mov    0x8(%ebp),%eax
450a80:	33 d2                	xor    %edx,%edx
450a82:	8b 4d 14             	mov    0x14(%ebp),%ecx
450a85:	89 45 bc             	mov    %eax,-0x44(%ebp)
450a88:	89 4d c0             	mov    %ecx,-0x40(%ebp)
450a8b:	89 55 e0             	mov    %edx,-0x20(%ebp)
450a8e:	c7 45 e4 0f 00 00 00 	movl   $0xf,-0x1c(%ebp)
450a95:	88 55 d0             	mov    %dl,-0x30(%ebp)
450a98:	8b 41 14             	mov    0x14(%ecx),%eax
450a9b:	8b 79 18             	mov    0x18(%ecx),%edi
450a9e:	25 00 30 00 00       	and    $0x3000,%eax
450aa3:	8b 49 1c             	mov    0x1c(%ecx),%ecx
450aa6:	89 55 fc             	mov    %edx,-0x4(%ebp)
450aa9:	85 c9                	test   %ecx,%ecx
450aab:	7f 1b                	jg     0x450ac8
450aad:	7c 04                	jl     0x450ab3
450aaf:	85 ff                	test   %edi,%edi
450ab1:	75 15                	jne    0x450ac8
450ab3:	3d 00 20 00 00       	cmp    $0x2000,%eax
450ab8:	74 0e                	je     0x450ac8
450aba:	bf 06 00 00 00       	mov    $0x6,%edi
450abf:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
450ac6:	eb 03                	jmp    0x450acb
450ac8:	89 4d cc             	mov    %ecx,-0x34(%ebp)
450acb:	8b f7                	mov    %edi,%esi
450acd:	3d 00 20 00 00       	cmp    $0x2000,%eax
450ad2:	75 53                	jne    0x450b27
450ad4:	f2 0f 10 4d 1c       	movsd  0x1c(%ebp),%xmm1
450ad9:	0f 28 c1             	movaps %xmm1,%xmm0
450adc:	0f 54 05 d0 59 6e 00 	andps  0x6e59d0,%xmm0
450ae3:	66 0f 2f 05 c0 59 6e 	comisd 0x6e59c0,%xmm0
450aea:	00
450aeb:	76 3a                	jbe    0x450b27
450aed:	8d 45 cc             	lea    -0x34(%ebp),%eax
450af0:	50                   	push   %eax
450af1:	83 ec 08             	sub    $0x8,%esp
450af4:	f2 0f 11 0c 24       	movsd  %xmm1,(%esp)
450af9:	e8 b8 5a 1a 00       	call   0x5f65b6
450afe:	8b 45 cc             	mov    -0x34(%ebp),%eax
450b01:	83 c4 0c             	add    $0xc,%esp
450b04:	99                   	cltd
450b05:	dd d8                	fstp   %st(0)
450b07:	33 c2                	xor    %edx,%eax
450b09:	2b c2                	sub    %edx,%eax
450b0b:	69 c8 97 75 00 00    	imul   $0x7597,%eax,%ecx
450b11:	b8 89 b5 f8 14       	mov    $0x14f8b589,%eax
450b16:	f7 e9                	imul   %ecx
450b18:	c1 fa 0d             	sar    $0xd,%edx
450b1b:	8b c2                	mov    %edx,%eax
450b1d:	c1 e8 1f             	shr    $0x1f,%eax
450b20:	03 c2                	add    %edx,%eax
450b22:	8b 55 e0             	mov    -0x20(%ebp),%edx
450b25:	03 f0                	add    %eax,%esi
450b27:	33 c9                	xor    %ecx,%ecx
450b29:	83 c6 32             	add    $0x32,%esi
450b2c:	0f 92 c1             	setb   %cl
450b2f:	f7 d9                	neg    %ecx
450b31:	0b ce                	or     %esi,%ecx