59bcaf:	e8 0c c2 e6 ff       	call   0x407ec0
59bcb4:	8b 45 dc             	mov    -0x24(%ebp),%eax
59bcb7:	8b 5d f4             	mov    -0xc(%ebp),%ebx
59bcba:	4b                   	dec    %ebx
59bcbb:	85 db                	test   %ebx,%ebx
59bcbd:	7c 07                	jl     0x59bcc6
59bcbf:	43                   	inc    %ebx
59bcc0:	f6 10                	notb   (%eax)
59bcc2:	40                   	inc    %eax
59bcc3:	4b                   	dec    %ebx
59bcc4:	75 fa                	jne    0x59bcc0
59bcc6:	8b 45 f4             	mov    -0xc(%ebp),%eax
59bcc9:	50                   	push   %eax
59bcca:	8b 4d dc             	mov    -0x24(%ebp),%ecx
59bccd:	8b 55 08             	mov    0x8(%ebp),%edx
59bcd0:	8b 52 28             	mov    0x28(%edx),%edx
59bcd3:	8b 45 fc             	mov    -0x4(%ebp),%eax
59bcd6:	e8 21 a2 05 00       	call   0x5f5efc
59bcdb:	8b 45 08             	mov    0x8(%ebp),%eax
59bcde:	ff 40 0c             	incl   0xc(%eax)
59bce1:	8b 45 08             	mov    0x8(%ebp),%eax
59bce4:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
59bce9:	74 21                	je     0x59bd0c
59bceb:	8b 45 08             	mov    0x8(%ebp),%eax
59bcee:	db 40 0c             	fildl  0xc(%eax)
59bcf1:	8b 45 08             	mov    0x8(%ebp),%eax
59bcf4:	dc 48 18             	fmull  0x18(%eax)
59bcf7:	e8 d0 6f e6 ff       	call   0x402ccc
59bcfc:	8b c8                	mov    %eax,%ecx
59bcfe:	8b 5d 08             	mov    0x8(%ebp),%ebx
59bd01:	8b 55 08             	mov    0x8(%ebp),%edx
59bd04:	8b 52 08             	mov    0x8(%edx),%edx
59bd07:	8b 43 04             	mov    0x4(%ebx),%eax
59bd0a:	ff 13                	call   *(%ebx)
59bd0c:	ff 45 e8             	incl   -0x18(%ebp)
59bd0f:	ff 4d d4             	decl   -0x2c(%ebp)
59bd12:	75 89                	jne    0x59bc9d
59bd14:	8b 45 dc             	mov    -0x24(%ebp),%eax
59bd17:	e8 b0 6a e6 ff       	call   0x4027cc
59bd1c:	e9 02 05 00 00       	jmp    0x59c223
59bd21:	8b 03                	mov    (%ebx),%eax
59bd23:	83 78 08 08          	cmpl   $0x8,0x8(%eax)
59bd27:	0f 85 09 01 00 00    	jne    0x59be36
59bd2d:	8b 03                	mov    (%ebx),%eax
59bd2f:	83 78 10 01          	cmpl   $0x1,0x10(%eax)
59bd33:	0f 85 fd 00 00 00    	jne    0x59be36
59bd39:	68 98 c2 59 00       	push   $0x59c298
59bd3e:	ff 75 e0             	push   -0x20(%ebp)
59bd41:	8d 55 c4             	lea    -0x3c(%ebp),%edx
59bd44:	8b 45 f0             	mov    -0x10(%ebp),%eax
59bd47:	e8 78 d8 e6 ff       	call   0x4095c4
59bd4c:	ff 75 c4             	push   -0x3c(%ebp)
59bd4f:	68 8c c2 59 00       	push   $0x59c28c
59bd54:	8d 55 c0             	lea    -0x40(%ebp),%edx
59bd57:	8b 45 ec             	mov    -0x14(%ebp),%eax
59bd5a:	e8 65 d8 e6 ff       	call   0x4095c4
59bd5f:	ff 75 c0             	push   -0x40(%ebp)
59bd62:	68 a4 c2 59 00       	push   $0x59c2a4
59bd67:	68 74 c2 59 00       	push   $0x59c274
59bd6c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
59bd6f:	ba 07 00 00 00       	mov    $0x7,%edx
59bd74:	e8 67 8e e6 ff       	call   0x404be0
59bd79:	8b 45 e4             	mov    -0x1c(%ebp),%eax
59bd7c:	e8 9f 8d e6 ff       	call   0x404b20
59bd81:	50                   	push   %eax
59bd82:	8d 45 e4             	lea    -0x1c(%ebp),%eax
59bd85:	e8 e6 8f e6 ff       	call   0x404d70
59bd8a:	8b c8                	mov    %eax,%ecx
59bd8c:	8b 55 08             	mov    0x8(%ebp),%edx
59bd8f:	8b 52 28             	mov    0x28(%edx),%edx
59bd92:	8b 45 fc             	mov    -0x4(%ebp),%eax
59bd95:	e8 62 a1 05 00       	call   0x5f5efc
59bd9a:	8b 45 f0             	mov    -0x10(%ebp),%eax
59bd9d:	e8 0a 6a e6 ff       	call   0x4027ac
59bda2:	89 45 dc             	mov    %eax,-0x24(%ebp)
59bda5:	8b 45 ec             	mov    -0x14(%ebp),%eax
59bda8:	48                   	dec    %eax
59bda9:	85 c0                	test   %eax,%eax
59bdab:	7c 7c                	jl     0x59be29
59bdad:	40                   	inc    %eax
59bdae:	89 45 d4             	mov    %eax,-0x2c(%ebp)
59bdb1:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
59bdb8:	8b 55 e8             	mov    -0x18(%ebp),%edx
59bdbb:	8b 45 f8             	mov    -0x8(%ebp),%eax
59bdbe:	8b 08                	mov    (%eax),%ecx
59bdc0:	ff 11                	call   *(%ecx)
59bdc2:	8b f0                	mov    %eax,%esi
59bdc4:	8b 45 dc             	mov    -0x24(%ebp),%eax
59bdc7:	6a 05                	push   $0x5
59bdc9:	8b 55 f0             	mov    -0x10(%ebp),%edx
59bdcc:	52                   	push   %edx
59bdcd:	8b 13                	mov    (%ebx),%edx
59bdcf:	52                   	push   %edx
59bdd0:	8b c8                	mov    %eax,%ecx
59bdd2:	b2 01                	mov    $0x1,%dl
59bdd4:	8b c6                	mov    %esi,%eax
59bdd6:	e8 a5 92 03 00       	call   0x5d5080
59bddb:	8b 45 f0             	mov    -0x10(%ebp),%eax
59bdde:	50                   	push   %eax
59bddf:	8b 4d dc             	mov    -0x24(%ebp),%ecx
59bde2:	8b 55 08             	mov    0x8(%ebp),%edx
59bde5:	8b 52 28             	mov    0x28(%edx),%edx
59bde8:	8b 45 fc             	mov    -0x4(%ebp),%eax
59bdeb:	e8 0c a1 05 00       	call   0x5f5efc
59bdf0:	8b 45 08             	mov    0x8(%ebp),%eax
59bdf3:	ff 40 0c             	incl   0xc(%eax)
59bdf6:	8b 45 08             	mov    0x8(%ebp),%eax
59bdf9:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
59bdfe:	74 21                	je     0x59be21
59be00:	8b 45 08             	mov    0x8(%ebp),%eax
59be03:	db 40 0c             	fildl  0xc(%eax)
59be06:	8b 45 08             	mov    0x8(%ebp),%eax
59be09:	dc 48 18             	fmull  0x18(%eax)
59be0c:	e8 bb 6e e6 ff       	call   0x402ccc
59be11:	8b c8                	mov    %eax,%ecx
59be13:	8b 75 08             	mov    0x8(%ebp),%esi
59be16:	8b 55 08             	mov    0x8(%ebp),%edx
59be19:	8b 52 08             	mov    0x8(%edx),%edx
59be1c:	8b 46 04             	mov    0x4(%esi),%eax
59be1f:	ff 16                	call   *(%esi)
59be21:	ff 45 e8             	incl   -0x18(%ebp)
59be24:	ff 4d d4             	decl   -0x2c(%ebp)
59be27:	75 8f                	jne    0x59bdb8
59be29:	8b 45 dc             	mov    -0x24(%ebp),%eax
59be2c:	e8 9b 69 e6 ff       	call   0x4027cc
59be31:	e9 ed 03 00 00       	jmp    0x59c223
59be36:	8b 03                	mov    (%ebx),%eax
59be38:	83 78 08 10          	cmpl   $0x10,0x8(%eax)
59be3c:	0f 85 66 01 00 00    	jne    0x59bfa8
59be42:	8b 03                	mov    (%ebx),%eax
59be44:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
59be48:	0f 85 5a 01 00 00    	jne    0x59bfa8
59be4e:	8b 45 f8             	mov    -0x8(%ebp),%eax
59be51:	8b 10                	mov    (%eax),%edx
59be53:	ff 52 10             	call   *0x10(%edx)
59be56:	3c 05                	cmp    $0x5,%al
59be58:	0f 85 4a 01 00 00    	jne    0x59bfa8
59be5e:	68 b4 c2 59 00       	push   $0x59c2b4
59be63:	ff 75 e0             	push   -0x20(%ebp)
59be66:	8d 55 bc             	lea    -0x44(%ebp),%edx
59be69:	8b 45 f0             	mov    -0x10(%ebp),%eax
59be6c:	e8 53 d7 e6 ff       	call   0x4095c4
59be71:	ff 75 bc             	push   -0x44(%ebp)
59be74:	68 8c c2 59 00       	push   $0x59c28c
59be79:	8d 55 b8             	lea    -0x48(%ebp),%edx
59be7c:	8b 45 ec             	mov    -0x14(%ebp),%eax
59be7f:	e8 40 d7 e6 ff       	call   0x4095c4
59be84:	ff 75 b8             	push   -0x48(%ebp)
59be87:	68 c0 c2 59 00       	push   $0x59c2c0
59be8c:	68 74 c2 59 00       	push   $0x59c274
59be91:	8d 45 e4             	lea    -0x1c(%ebp),%eax
59be94:	ba 07 00 00 00       	mov    $0x7,%edx
59be99:	e8 42 8d e6 ff       	call   0x404be0
59be9e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
59bea1:	e8 7a 8c e6 ff       	call   0x404b20
59bea6:	50                   	push   %eax
59bea7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
59beaa:	e8 c1 8e e6 ff       	call   0x404d70
59beaf:	8b c8                	mov    %eax,%ecx
59beb1:	8b 55 08             	mov    0x8(%ebp),%edx
59beb4:	8b 52 28             	mov    0x28(%edx),%edx
59beb7:	8b 45 fc             	mov    -0x4(%ebp),%eax
59beba:	e8 3d a0 05 00       	call   0x5f5efc
59bebf:	8b 45 f0             	mov    -0x10(%ebp),%eax
59bec2:	03 c0                	add    %eax,%eax
59bec4:	8d 04 40             	lea    (%eax,%eax,2),%eax
59bec7:	e8 e0 68 e6 ff       	call   0x4027ac
59becc:	89 45 d8             	mov    %eax,-0x28(%ebp)
59becf:	8b 45 ec             	mov    -0x14(%ebp),%eax
59bed2:	48                   	dec    %eax
59bed3:	85 c0                	test   %eax,%eax
59bed5:	0f 8c c0 00 00 00    	jl     0x59bf9b
59bedb:	40                   	inc    %eax
59bedc:	89 45 d4             	mov    %eax,-0x2c(%ebp)
59bedf:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
59bee6:	8b 7d d8             	mov    -0x28(%ebp),%edi
59bee9:	8b 55 e8             	mov    -0x18(%ebp),%edx
59beec:	8b 45 f8             	mov    -0x8(%ebp),%eax
59beef:	8b 08                	mov    (%eax),%ecx
59bef1:	ff 11                	call   *(%ecx)
59bef3:	8b f0                	mov    %eax,%esi
59bef5:	8b 5d f0             	mov    -0x10(%ebp),%ebx
59bef8:	4b                   	dec    %ebx
59bef9:	85 db                	test   %ebx,%ebx
59befb:	7c 47                	jl     0x59bf44
59befd:	43                   	inc    %ebx
59befe:	33 c0                	xor    %eax,%eax
59bf00:	8a 46 02             	mov    0x2(%esi),%al
59bf03:	8b d0                	mov    %eax,%edx
59bf05:	c1 e0 08             	shl    $0x8,%eax
59bf08:	03 c2                	add    %edx,%eax
59bf0a:	e8 d9 4d 05 00       	call   0x5f0ce8
59bf0f:	66 89 07             	mov    %ax,(%edi)
59bf12:	33 c0                	xor    %eax,%eax
59bf14:	8a 46 01             	mov    0x1(%esi),%al
59bf17:	8b d0                	mov    %eax,%edx
59bf19:	c1 e0 08             	shl    $0x8,%eax
59bf1c:	03 c2                	add    %edx,%eax
59bf1e:	e8 c5 4d 05 00       	call   0x5f0ce8
59bf23:	66 89 47 02          	mov    %ax,0x2(%edi)
59bf27:	33 c0                	xor    %eax,%eax
59bf29:	8a 06                	mov    (%esi),%al
59bf2b:	8b d0                	mov    %eax,%edx
59bf2d:	c1 e0 08             	shl    $0x8,%eax
59bf30:	03 c2                	add    %edx,%eax
59bf32:	e8 b1 4d 05 00       	call   0x5f0ce8
59bf37:	66 89 47 04          	mov    %ax,0x4(%edi)
59bf3b:	83 c7 06             	add    $0x6,%edi
59bf3e:	83 c6 03             	add    $0x3,%esi
59bf41:	4b                   	dec    %ebx
59bf42:	75 ba                	jne    0x59befe
59bf44:	8b 45 f0             	mov    -0x10(%ebp),%eax
59bf47:	03 c0                	add    %eax,%eax
59bf49:	8d 04 40             	lea    (%eax,%eax,2),%eax
59bf4c:	50                   	push   %eax
59bf4d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
59bf50:	8b 55 08             	mov    0x8(%ebp),%edx
59bf53:	8b 52 28             	mov    0x28(%edx),%edx
59bf56:	8b 45 fc             	mov    -0x4(%ebp),%eax
59bf59:	e8 9e 9f 05 00       	call   0x5f5efc
59bf5e:	8b 45 08             	mov    0x8(%ebp),%eax
59bf61:	ff 40 0c             	incl   0xc(%eax)
59bf64:	8b 45 08             	mov    0x8(%ebp),%eax
59bf67:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
59bf6c:	74 21                	je     0x59bf8f
59bf6e:	8b 45 08             	mov    0x8(%ebp),%eax
59bf71:	db 40 0c             	fildl  0xc(%eax)
59bf74:	8b 45 08             	mov    0x8(%ebp),%eax
59bf77:	dc 48 18             	fmull  0x18(%eax)
59bf7a:	e8 4d 6d e6 ff       	call   0x402ccc
59bf7f:	8b c8                	mov    %eax,%ecx
59bf81:	8b 5d 08             	mov    0x8(%ebp),%ebx
59bf84:	8b 55 08             	mov    0x8(%ebp),%edx
59bf87:	8b 52 08             	mov    0x8(%edx),%edx
59bf8a:	8b 43 04             	mov    0x4(%ebx),%eax
59bf8d:	ff 13                	call   *(%ebx)
59bf8f:	ff 45 e8             	incl   -0x18(%ebp)
59bf92:	ff 4d d4             	decl   -0x2c(%ebp)
59bf95:	0f 85 4b ff ff ff    	jne    0x59bee6
59bf9b:	8b 45 d8             	mov    -0x28(%ebp),%eax
59bf9e:	e8 29 68 e6 ff       	call   0x4027cc
59bfa3:	e9 7b 02 00 00       	jmp    0x59c223
59bfa8:	8b 45 f8             	mov    -0x8(%ebp),%eax
59bfab:	8b 10                	mov    (%eax),%edx
59bfad:	ff 52 10             	call   *0x10(%edx)
59bfb0:	3c 08                	cmp    $0x8,%al
59bfb2:	0f 85 32 01 00 00    	jne    0x59c0ea
59bfb8:	68 b4 c2 59 00       	push   $0x59c2b4
59bfbd:	ff 75 e0             	push   -0x20(%ebp)
59bfc0:	8d 55 b4             	lea    -0x4c(%ebp),%edx
59bfc3:	8b 45 f0             	mov    -0x10(%ebp),%eax
59bfc6:	e8 f9 d5 e6 ff       	call   0x4095c4
59bfcb:	ff 75 b4             	push   -0x4c(%ebp)
59bfce:	68 8c c2 59 00       	push   $0x59c28c
59bfd3:	8d 55 b0             	lea    -0x50(%ebp),%edx
59bfd6:	8b 45 ec             	mov    -0x14(%ebp),%eax
59bfd9:	e8 e6 d5 e6 ff       	call   0x4095c4
59bfde:	ff 75 b0             	push   -0x50(%ebp)
59bfe1:	68 c0 c2 59 00       	push   $0x59c2c0
59bfe6:	68 74 c2 59 00       	push   $0x59c274
59bfeb:	8d 45 e4             	lea    -0x1c(%ebp),%eax
59bfee:	ba 07 00 00 00       	mov    $0x7,%edx
59bff3:	e8 e8 8b e6 ff       	call   0x404be0
59bff8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
59bffb:	e8 20 8b e6 ff       	call   0x404b20
59c000:	50                   	push   %eax
59c001:	8d 45 e4             	lea    -0x1c(%ebp),%eax
59c004:	e8 67 8d e6 ff       	call   0x404d70
59c009:	8b c8                	mov    %eax,%ecx
59c00b:	8b 55 08             	mov    0x8(%ebp),%edx
59c00e:	8b 52 28             	mov    0x28(%edx),%edx
59c011:	8b 45 fc             	mov    -0x4(%ebp),%eax
59c014:	e8 e3 9e 05 00       	call   0x5f5efc
59c019:	8b 45 f0             	mov    -0x10(%ebp),%eax
59c01c:	03 c0                	add    %eax,%eax
59c01e:	8d 04 40             	lea    (%eax,%eax,2),%eax
59c021:	e8 86 67 e6 ff       	call   0x4027ac
59c026:	89 45 d8             	mov    %eax,-0x28(%ebp)
59c029:	8b 45 ec             	mov    -0x14(%ebp),%eax
59c02c:	48                   	dec    %eax
59c02d:	85 c0                	test   %eax,%eax
59c02f:	0f 8c a8 00 00 00    	jl     0x59c0dd
59c035:	40                   	inc    %eax
59c036:	89 45 d4             	mov    %eax,-0x2c(%ebp)
59c039:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
59c040:	8b 55 e8             	mov    -0x18(%ebp),%edx
59c043:	8b 45 f8             	mov    -0x8(%ebp),%eax
59c046:	8b 08                	mov    (%eax),%ecx
59c048:	ff 11                	call   *(%ecx)
59c04a:	8b f8                	mov    %eax,%edi
59c04c:	8b 75 d8             	mov    -0x28(%ebp),%esi
59c04f:	8b 5d f0             	mov    -0x10(%ebp),%ebx
59c052:	4b                   	dec    %ebx
59c053:	85 db                	test   %ebx,%ebx
59c055:	7c 2f                	jl     0x59c086
59c057:	43                   	inc    %ebx
59c058:	66 8b 07             	mov    (%edi),%ax
59c05b:	e8 88 4c 05 00       	call   0x5f0ce8
59c060:	66 89 06             	mov    %ax,(%esi)
59c063:	66 8b 47 02          	mov    0x2(%edi),%ax
59c067:	e8 7c 4c 05 00       	call   0x5f0ce8
59c06c:	66 89 46 02          	mov    %ax,0x2(%esi)
59c070:	66 8b 47 04          	mov    0x4(%edi),%ax
59c074:	e8 6f 4c 05 00       	call   0x5f0ce8
59c079:	66 89 46 04          	mov    %ax,0x4(%esi)
59c07d:	83 c7 06             	add    $0x6,%edi
59c080:	83 c6 06             	add    $0x6,%esi
59c083:	4b                   	dec    %ebx
59c084:	75 d2                	jne    0x59c058
59c086:	8b 45 f0             	mov    -0x10(%ebp),%eax
59c089:	03 c0                	add    %eax,%eax
59c08b:	8d 04 40             	lea    (%eax,%eax,2),%eax
59c08e:	50                   	push   %eax
59c08f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
59c092:	8b 55 08             	mov    0x8(%ebp),%edx
59c095:	8b 52 28             	mov    0x28(%edx),%edx
59c098:	8b 45 fc             	mov    -0x4(%ebp),%eax
59c09b:	e8 5c 9e 05 00       	call   0x5f5efc
59c0a0:	8b 45 08             	mov    0x8(%ebp),%eax
59c0a3:	ff 40 0c             	incl   0xc(%eax)
59c0a6:	8b 45 08             	mov    0x8(%ebp),%eax
59c0a9:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
59c0ae:	74 21                	je     0x59c0d1
59c0b0:	8b 45 08             	mov    0x8(%ebp),%eax
59c0b3:	db 40 0c             	fildl  0xc(%eax)
59c0b6:	8b 45 08             	mov    0x8(%ebp),%eax
59c0b9:	dc 48 18             	fmull  0x18(%eax)
59c0bc:	e8 0b 6c e6 ff       	call   0x402ccc
59c0c1:	8b c8                	mov    %eax,%ecx
59c0c3:	8b 5d 08             	mov    0x8(%ebp),%ebx
59c0c6:	8b 55 08             	mov    0x8(%ebp),%edx
59c0c9:	8b 52 08             	mov    0x8(%edx),%edx
59c0cc:	8b 43 04             	mov    0x4(%ebx),%eax
59c0cf:	ff 13                	call   *(%ebx)
59c0d1:	ff 45 e8             	incl   -0x18(%ebp)
59c0d4:	ff 4d d4             	decl   -0x2c(%ebp)
59c0d7:	0f 85 63 ff ff ff    	jne    0x59c040
59c0dd:	8b 45 d8             	mov    -0x28(%ebp),%eax
59c0e0:	e8 e7 66 e6 ff       	call   0x4027cc
59c0e5:	e9 39 01 00 00       	jmp    0x59c223
59c0ea:	8b 03                	mov    (%ebx),%eax
59c0ec:	83 78 08 08          	cmpl   $0x8,0x8(%eax)
59c0f0:	75 08                	jne    0x59c0fa
59c0f2:	8b 03                	mov    (%ebx),%eax
59c0f4:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
59c0f8:	74 10                	je     0x59c10a
59c0fa:	8b 45 f8             	mov    -0x8(%ebp),%eax
59c0fd:	8b 10                	mov    (%eax),%edx
59c0ff:	ff 52 10             	call   *0x10(%edx)
59c102:	3c 05                	cmp    $0x5,%al