47c7d2:	8b c8                	mov    %eax,%ecx
47c7d4:	8b 84 24 a4 00 00 00 	mov    0xa4(%esp),%eax
47c7db:	e9 88 d0 f8 ff       	jmp    0x409868
47c7e0:	6a ff                	push   $0xffffffff
47c7e2:	6a 00                	push   $0x0
47c7e4:	8d 4c 24 30          	lea    0x30(%esp),%ecx
47c7e8:	e8 9e e9 f8 ff       	call   0x40b18b
47c7ed:	8b 5c 24 34          	mov    0x34(%esp),%ebx
47c7f1:	e9 d8 d1 f8 ff       	jmp    0x4099ce
47c7f6:	ff d1                	call   *%ecx
47c7f8:	8b c8                	mov    %eax,%ecx
47c7fa:	89 44 24 48          	mov    %eax,0x48(%esp)
47c7fe:	e9 e2 d0 f8 ff       	jmp    0x4098e5
47c803:	8b 44 24 10          	mov    0x10(%esp),%eax
47c807:	e9 1e d1 f8 ff       	jmp    0x40992a
47c80c:	6a ff                	push   $0xffffffff
47c80e:	6a 00                	push   $0x0
47c810:	8d 4c 24 30          	lea    0x30(%esp),%ecx
47c814:	e8 72 e9 f8 ff       	call   0x40b18b
47c819:	8b 5c 24 34          	mov    0x34(%esp),%ebx
47c81d:	e9 8c d1 f8 ff       	jmp    0x4099ae
47c822:	8b 74 24 14          	mov    0x14(%esp),%esi
47c826:	6a 00                	push   $0x0
47c828:	8b 06                	mov    (%esi),%eax
47c82a:	6a 01                	push   $0x1
47c82c:	8b 48 04             	mov    0x4(%eax),%ecx
47c82f:	03 ce                	add    %esi,%ecx
47c831:	e8 16 07 fd ff       	call   0x44cf4c
47c836:	e9 8d d2 f8 ff       	jmp    0x409ac8
47c83b:	83 fe 04             	cmp    $0x4,%esi
47c83e:	0f 85 8d d2 f8 ff    	jne    0x409ad1
47c844:	c7 44 24 5c 04 dc 49 	movl   $0x49dc04,0x5c(%esp)
47c84b:	00
47c84c:	c7 44 24 60 00 00 00 	movl   $0x0,0x60(%esp)
47c853:	00
47c854:	c7 44 24 64 00 00 00 	movl   $0x0,0x64(%esp)
47c85b:	00
47c85c:	c7 44 24 68 00 00 00 	movl   $0x0,0x68(%esp)
47c863:	00
47c864:	c7 44 24 18 50 dc 49 	movl   $0x49dc50,0x18(%esp)
47c86b:	00
47c86c:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
47c873:	00
47c874:	c7 44 24 20 00 00 00 	movl   $0x0,0x20(%esp)
47c87b:	00
47c87c:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
47c883:	00
47c884:	c7 44 24 48 00 00 00 	movl   $0x0,0x48(%esp)
47c88b:	00
47c88c:	c7 44 24 50 00 00 00 	movl   $0x0,0x50(%esp)
47c893:	00
47c894:	c7 44 24 54 01 00 00 	movl   $0x1,0x54(%esp)
47c89b:	00
47c89c:	6a 01                	push   $0x1
47c89e:	8d 44 24 60          	lea    0x60(%esp),%eax
47c8a2:	50                   	push   %eax
47c8a3:	8d 44 24 14          	lea    0x14(%esp),%eax
47c8a7:	50                   	push   %eax
47c8a8:	8d 4c 24 7c          	lea    0x7c(%esp),%ecx
47c8ac:	e8 4a 58 fc ff       	call   0x4420fb
47c8b1:	85 c0                	test   %eax,%eax
47c8b3:	74 25                	je     0x47c8da
47c8b5:	83 7c 24 64 00       	cmpl   $0x0,0x64(%esp)
47c8ba:	74 e0                	je     0x47c89c
47c8bc:	8d 44 24 5c          	lea    0x5c(%esp),%eax
47c8c0:	50                   	push   %eax
47c8c1:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
47c8c5:	e8 76 62 f9 ff       	call   0x412b40
47c8ca:	8d 44 24 48          	lea    0x48(%esp),%eax
47c8ce:	50                   	push   %eax
47c8cf:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
47c8d3:	e8 fe f9 f9 ff       	call   0x41c2d6
47c8d8:	eb c2                	jmp    0x47c89c
47c8da:	8b 7c 24 20          	mov    0x20(%esp),%edi
47c8de:	85 ff                	test   %edi,%edi
47c8e0:	75 15                	jne    0x47c8f7
47c8e2:	8b 74 24 14          	mov    0x14(%esp),%esi
47c8e6:	57                   	push   %edi
47c8e7:	8b 06                	mov    (%esi),%eax
47c8e9:	6a 01                	push   $0x1
47c8eb:	8b 48 04             	mov    0x4(%eax),%ecx
47c8ee:	03 ce                	add    %esi,%ecx
47c8f0:	e8 57 06 fd ff       	call   0x44cf4c
47c8f5:	eb 2d                	jmp    0x47c924
47c8f7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
47c8fa:	57                   	push   %edi
47c8fb:	6a 01                	push   $0x1
47c8fd:	53                   	push   %ebx
47c8fe:	e8 4d f7 f9 ff       	call   0x41c050
47c903:	83 c4 0c             	add    $0xc,%esp
47c906:	33 f6                	xor    %esi,%esi
47c908:	85 ff                	test   %edi,%edi
47c90a:	74 18                	je     0x47c924
47c90c:	8b 44 24 1c          	mov    0x1c(%esp),%eax
47c910:	56                   	push   %esi
47c911:	6a 01                	push   $0x1
47c913:	ff 34 b0             	push   (%eax,%esi,4)
47c916:	53                   	push   %ebx
47c917:	e8 b4 60 f9 ff       	call   0x4129d0
47c91c:	46                   	inc    %esi
47c91d:	83 c4 10             	add    $0x10,%esp
47c920:	3b f7                	cmp    %edi,%esi
47c922:	72 e8                	jb     0x47c90c
47c924:	8d 4c 24 48          	lea    0x48(%esp),%ecx
47c928:	e8 f3 62 f9 ff       	call   0x412c20
47c92d:	8d 4c 24 18          	lea    0x18(%esp),%ecx
47c931:	e8 56 2d fc ff       	call   0x43f68c
47c936:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
47c93a:	e9 8d d1 f8 ff       	jmp    0x409acc
47c93f:	8b 43 04             	mov    0x4(%ebx),%eax
47c942:	8b 48 0c             	mov    0xc(%eax),%ecx
47c945:	e8 3c 09 f9 ff       	call   0x40d286
47c94a:	89 44 24 14          	mov    %eax,0x14(%esp)
47c94e:	e9 29 c6 f8 ff       	jmp    0x408f7c
47c953:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47c956:	e8 0d a2 f8 ff       	call   0x406b68
47c95b:	8b 0f                	mov    (%edi),%ecx
47c95d:	6a 00                	push   $0x0
47c95f:	8b 49 04             	mov    0x4(%ecx),%ecx
47c962:	6a 02                	push   $0x2
47c964:	03 cf                	add    %edi,%ecx
47c966:	e8 e1 05 fd ff       	call   0x44cf4c
47c96b:	6a 00                	push   $0x0
47c96d:	8d 46 01             	lea    0x1(%esi),%eax
47c970:	50                   	push   %eax
47c971:	8b 07                	mov    (%edi),%eax
47c973:	8b 48 04             	mov    0x4(%eax),%ecx
47c976:	03 cf                	add    %edi,%ecx
47c978:	e8 a4 69 f8 ff       	call   0x403321
47c97d:	e9 68 c6 f8 ff       	jmp    0x408fea
47c982:	33 c0                	xor    %eax,%eax
47c984:	84 d2                	test   %dl,%dl
47c986:	0f 94 c0             	sete   %al
47c989:	89 44 24 28          	mov    %eax,0x28(%esp)
47c98d:	03 c7                	add    %edi,%eax
47c98f:	50                   	push   %eax
47c990:	51                   	push   %ecx
47c991:	ff 75 0c             	push   0xc(%ebp)
47c994:	e8 b7 f6 f9 ff       	call   0x41c050
47c999:	33 f6                	xor    %esi,%esi
47c99b:	83 c4 0c             	add    $0xc,%esp
47c99e:	46                   	inc    %esi
47c99f:	38 5c 24 0f          	cmp    %bl,0xf(%esp)
47c9a3:	75 27                	jne    0x47c9cc
47c9a5:	53                   	push   %ebx
47c9a6:	56                   	push   %esi
47c9a7:	8d 44 24 50          	lea    0x50(%esp),%eax
47c9ab:	50                   	push   %eax
47c9ac:	ff 75 0c             	push   0xc(%ebp)
47c9af:	89 7c 24 58          	mov    %edi,0x58(%esp)
47c9b3:	89 5c 24 60          	mov    %ebx,0x60(%esp)
47c9b7:	89 74 24 64          	mov    %esi,0x64(%esp)
47c9bb:	e8 10 60 f9 ff       	call   0x4129d0
47c9c0:	83 c4 10             	add    $0x10,%esp
47c9c3:	8d 4c 24 48          	lea    0x48(%esp),%ecx
47c9c7:	e8 54 62 f9 ff       	call   0x412c20
47c9cc:	85 ff                	test   %edi,%edi
47c9ce:	0f 8e 31 c9 f8 ff    	jle    0x409305
47c9d4:	56                   	push   %esi
47c9d5:	53                   	push   %ebx
47c9d6:	ff 74 24 18          	push   0x18(%esp)
47c9da:	8d 4c 24 44          	lea    0x44(%esp),%ecx
47c9de:	e8 6c f8 f8 ff       	call   0x40c24f
47c9e3:	8d 44 24 38          	lea    0x38(%esp),%eax
47c9e7:	50                   	push   %eax
47c9e8:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
47c9ec:	e8 57 c6 f8 ff       	call   0x409048
47c9f1:	ff 74 24 28          	push   0x28(%esp)
47c9f5:	8d 44 24 4c          	lea    0x4c(%esp),%eax
47c9f9:	56                   	push   %esi
47c9fa:	50                   	push   %eax
47c9fb:	ff 75 0c             	push   0xc(%ebp)
47c9fe:	e8 cd 5f f9 ff       	call   0x4129d0
47ca03:	83 c4 10             	add    $0x10,%esp
47ca06:	ff 44 24 28          	incl   0x28(%esp)
47ca0a:	8d 4c 24 48          	lea    0x48(%esp),%ecx
47ca0e:	e8 0d 62 f9 ff       	call   0x412c20
47ca13:	43                   	inc    %ebx
47ca14:	3b df                	cmp    %edi,%ebx
47ca16:	7c bc                	jl     0x47c9d4
47ca18:	e9 e8 c8 f8 ff       	jmp    0x409305
47ca1d:	49                   	dec    %ecx
47ca1e:	83 c6 02             	add    $0x2,%esi
47ca21:	03 f9                	add    %ecx,%edi
47ca23:	e9 91 c7 f8 ff       	jmp    0x4091b9
47ca28:	8b f3                	mov    %ebx,%esi
47ca2a:	8b c3                	mov    %ebx,%eax
47ca2c:	89 74 24 18          	mov    %esi,0x18(%esp)
47ca30:	89 44 24 30          	mov    %eax,0x30(%esp)
47ca34:	85 ff                	test   %edi,%edi
47ca36:	0f 8e 08 01 00 00    	jle    0x47cb44
47ca3c:	8b 5c 24 10          	mov    0x10(%esp),%ebx
47ca40:	ff 74 24 14          	push   0x14(%esp)
47ca44:	66 8b 14 43          	mov    (%ebx,%eax,2),%dx
47ca48:	8b 4c 24 20          	mov    0x20(%esp),%ecx
47ca4c:	e8 fe c8 f8 ff       	call   0x40934f
47ca51:	59                   	pop    %ecx
47ca52:	85 c0                	test   %eax,%eax
47ca54:	74 01                	je     0x47ca57
47ca56:	46                   	inc    %esi
47ca57:	8b 44 24 30          	mov    0x30(%esp),%eax
47ca5b:	40                   	inc    %eax
47ca5c:	89 44 24 30          	mov    %eax,0x30(%esp)
47ca60:	3b c7                	cmp    %edi,%eax
47ca62:	7c dc                	jl     0x47ca40
47ca64:	89 74 24 18          	mov    %esi,0x18(%esp)
47ca68:	33 db                	xor    %ebx,%ebx
47ca6a:	e9 7c c7 f8 ff       	jmp    0x4091eb
47ca6f:	40                   	inc    %eax
47ca70:	50                   	push   %eax
47ca71:	56                   	push   %esi
47ca72:	ff 75 0c             	push   0xc(%ebp)
47ca75:	e8 d6 f5 f9 ff       	call   0x41c050
47ca7a:	8b 44 24 3c          	mov    0x3c(%esp),%eax
47ca7e:	53                   	push   %ebx
47ca7f:	89 44 24 58          	mov    %eax,0x58(%esp)
47ca83:	56                   	push   %esi
47ca84:	8d 44 24 5c          	lea    0x5c(%esp),%eax
47ca88:	50                   	push   %eax
47ca89:	ff 75 0c             	push   0xc(%ebp)
47ca8c:	89 5c 24 6c          	mov    %ebx,0x6c(%esp)
47ca90:	89 74 24 70          	mov    %esi,0x70(%esp)
47ca94:	e8 37 5f f9 ff       	call   0x4129d0
47ca99:	83 c4 1c             	add    $0x1c,%esp
47ca9c:	8d 4c 24 48          	lea    0x48(%esp),%ecx
47caa0:	e8 7b 61 f9 ff       	call   0x412c20
47caa5:	89 74 24 18          	mov    %esi,0x18(%esp)
47caa9:	e9 6b c7 f8 ff       	jmp    0x409219
47caae:	8b 44 24 20          	mov    0x20(%esp),%eax
47cab2:	8b 4c 24 14          	mov    0x14(%esp),%ecx
47cab6:	83 c0 02             	add    $0x2,%eax
47cab9:	49                   	dec    %ecx
47caba:	89 44 24 10          	mov    %eax,0x10(%esp)
47cabe:	03 f9                	add    %ecx,%edi
47cac0:	e9 8b c7 f8 ff       	jmp    0x409250
47cac5:	8b 4c 24 28          	mov    0x28(%esp),%ecx
47cac9:	8b 44 24 10          	mov    0x10(%esp),%eax
47cacd:	ff 74 24 14          	push   0x14(%esp)
47cad1:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
47cad5:	8b 4c 24 20          	mov    0x20(%esp),%ecx
47cad9:	8b d0                	mov    %eax,%edx
47cadb:	89 44 24 38          	mov    %eax,0x38(%esp)
47cadf:	e8 6b c8 f8 ff       	call   0x40934f
47cae4:	59                   	pop    %ecx
47cae5:	85 c0                	test   %eax,%eax
47cae7:	75 15                	jne    0x47cafe
47cae9:	39 7c 24 28          	cmp    %edi,0x28(%esp)
47caed:	74 0f                	je     0x47cafe
47caef:	ff 74 24 34          	push   0x34(%esp)
47caf3:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
47caf7:	e8 9d fc f8 ff       	call   0x40c799
47cafc:	eb 3d                	jmp    0x47cb3b
47cafe:	8d 44 24 38          	lea    0x38(%esp),%eax
47cb02:	50                   	push   %eax
47cb03:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
47cb07:	e8 3c c5 f8 ff       	call   0x409048
47cb0c:	ff 74 24 18          	push   0x18(%esp)
47cb10:	8d 44 24 5c          	lea    0x5c(%esp),%eax
47cb14:	56                   	push   %esi
47cb15:	50                   	push   %eax
47cb16:	ff 75 0c             	push   0xc(%ebp)
47cb19:	e8 b2 5e f9 ff       	call   0x4129d0
47cb1e:	83 c4 10             	add    $0x10,%esp
47cb21:	ff 44 24 18          	incl   0x18(%esp)
47cb25:	8d 4c 24 58          	lea    0x58(%esp),%ecx
47cb29:	e8 f2 60 f9 ff       	call   0x412c20
47cb2e:	8d 4c 24 38          	lea    0x38(%esp),%ecx
47cb32:	e8 97 f1 f8 ff       	call   0x40bcce
47cb37:	ff 44 24 24          	incl   0x24(%esp)
47cb3b:	ff 44 24 28          	incl   0x28(%esp)
47cb3f:	e9 b3 c7 f8 ff       	jmp    0x4092f7
47cb44:	33 ff                	xor    %edi,%edi
47cb46:	47                   	inc    %edi
47cb47:	80 7c 24 0f 00       	cmpb   $0x0,0xf(%esp)
47cb4c:	74 41                	je     0x47cb8f
47cb4e:	57                   	push   %edi
47cb4f:	57                   	push   %edi
47cb50:	ff 75 0c             	push   0xc(%ebp)
47cb53:	e8 f8 f4 f9 ff       	call   0x41c050
47cb58:	8b 4d 08             	mov    0x8(%ebp),%ecx
47cb5b:	83 c4 0c             	add    $0xc,%esp
47cb5e:	8b 41 04             	mov    0x4(%ecx),%eax
47cb61:	8b 30                	mov    (%eax),%esi
47cb63:	8b ce                	mov    %esi,%ecx
47cb65:	e8 02 c8 f8 ff       	call   0x40936c
47cb6a:	8b 46 08             	mov    0x8(%esi),%eax
47cb6d:	8d 4c 24 38          	lea    0x38(%esp),%ecx
47cb71:	ff 70 04             	push   0x4(%eax)
47cb74:	53                   	push   %ebx
47cb75:	ff 74 24 18          	push   0x18(%esp)
47cb79:	e8 d1 f6 f8 ff       	call   0x40c24f
47cb7e:	8d 44 24 38          	lea    0x38(%esp),%eax
47cb82:	50                   	push   %eax
47cb83:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
47cb87:	e8 bc c4 f8 ff       	call   0x409048
47cb8c:	53                   	push   %ebx
47cb8d:	eb 64                	jmp    0x47cbf3
47cb8f:	6a 02                	push   $0x2
47cb91:	57                   	push   %edi
47cb92:	ff 75 0c             	push   0xc(%ebp)
47cb95:	e8 b6 f4 f9 ff       	call   0x41c050
47cb9a:	53                   	push   %ebx
47cb9b:	57                   	push   %edi
47cb9c:	8d 44 24 5c          	lea    0x5c(%esp),%eax
47cba0:	50                   	push   %eax
47cba1:	ff 75 0c             	push   0xc(%ebp)
47cba4:	89 7c 24 64          	mov    %edi,0x64(%esp)
47cba8:	89 5c 24 6c          	mov    %ebx,0x6c(%esp)
47cbac:	89 7c 24 70          	mov    %edi,0x70(%esp)
47cbb0:	e8 1b 5e f9 ff       	call   0x4129d0
47cbb5:	83 c4 1c             	add    $0x1c,%esp
47cbb8:	8d 4c 24 48          	lea    0x48(%esp),%ecx
47cbbc:	e8 5f 60 f9 ff       	call   0x412c20
47cbc1:	8b 4d 08             	mov    0x8(%ebp),%ecx
47cbc4:	8b 41 04             	mov    0x4(%ecx),%eax
47cbc7:	8b 30                	mov    (%eax),%esi
47cbc9:	8b ce                	mov    %esi,%ecx
47cbcb:	e8 9c c7 f8 ff       	call   0x40936c
47cbd0:	8b 46 08             	mov    0x8(%esi),%eax
47cbd3:	8d 4c 24 38          	lea    0x38(%esp),%ecx
47cbd7:	ff 70 04             	push   0x4(%eax)
47cbda:	53                   	push   %ebx
47cbdb:	ff 74 24 18          	push   0x18(%esp)
47cbdf:	e8 6b f6 f8 ff       	call   0x40c24f
47cbe4:	8d 44 24 38          	lea    0x38(%esp),%eax
47cbe8:	50                   	push   %eax
47cbe9:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
47cbed:	e8 56 c4 f8 ff       	call   0x409048
47cbf2:	57                   	push   %edi
47cbf3:	57                   	push   %edi
47cbf4:	8d 44 24 60          	lea    0x60(%esp),%eax
47cbf8:	50                   	push   %eax
47cbf9:	ff 75 0c             	push   0xc(%ebp)
47cbfc:	e8 cf 5d f9 ff       	call   0x4129d0
47cc01:	83 c4 10             	add    $0x10,%esp
47cc04:	8d 4c 24 58          	lea    0x58(%esp),%ecx
47cc08:	e8 13 60 f9 ff       	call   0x412c20
47cc0d:	8b 54 24 34          	mov    0x34(%esp),%edx
47cc11:	2b 7c 24 18          	sub    0x18(%esp),%edi
47cc15:	8b 02                	mov    (%edx),%eax
47cc17:	53                   	push   %ebx
47cc18:	8b 48 04             	mov    0x4(%eax),%ecx
47cc1b:	57                   	push   %edi
47cc1c:	03 ca                	add    %edx,%ecx
47cc1e:	e8 29 03 fd ff       	call   0x44cf4c
47cc23:	e9 dd c6 f8 ff       	jmp    0x409305
47cc28:	8b fb                	mov    %ebx,%edi
47cc2a:	e9 5d 9a f8 ff       	jmp    0x40668c
47cc2f:	79 11                	jns    0x47cc42
47cc31:	f7 d8                	neg    %eax