594874:	c3                   	ret
594875:	8b 86 ec 04 00 00    	mov    0x4ec(%esi),%eax
59487b:	85 47 08             	test   %eax,0x8(%edi)
59487e:	74 09                	je     0x594889
594880:	5f                   	pop    %edi
594881:	5e                   	pop    %esi
594882:	b8 02 01 00 00       	mov    $0x102,%eax
594887:	5b                   	pop    %ebx
594888:	c3                   	ret
594889:	f6 47 04 02          	testb  $0x2,0x4(%edi)
59488d:	74 18                	je     0x5948a7
59488f:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
594895:	f7 40 10 00 00 03 00 	testl  $0x30000,0x10(%eax)
59489c:	74 09                	je     0x5948a7
59489e:	5f                   	pop    %edi
59489f:	5e                   	pop    %esi
5948a0:	b8 9e 00 00 00       	mov    $0x9e,%eax
5948a5:	5b                   	pop    %ebx
5948a6:	c3                   	ret
5948a7:	5f                   	pop    %edi
5948a8:	5e                   	pop    %esi
5948a9:	33 c0                	xor    %eax,%eax
5948ab:	5b                   	pop    %ebx
5948ac:	c3                   	ret
5948ad:	cc                   	int3
5948ae:	cc                   	int3
5948af:	cc                   	int3
5948b0:	b8 04 00 00 00       	mov    $0x4,%eax
5948b5:	e8 f6 ce 03 00       	call   0x5d17b0
5948ba:	56                   	push   %esi
5948bb:	8b 74 24 0c          	mov    0xc(%esp),%esi
5948bf:	8b 46 7c             	mov    0x7c(%esi),%eax
5948c2:	83 b8 80 01 00 00 00 	cmpl   $0x0,0x180(%eax)
5948c9:	74 09                	je     0x5948d4
5948cb:	83 b8 04 02 00 00 00 	cmpl   $0x0,0x204(%eax)
5948d2:	75 3b                	jne    0x59490f
5948d4:	6a 00                	push   $0x0
5948d6:	8d 44 24 10          	lea    0x10(%esp),%eax
5948da:	50                   	push   %eax
5948db:	8d 44 24 0c          	lea    0xc(%esp),%eax
5948df:	50                   	push   %eax
5948e0:	56                   	push   %esi
5948e1:	e8 6a fd ff ff       	call   0x594650
5948e6:	83 c4 10             	add    $0x10,%esp
5948e9:	85 c0                	test   %eax,%eax
5948eb:	75 24                	jne    0x594911
5948ed:	8b 46 04             	mov    0x4(%esi),%eax
5948f0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5948f4:	89 0e                	mov    %ecx,(%esi)
5948f6:	8b 40 64             	mov    0x64(%eax),%eax
5948f9:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5948fd:	75 0a                	jne    0x594909
5948ff:	b8 03 03 00 00       	mov    $0x303,%eax
594904:	3b c8                	cmp    %eax,%ecx
594906:	0f 4f c8             	cmovg  %eax,%ecx
594909:	89 8e 04 05 00 00    	mov    %ecx,0x504(%esi)
59490f:	33 c0                	xor    %eax,%eax
594911:	5e                   	pop    %esi
594912:	59                   	pop    %ecx
594913:	c3                   	ret
594914:	cc                   	int3
594915:	cc                   	int3
594916:	cc                   	int3
594917:	cc                   	int3
594918:	cc                   	int3
594919:	cc                   	int3
59491a:	cc                   	int3
59491b:	cc                   	int3
59491c:	cc                   	int3
59491d:	cc                   	int3
59491e:	cc                   	int3
59491f:	cc                   	int3
594920:	8b 4c 24 08          	mov    0x8(%esp),%ecx
594924:	85 c9                	test   %ecx,%ecx
594926:	75 0a                	jne    0x594932
594928:	8b 44 24 0c          	mov    0xc(%esp),%eax
59492c:	89 08                	mov    %ecx,(%eax)
59492e:	8d 41 01             	lea    0x1(%ecx),%eax
594931:	c3                   	ret
594932:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
594938:	ba 00 ff 00 00       	mov    $0xff00,%edx
59493d:	8b c1                	mov    %ecx,%eax
59493f:	0f 44 c2             	cmove  %edx,%eax
594942:	56                   	push   %esi
594943:	8d b1 00 fd ff ff    	lea    -0x300(%ecx),%esi
594949:	8d 90 03 01 ff ff    	lea    -0xfefd(%eax),%edx
59494f:	83 fe 04             	cmp    $0x4,%esi
594952:	76 09                	jbe    0x59495d
594954:	83 fa 03             	cmp    $0x3,%edx
594957:	76 04                	jbe    0x59495d
594959:	33 c0                	xor    %eax,%eax
59495b:	5e                   	pop    %esi
59495c:	c3                   	ret
59495d:	8b 44 24 08          	mov    0x8(%esp),%eax
594961:	3d 00 00 01 00       	cmp    $0x10000,%eax
594966:	74 0c                	je     0x594974
594968:	3d ff ff 01 00       	cmp    $0x1ffff,%eax
59496d:	75 10                	jne    0x59497f
59496f:	83 fa 03             	cmp    $0x3,%edx
594972:	eb 03                	jmp    0x594977
594974:	83 fe 04             	cmp    $0x4,%esi
594977:	77 06                	ja     0x59497f
594979:	8b 44 24 10          	mov    0x10(%esp),%eax
59497d:	89 08                	mov    %ecx,(%eax)
59497f:	b8 01 00 00 00       	mov    $0x1,%eax
594984:	5e                   	pop    %esi
594985:	c3                   	ret
594986:	cc                   	int3
594987:	cc                   	int3
594988:	cc                   	int3
594989:	cc                   	int3
59498a:	cc                   	int3
59498b:	cc                   	int3
59498c:	cc                   	int3
59498d:	cc                   	int3
59498e:	cc                   	int3
59498f:	cc                   	int3
594990:	55                   	push   %ebp
594991:	57                   	push   %edi
594992:	8b 7c 24 0c          	mov    0xc(%esp),%edi
594996:	8b 47 04             	mov    0x4(%edi),%eax
594999:	8b 00                	mov    (%eax),%eax
59499b:	3d 00 00 01 00       	cmp    $0x10000,%eax
5949a0:	74 25                	je     0x5949c7
5949a2:	3d ff ff 01 00       	cmp    $0x1ffff,%eax
5949a7:	74 17                	je     0x5949c0
5949a9:	ff 37                	push   (%edi)
5949ab:	ff 74 24 14          	push   0x14(%esp)
5949af:	57                   	push   %edi
5949b0:	e8 fb 18 00 00       	call   0x5962b0
5949b5:	83 c4 0c             	add    $0xc,%esp
5949b8:	f7 d8                	neg    %eax
5949ba:	1b c0                	sbb    %eax,%eax
5949bc:	40                   	inc    %eax
5949bd:	5f                   	pop    %edi
5949be:	5d                   	pop    %ebp
5949bf:	c3                   	ret
5949c0:	bd 90 71 66 00       	mov    $0x667190,%ebp
5949c5:	eb 05                	jmp    0x5949cc
5949c7:	bd 48 71 66 00       	mov    $0x667148,%ebp
5949cc:	53                   	push   %ebx
5949cd:	56                   	push   %esi
5949ce:	8b 75 00             	mov    0x0(%ebp),%esi
5949d1:	85 f6                	test   %esi,%esi
5949d3:	0f 84 24 01 00 00    	je     0x594afd
5949d9:	8b 5c 24 18          	mov    0x18(%esp),%ebx
5949dd:	ba 00 ff 00 00       	mov    $0xff00,%edx
5949e2:	3b de                	cmp    %esi,%ebx
5949e4:	74 41                	je     0x594a27
5949e6:	8b 47 04             	mov    0x4(%edi),%eax
5949e9:	8b 40 64             	mov    0x64(%eax),%eax
5949ec:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5949f0:	75 09                	jne    0x5949fb
5949f2:	33 d2                	xor    %edx,%edx
5949f4:	3b de                	cmp    %esi,%ebx
5949f6:	0f 9d c2             	setge  %dl
5949f9:	eb 1d                	jmp    0x594a18
5949fb:	81 fe 00 01 00 00    	cmp    $0x100,%esi
594a01:	8b ce                	mov    %esi,%ecx
594a03:	8b c3                	mov    %ebx,%eax
594a05:	0f 44 ca             	cmove  %edx,%ecx
594a08:	81 fb 00 01 00 00    	cmp    $0x100,%ebx
594a0e:	0f 44 c2             	cmove  %edx,%eax
594a11:	33 d2                	xor    %edx,%edx
594a13:	3b c1                	cmp    %ecx,%eax
594a15:	0f 9e c2             	setle  %dl
594a18:	8d 14 55 ff ff ff ff 	lea    -0x1(,%edx,2),%edx
594a1f:	85 d2                	test   %edx,%edx
594a21:	0f 8f d6 00 00 00    	jg     0x594afd
594a27:	8b 45 04             	mov    0x4(%ebp),%eax
594a2a:	85 c0                	test   %eax,%eax
594a2c:	0f 84 bd 00 00 00    	je     0x594aef
594a32:	3b de                	cmp    %esi,%ebx
594a34:	0f 85 b5 00 00 00    	jne    0x594aef
594a3a:	ff d0                	call   *%eax
594a3c:	50                   	push   %eax
594a3d:	57                   	push   %edi
594a3e:	e8 cd fd ff ff       	call   0x594810
594a43:	83 c4 08             	add    $0x8,%esp
594a46:	85 c0                	test   %eax,%eax
594a48:	0f 85 a1 00 00 00    	jne    0x594aef
594a4e:	39 47 1c             	cmp    %eax,0x1c(%edi)
594a51:	0f 84 ad 00 00 00    	je     0x594b04
594a57:	81 fb 04 03 00 00    	cmp    $0x304,%ebx
594a5d:	0f 85 a1 00 00 00    	jne    0x594b04
594a63:	39 87 c4 04 00 00    	cmp    %eax,0x4c4(%edi)
594a69:	0f 85 95 00 00 00    	jne    0x594b04
594a6f:	39 87 c8 04 00 00    	cmp    %eax,0x4c8(%edi)
594a75:	0f 85 89 00 00 00    	jne    0x594b04
594a7b:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
594a81:	83 b8 e0 00 00 00 00 	cmpl   $0x0,0xe0(%eax)
594a88:	75 7a                	jne    0x594b04
594a8a:	33 f6                	xor    %esi,%esi
594a8c:	0f 1f 40 00          	nopl   0x0(%eax)
594a90:	83 fe 02             	cmp    $0x2,%esi
594a93:	74 54                	je     0x594ae9
594a95:	83 fe 03             	cmp    $0x3,%esi
594a98:	76 05                	jbe    0x594a9f
594a9a:	83 fe 06             	cmp    $0x6,%esi
594a9d:	76 4a                	jbe    0x594ae9
594a9f:	83 fe 08             	cmp    $0x8,%esi
594aa2:	77 45                	ja     0x594ae9
594aa4:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
594aaa:	8d 04 b6             	lea    (%esi,%esi,4),%eax
594aad:	83 7c 81 14 00       	cmpl   $0x0,0x14(%ecx,%eax,4)
594ab2:	74 35                	je     0x594ae9
594ab4:	83 7c 81 18 00       	cmpl   $0x0,0x18(%ecx,%eax,4)
594ab9:	74 2e                	je     0x594ae9
594abb:	83 fe 03             	cmp    $0x3,%esi
594abe:	75 44                	jne    0x594b04
594ac0:	ff 71 54             	push   0x54(%ecx)
594ac3:	e8 08 c3 f5 ff       	call   0x4f0dd0
594ac8:	83 c4 04             	add    $0x4,%esp
594acb:	85 c0                	test   %eax,%eax
594acd:	74 1a                	je     0x594ae9
594acf:	50                   	push   %eax
594ad0:	e8 6b 27 f5 ff       	call   0x4e7240
594ad5:	50                   	push   %eax
594ad6:	e8 d5 b7 f5 ff       	call   0x4f02b0
594adb:	50                   	push   %eax
594adc:	57                   	push   %edi
594add:	e8 ce 5e 00 00       	call   0x59a9b0
594ae2:	83 c4 10             	add    $0x10,%esp
594ae5:	85 c0                	test   %eax,%eax
594ae7:	75 1b                	jne    0x594b04
594ae9:	46                   	inc    %esi
594aea:	83 fe 09             	cmp    $0x9,%esi
594aed:	7c a1                	jl     0x594a90
594aef:	8b 75 0c             	mov    0xc(%ebp),%esi
594af2:	83 c5 0c             	add    $0xc,%ebp
594af5:	85 f6                	test   %esi,%esi
594af7:	0f 85 e0 fe ff ff    	jne    0x5949dd
594afd:	5e                   	pop    %esi
594afe:	5b                   	pop    %ebx
594aff:	5f                   	pop    %edi
594b00:	33 c0                	xor    %eax,%eax
594b02:	5d                   	pop    %ebp
594b03:	c3                   	ret
594b04:	8b 74 24 1c          	mov    0x1c(%esp),%esi
594b08:	85 f6                	test   %esi,%esi
594b0a:	74 07                	je     0x594b13
594b0c:	8b 45 04             	mov    0x4(%ebp),%eax
594b0f:	ff d0                	call   *%eax
594b11:	89 06                	mov    %eax,(%esi)
594b13:	5e                   	pop    %esi
594b14:	5b                   	pop    %ebx
594b15:	5f                   	pop    %edi
594b16:	b8 01 00 00 00       	mov    $0x1,%eax
594b1b:	5d                   	pop    %ebp
594b1c:	c3                   	ret
594b1d:	cc                   	int3
594b1e:	cc                   	int3
594b1f:	cc                   	int3
594b20:	8b 54 24 04          	mov    0x4(%esp),%edx
594b24:	b8 00 70 66 00       	mov    $0x667000,%eax
594b29:	b9 32 00 00 00       	mov    $0x32,%ecx
594b2e:	66 90                	xchg   %ax,%ax
594b30:	3b ca                	cmp    %edx,%ecx
594b32:	74 0a                	je     0x594b3e
594b34:	8b 48 08             	mov    0x8(%eax),%ecx
594b37:	83 c0 08             	add    $0x8,%eax
594b3a:	85 c9                	test   %ecx,%ecx
594b3c:	75 f2                	jne    0x594b30
594b3e:	8b 40 04             	mov    0x4(%eax),%eax
594b41:	c3                   	ret
594b42:	cc                   	int3
594b43:	cc                   	int3
594b44:	cc                   	int3
594b45:	cc                   	int3
594b46:	cc                   	int3
594b47:	cc                   	int3
594b48:	cc                   	int3
594b49:	cc                   	int3
594b4a:	cc                   	int3
594b4b:	cc                   	int3
594b4c:	cc                   	int3
594b4d:	cc                   	int3
594b4e:	cc                   	int3
594b4f:	cc                   	int3
594b50:	56                   	push   %esi
594b51:	8b 74 24 08          	mov    0x8(%esp),%esi
594b55:	8b 86 08 06 00 00    	mov    0x608(%esi),%eax
594b5b:	85 c0                	test   %eax,%eax
594b5d:	75 20                	jne    0x594b7f
594b5f:	68 71 09 00 00       	push   $0x971
594b64:	68 e0 71 66 00       	push   $0x6671e0
594b69:	6a 44                	push   $0x44
594b6b:	68 69 02 00 00       	push   $0x269
594b70:	6a 50                	push   $0x50
594b72:	56                   	push   %esi
594b73:	e8 98 a5 ff ff       	call   0x58f110
594b78:	83 c4 18             	add    $0x18,%esp
594b7b:	33 c0                	xor    %eax,%eax
594b7d:	5e                   	pop    %esi
594b7e:	c3                   	ret
594b7f:	50                   	push   %eax
594b80:	8b 46 7c             	mov    0x7c(%esi),%eax
594b83:	ff b0 d8 00 00 00    	push   0xd8(%eax)
594b89:	e8 d2 63 f8 ff       	call   0x51af60
594b8e:	83 c4 08             	add    $0x8,%esp
594b91:	85 c0                	test   %eax,%eax
594b93:	75 20                	jne    0x594bb5
594b95:	68 78 09 00 00       	push   $0x978
594b9a:	68 e0 71 66 00       	push   $0x6671e0
594b9f:	6a 44                	push   $0x44
594ba1:	68 69 02 00 00       	push   $0x269
594ba6:	6a 50                	push   $0x50
594ba8:	56                   	push   %esi
594ba9:	e8 62 a5 ff ff       	call   0x58f110
594bae:	83 c4 18             	add    $0x18,%esp
594bb1:	33 c0                	xor    %eax,%eax
594bb3:	5e                   	pop    %esi
594bb4:	c3                   	ret
594bb5:	b8 01 00 00 00       	mov    $0x1,%eax
594bba:	5e                   	pop    %esi
594bbb:	c3                   	ret
594bbc:	cc                   	int3
594bbd:	cc                   	int3
594bbe:	cc                   	int3
594bbf:	cc                   	int3
594bc0:	56                   	push   %esi
594bc1:	8b 74 24 08          	mov    0x8(%esp),%esi
594bc5:	83 be 08 06 00 00 00 	cmpl   $0x0,0x608(%esi)
594bcc:	75 76                	jne    0x594c44
594bce:	6a 01                	push   $0x1
594bd0:	56                   	push   %esi
594bd1:	e8 aa e5 00 00       	call   0x5a3180
594bd6:	83 c4 08             	add    $0x8,%esp
594bd9:	85 c0                	test   %eax,%eax
594bdb:	74 2d                	je     0x594c0a
594bdd:	e8 2e 65 f8 ff       	call   0x51b110
594be2:	8b c8                	mov    %eax,%ecx
594be4:	89 8e 08 06 00 00    	mov    %ecx,0x608(%esi)
594bea:	85 c9                	test   %ecx,%ecx
594bec:	75 20                	jne    0x594c0e
594bee:	68 5a 09 00 00       	push   $0x95a
594bf3:	68 e0 71 66 00       	push   $0x6671e0
594bf8:	6a 44                	push   $0x44
594bfa:	68 6a 02 00 00       	push   $0x26a
594bff:	6a 50                	push   $0x50
594c01:	56                   	push   %esi
594c02:	e8 09 a5 ff ff       	call   0x58f110
594c07:	83 c4 18             	add    $0x18,%esp
594c0a:	33 c0                	xor    %eax,%eax
594c0c:	5e                   	pop    %esi
594c0d:	c3                   	ret
594c0e:	8b 46 7c             	mov    0x7c(%esi),%eax
594c11:	ff b0 d8 00 00 00    	push   0xd8(%eax)
594c17:	51                   	push   %ecx
594c18:	e8 43 63 f8 ff       	call   0x51af60