591809:	a8 08                	test   $0x8,%al
59180b:	75 10                	jne    0x59181d
59180d:	8b 01                	mov    (%ecx),%eax
59180f:	3d 04 03 00 00       	cmp    $0x304,%eax
591814:	7c 07                	jl     0x59181d
591816:	3d 00 00 01 00       	cmp    $0x10000,%eax
59181b:	75 78                	jne    0x591895
59181d:	8b 46 68             	mov    0x68(%esi),%eax
591820:	83 f8 02             	cmp    $0x2,%eax
591823:	74 70                	je     0x591895
591825:	83 f8 01             	cmp    $0x1,%eax
591828:	74 6b                	je     0x591895
59182a:	83 f8 04             	cmp    $0x4,%eax
59182d:	74 66                	je     0x591895
59182f:	83 f8 03             	cmp    $0x3,%eax
591832:	74 61                	je     0x591895
591834:	83 be 4c 04 00 00 01 	cmpl   $0x1,0x44c(%esi)
59183b:	74 58                	je     0x591895
59183d:	52                   	push   %edx
59183e:	e8 7d e8 f5 ff       	call   0x4f00c0
591843:	50                   	push   %eax
591844:	e8 67 ea f5 ff       	call   0x4f02b0
591849:	25 07 00 0f 00       	and    $0xf0007,%eax
59184e:	83 c4 08             	add    $0x8,%esp
591851:	83 f8 02             	cmp    $0x2,%eax
591854:	75 1f                	jne    0x591875
591856:	ff b6 ec 03 00 00    	push   0x3ec(%esi)
59185c:	e8 7f e8 f5 ff       	call   0x4f00e0
591861:	83 c4 04             	add    $0x4,%esp
591864:	89 44 24 24          	mov    %eax,0x24(%esp)
591868:	83 f8 01             	cmp    $0x1,%eax
59186b:	7f 28                	jg     0x591895
59186d:	33 c0                	xor    %eax,%eax
59186f:	89 44 24 24          	mov    %eax,0x24(%esp)
591873:	eb 20                	jmp    0x591895
591875:	83 f8 06             	cmp    $0x6,%eax
591878:	75 0a                	jne    0x591884
59187a:	c7 44 24 24 08 00 00 	movl   $0x8,0x24(%esp)
591881:	00
591882:	eb 11                	jmp    0x591895
591884:	33 db                	xor    %ebx,%ebx
591886:	b9 08 00 00 00       	mov    $0x8,%ecx
59188b:	83 f8 07             	cmp    $0x7,%eax
59188e:	0f 44 d9             	cmove  %ecx,%ebx
591891:	89 5c 24 24          	mov    %ebx,0x24(%esp)
591895:	68 00 06 00 00       	push   $0x600
59189a:	8d 84 24 50 03 00 00 	lea    0x350(%esp),%eax
5918a1:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
5918a8:	00
5918a9:	6a 00                	push   $0x0
5918ab:	50                   	push   %eax
5918ac:	e8 bf 13 04 00       	call   0x5d2c70
5918b1:	83 c4 0c             	add    $0xc,%esp
5918b4:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
5918bb:	00
5918bc:	85 ed                	test   %ebp,%ebp
5918be:	0f 84 b1 03 00 00    	je     0x591c75
5918c4:	8d 44 24 4c          	lea    0x4c(%esp),%eax
5918c8:	8d ac 24 54 03 00 00 	lea    0x354(%esp),%ebp
5918cf:	89 44 24 1c          	mov    %eax,0x1c(%esp)
5918d3:	89 6c 24 10          	mov    %ebp,0x10(%esp)
5918d7:	8b 3e                	mov    (%esi),%edi
5918d9:	b8 03 03 00 00       	mov    $0x303,%eax
5918de:	8b 4e 04             	mov    0x4(%esi),%ecx
5918e1:	81 ff 04 03 00 00    	cmp    $0x304,%edi
5918e7:	c7 44 24 3c 00 00 00 	movl   $0x0,0x3c(%esp)
5918ee:	00
5918ef:	0f 44 f8             	cmove  %eax,%edi
5918f2:	8b 41 64             	mov    0x64(%ecx),%eax
5918f5:	f6 40 30 08          	testb  $0x8,0x30(%eax)
5918f9:	75 10                	jne    0x59190b
5918fb:	8b 01                	mov    (%ecx),%eax
5918fd:	3d 04 03 00 00       	cmp    $0x304,%eax
591902:	7c 07                	jl     0x59190b
591904:	3d 00 00 01 00       	cmp    $0x10000,%eax
591909:	75 20                	jne    0x59192b
59190b:	8b 46 68             	mov    0x68(%esi),%eax
59190e:	83 f8 02             	cmp    $0x2,%eax
591911:	74 18                	je     0x59192b
591913:	83 f8 01             	cmp    $0x1,%eax
591916:	74 13                	je     0x59192b
591918:	83 f8 04             	cmp    $0x4,%eax
59191b:	74 0e                	je     0x59192b
59191d:	83 f8 03             	cmp    $0x3,%eax
591920:	74 09                	je     0x59192b
591922:	83 be 4c 04 00 00 01 	cmpl   $0x1,0x44c(%esi)
591929:	75 22                	jne    0x59194d
59192b:	83 be ec 03 00 00 00 	cmpl   $0x0,0x3ec(%esi)
591932:	74 19                	je     0x59194d
591934:	83 7e 60 02          	cmpl   $0x2,0x60(%esi)
591938:	75 0c                	jne    0x591946
59193a:	8b 84 24 58 09 00 00 	mov    0x958(%esp),%eax
591941:	83 f8 15             	cmp    $0x15,%eax
591944:	74 0e                	je     0x591954
591946:	bb 17 00 00 00       	mov    $0x17,%ebx
59194b:	eb 09                	jmp    0x591956
59194d:	8b 84 24 58 09 00 00 	mov    0x958(%esp),%eax
591954:	8b d8                	mov    %eax,%ebx
591956:	56                   	push   %esi
591957:	89 5d fc             	mov    %ebx,-0x4(%ebp)
59195a:	e8 a1 d6 ff ff       	call   0x58f000
59195f:	83 c4 04             	add    $0x4,%esp
591962:	83 f8 0c             	cmp    $0xc,%eax
591965:	75 3d                	jne    0x5919a4
591967:	83 be ec 05 00 00 00 	cmpl   $0x0,0x5ec(%esi)
59196e:	75 34                	jne    0x5919a4
591970:	56                   	push   %esi
591971:	e8 4a e7 f5 ff       	call   0x4f00c0
591976:	25 00 ff ff ff       	and    $0xffffff00,%eax
59197b:	83 c4 04             	add    $0x4,%esp
59197e:	3d 00 03 00 00       	cmp    $0x300,%eax
591983:	75 1f                	jne    0x5919a4
591985:	56                   	push   %esi
591986:	e8 35 e7 f5 ff       	call   0x4f00c0
59198b:	83 c4 04             	add    $0x4,%esp
59198e:	3d 01 03 00 00       	cmp    $0x301,%eax
591993:	7e 0f                	jle    0x5919a4
591995:	83 be 4c 04 00 00 00 	cmpl   $0x0,0x44c(%esi)
59199c:	b8 01 03 00 00       	mov    $0x301,%eax
5919a1:	0f 44 f8             	cmove  %eax,%edi
5919a4:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5919a8:	8b 44 24 30          	mov    0x30(%esp),%eax
5919ac:	83 be e4 03 00 00 00 	cmpl   $0x0,0x3e4(%esi)
5919b3:	6a 01                	push   $0x1
5919b5:	89 7d f8             	mov    %edi,-0x8(%ebp)
5919b8:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5919bb:	53                   	push   %ebx
5919bc:	8b 5c 24 24          	mov    0x24(%esp),%ebx
5919c0:	53                   	push   %ebx
5919c1:	8d a8 00 04 00 00    	lea    0x400(%eax),%ebp
5919c7:	0f 44 e8             	cmove  %eax,%ebp
5919ca:	e8 d1 25 01 00       	call   0x5a3fa0
5919cf:	83 c4 0c             	add    $0xc,%esp
5919d2:	85 c0                	test   %eax,%eax
5919d4:	0f 84 0b 03 00 00    	je     0x591ce5
5919da:	6a 02                	push   $0x2
5919dc:	57                   	push   %edi
5919dd:	53                   	push   %ebx
5919de:	e8 bd 25 01 00       	call   0x5a3fa0
5919e3:	83 c4 0c             	add    $0xc,%esp
5919e6:	85 c0                	test   %eax,%eax
5919e8:	0f 84 f7 02 00 00    	je     0x591ce5
5919ee:	6a 02                	push   $0x2
5919f0:	53                   	push   %ebx
5919f1:	e8 2a 27 01 00       	call   0x5a4120
5919f6:	83 c4 08             	add    $0x8,%esp
5919f9:	85 c0                	test   %eax,%eax
5919fb:	0f 84 e4 02 00 00    	je     0x591ce5
591a01:	8b 44 24 24          	mov    0x24(%esp),%eax
591a05:	85 c0                	test   %eax,%eax
591a07:	7e 14                	jle    0x591a1d
591a09:	6a 00                	push   $0x0
591a0b:	50                   	push   %eax
591a0c:	53                   	push   %ebx
591a0d:	e8 5e 22 01 00       	call   0x5a3c70
591a12:	83 c4 0c             	add    $0xc,%esp
591a15:	85 c0                	test   %eax,%eax
591a17:	0f 84 c8 02 00 00    	je     0x591ce5
591a1d:	85 ed                	test   %ebp,%ebp
591a1f:	74 17                	je     0x591a38
591a21:	8d 44 24 3c          	lea    0x3c(%esp),%eax
591a25:	50                   	push   %eax
591a26:	55                   	push   %ebp
591a27:	53                   	push   %ebx
591a28:	e8 d3 25 01 00       	call   0x5a4000
591a2d:	83 c4 0c             	add    $0xc,%esp
591a30:	85 c0                	test   %eax,%eax
591a32:	0f 84 ad 02 00 00    	je     0x591ce5
591a38:	8b 6c 24 10          	mov    0x10(%esp),%ebp
591a3c:	8b 44 24 3c          	mov    0x3c(%esp),%eax
591a40:	8b 7c 24 18          	mov    0x18(%esp),%edi
591a44:	8b 54 24 20          	mov    0x20(%esp),%edx
591a48:	8b 4c 24 38          	mov    0x38(%esp),%ecx
591a4c:	89 45 0c             	mov    %eax,0xc(%ebp)
591a4f:	03 ca                	add    %edx,%ecx
591a51:	8b 44 24 30          	mov    0x30(%esp),%eax
591a55:	89 4d 10             	mov    %ecx,0x10(%ebp)
591a58:	8b 04 b8             	mov    (%eax,%edi,4),%eax
591a5b:	03 d0                	add    %eax,%edx
591a5d:	83 be e4 03 00 00 00 	cmpl   $0x0,0x3e4(%esi)
591a64:	89 45 00             	mov    %eax,0x0(%ebp)
591a67:	89 54 24 20          	mov    %edx,0x20(%esp)
591a6b:	74 37                	je     0x591aa4
591a6d:	8d 45 f8             	lea    -0x8(%ebp),%eax
591a70:	50                   	push   %eax
591a71:	56                   	push   %esi
591a72:	e8 79 20 ec ff       	call   0x453af0
591a77:	83 c4 08             	add    $0x8,%esp
591a7a:	85 c0                	test   %eax,%eax
591a7c:	74 12                	je     0x591a90
591a7e:	6a 00                	push   $0x0
591a80:	ff 75 00             	push   0x0(%ebp)
591a83:	53                   	push   %ebx
591a84:	e8 e7 21 01 00       	call   0x5a3c70
591a89:	83 c4 0c             	add    $0xc,%esp
591a8c:	85 c0                	test   %eax,%eax
591a8e:	75 2d                	jne    0x591abd
591a90:	68 7e 03 00 00       	push   $0x37e
591a95:	68 6c 6f 66 00       	push   $0x666f6c
591a9a:	68 8d 00 00 00       	push   $0x8d
591a9f:	e9 e7 04 00 00       	jmp    0x591f8b
591aa4:	50                   	push   %eax
591aa5:	51                   	push   %ecx
591aa6:	53                   	push   %ebx
591aa7:	e8 54 24 01 00       	call   0x5a3f00
591aac:	83 c4 0c             	add    $0xc,%esp
591aaf:	85 c0                	test   %eax,%eax
591ab1:	0f 84 24 02 00 00    	je     0x591cdb
591ab7:	8b 45 0c             	mov    0xc(%ebp),%eax
591aba:	89 45 10             	mov    %eax,0x10(%ebp)
591abd:	8b 4e 04             	mov    0x4(%esi),%ecx
591ac0:	8b 41 64             	mov    0x64(%ecx),%eax
591ac3:	f6 40 30 08          	testb  $0x8,0x30(%eax)
591ac7:	75 10                	jne    0x591ad9
591ac9:	8b 01                	mov    (%ecx),%eax
591acb:	3d 04 03 00 00       	cmp    $0x304,%eax
591ad0:	7c 07                	jl     0x591ad9
591ad2:	3d 00 00 01 00       	cmp    $0x10000,%eax
591ad7:	75 24                	jne    0x591afd
591ad9:	8b 46 68             	mov    0x68(%esi),%eax
591adc:	83 f8 02             	cmp    $0x2,%eax
591adf:	74 1c                	je     0x591afd
591ae1:	83 f8 01             	cmp    $0x1,%eax
591ae4:	74 17                	je     0x591afd
591ae6:	83 f8 04             	cmp    $0x4,%eax
591ae9:	74 12                	je     0x591afd
591aeb:	83 f8 03             	cmp    $0x3,%eax
591aee:	74 0d                	je     0x591afd
591af0:	83 be 4c 04 00 00 01 	cmpl   $0x1,0x44c(%esi)
591af7:	0f 85 c3 00 00 00    	jne    0x591bc0
591afd:	83 be ec 03 00 00 00 	cmpl   $0x0,0x3ec(%esi)
591b04:	0f 84 b6 00 00 00    	je     0x591bc0
591b0a:	83 7e 60 02          	cmpl   $0x2,0x60(%esi)
591b0e:	8b 84 24 58 09 00 00 	mov    0x958(%esp),%eax
591b15:	75 09                	jne    0x591b20
591b17:	83 f8 15             	cmp    $0x15,%eax
591b1a:	0f 84 a0 00 00 00    	je     0x591bc0
591b20:	6a 01                	push   $0x1
591b22:	50                   	push   %eax
591b23:	53                   	push   %ebx
591b24:	e8 77 24 01 00       	call   0x5a3fa0
591b29:	83 c4 0c             	add    $0xc,%esp
591b2c:	85 c0                	test   %eax,%eax
591b2e:	0f 84 89 01 00 00    	je     0x591cbd
591b34:	ff 45 00             	incl   0x0(%ebp)
591b37:	56                   	push   %esi
591b38:	e8 f3 86 ff ff       	call   0x58a230
591b3d:	8b d8                	mov    %eax,%ebx
591b3f:	83 c4 04             	add    $0x4,%esp
591b42:	8b 45 00             	mov    0x0(%ebp),%eax
591b45:	3b c3                	cmp    %ebx,%eax
591b47:	73 69                	jae    0x591bb2
591b49:	8b 8e 5c 0f 00 00    	mov    0xf5c(%esi),%ecx
591b4f:	2b d8                	sub    %eax,%ebx
591b51:	85 c9                	test   %ecx,%ecx
591b53:	74 18                	je     0x591b6d
591b55:	ff b6 60 0f 00 00    	push   0xf60(%esi)
591b5b:	50                   	push   %eax
591b5c:	ff b4 24 60 09 00 00 	push   0x960(%esp)
591b63:	56                   	push   %esi
591b64:	ff d1                	call   *%ecx
591b66:	83 c4 10             	add    $0x10,%esp
591b69:	8b f8                	mov    %eax,%edi
591b6b:	eb 1f                	jmp    0x591b8c
591b6d:	8b be 64 0f 00 00    	mov    0xf64(%esi),%edi
591b73:	85 ff                	test   %edi,%edi
591b75:	74 41                	je     0x591bb8
591b77:	8d 57 ff             	lea    -0x1(%edi),%edx
591b7a:	85 fa                	test   %edi,%edx
591b7c:	75 04                	jne    0x591b82
591b7e:	23 d0                	and    %eax,%edx
591b80:	eb 04                	jmp    0x591b86
591b82:	33 d2                	xor    %edx,%edx
591b84:	f7 f7                	div    %edi
591b86:	85 d2                	test   %edx,%edx
591b88:	74 2e                	je     0x591bb8
591b8a:	2b fa                	sub    %edx,%edi
591b8c:	85 ff                	test   %edi,%edi
591b8e:	74 28                	je     0x591bb8
591b90:	3b fb                	cmp    %ebx,%edi
591b92:	0f 47 fb             	cmova  %ebx,%edi
591b95:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
591b99:	57                   	push   %edi
591b9a:	6a 00                	push   $0x0
591b9c:	53                   	push   %ebx
591b9d:	e8 ae 23 01 00       	call   0x5a3f50
591ba2:	83 c4 0c             	add    $0xc,%esp
591ba5:	85 c0                	test   %eax,%eax
591ba7:	0f 84 06 01 00 00    	je     0x591cb3
591bad:	01 7d 00             	add    %edi,0x0(%ebp)
591bb0:	eb 0a                	jmp    0x591bbc
591bb2:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
591bb6:	eb 08                	jmp    0x591bc0
591bb8:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
591bbc:	8b 7c 24 18          	mov    0x18(%esp),%edi
591bc0:	8b 46 7c             	mov    0x7c(%esi),%eax
591bc3:	f7 00 00 04 00 00    	testl  $0x400,(%eax)
591bc9:	75 40                	jne    0x591c0b
591bcb:	8b 44 24 34          	mov    0x34(%esp),%eax
591bcf:	85 c0                	test   %eax,%eax
591bd1:	74 38                	je     0x591c0b
591bd3:	8d 4c 24 48          	lea    0x48(%esp),%ecx
591bd7:	51                   	push   %ecx
591bd8:	50                   	push   %eax
591bd9:	53                   	push   %ebx
591bda:	e8 91 20 01 00       	call   0x5a3c70
591bdf:	83 c4 0c             	add    $0xc,%esp
591be2:	85 c0                	test   %eax,%eax
591be4:	0f 84 dd 00 00 00    	je     0x591cc7
591bea:	8b 46 04             	mov    0x4(%esi),%eax
591bed:	8d 4d f8             	lea    -0x8(%ebp),%ecx
591bf0:	6a 01                	push   $0x1
591bf2:	ff 74 24 4c          	push   0x4c(%esp)
591bf6:	8b 40 64             	mov    0x64(%eax),%eax
591bf9:	51                   	push   %ecx
591bfa:	56                   	push   %esi
591bfb:	8b 40 04             	mov    0x4(%eax),%eax
591bfe:	ff d0                	call   *%eax
591c00:	83 c4 10             	add    $0x10,%esp
591c03:	85 c0                	test   %eax,%eax
591c05:	0f 84 bc 00 00 00    	je     0x591cc7
591c0b:	6a 00                	push   $0x0
591c0d:	6a 10                	push   $0x10
591c0f:	53                   	push   %ebx
591c10:	e8 eb 23 01 00       	call   0x5a4000
591c15:	83 c4 0c             	add    $0xc,%esp
591c18:	85 c0                	test   %eax,%eax
591c1a:	0f 84 b1 00 00 00    	je     0x591cd1
591c20:	8d 44 24 40          	lea    0x40(%esp),%eax
591c24:	50                   	push   %eax
591c25:	53                   	push   %ebx
591c26:	e8 b5 21 01 00       	call   0x5a3de0
591c2b:	83 c4 08             	add    $0x8,%esp
591c2e:	85 c0                	test   %eax,%eax
591c30:	0f 84 9b 00 00 00    	je     0x591cd1
591c36:	53                   	push   %ebx
591c37:	e8 84 21 01 00       	call   0x5a3dc0
591c3c:	8b 4c 24 44          	mov    0x44(%esp),%ecx
591c40:	47                   	inc    %edi
591c41:	2b c1                	sub    %ecx,%eax
591c43:	89 4d 00             	mov    %ecx,0x0(%ebp)
591c46:	89 45 0c             	mov    %eax,0xc(%ebp)
591c49:	83 c3 18             	add    $0x18,%ebx
591c4c:	89 45 10             	mov    %eax,0x10(%ebp)
591c4f:	83 c4 04             	add    $0x4,%esp
591c52:	83 c5 30             	add    $0x30,%ebp
591c55:	89 7c 24 18          	mov    %edi,0x18(%esp)
591c59:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
591c5d:	89 6c 24 10          	mov    %ebp,0x10(%esp)
591c61:	3b bc 24 64 09 00 00 	cmp    0x964(%esp),%edi