52ba31:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
52ba37:	8a 7f 4e             	mov    0x4e(%edi),%bh
52ba3a:	8a 9f a5 00 00 00    	mov    0xa5(%edi),%bl
52ba40:	88 bd 50 ff ff ff    	mov    %bh,-0xb0(%ebp)
52ba46:	85 c9                	test   %ecx,%ecx
52ba48:	74 1b                	je     0x52ba65
52ba4a:	0f b6 c3             	movzbl %bl,%eax
52ba4d:	50                   	push   %eax
52ba4e:	51                   	push   %ecx
52ba4f:	57                   	push   %edi
52ba50:	e8 fb 63 fd ff       	call   0x501e50
52ba55:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
52ba5b:	83 c4 0c             	add    $0xc,%esp
52ba5e:	8b 55 dc             	mov    -0x24(%ebp),%edx
52ba61:	8b f8                	mov    %eax,%edi
52ba63:	eb 03                	jmp    0x52ba68
52ba65:	8b 7f 08             	mov    0x8(%edi),%edi
52ba68:	85 ff                	test   %edi,%edi
52ba6a:	74 0c                	je     0x52ba78
52ba6c:	0f b6 c7             	movzbl %bh,%eax
52ba6f:	8d 04 80             	lea    (%eax,%eax,4),%eax
52ba72:	8d 3c 87             	lea    (%edi,%eax,4),%edi
52ba75:	83 c7 ec             	add    $0xffffffec,%edi
52ba78:	84 db                	test   %bl,%bl
52ba7a:	75 1d                	jne    0x52ba99
52ba7c:	85 ff                	test   %edi,%edi
52ba7e:	74 06                	je     0x52ba86
52ba80:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
52ba84:	75 13                	jne    0x52ba99
52ba86:	51                   	push   %ecx
52ba87:	57                   	push   %edi
52ba88:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
52ba8e:	52                   	push   %edx
52ba8f:	e8 3c 12 00 00       	call   0x52ccd0
52ba94:	83 c4 10             	add    $0x10,%esp
52ba97:	8b f8                	mov    %eax,%edi
52ba99:	8b 5d b0             	mov    -0x50(%ebp),%ebx
52ba9c:	8b 55 c4             	mov    -0x3c(%ebp),%edx
52ba9f:	8b 4b 04             	mov    0x4(%ebx),%ecx
52baa2:	0f bf 04 51          	movswl (%ecx,%edx,2),%eax
52baa6:	0f b7 4b 32          	movzwl 0x32(%ebx),%ecx
52baaa:	49                   	dec    %ecx
52baab:	3b d1                	cmp    %ecx,%edx
52baad:	75 0d                	jne    0x52babc
52baaf:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
52bab2:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
52bab5:	c7 45 80 35 00 00 00 	movl   $0x35,-0x80(%ebp)
52babc:	50                   	push   %eax
52babd:	ff 75 d8             	push   -0x28(%ebp)
52bac0:	e8 8b 23 01 00       	call   0x53de50
52bac5:	8b 5d 20             	mov    0x20(%ebp),%ebx
52bac8:	83 c4 08             	add    $0x8,%esp
52bacb:	8b 56 6c             	mov    0x6c(%esi),%edx
52bace:	43                   	inc    %ebx
52bacf:	98                   	cwtl
52bad0:	03 d8                	add    %eax,%ebx
52bad2:	39 56 70             	cmp    %edx,0x70(%esi)
52bad5:	7f 1e                	jg     0x52baf5
52bad7:	8b 45 c4             	mov    -0x3c(%ebp),%eax
52bada:	03 45 a0             	add    -0x60(%ebp),%eax
52badd:	50                   	push   %eax
52bade:	ff 75 b4             	push   -0x4c(%ebp)
52bae1:	53                   	push   %ebx
52bae2:	ff 75 80             	push   -0x80(%ebp)
52bae5:	56                   	push   %esi
52bae6:	e8 15 aa fd ff       	call   0x506500
52baeb:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
52baee:	83 c4 14             	add    $0x14,%esp
52baf1:	8b d0                	mov    %eax,%edx
52baf3:	eb 3b                	jmp    0x52bb30
52baf5:	8d 42 01             	lea    0x1(%edx),%eax
52baf8:	89 46 6c             	mov    %eax,0x6c(%esi)
52bafb:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52bafe:	8b 46 68             	mov    0x68(%esi),%eax
52bb01:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
52bb05:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
52bb08:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52bb0f:	00
52bb10:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
52bb13:	8b 45 80             	mov    -0x80(%ebp),%eax
52bb16:	c6 41 01 00          	movb   $0x0,0x1(%ecx)
52bb1a:	88 01                	mov    %al,(%ecx)
52bb1c:	33 c0                	xor    %eax,%eax
52bb1e:	66 89 41 02          	mov    %ax,0x2(%ecx)
52bb22:	8b 45 b4             	mov    -0x4c(%ebp),%eax
52bb25:	89 41 08             	mov    %eax,0x8(%ecx)
52bb28:	8b 45 a0             	mov    -0x60(%ebp),%eax
52bb2b:	03 c3                	add    %ebx,%eax
52bb2d:	89 41 0c             	mov    %eax,0xc(%ecx)
52bb30:	8b 06                	mov    (%esi),%eax
52bb32:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52bb36:	74 0e                	je     0x52bb46
52bb38:	57                   	push   %edi
52bb39:	6a fe                	push   $0xfffffffe
52bb3b:	50                   	push   %eax
52bb3c:	e8 6f 81 fd ff       	call   0x503cb0
52bb41:	83 c4 0c             	add    $0xc,%esp
52bb44:	eb 32                	jmp    0x52bb78
52bb46:	85 d2                	test   %edx,%edx
52bb48:	79 04                	jns    0x52bb4e
52bb4a:	8b 56 6c             	mov    0x6c(%esi),%edx
52bb4d:	4a                   	dec    %edx
52bb4e:	8b 46 68             	mov    0x68(%esi),%eax
52bb51:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52bb54:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
52bb59:	8d 04 88             	lea    (%eax,%ecx,4),%eax
52bb5c:	74 0f                	je     0x52bb6d
52bb5e:	6a fe                	push   $0xfffffffe
52bb60:	57                   	push   %edi
52bb61:	50                   	push   %eax
52bb62:	56                   	push   %esi
52bb63:	e8 d8 e0 02 00       	call   0x559c40
52bb68:	83 c4 10             	add    $0x10,%esp
52bb6b:	eb 0b                	jmp    0x52bb78
52bb6d:	85 ff                	test   %edi,%edi
52bb6f:	74 07                	je     0x52bb78
52bb71:	89 78 10             	mov    %edi,0x10(%eax)
52bb74:	c6 40 01 fe          	movb   $0xfe,0x1(%eax)
52bb78:	8b 46 6c             	mov    0x6c(%esi),%eax
52bb7b:	85 c0                	test   %eax,%eax
52bb7d:	7e 10                	jle    0x52bb8f
52bb7f:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
52bb82:	ba 90 00 00 00       	mov    $0x90,%edx
52bb87:	8b 46 68             	mov    0x68(%esi),%eax
52bb8a:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
52bb8f:	8b 4d b0             	mov    -0x50(%ebp),%ecx
52bb92:	43                   	inc    %ebx
52bb93:	89 5d c4             	mov    %ebx,-0x3c(%ebp)
52bb96:	0f b7 41 32          	movzwl 0x32(%ecx),%eax
52bb9a:	3b d8                	cmp    %eax,%ebx
52bb9c:	0f 8c 84 fe ff ff    	jl     0x52ba26
52bba2:	8b 55 20             	mov    0x20(%ebp),%edx
52bba5:	8b 4d c0             	mov    -0x40(%ebp),%ecx
52bba8:	8d 41 ff             	lea    -0x1(%ecx),%eax
52bbab:	83 f8 05             	cmp    $0x5,%eax
52bbae:	0f 87 96 00 00 00    	ja     0x52bc4a
52bbb4:	ff 24 85 30 c5 52 00 	jmp    *0x52c530(,%eax,4)
52bbbb:	ff 75 d0             	push   -0x30(%ebp)
52bbbe:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52bbc1:	51                   	push   %ecx
52bbc2:	53                   	push   %ebx
52bbc3:	e8 b8 2b 01 00       	call   0x53e780
52bbc8:	83 c4 0c             	add    $0xc,%esp
52bbcb:	e9 57 04 00 00       	jmp    0x52c027
52bbd0:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52bbd3:	03 45 18             	add    0x18(%ebp),%eax
52bbd6:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52bbd9:	50                   	push   %eax
52bbda:	ff 75 d0             	push   -0x30(%ebp)
52bbdd:	ff 75 d8             	push   -0x28(%ebp)
52bbe0:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
52bbe6:	53                   	push   %ebx
52bbe7:	e8 14 54 01 00       	call   0x541000
52bbec:	83 c4 14             	add    $0x14,%esp
52bbef:	eb 03                	jmp    0x52bbf4
52bbf1:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52bbf4:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52bbf7:	39 4e 70             	cmp    %ecx,0x70(%esi)
52bbfa:	7f 17                	jg     0x52bc13
52bbfc:	6a 00                	push   $0x0
52bbfe:	ff 75 2c             	push   0x2c(%ebp)
52bc01:	6a 00                	push   $0x0
52bc03:	6a 0b                	push   $0xb
52bc05:	56                   	push   %esi
52bc06:	e8 f5 a8 fd ff       	call   0x506500
52bc0b:	83 c4 14             	add    $0x14,%esp
52bc0e:	e9 14 04 00 00       	jmp    0x52c027
52bc13:	8b 55 2c             	mov    0x2c(%ebp),%edx
52bc16:	8d 41 01             	lea    0x1(%ecx),%eax
52bc19:	89 46 6c             	mov    %eax,0x6c(%esi)
52bc1c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52bc1f:	8b 46 68             	mov    0x68(%esi),%eax
52bc22:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52bc29:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52bc30:	00
52bc31:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
52bc35:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52bc3c:	00
52bc3d:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52bc44:	00
52bc45:	e9 dd 03 00 00       	jmp    0x52c027
52bc4a:	8b 7e 6c             	mov    0x6c(%esi),%edi
52bc4d:	2b 7d bc             	sub    -0x44(%ebp),%edi
52bc50:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
52bc54:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52bc57:	89 7d b4             	mov    %edi,-0x4c(%ebp)
52bc5a:	74 14                	je     0x52bc70
52bc5c:	8b 43 74             	mov    0x74(%ebx),%eax
52bc5f:	8b cb                	mov    %ebx,%ecx
52bc61:	85 c0                	test   %eax,%eax
52bc63:	0f 45 c8             	cmovne %eax,%ecx
52bc66:	ff 85 68 ff ff ff    	incl   -0x98(%ebp)
52bc6c:	c6 41 14 01          	movb   $0x1,0x14(%ecx)
52bc70:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
52bc74:	74 55                	je     0x52bccb
52bc76:	85 d2                	test   %edx,%edx
52bc78:	74 51                	je     0x52bccb
52bc7a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52bc7d:	39 4e 70             	cmp    %ecx,0x70(%esi)
52bc80:	7f 17                	jg     0x52bc99
52bc82:	6a 00                	push   $0x0
52bc84:	6a 00                	push   $0x0
52bc86:	ff 75 14             	push   0x14(%ebp)
52bc89:	68 9f 00 00 00       	push   $0x9f
52bc8e:	56                   	push   %esi
52bc8f:	e8 6c a8 fd ff       	call   0x506500
52bc94:	83 c4 14             	add    $0x14,%esp
52bc97:	eb 32                	jmp    0x52bccb
52bc99:	8b 55 14             	mov    0x14(%ebp),%edx
52bc9c:	8d 41 01             	lea    0x1(%ecx),%eax
52bc9f:	89 46 6c             	mov    %eax,0x6c(%esi)
52bca2:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52bca5:	8b 46 68             	mov    0x68(%esi),%eax
52bca8:	c7 04 88 9f 00 00 00 	movl   $0x9f,(%eax,%ecx,4)
52bcaf:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52bcb3:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
52bcba:	00
52bcbb:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52bcc2:	00
52bcc3:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52bcca:	00
52bccb:	8b 55 18             	mov    0x18(%ebp),%edx
52bcce:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52bcd1:	03 c2                	add    %edx,%eax
52bcd3:	50                   	push   %eax
52bcd4:	8b 45 b0             	mov    -0x50(%ebp),%eax
52bcd7:	39 45 d0             	cmp    %eax,-0x30(%ebp)
52bcda:	0f 94 c0             	sete   %al
52bcdd:	0f b6 c0             	movzbl %al,%eax
52bce0:	50                   	push   %eax
52bce1:	6a 05                	push   $0x5
52bce3:	6a 00                	push   $0x0
52bce5:	ff 75 84             	push   -0x7c(%ebp)
52bce8:	ff 75 98             	push   -0x68(%ebp)
52bceb:	52                   	push   %edx
52bcec:	ff 75 14             	push   0x14(%ebp)
52bcef:	ff 75 9c             	push   -0x64(%ebp)
52bcf2:	ff 75 d8             	push   -0x28(%ebp)
52bcf5:	53                   	push   %ebx
52bcf6:	e8 a5 0a 00 00       	call   0x52c7a0
52bcfb:	83 c4 2c             	add    $0x2c,%esp
52bcfe:	83 7d 9c 00          	cmpl   $0x0,-0x64(%ebp)
52bd02:	74 57                	je     0x52bd5b
52bd04:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
52bd08:	74 51                	je     0x52bd5b
52bd0a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52bd0d:	39 4e 70             	cmp    %ecx,0x70(%esi)
52bd10:	7f 17                	jg     0x52bd29
52bd12:	6a 00                	push   $0x0
52bd14:	6a 00                	push   $0x0
52bd16:	ff 75 14             	push   0x14(%ebp)
52bd19:	68 a0 00 00 00       	push   $0xa0
52bd1e:	56                   	push   %esi
52bd1f:	e8 dc a7 fd ff       	call   0x506500
52bd24:	83 c4 14             	add    $0x14,%esp
52bd27:	eb 32                	jmp    0x52bd5b
52bd29:	8b 55 14             	mov    0x14(%ebp),%edx
52bd2c:	8d 41 01             	lea    0x1(%ecx),%eax
52bd2f:	89 46 6c             	mov    %eax,0x6c(%esi)
52bd32:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52bd35:	8b 46 68             	mov    0x68(%esi),%eax
52bd38:	c7 04 88 a0 00 00 00 	movl   $0xa0,(%eax,%ecx,4)
52bd3f:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52bd43:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
52bd4a:	00
52bd4b:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52bd52:	00
52bd53:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52bd5a:	00
52bd5b:	8b 55 c8             	mov    -0x38(%ebp),%edx
52bd5e:	85 d2                	test   %edx,%edx
52bd60:	0f 84 b7 02 00 00    	je     0x52c01d
52bd66:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52bd69:	39 4e 70             	cmp    %ecx,0x70(%esi)
52bd6c:	7f 12                	jg     0x52bd80
52bd6e:	6a 00                	push   $0x0
52bd70:	6a 01                	push   $0x1
52bd72:	52                   	push   %edx
52bd73:	6a 52                	push   $0x52
52bd75:	56                   	push   %esi
52bd76:	e8 85 a7 fd ff       	call   0x506500
52bd7b:	83 c4 14             	add    $0x14,%esp
52bd7e:	eb 32                	jmp    0x52bdb2
52bd80:	8b 7d b4             	mov    -0x4c(%ebp),%edi
52bd83:	8d 41 01             	lea    0x1(%ecx),%eax
52bd86:	89 46 6c             	mov    %eax,0x6c(%esi)
52bd89:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
52bd8c:	8b 46 68             	mov    0x68(%esi),%eax
52bd8f:	c7 04 88 52 00 00 00 	movl   $0x52,(%eax,%ecx,4)
52bd96:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
52bd9a:	c7 44 88 08 01 00 00 	movl   $0x1,0x8(%eax,%ecx,4)
52bda1:	00
52bda2:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52bda9:	00
52bdaa:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52bdb1:	00
52bdb2:	8b 56 6c             	mov    0x6c(%esi),%edx
52bdb5:	89 55 a0             	mov    %edx,-0x60(%ebp)
52bdb8:	39 56 70             	cmp    %edx,0x70(%esi)
52bdbb:	7f 16                	jg     0x52bdd3
52bdbd:	6a 00                	push   $0x0
52bdbf:	6a 00                	push   $0x0
52bdc1:	6a 00                	push   $0x0
52bdc3:	6a 0b                	push   $0xb
52bdc5:	56                   	push   %esi
52bdc6:	e8 35 a7 fd ff       	call   0x506500
52bdcb:	83 c4 14             	add    $0x14,%esp
52bdce:	89 45 a0             	mov    %eax,-0x60(%ebp)
52bdd1:	eb 33                	jmp    0x52be06
52bdd3:	8d 42 01             	lea    0x1(%edx),%eax
52bdd6:	89 46 6c             	mov    %eax,0x6c(%esi)
52bdd9:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52bddc:	8b 46 68             	mov    0x68(%esi),%eax
52bddf:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
52bde6:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
52bded:	00
52bdee:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
52bdf5:	00
52bdf6:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
52bdfd:	00
52bdfe:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
52be05:	00
52be06:	8b 4e 0c             	mov    0xc(%esi),%ecx
52be09:	8b 55 94             	mov    -0x6c(%ebp),%edx
52be0c:	f7 d2                	not    %edx
52be0e:	8b 41 3c             	mov    0x3c(%ecx),%eax
52be11:	03 41 38             	add    0x38(%ecx),%eax
52be14:	79 0d                	jns    0x52be23
52be16:	52                   	push   %edx
52be17:	56                   	push   %esi
52be18:	51                   	push   %ecx
52be19:	e8 82 79 fe ff       	call   0x5137a0
52be1e:	83 c4 0c             	add    $0xc,%esp
52be21:	eb 09                	jmp    0x52be2c
52be23:	8b 49 40             	mov    0x40(%ecx),%ecx
52be26:	8b 46 6c             	mov    0x6c(%esi),%eax
52be29:	89 04 91             	mov    %eax,(%ecx,%edx,4)
52be2c:	8b 45 d0             	mov    -0x30(%ebp),%eax
52be2f:	ff 4b 38             	decl   0x38(%ebx)
52be32:	8b 53 38             	mov    0x38(%ebx),%edx
52be35:	89 55 94             	mov    %edx,-0x6c(%ebp)
52be38:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
52be3c:	74 50                	je     0x52be8e
52be3e:	8b 4e 6c             	mov    0x6c(%esi),%ecx
52be41:	39 4e 70             	cmp    %ecx,0x70(%esi)
52be44:	7f 17                	jg     0x52be5d
52be46:	6a 00                	push   $0x0
52be48:	52                   	push   %edx
52be49:	8b 55 a8             	mov    -0x58(%ebp),%edx
52be4c:	52                   	push   %edx