4505e7:	dd da                	fstp   %st(2)
4505e9:	48                   	dec    %eax
4505ea:	89 01                	mov    %eax,(%ecx)
4505ec:	dd d8                	fstp   %st(0)
4505ee:	8b cb                	mov    %ebx,%ecx
4505f0:	dd d8                	fstp   %st(0)
4505f2:	e8 92 7b fb ff       	call   0x408189
4505f7:	8b 43 04             	mov    0x4(%ebx),%eax
4505fa:	83 c0 02             	add    $0x2,%eax
4505fd:	50                   	push   %eax
4505fe:	e8 6d 7b fb ff       	call   0x408170
450603:	33 c9                	xor    %ecx,%ecx
450605:	89 43 08             	mov    %eax,0x8(%ebx)
450608:	ba 02 00 00 00       	mov    $0x2,%edx
45060d:	f7 e2                	mul    %edx
45060f:	0f 90 c1             	seto   %cl
450612:	f7 d9                	neg    %ecx
450614:	0b c8                	or     %eax,%ecx
450616:	51                   	push   %ecx
450617:	e8 da 09 fd ff       	call   0x420ff6
45061c:	8b f0                	mov    %eax,%esi
45061e:	83 c4 04             	add    $0x4,%esp
450621:	8b 43 04             	mov    0x4(%ebx),%eax
450624:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
45062b:	50                   	push   %eax
45062c:	ff 33                	push   (%ebx)
45062e:	56                   	push   %esi
45062f:	e8 4c 0a fd ff       	call   0x421080
450634:	89 33                	mov    %esi,(%ebx)
450636:	83 c4 0c             	add    $0xc,%esp
450639:	8b 75 08             	mov    0x8(%ebp),%esi
45063c:	e9 1a 01 00 00       	jmp    0x45075b
450641:	3d c2 41 00 00       	cmp    $0x41c2,%eax
450646:	73 0d                	jae    0x450655
450648:	dd da                	fstp   %st(2)
45064a:	03 c0                	add    %eax,%eax
45064c:	dd d8                	fstp   %st(0)
45064e:	dd d8                	fstp   %st(0)
450650:	e9 b2 00 00 00       	jmp    0x450707
450655:	3d 00 00 00 02       	cmp    $0x2000000,%eax
45065a:	73 37                	jae    0x450693
45065c:	89 45 0c             	mov    %eax,0xc(%ebp)
45065f:	dd d9                	fstp   %st(1)
450661:	dd d8                	fstp   %st(0)
450663:	db 45 0c             	fildl  0xc(%ebp)
450666:	85 c0                	test   %eax,%eax
450668:	79 06                	jns    0x450670
45066a:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
450670:	dd 5d e8             	fstpl  -0x18(%ebp)
450673:	d9 7d 0e             	fnstcw 0xe(%ebp)
450676:	dc 4d e8             	fmull  -0x18(%ebp)
450679:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
45067d:	0d 00 0c 00 00       	or     $0xc00,%eax
450682:	89 45 ec             	mov    %eax,-0x14(%ebp)
450685:	d9 6d ec             	fldcw  -0x14(%ebp)
450688:	df 7d e8             	fistpll -0x18(%ebp)
45068b:	8b 45 e8             	mov    -0x18(%ebp),%eax
45068e:	d9 6d 0e             	fldcw  0xe(%ebp)
450691:	eb 71                	jmp    0x450704
450693:	dd da                	fstp   %st(2)
450695:	3d 00 00 00 08       	cmp    $0x8000000,%eax
45069a:	73 35                	jae    0x4506d1
45069c:	89 45 0c             	mov    %eax,0xc(%ebp)
45069f:	dd d9                	fstp   %st(1)
4506a1:	db 45 0c             	fildl  0xc(%ebp)
4506a4:	85 c0                	test   %eax,%eax
4506a6:	79 06                	jns    0x4506ae
4506a8:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
4506ae:	dd 5d e8             	fstpl  -0x18(%ebp)
4506b1:	d9 7d 0e             	fnstcw 0xe(%ebp)
4506b4:	dc 4d e8             	fmull  -0x18(%ebp)
4506b7:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
4506bb:	0d 00 0c 00 00       	or     $0xc00,%eax
4506c0:	89 45 ec             	mov    %eax,-0x14(%ebp)
4506c3:	d9 6d ec             	fldcw  -0x14(%ebp)
4506c6:	df 7d e8             	fistpll -0x18(%ebp)
4506c9:	8b 45 e8             	mov    -0x18(%ebp),%eax
4506cc:	d9 6d 0e             	fldcw  0xe(%ebp)
4506cf:	eb 33                	jmp    0x450704
4506d1:	89 45 0c             	mov    %eax,0xc(%ebp)
4506d4:	dd d8                	fstp   %st(0)
4506d6:	db 45 0c             	fildl  0xc(%ebp)
4506d9:	85 c0                	test   %eax,%eax
4506db:	79 06                	jns    0x4506e3
4506dd:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
4506e3:	dd 5d e8             	fstpl  -0x18(%ebp)
4506e6:	d9 7d 0e             	fnstcw 0xe(%ebp)
4506e9:	dc 4d e8             	fmull  -0x18(%ebp)
4506ec:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
4506f0:	0d 00 0c 00 00       	or     $0xc00,%eax
4506f5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4506f8:	d9 6d ec             	fldcw  -0x14(%ebp)
4506fb:	df 7d e8             	fistpll -0x18(%ebp)
4506fe:	8b 45 e8             	mov    -0x18(%ebp),%eax
450701:	d9 6d 0e             	fldcw  0xe(%ebp)
450704:	8b 7d fc             	mov    -0x4(%ebp),%edi
450707:	50                   	push   %eax
450708:	89 43 08             	mov    %eax,0x8(%ebx)
45070b:	e8 60 7a fb ff       	call   0x408170
450710:	33 c9                	xor    %ecx,%ecx
450712:	89 43 08             	mov    %eax,0x8(%ebx)
450715:	ba 02 00 00 00       	mov    $0x2,%edx
45071a:	f7 e2                	mul    %edx
45071c:	0f 90 c1             	seto   %cl
45071f:	f7 d9                	neg    %ecx
450721:	0b c8                	or     %eax,%ecx
450723:	51                   	push   %ecx
450724:	e8 7c 08 fd ff       	call   0x420fa5
450729:	8b 13                	mov    (%ebx),%edx
45072b:	83 c4 04             	add    $0x4,%esp
45072e:	8b c8                	mov    %eax,%ecx
450730:	89 4d 0c             	mov    %ecx,0xc(%ebp)
450733:	85 d2                	test   %edx,%edx
450735:	74 22                	je     0x450759
450737:	8b 43 04             	mov    0x4(%ebx),%eax
45073a:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
450741:	50                   	push   %eax
450742:	52                   	push   %edx
450743:	51                   	push   %ecx
450744:	e8 37 09 fd ff       	call   0x421080
450749:	83 c4 0c             	add    $0xc,%esp
45074c:	ff 33                	push   (%ebx)
45074e:	e8 5d 29 fd ff       	call   0x4230b0
450753:	8b 4d 0c             	mov    0xc(%ebp),%ecx
450756:	83 c4 04             	add    $0x4,%esp
450759:	89 0b                	mov    %ecx,(%ebx)
45075b:	dd 05 10 6f 4b 00    	fldl   0x4b6f10
450761:	dd 05 08 6f 4b 00    	fldl   0x4b6f08
450767:	dd 05 00 6f 4b 00    	fldl   0x4b6f00
45076d:	e9 14 50 fc ff       	jmp    0x415786
450772:	3b fa                	cmp    %edx,%edi
450774:	0f 83 b0 50 fc ff    	jae    0x41582a
45077a:	83 f8 ff             	cmp    $0xffffffff,%eax
45077d:	74 09                	je     0x450788
45077f:	03 c7                	add    %edi,%eax
450781:	3b c2                	cmp    %edx,%eax
450783:	8b 45 0c             	mov    0xc(%ebp),%eax
450786:	76 03                	jbe    0x45078b
450788:	89 45 0c             	mov    %eax,0xc(%ebp)
45078b:	8b 11                	mov    (%ecx),%edx
45078d:	83 fa 01             	cmp    $0x1,%edx
450790:	7e 34                	jle    0x4507c6
450792:	8d 42 ff             	lea    -0x1(%edx),%eax
450795:	89 01                	mov    %eax,(%ecx)
450797:	8d 4d c8             	lea    -0x38(%ebp),%ecx
45079a:	e8 ea 79 fb ff       	call   0x408189
45079f:	8b 75 0c             	mov    0xc(%ebp),%esi
4507a2:	8d 46 01             	lea    0x1(%esi),%eax
4507a5:	50                   	push   %eax
4507a6:	e8 c5 79 fb ff       	call   0x408170
4507ab:	33 c9                	xor    %ecx,%ecx
4507ad:	ba 02 00 00 00       	mov    $0x2,%edx
4507b2:	f7 e2                	mul    %edx
4507b4:	0f 90 c1             	seto   %cl
4507b7:	f7 d9                	neg    %ecx
4507b9:	0b c8                	or     %eax,%ecx
4507bb:	51                   	push   %ecx
4507bc:	e8 35 08 fd ff       	call   0x420ff6
4507c1:	83 c4 04             	add    $0x4,%esp
4507c4:	eb 0f                	jmp    0x4507d5
4507c6:	50                   	push   %eax
4507c7:	8d 4d c8             	lea    -0x38(%ebp),%ecx
4507ca:	e8 b8 78 fb ff       	call   0x408087
4507cf:	8b 45 c8             	mov    -0x38(%ebp),%eax
4507d2:	8b 75 0c             	mov    0xc(%ebp),%esi
4507d5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4507d8:	8b 45 08             	mov    0x8(%ebp),%eax
4507db:	89 75 f8             	mov    %esi,-0x8(%ebp)
4507de:	03 f6                	add    %esi,%esi
4507e0:	56                   	push   %esi
4507e1:	8b 00                	mov    (%eax),%eax
4507e3:	8d 04 78             	lea    (%eax,%edi,2),%eax
4507e6:	8b 7d fc             	mov    -0x4(%ebp),%edi
4507e9:	50                   	push   %eax
4507ea:	57                   	push   %edi
4507eb:	e8 90 08 fd ff       	call   0x421080
4507f0:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4507f3:	83 c4 0c             	add    $0xc,%esp
4507f6:	33 c0                	xor    %eax,%eax
4507f8:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4507fb:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
4507ff:	8b 75 ec             	mov    -0x14(%ebp),%esi
450802:	e9 26 50 fc ff       	jmp    0x41582d
450807:	53                   	push   %ebx
450808:	8d 45 b8             	lea    -0x48(%ebp),%eax
45080b:	8b cb                	mov    %ebx,%ecx
45080d:	50                   	push   %eax
45080e:	e8 10 79 00 00       	call   0x458123
450813:	50                   	push   %eax
450814:	8b cb                	mov    %ebx,%ecx
450816:	e8 8c 79 fb ff       	call   0x4081a7
45081b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
45081e:	e8 41 52 fb ff       	call   0x405a64
450823:	e9 94 00 00 00       	jmp    0x4508bc
450828:	8b 4b 0c             	mov    0xc(%ebx),%ecx
45082b:	8b 01                	mov    (%ecx),%eax
45082d:	83 f8 01             	cmp    $0x1,%eax
450830:	7e 54                	jle    0x450886
450832:	48                   	dec    %eax
450833:	89 01                	mov    %eax,(%ecx)
450835:	8b cb                	mov    %ebx,%ecx
450837:	e8 4d 79 fb ff       	call   0x408189
45083c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45083f:	8b 43 04             	mov    0x4(%ebx),%eax
450842:	41                   	inc    %ecx
450843:	03 c1                	add    %ecx,%eax
450845:	50                   	push   %eax
450846:	e8 25 79 fb ff       	call   0x408170
45084b:	33 c9                	xor    %ecx,%ecx
45084d:	89 43 08             	mov    %eax,0x8(%ebx)
450850:	ba 02 00 00 00       	mov    $0x2,%edx
450855:	f7 e2                	mul    %edx
450857:	0f 90 c1             	seto   %cl
45085a:	f7 d9                	neg    %ecx
45085c:	0b c8                	or     %eax,%ecx
45085e:	51                   	push   %ecx
45085f:	e8 92 07 fd ff       	call   0x420ff6
450864:	8b 4b 04             	mov    0x4(%ebx),%ecx
450867:	83 c4 04             	add    $0x4,%esp
45086a:	8b f0                	mov    %eax,%esi
45086c:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
450873:	51                   	push   %ecx
450874:	ff 33                	push   (%ebx)
450876:	56                   	push   %esi
450877:	e8 04 08 fd ff       	call   0x421080
45087c:	89 33                	mov    %esi,(%ebx)
45087e:	83 c4 0c             	add    $0xc,%esp
450881:	8b 75 ec             	mov    -0x14(%ebp),%esi
450884:	eb 0d                	jmp    0x450893
450886:	8b 43 04             	mov    0x4(%ebx),%eax
450889:	8b cb                	mov    %ebx,%ecx
45088b:	03 c2                	add    %edx,%eax
45088d:	50                   	push   %eax
45088e:	e8 20 74 fb ff       	call   0x407cb3
450893:	8b 45 f8             	mov    -0x8(%ebp),%eax
450896:	8b 4b 04             	mov    0x4(%ebx),%ecx
450899:	03 c0                	add    %eax,%eax
45089b:	50                   	push   %eax
45089c:	8b 03                	mov    (%ebx),%eax
45089e:	57                   	push   %edi
45089f:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4508a2:	50                   	push   %eax
4508a3:	e8 d8 07 fd ff       	call   0x421080
4508a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
4508ab:	83 c4 0c             	add    $0xc,%esp
4508ae:	01 43 04             	add    %eax,0x4(%ebx)
4508b1:	33 d2                	xor    %edx,%edx
4508b3:	8b 4b 04             	mov    0x4(%ebx),%ecx
4508b6:	8b 03                	mov    (%ebx),%eax
4508b8:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
4508bc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4508bf:	e9 7f 4f fc ff       	jmp    0x415843
4508c4:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4508c8:	0f 84 79 52 fc ff    	je     0x415b47
4508ce:	e9 57 50 fc ff       	jmp    0x41592a
4508d3:	8b 46 1c             	mov    0x1c(%esi),%eax
4508d6:	39 45 e0             	cmp    %eax,-0x20(%ebp)
4508d9:	75 08                	jne    0x4508e3
4508db:	8d 50 01             	lea    0x1(%eax),%edx
4508de:	e9 b9 50 fc ff       	jmp    0x41599c
4508e3:	c7 46 2c 10 00 00 10 	movl   $0x10000010,0x2c(%esi)
4508ea:	e9 ad 50 fc ff       	jmp    0x41599c
4508ef:	ff 45 f0             	incl   -0x10(%ebp)
4508f2:	8d 45 f0             	lea    -0x10(%ebp),%eax
4508f5:	6a 01                	push   $0x1
4508f7:	50                   	push   %eax
4508f8:	8b ce                	mov    %esi,%ecx
4508fa:	c7 46 2c 00 00 00 00 	movl   $0x0,0x2c(%esi)
450901:	e8 fe 4c fc ff       	call   0x415604
450906:	8b c8                	mov    %eax,%ecx
450908:	e9 92 50 fc ff       	jmp    0x41599f
45090d:	48                   	dec    %eax
45090e:	89 01                	mov    %eax,(%ecx)
450910:	8d 4d cc             	lea    -0x34(%ebp),%ecx
450913:	e8 71 78 fb ff       	call   0x408189
450918:	8d 43 01             	lea    0x1(%ebx),%eax
45091b:	50                   	push   %eax
45091c:	e8 4f 78 fb ff       	call   0x408170
450921:	33 c9                	xor    %ecx,%ecx
450923:	89 45 d4             	mov    %eax,-0x2c(%ebp)
450926:	ba 02 00 00 00       	mov    $0x2,%edx
45092b:	f7 e2                	mul    %edx
45092d:	0f 90 c1             	seto   %cl
450930:	f7 d9                	neg    %ecx
450932:	0b c8                	or     %eax,%ecx
450934:	51                   	push   %ecx
450935:	e8 bc 06 fd ff       	call   0x420ff6
45093a:	83 c4 04             	add    $0x4,%esp
45093d:	e9 ee 51 fc ff       	jmp    0x415b30
450942:	57                   	push   %edi
450943:	8d 45 ac             	lea    -0x54(%ebp),%eax
450946:	8b cf                	mov    %edi,%ecx
450948:	50                   	push   %eax
450949:	e8 d5 77 00 00       	call   0x458123
45094e:	50                   	push   %eax
45094f:	8b cf                	mov    %edi,%ecx
450951:	e8 51 78 fb ff       	call   0x4081a7
450956:	8d 4d ac             	lea    -0x54(%ebp),%ecx
450959:	e8 06 51 fb ff       	call   0x405a64
45095e:	e9 08 51 fc ff       	jmp    0x415a6b
450963:	48                   	dec    %eax
450964:	89 01                	mov    %eax,(%ecx)
450966:	8b cf                	mov    %edi,%ecx
450968:	e8 1c 78 fb ff       	call   0x408189
45096d:	8b 47 04             	mov    0x4(%edi),%eax
450970:	40                   	inc    %eax
450971:	03 c3                	add    %ebx,%eax
450973:	50                   	push   %eax
450974:	e8 f7 77 fb ff       	call   0x408170
450979:	33 c9                	xor    %ecx,%ecx
45097b:	89 47 08             	mov    %eax,0x8(%edi)
45097e:	ba 02 00 00 00       	mov    $0x2,%edx
450983:	f7 e2                	mul    %edx
450985:	0f 90 c1             	seto   %cl
450988:	f7 d9                	neg    %ecx
45098a:	0b c8                	or     %eax,%ecx
45098c:	51                   	push   %ecx
45098d:	e8 64 06 fd ff       	call   0x420ff6
450992:	8b f0                	mov    %eax,%esi
450994:	83 c4 04             	add    $0x4,%esp
450997:	8b 47 04             	mov    0x4(%edi),%eax
45099a:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
4509a1:	50                   	push   %eax
4509a2:	ff 37                	push   (%edi)
4509a4:	56                   	push   %esi
4509a5:	e8 d6 06 fd ff       	call   0x421080
4509aa:	89 37                	mov    %esi,(%edi)
4509ac:	83 c4 0c             	add    $0xc,%esp
4509af:	8b 75 ec             	mov    -0x14(%ebp),%esi
4509b2:	e9 8e 50 fc ff       	jmp    0x415a45
4509b7:	3d c2 41 00 00       	cmp    $0x41c2,%eax
4509bc:	73 07                	jae    0x4509c5
4509be:	03 c0                	add    %eax,%eax
4509c0:	e9 ba 00 00 00       	jmp    0x450a7f
4509c5:	3d 00 00 00 02       	cmp    $0x2000000,%eax
4509ca:	73 39                	jae    0x450a05
4509cc:	89 45 e0             	mov    %eax,-0x20(%ebp)
4509cf:	db 45 e0             	fildl  -0x20(%ebp)
4509d2:	85 c0                	test   %eax,%eax
4509d4:	79 06                	jns    0x4509dc
4509d6:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
4509dc:	dd 5d dc             	fstpl  -0x24(%ebp)
4509df:	dd 45 dc             	fldl   -0x24(%ebp)
4509e2:	dc 0d 10 6f 4b 00    	fmull  0x4b6f10
4509e8:	d9 7d f6             	fnstcw -0xa(%ebp)
4509eb:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
4509ef:	0d 00 0c 00 00       	or     $0xc00,%eax
4509f4:	89 45 e0             	mov    %eax,-0x20(%ebp)
4509f7:	d9 6d e0             	fldcw  -0x20(%ebp)
4509fa:	df 7d dc             	fistpll -0x24(%ebp)