5987f4:	8d 54 24 10          	lea    0x10(%esp),%edx
5987f8:	b9 10 00 00 00       	mov    $0x10,%ecx
5987fd:	8b c7                	mov    %edi,%eax
5987ff:	8b 28                	mov    (%eax),%ebp
598801:	ff 55 08             	call   *0x8(%ebp)
598804:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
598809:	75 29                	jne    0x598834
59880b:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
598810:	74 22                	je     0x598834
598812:	8b c7                	mov    %edi,%eax
598814:	e8 9f 5e e8 ff       	call   0x41e6b8
598819:	52                   	push   %edx
59881a:	50                   	push   %eax
59881b:	8b 44 24 24          	mov    0x24(%esp),%eax
59881f:	33 d2                	xor    %edx,%edx
598821:	3b 54 24 04          	cmp    0x4(%esp),%edx
598825:	75 09                	jne    0x598830
598827:	3b 04 24             	cmp    (%esp),%eax
59882a:	5a                   	pop    %edx
59882b:	58                   	pop    %eax
59882c:	73 17                	jae    0x598845
59882e:	eb 04                	jmp    0x598834
598830:	5a                   	pop    %edx
598831:	58                   	pop    %eax
598832:	7d 11                	jge    0x598845
598834:	ff 74 24 0c          	push   0xc(%esp)
598838:	ff 74 24 0c          	push   0xc(%esp)
59883c:	8b c7                	mov    %edi,%eax
59883e:	e8 95 5e e8 ff       	call   0x41e6d8
598843:	eb 14                	jmp    0x598859
598845:	4e                   	dec    %esi
598846:	75 ac                	jne    0x5987f4
598848:	b3 01                	mov    $0x1,%bl
59884a:	ff 74 24 0c          	push   0xc(%esp)
59884e:	ff 74 24 0c          	push   0xc(%esp)
598852:	8b c7                	mov    %edi,%eax
598854:	e8 7f 5e e8 ff       	call   0x41e6d8
598859:	8b c3                	mov    %ebx,%eax
59885b:	83 c4 20             	add    $0x20,%esp
59885e:	5d                   	pop    %ebp
59885f:	5f                   	pop    %edi
598860:	5e                   	pop    %esi
598861:	5b                   	pop    %ebx
598862:	c3                   	ret
598863:	90                   	nop
598864:	53                   	push   %ebx
598865:	56                   	push   %esi
598866:	83 c4 f0             	add    $0xfffffff0,%esp
598869:	8b d8                	mov    %eax,%ebx
59886b:	8b c3                	mov    %ebx,%eax
59886d:	e8 46 5e e8 ff       	call   0x41e6b8
598872:	89 04 24             	mov    %eax,(%esp)
598875:	89 54 24 04          	mov    %edx,0x4(%esp)
598879:	8d 54 24 08          	lea    0x8(%esp),%edx
59887d:	b9 06 00 00 00       	mov    $0x6,%ecx
598882:	8b c3                	mov    %ebx,%eax
598884:	8b 30                	mov    (%eax),%esi
598886:	ff 56 08             	call   *0x8(%esi)
598889:	0f b7 74 24 0c       	movzwl 0xc(%esp),%esi
59888e:	ff 74 24 04          	push   0x4(%esp)
598892:	ff 74 24 04          	push   0x4(%esp)
598896:	8b c3                	mov    %ebx,%eax
598898:	e8 3b 5e e8 ff       	call   0x41e6d8
59889d:	8b c6                	mov    %esi,%eax
59889f:	83 c4 10             	add    $0x10,%esp
5988a2:	5e                   	pop    %esi
5988a3:	5b                   	pop    %ebx
5988a4:	c3                   	ret
5988a5:	8d 40 00             	lea    0x0(%eax),%eax
5988a8:	55                   	push   %ebp
5988a9:	8b ec                	mov    %esp,%ebp
5988ab:	81 c4 5c fb ff ff    	add    $0xfffffb5c,%esp
5988b1:	53                   	push   %ebx
5988b2:	56                   	push   %esi
5988b3:	57                   	push   %edi
5988b4:	8b f1                	mov    %ecx,%esi
5988b6:	89 55 f8             	mov    %edx,-0x8(%ebp)
5988b9:	89 45 fc             	mov    %eax,-0x4(%ebp)
5988bc:	8b 45 fc             	mov    -0x4(%ebp),%eax
5988bf:	e8 f4 5d e8 ff       	call   0x41e6b8
5988c4:	89 45 e8             	mov    %eax,-0x18(%ebp)
5988c7:	89 55 ec             	mov    %edx,-0x14(%ebp)
5988ca:	8d 55 f2             	lea    -0xe(%ebp),%edx
5988cd:	b9 06 00 00 00       	mov    $0x6,%ecx
5988d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
5988d5:	8b 18                	mov    (%eax),%ebx
5988d7:	ff 53 08             	call   *0x8(%ebx)
5988da:	66 81 7d f2 42 4d    	cmpw   $0x4d42,-0xe(%ebp)
5988e0:	75 3b                	jne    0x59891d
5988e2:	ff 75 ec             	push   -0x14(%ebp)
5988e5:	ff 75 e8             	push   -0x18(%ebp)
5988e8:	8b 45 fc             	mov    -0x4(%ebp),%eax
5988eb:	e8 e8 5d e8 ff       	call   0x41e6d8
5988f0:	56                   	push   %esi
5988f1:	8b 45 10             	mov    0x10(%ebp),%eax
5988f4:	50                   	push   %eax
5988f5:	8a 45 14             	mov    0x14(%ebp),%al
5988f8:	50                   	push   %eax
5988f9:	6a 00                	push   $0x0
5988fb:	8b 45 0c             	mov    0xc(%ebp),%eax
5988fe:	50                   	push   %eax
5988ff:	8a 45 08             	mov    0x8(%ebp),%al
598902:	50                   	push   %eax
598903:	8b 45 fc             	mov    -0x4(%ebp),%eax
598906:	e8 e1 5d e8 ff       	call   0x41e6ec
59890b:	8b c8                	mov    %eax,%ecx
59890d:	8b 55 f8             	mov    -0x8(%ebp),%edx
598910:	8b 45 fc             	mov    -0x4(%ebp),%eax
598913:	e8 78 de ff ff       	call   0x596790
598918:	e9 d4 0b 00 00       	jmp    0x5994f1
59891d:	8b 06                	mov    (%esi),%eax
59891f:	8b 80 04 01 00 00    	mov    0x104(%eax),%eax
598925:	0f b7 55 f6          	movzwl -0xa(%ebp),%edx
598929:	3b c2                	cmp    %edx,%eax
59892b:	0f 8d c0 0b 00 00    	jge    0x5994f1
598931:	8b 06                	mov    (%esi),%eax
598933:	83 b8 04 01 00 00 00 	cmpl   $0x0,0x104(%eax)
59893a:	0f 8c b1 0b 00 00    	jl     0x5994f1
598940:	8b 45 fc             	mov    -0x4(%ebp),%eax
598943:	e8 70 5d e8 ff       	call   0x41e6b8
598948:	89 45 e0             	mov    %eax,-0x20(%ebp)
59894b:	89 55 e4             	mov    %edx,-0x1c(%ebp)
59894e:	8b 06                	mov    (%esi),%eax
598950:	05 b0 03 00 00       	add    $0x3b0,%eax
598955:	33 c9                	xor    %ecx,%ecx
598957:	ba 80 00 00 00       	mov    $0x80,%edx
59895c:	e8 df a8 e6 ff       	call   0x403240
598961:	0f b7 5d f6          	movzwl -0xa(%ebp),%ebx
598965:	4b                   	dec    %ebx
598966:	85 db                	test   %ebx,%ebx
598968:	0f 8c 96 00 00 00    	jl     0x598a04
59896e:	43                   	inc    %ebx
59896f:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
598976:	83 7d dc 10          	cmpl   $0x10,-0x24(%ebp)
59897a:	0f 84 84 00 00 00    	je     0x598a04
598980:	8d 55 88             	lea    -0x78(%ebp),%edx
598983:	b9 10 00 00 00       	mov    $0x10,%ecx
598988:	8b 45 fc             	mov    -0x4(%ebp),%eax
59898b:	8b 38                	mov    (%eax),%edi
59898d:	ff 57 08             	call   *0x8(%edi)
598990:	8b 06                	mov    (%esi),%eax
598992:	8b 55 dc             	mov    -0x24(%ebp),%edx
598995:	33 c9                	xor    %ecx,%ecx
598997:	8a 4d 88             	mov    -0x78(%ebp),%cl
59899a:	89 8c d0 b0 03 00 00 	mov    %ecx,0x3b0(%eax,%edx,8)
5989a1:	8b 06                	mov    (%esi),%eax
5989a3:	8b 55 dc             	mov    -0x24(%ebp),%edx
5989a6:	33 c9                	xor    %ecx,%ecx
5989a8:	8a 4d 89             	mov    -0x77(%ebp),%cl
5989ab:	89 8c d0 b4 03 00 00 	mov    %ecx,0x3b4(%eax,%edx,8)
5989b2:	66 8b 45 8e          	mov    -0x72(%ebp),%ax
5989b6:	66 85 c0             	test   %ax,%ax
5989b9:	74 11                	je     0x5989cc
5989bb:	8b 16                	mov    (%esi),%edx
5989bd:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5989c0:	0f b7 c0             	movzwl %ax,%eax
5989c3:	89 84 8a 30 04 00 00 	mov    %eax,0x430(%edx,%ecx,4)
5989ca:	eb 2e                	jmp    0x5989fa
5989cc:	80 7d 8a 00          	cmpb   $0x0,-0x76(%ebp)
5989d0:	74 18                	je     0x5989ea
5989d2:	33 c0                	xor    %eax,%eax
5989d4:	8a 45 8a             	mov    -0x76(%ebp),%al
5989d7:	e8 d8 80 05 00       	call   0x5f0ab4
5989dc:	8b 16                	mov    (%esi),%edx
5989de:	8b 4d dc             	mov    -0x24(%ebp),%ecx
5989e1:	89 84 8a 30 04 00 00 	mov    %eax,0x430(%edx,%ecx,4)
5989e8:	eb 10                	jmp    0x5989fa
5989ea:	8b 06                	mov    (%esi),%eax
5989ec:	8b 55 dc             	mov    -0x24(%ebp),%edx
5989ef:	c7 84 90 30 04 00 00 	movl   $0x18,0x430(%eax,%edx,4)
5989f6:	18 00 00 00
5989fa:	ff 45 dc             	incl   -0x24(%ebp)
5989fd:	4b                   	dec    %ebx
5989fe:	0f 85 72 ff ff ff    	jne    0x598976
598a04:	ff 75 e4             	push   -0x1c(%ebp)
598a07:	ff 75 e0             	push   -0x20(%ebp)
598a0a:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a0d:	e8 c6 5c e8 ff       	call   0x41e6d8
598a12:	0f b7 5d f6          	movzwl -0xa(%ebp),%ebx
598a16:	4b                   	dec    %ebx
598a17:	85 db                	test   %ebx,%ebx
598a19:	7c 2b                	jl     0x598a46
598a1b:	43                   	inc    %ebx
598a1c:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
598a23:	8d 55 88             	lea    -0x78(%ebp),%edx
598a26:	b9 10 00 00 00       	mov    $0x10,%ecx
598a2b:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a2e:	8b 38                	mov    (%eax),%edi
598a30:	ff 57 08             	call   *0x8(%edi)
598a33:	8b 06                	mov    (%esi),%eax
598a35:	8b 80 04 01 00 00    	mov    0x104(%eax),%eax
598a3b:	3b 45 dc             	cmp    -0x24(%ebp),%eax
598a3e:	74 06                	je     0x598a46
598a40:	ff 45 dc             	incl   -0x24(%ebp)
598a43:	4b                   	dec    %ebx
598a44:	75 dd                	jne    0x598a23
598a46:	8b 45 94             	mov    -0x6c(%ebp),%eax
598a49:	33 d2                	xor    %edx,%edx
598a4b:	03 45 e8             	add    -0x18(%ebp),%eax
598a4e:	13 55 ec             	adc    -0x14(%ebp),%edx
598a51:	52                   	push   %edx
598a52:	50                   	push   %eax
598a53:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a56:	e8 7d 5c e8 ff       	call   0x41e6d8
598a5b:	8d 95 60 ff ff ff    	lea    -0xa0(%ebp),%edx
598a61:	b9 28 00 00 00       	mov    $0x28,%ecx
598a66:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a69:	8b 18                	mov    (%eax),%ebx
598a6b:	ff 53 08             	call   *0x8(%ebx)
598a6e:	83 bd 78 ff ff ff 00 	cmpl   $0x0,-0x88(%ebp)
598a75:	7e 24                	jle    0x598a9b
598a77:	db 85 78 ff ff ff    	fildl  -0x88(%ebp)
598a7d:	d8 35 fc 94 59 00    	fdivs  0x5994fc
598a83:	db 2d 00 95 59 00    	fldt   0x599500
598a89:	de c9                	fmulp  %st,%st(1)
598a8b:	e8 30 a2 e6 ff       	call   0x402cc0
598a90:	8b d0                	mov    %eax,%edx
598a92:	8b 06                	mov    (%esi),%eax
598a94:	e8 23 4c 03 00       	call   0x5cd6bc
598a99:	eb 0f                	jmp    0x598aaa
598a9b:	8b 15 9c 71 6a 00    	mov    0x6a719c,%edx
598aa1:	8b 12                	mov    (%edx),%edx
598aa3:	8b 06                	mov    (%esi),%eax
598aa5:	e8 12 4c 03 00       	call   0x5cd6bc
598aaa:	83 bd 7c ff ff ff 00 	cmpl   $0x0,-0x84(%ebp)
598ab1:	7e 24                	jle    0x598ad7
598ab3:	db 85 7c ff ff ff    	fildl  -0x84(%ebp)
598ab9:	d8 35 fc 94 59 00    	fdivs  0x5994fc
598abf:	db 2d 00 95 59 00    	fldt   0x599500
598ac5:	de c9                	fmulp  %st,%st(1)
598ac7:	e8 f4 a1 e6 ff       	call   0x402cc0
598acc:	8b d0                	mov    %eax,%edx
598ace:	8b 06                	mov    (%esi),%eax
598ad0:	e8 17 4c 03 00       	call   0x5cd6ec
598ad5:	eb 0f                	jmp    0x598ae6
598ad7:	8b 15 00 71 6a 00    	mov    0x6a7100,%edx
598add:	8b 12                	mov    (%edx),%edx
598adf:	8b 06                	mov    (%esi),%eax
598ae1:	e8 06 4c 03 00       	call   0x5cd6ec
598ae6:	33 c0                	xor    %eax,%eax
598ae8:	89 45 cc             	mov    %eax,-0x34(%ebp)
598aeb:	66 83 7d 8e 00       	cmpw   $0x0,-0x72(%ebp)
598af0:	76 07                	jbe    0x598af9
598af2:	0f b7 45 8e          	movzwl -0x72(%ebp),%eax
598af6:	89 45 cc             	mov    %eax,-0x34(%ebp)
598af9:	66 83 bd 6e ff ff ff 	cmpw   $0x0,-0x92(%ebp)
598b00:	00
598b01:	76 0a                	jbe    0x598b0d
598b03:	0f b7 85 6e ff ff ff 	movzwl -0x92(%ebp),%eax
598b0a:	89 45 cc             	mov    %eax,-0x34(%ebp)
598b0d:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
598b11:	75 23                	jne    0x598b36
598b13:	80 7d 8a 00          	cmpb   $0x0,-0x76(%ebp)
598b17:	76 0f                	jbe    0x598b28
598b19:	33 c0                	xor    %eax,%eax
598b1b:	8a 45 8a             	mov    -0x76(%ebp),%al
598b1e:	e8 91 7f 05 00       	call   0x5f0ab4
598b23:	89 45 cc             	mov    %eax,-0x34(%ebp)
598b26:	eb 0e                	jmp    0x598b36
598b28:	8b 45 10             	mov    0x10(%ebp),%eax
598b2b:	8b 40 28             	mov    0x28(%eax),%eax
598b2e:	c6 00 01             	movb   $0x1,(%eax)
598b31:	e9 bb 09 00 00       	jmp    0x5994f1
598b36:	8b 4d cc             	mov    -0x34(%ebp),%ecx
598b39:	b8 01 00 00 00       	mov    $0x1,%eax
598b3e:	d3 e0                	shl    %cl,%eax
598b40:	89 45 bc             	mov    %eax,-0x44(%ebp)
598b43:	83 7d cc 08          	cmpl   $0x8,-0x34(%ebp)
598b47:	7f 13                	jg     0x598b5c
598b49:	8b 06                	mov    (%esi),%eax
598b4b:	8b 55 cc             	mov    -0x34(%ebp),%edx
598b4e:	89 50 08             	mov    %edx,0x8(%eax)
598b51:	8b 06                	mov    (%esi),%eax
598b53:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
598b5a:	eb 23                	jmp    0x598b7f
598b5c:	8b 06                	mov    (%esi),%eax
598b5e:	c7 40 08 08 00 00 00 	movl   $0x8,0x8(%eax)
598b65:	83 7d cc 20          	cmpl   $0x20,-0x34(%ebp)
598b69:	75 0b                	jne    0x598b76
598b6b:	8b 06                	mov    (%esi),%eax
598b6d:	c7 40 10 04 00 00 00 	movl   $0x4,0x10(%eax)
598b74:	eb 09                	jmp    0x598b7f
598b76:	8b 06                	mov    (%esi),%eax
598b78:	c7 40 10 03 00 00 00 	movl   $0x3,0x10(%eax)
598b7f:	33 c0                	xor    %eax,%eax
598b81:	8a 45 88             	mov    -0x78(%ebp),%al
598b84:	89 45 b4             	mov    %eax,-0x4c(%ebp)
598b87:	33 c0                	xor    %eax,%eax
598b89:	8a 45 89             	mov    -0x77(%ebp),%al
598b8c:	89 45 b8             	mov    %eax,-0x48(%ebp)
598b8f:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
598b93:	75 09                	jne    0x598b9e
598b95:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
598b9b:	89 45 b4             	mov    %eax,-0x4c(%ebp)
598b9e:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
598ba2:	75 0b                	jne    0x598baf
598ba4:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
598baa:	d1 e8                	shr    $1,%eax
598bac:	89 45 b8             	mov    %eax,-0x48(%ebp)
598baf:	33 d2                	xor    %edx,%edx
598bb1:	8a 55 88             	mov    -0x78(%ebp),%dl
598bb4:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
598bba:	3b d0                	cmp    %eax,%edx
598bbc:	74 2b                	je     0x598be9
598bbe:	80 7d 88 00          	cmpb   $0x0,-0x78(%ebp)
598bc2:	74 25                	je     0x598be9
598bc4:	85 c0                	test   %eax,%eax
598bc6:	74 21                	je     0x598be9
598bc8:	3d 00 08 00 00       	cmp    $0x800,%eax
598bcd:	7d 1a                	jge    0x598be9
598bcf:	81 bd 68 ff ff ff 00 	cmpl   $0x800,-0x98(%ebp)
598bd6:	08 00 00
598bd9:	7d 0e                	jge    0x598be9
598bdb:	89 45 b4             	mov    %eax,-0x4c(%ebp)
598bde:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
598be4:	d1 e8                	shr    $1,%eax
598be6:	89 45 b8             	mov    %eax,-0x48(%ebp)
598be9:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598bec:	f7 6d cc             	imull  -0x34(%ebp)
598bef:	83 c0 1f             	add    $0x1f,%eax
598bf2:	c1 e8 05             	shr    $0x5,%eax
598bf5:	c1 e0 02             	shl    $0x2,%eax
598bf8:	89 45 d4             	mov    %eax,-0x2c(%ebp)
598bfb:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598bfe:	83 c0 1f             	add    $0x1f,%eax
598c01:	c1 e8 05             	shr    $0x5,%eax
598c04:	c1 e0 02             	shl    $0x2,%eax
598c07:	89 45 a8             	mov    %eax,-0x58(%ebp)
598c0a:	8b 06                	mov    (%esi),%eax
598c0c:	83 b8 a8 03 00 00 00 	cmpl   $0x0,0x3a8(%eax)
598c13:	74 21                	je     0x598c36
598c15:	8b 06                	mov    (%esi),%eax
598c17:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
598c1d:	e8 aa 9b e6 ff       	call   0x4027cc
598c22:	8b 06                	mov    (%esi),%eax
598c24:	33 d2                	xor    %edx,%edx
598c26:	89 90 a8 03 00 00    	mov    %edx,0x3a8(%eax)
598c2c:	8b 06                	mov    (%esi),%eax
598c2e:	33 d2                	xor    %edx,%edx
598c30:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
598c36:	83 7d cc 08          	cmpl   $0x8,-0x34(%ebp)
598c3a:	0f 8f 87 00 00 00    	jg     0x598cc7
598c40:	8b 4d bc             	mov    -0x44(%ebp),%ecx
598c43:	c1 e1 02             	shl    $0x2,%ecx
598c46:	8d 95 60 fb ff ff    	lea    -0x4a0(%ebp),%edx
598c4c:	8b 45 fc             	mov    -0x4(%ebp),%eax
598c4f:	8b 18                	mov    (%eax),%ebx
598c51:	ff 53 08             	call   *0x8(%ebx)
598c54:	8b 06                	mov    (%esi),%eax
598c56:	8b 55 bc             	mov    -0x44(%ebp),%edx