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)
4509fd:	8b 45 dc             	mov    -0x24(%ebp),%eax
450a00:	d9 6d f6             	fldcw  -0xa(%ebp)
450a03:	eb 77                	jmp    0x450a7c
450a05:	3d 00 00 00 08       	cmp    $0x8000000,%eax
450a0a:	73 39                	jae    0x450a45
450a0c:	89 45 e0             	mov    %eax,-0x20(%ebp)
450a0f:	db 45 e0             	fildl  -0x20(%ebp)
450a12:	85 c0                	test   %eax,%eax
450a14:	79 06                	jns    0x450a1c
450a16:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
450a1c:	dd 5d dc             	fstpl  -0x24(%ebp)
450a1f:	dd 45 dc             	fldl   -0x24(%ebp)
450a22:	dc 0d 08 6f 4b 00    	fmull  0x4b6f08
450a28:	d9 7d f6             	fnstcw -0xa(%ebp)
450a2b:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
450a2f:	0d 00 0c 00 00       	or     $0xc00,%eax
450a34:	89 45 e0             	mov    %eax,-0x20(%ebp)
450a37:	d9 6d e0             	fldcw  -0x20(%ebp)
450a3a:	df 7d dc             	fistpll -0x24(%ebp)
450a3d:	8b 45 dc             	mov    -0x24(%ebp),%eax
450a40:	d9 6d f6             	fldcw  -0xa(%ebp)
450a43:	eb 37                	jmp    0x450a7c
450a45:	89 45 e0             	mov    %eax,-0x20(%ebp)
450a48:	db 45 e0             	fildl  -0x20(%ebp)
450a4b:	85 c0                	test   %eax,%eax
450a4d:	79 06                	jns    0x450a55
450a4f:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
450a55:	dd 5d dc             	fstpl  -0x24(%ebp)
450a58:	dd 45 dc             	fldl   -0x24(%ebp)
450a5b:	dc 0d 00 6f 4b 00    	fmull  0x4b6f00
450a61:	d9 7d f6             	fnstcw -0xa(%ebp)
450a64:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
450a68:	0d 00 0c 00 00       	or     $0xc00,%eax
450a6d:	89 45 e0             	mov    %eax,-0x20(%ebp)
450a70:	d9 6d e0             	fldcw  -0x20(%ebp)
450a73:	df 7d dc             	fistpll -0x24(%ebp)
450a76:	8b 45 dc             	mov    -0x24(%ebp),%eax
450a79:	d9 6d f6             	fldcw  -0xa(%ebp)
450a7c:	8b 5d d0             	mov    -0x30(%ebp),%ebx
450a7f:	50                   	push   %eax
450a80:	89 47 08             	mov    %eax,0x8(%edi)
450a83:	e8 e8 76 fb ff       	call   0x408170
450a88:	33 c9                	xor    %ecx,%ecx
450a8a:	89 47 08             	mov    %eax,0x8(%edi)
450a8d:	ba 02 00 00 00       	mov    $0x2,%edx
450a92:	f7 e2                	mul    %edx
450a94:	0f 90 c1             	seto   %cl
450a97:	f7 d9                	neg    %ecx
450a99:	0b c8                	or     %eax,%ecx
450a9b:	51                   	push   %ecx
450a9c:	e8 04 05 fd ff       	call   0x420fa5
450aa1:	8b 17                	mov    (%edi),%edx
450aa3:	83 c4 04             	add    $0x4,%esp
450aa6:	8b c8                	mov    %eax,%ecx
450aa8:	89 4d e0             	mov    %ecx,-0x20(%ebp)
450aab:	85 d2                	test   %edx,%edx
450aad:	74 22                	je     0x450ad1
450aaf:	8b 47 04             	mov    0x4(%edi),%eax
450ab2:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
450ab9:	50                   	push   %eax
450aba:	52                   	push   %edx
450abb:	51                   	push   %ecx
450abc:	e8 bf 05 fd ff       	call   0x421080
450ac1:	83 c4 0c             	add    $0xc,%esp
450ac4:	ff 37                	push   (%edi)
450ac6:	e8 e5 25 fd ff       	call   0x4230b0
450acb:	8b 4d e0             	mov    -0x20(%ebp),%ecx
450ace:	83 c4 04             	add    $0x4,%esp
450ad1:	89 0f                	mov    %ecx,(%edi)
450ad3:	e9 6d 4f fc ff       	jmp    0x415a45
450ad8:	57                   	push   %edi
450ad9:	8d 45 9c             	lea    -0x64(%ebp),%eax
450adc:	8b cf                	mov    %edi,%ecx
450ade:	50                   	push   %eax
450adf:	e8 3f 76 00 00       	call   0x458123
450ae4:	50                   	push   %eax
450ae5:	8b cf                	mov    %edi,%ecx
450ae7:	e8 bb 76 fb ff       	call   0x4081a7
450aec:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
450aef:	e8 70 4f fb ff       	call   0x405a64
450af4:	e9 d8 4f fc ff       	jmp    0x415ad1
450af9:	48                   	dec    %eax
450afa:	89 01                	mov    %eax,(%ecx)
450afc:	8b cf                	mov    %edi,%ecx
450afe:	e8 86 76 fb ff       	call   0x408189
450b03:	8b 47 04             	mov    0x4(%edi),%eax
450b06:	40                   	inc    %eax
450b07:	03 c3                	add    %ebx,%eax
450b09:	50                   	push   %eax
450b0a:	e8 61 76 fb ff       	call   0x408170
450b0f:	33 c9                	xor    %ecx,%ecx
450b11:	89 47 08             	mov    %eax,0x8(%edi)
450b14:	ba 02 00 00 00       	mov    $0x2,%edx
450b19:	f7 e2                	mul    %edx
450b1b:	0f 90 c1             	seto   %cl
450b1e:	f7 d9                	neg    %ecx
450b20:	0b c8                	or     %eax,%ecx
450b22:	51                   	push   %ecx
450b23:	e8 ce 04 fd ff       	call   0x420ff6
450b28:	8b f0                	mov    %eax,%esi
450b2a:	83 c4 04             	add    $0x4,%esp
450b2d:	8b 47 04             	mov    0x4(%edi),%eax
450b30:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
450b37:	50                   	push   %eax
450b38:	ff 37                	push   (%edi)
450b3a:	56                   	push   %esi
450b3b:	e8 40 05 fd ff       	call   0x421080
450b40:	89 37                	mov    %esi,(%edi)
450b42:	83 c4 0c             	add    $0xc,%esp
450b45:	8b 75 ec             	mov    -0x14(%ebp),%esi
450b48:	e9 5e 4f fc ff       	jmp    0x415aab
450b4d:	3d c2 41 00 00       	cmp    $0x41c2,%eax
450b52:	73 07                	jae    0x450b5b
450b54:	03 c0                	add    %eax,%eax
450b56:	e9 b7 00 00 00       	jmp    0x450c12
450b5b:	3d 00 00 00 02       	cmp    $0x2000000,%eax
450b60:	73 39                	jae    0x450b9b
450b62:	89 45 e0             	mov    %eax,-0x20(%ebp)
450b65:	db 45 e0             	fildl  -0x20(%ebp)
450b68:	85 c0                	test   %eax,%eax
450b6a:	79 06                	jns    0x450b72
450b6c:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
450b72:	dd 5d dc             	fstpl  -0x24(%ebp)
450b75:	dd 45 dc             	fldl   -0x24(%ebp)
450b78:	dc 0d 10 6f 4b 00    	fmull  0x4b6f10
450b7e:	d9 7d f6             	fnstcw -0xa(%ebp)
450b81:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
450b85:	0d 00 0c 00 00       	or     $0xc00,%eax
450b8a:	89 45 e0             	mov    %eax,-0x20(%ebp)
450b8d:	d9 6d e0             	fldcw  -0x20(%ebp)
450b90:	df 7d dc             	fistpll -0x24(%ebp)
450b93:	8b 45 dc             	mov    -0x24(%ebp),%eax
450b96:	d9 6d f6             	fldcw  -0xa(%ebp)
450b99:	eb 77                	jmp    0x450c12
450b9b:	3d 00 00 00 08       	cmp    $0x8000000,%eax
450ba0:	73 39                	jae    0x450bdb
450ba2:	89 45 e0             	mov    %eax,-0x20(%ebp)
450ba5:	db 45 e0             	fildl  -0x20(%ebp)
450ba8:	85 c0                	test   %eax,%eax
450baa:	79 06                	jns    0x450bb2
450bac:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
450bb2:	dd 5d dc             	fstpl  -0x24(%ebp)
450bb5:	dd 45 dc             	fldl   -0x24(%ebp)
450bb8:	dc 0d 08 6f 4b 00    	fmull  0x4b6f08
450bbe:	d9 7d f6             	fnstcw -0xa(%ebp)
450bc1:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
450bc5:	0d 00 0c 00 00       	or     $0xc00,%eax
450bca:	89 45 e0             	mov    %eax,-0x20(%ebp)
450bcd:	d9 6d e0             	fldcw  -0x20(%ebp)
450bd0:	df 7d dc             	fistpll -0x24(%ebp)
450bd3:	8b 45 dc             	mov    -0x24(%ebp),%eax
450bd6:	d9 6d f6             	fldcw  -0xa(%ebp)
450bd9:	eb 37                	jmp    0x450c12
450bdb:	89 45 e0             	mov    %eax,-0x20(%ebp)
450bde:	db 45 e0             	fildl  -0x20(%ebp)
450be1:	85 c0                	test   %eax,%eax
450be3:	79 06                	jns    0x450beb
450be5:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
450beb:	dd 5d dc             	fstpl  -0x24(%ebp)
450bee:	dd 45 dc             	fldl   -0x24(%ebp)
450bf1:	dc 0d 00 6f 4b 00    	fmull  0x4b6f00
450bf7:	d9 7d f6             	fnstcw -0xa(%ebp)
450bfa:	0f b7 45 f6          	movzwl -0xa(%ebp),%eax
450bfe:	0d 00 0c 00 00       	or     $0xc00,%eax
450c03:	89 45 e0             	mov    %eax,-0x20(%ebp)
450c06:	d9 6d e0             	fldcw  -0x20(%ebp)
450c09:	df 7d dc             	fistpll -0x24(%ebp)
450c0c:	8b 45 dc             	mov    -0x24(%ebp),%eax
450c0f:	d9 6d f6             	fldcw  -0xa(%ebp)
450c12:	50                   	push   %eax
450c13:	89 47 08             	mov    %eax,0x8(%edi)
450c16:	e8 55 75 fb ff       	call   0x408170
450c1b:	33 c9                	xor    %ecx,%ecx
450c1d:	89 47 08             	mov    %eax,0x8(%edi)
450c20:	ba 02 00 00 00       	mov    $0x2,%edx