52eb60:	56                   	push   %esi
52eb61:	e8 3a af 00 00       	call   0x539aa0
52eb66:	8b 4d ec             	mov    -0x14(%ebp),%ecx
52eb69:	83 c4 20             	add    $0x20,%esp
52eb6c:	89 4d ac             	mov    %ecx,-0x54(%ebp)
52eb6f:	85 c0                	test   %eax,%eax
52eb71:	0f 85 0b 0b 00 00    	jne    0x52f682
52eb77:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
52eb7d:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
52eb81:	0f 85 fb 0a 00 00    	jne    0x52f682
52eb87:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
52eb8b:	0f 85 f1 0a 00 00    	jne    0x52f682
52eb91:	ff 75 a4             	push   -0x5c(%ebp)
52eb94:	53                   	push   %ebx
52eb95:	e8 16 3b 01 00       	call   0x5426b0
52eb9a:	ff 75 b4             	push   -0x4c(%ebp)
52eb9d:	53                   	push   %ebx
52eb9e:	e8 bd bb 01 00       	call   0x54a760
52eba3:	8b 45 b8             	mov    -0x48(%ebp),%eax
52eba6:	83 c4 10             	add    $0x10,%esp
52eba9:	83 bd 6c ff ff ff 00 	cmpl   $0x0,-0x94(%ebp)
52ebb0:	8b 40 1c             	mov    0x1c(%eax),%eax
52ebb3:	8b 00                	mov    (%eax),%eax
52ebb5:	89 45 cc             	mov    %eax,-0x34(%ebp)
52ebb8:	75 5c                	jne    0x52ec16
52ebba:	57                   	push   %edi
52ebbb:	ff 75 c8             	push   -0x38(%ebp)
52ebbe:	56                   	push   %esi
52ebbf:	e8 fc 2c fe ff       	call   0x5118c0
52ebc4:	83 c4 0c             	add    $0xc,%esp
52ebc7:	85 c0                	test   %eax,%eax
52ebc9:	75 4b                	jne    0x52ec16
52ebcb:	8b 45 e8             	mov    -0x18(%ebp),%eax
52ebce:	8b 7d cc             	mov    -0x34(%ebp),%edi
52ebd1:	89 45 98             	mov    %eax,-0x68(%ebp)
52ebd4:	e9 19 01 00 00       	jmp    0x52ecf2
52ebd9:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
52ebdc:	ff 34 88             	push   (%eax,%ecx,4)
52ebdf:	68 9c a8 6b 00       	push   $0x6ba89c
52ebe4:	56                   	push   %esi
52ebe5:	e8 76 46 ff ff       	call   0x523260
52ebea:	83 c4 0c             	add    $0xc,%esp
52ebed:	e9 90 0a 00 00       	jmp    0x52f682
52ebf2:	8b 07                	mov    (%edi),%eax
52ebf4:	8b 55 cc             	mov    -0x34(%ebp),%edx
52ebf7:	ff 34 d0             	push   (%eax,%edx,8)
52ebfa:	6a 00                	push   $0x0
52ebfc:	ff 75 84             	push   -0x7c(%ebp)
52ebff:	68 c8 a8 6b 00       	push   $0x6ba8c8
52ec04:	56                   	push   %esi
52ec05:	e8 56 46 ff ff       	call   0x523260
52ec0a:	83 c4 14             	add    $0x14,%esp
52ec0d:	c6 46 11 01          	movb   $0x1,0x11(%esi)
52ec11:	e9 6f 0a 00 00       	jmp    0x52f685
52ec16:	8b 56 28             	mov    0x28(%esi),%edx
52ec19:	56                   	push   %esi
52ec1a:	c6 45 d3 01          	movb   $0x1,-0x2d(%ebp)
52ec1e:	89 55 a8             	mov    %edx,-0x58(%ebp)
52ec21:	8d 42 01             	lea    0x1(%edx),%eax
52ec24:	89 46 28             	mov    %eax,0x28(%esi)
52ec27:	e8 54 e3 ff ff       	call   0x52cf80
52ec2c:	56                   	push   %esi
52ec2d:	8b f8                	mov    %eax,%edi
52ec2f:	e8 4c e3 ff ff       	call   0x52cf80
52ec34:	ff 75 cc             	push   -0x34(%ebp)
52ec37:	8b 75 bc             	mov    -0x44(%ebp),%esi
52ec3a:	8b d8                	mov    %eax,%ebx
52ec3c:	52                   	push   %edx
52ec3d:	6a 64                	push   $0x64
52ec3f:	56                   	push   %esi
52ec40:	e8 9b 2e 01 00       	call   0x541ae0
52ec45:	8b 45 e8             	mov    -0x18(%ebp),%eax
52ec48:	50                   	push   %eax
52ec49:	6a 0e                	push   $0xe
52ec4b:	56                   	push   %esi
52ec4c:	89 45 98             	mov    %eax,-0x68(%ebp)
52ec4f:	e8 2c 2e 01 00       	call   0x541a80
52ec54:	57                   	push   %edi
52ec55:	ff 75 cc             	push   -0x34(%ebp)
52ec58:	8b f0                	mov    %eax,%esi
52ec5a:	ff 75 ac             	push   -0x54(%ebp)
52ec5d:	6a 5b                	push   $0x5b
52ec5f:	ff 75 bc             	push   -0x44(%ebp)
52ec62:	e8 d9 2e 01 00       	call   0x541b40
52ec67:	53                   	push   %ebx
52ec68:	ff 75 a8             	push   -0x58(%ebp)
52ec6b:	6a 78                	push   $0x78
52ec6d:	ff 75 bc             	push   -0x44(%ebp)
52ec70:	e8 6b 2e 01 00       	call   0x541ae0
52ec75:	83 c4 48             	add    $0x48,%esp
52ec78:	53                   	push   %ebx
52ec79:	57                   	push   %edi
52ec7a:	ff 75 a8             	push   -0x58(%ebp)
52ec7d:	6a 79                	push   $0x79
52ec7f:	ff 75 bc             	push   -0x44(%ebp)
52ec82:	e8 b9 2e 01 00       	call   0x541b40
52ec87:	56                   	push   %esi
52ec88:	ff 75 bc             	push   -0x44(%ebp)
52ec8b:	e8 10 b4 01 00       	call   0x54a0a0
52ec90:	56                   	push   %esi
52ec91:	ff 75 bc             	push   -0x44(%ebp)
52ec94:	e8 c7 ba 01 00       	call   0x54a760
52ec99:	8b 75 94             	mov    -0x6c(%ebp),%esi
52ec9c:	57                   	push   %edi
52ec9d:	56                   	push   %esi
52ec9e:	e8 ed 90 00 00       	call   0x537d90
52eca3:	53                   	push   %ebx
52eca4:	56                   	push   %esi
52eca5:	e8 e6 90 00 00       	call   0x537d90
52ecaa:	8b 5d bc             	mov    -0x44(%ebp),%ebx
52ecad:	83 c4 34             	add    $0x34,%esp
52ecb0:	8b 7d cc             	mov    -0x34(%ebp),%edi
52ecb3:	eb 3d                	jmp    0x52ecf2
52ecb5:	8b 45 90             	mov    -0x70(%ebp),%eax
52ecb8:	0f 57 c0             	xorps  %xmm0,%xmm0
52ecbb:	c7 45 a8 ff ff ff ff 	movl   $0xffffffff,-0x58(%ebp)
52ecc2:	0f 11 45 dc          	movups %xmm0,-0x24(%ebp)
52ecc6:	89 75 dc             	mov    %esi,-0x24(%ebp)
52ecc9:	0f 11 45 ec          	movups %xmm0,-0x14(%ebp)
52eccd:	85 c0                	test   %eax,%eax
52eccf:	74 1c                	je     0x52eced
52ecd1:	8b 38                	mov    (%eax),%edi
52ecd3:	50                   	push   %eax
52ecd4:	8d 45 dc             	lea    -0x24(%ebp),%eax
52ecd7:	89 7d cc             	mov    %edi,-0x34(%ebp)
52ecda:	50                   	push   %eax
52ecdb:	e8 90 94 00 00       	call   0x538170
52ece0:	83 c4 08             	add    $0x8,%esp
52ece3:	85 c0                	test   %eax,%eax
52ece5:	0f 85 97 09 00 00    	jne    0x52f682
52eceb:	eb 05                	jmp    0x52ecf2
52eced:	33 ff                	xor    %edi,%edi
52ecef:	89 7d cc             	mov    %edi,-0x34(%ebp)
52ecf2:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
52ecf6:	75 50                	jne    0x52ed48
52ecf8:	85 ff                	test   %edi,%edi
52ecfa:	8b 7d d8             	mov    -0x28(%ebp),%edi
52ecfd:	7e 4c                	jle    0x52ed4b
52ecff:	0f bf 47 28          	movswl 0x28(%edi),%eax
52ed03:	89 45 b0             	mov    %eax,-0x50(%ebp)
52ed06:	85 c0                	test   %eax,%eax
52ed08:	78 41                	js     0x52ed4b
52ed0a:	f6 47 24 60          	testb  $0x60,0x24(%edi)
52ed0e:	74 3b                	je     0x52ed4b
52ed10:	8d 50 ff             	lea    -0x1(%eax),%edx
52ed13:	85 d2                	test   %edx,%edx
52ed15:	78 34                	js     0x52ed4b
52ed17:	8b 7f 04             	mov    0x4(%edi),%edi
52ed1a:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
52ed1d:	83 c7 10             	add    $0x10,%edi
52ed20:	8b d8                	mov    %eax,%ebx
52ed22:	8d 3c 8f             	lea    (%edi,%ecx,4),%edi
52ed25:	66 8b 07             	mov    (%edi),%ax
52ed28:	8d 7f ec             	lea    -0x14(%edi),%edi
52ed2b:	66 83 e0 60          	and    $0x60,%ax
52ed2f:	0f b7 c8             	movzwl %ax,%ecx
52ed32:	8d 43 ff             	lea    -0x1(%ebx),%eax
52ed35:	66 85 c9             	test   %cx,%cx
52ed38:	0f 44 c3             	cmove  %ebx,%eax
52ed3b:	83 ea 01             	sub    $0x1,%edx
52ed3e:	8b d8                	mov    %eax,%ebx
52ed40:	79 e3                	jns    0x52ed25
52ed42:	89 5d b0             	mov    %ebx,-0x50(%ebp)
52ed45:	8b 5d bc             	mov    -0x44(%ebp),%ebx
52ed48:	8b 7d d8             	mov    -0x28(%ebp),%edi
52ed4b:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
52ed4f:	85 c0                	test   %eax,%eax
52ed51:	7e 37                	jle    0x52ed8a
52ed53:	8b 57 04             	mov    0x4(%edi),%edx
52ed56:	8b d8                	mov    %eax,%ebx
52ed58:	83 c2 10             	add    $0x10,%edx
52ed5b:	33 f6                	xor    %esi,%esi
52ed5d:	0f 1f 00             	nopl   (%eax)
52ed60:	66 8b 02             	mov    (%edx),%ax
52ed63:	8d 4e 01             	lea    0x1(%esi),%ecx
52ed66:	66 83 e0 62          	and    $0x62,%ax
52ed6a:	8d 52 14             	lea    0x14(%edx),%edx
52ed6d:	0f b7 c0             	movzwl %ax,%eax
52ed70:	66 85 c0             	test   %ax,%ax
52ed73:	0f 44 ce             	cmove  %esi,%ecx
52ed76:	8b f1                	mov    %ecx,%esi
52ed78:	83 eb 01             	sub    $0x1,%ebx
52ed7b:	75 e3                	jne    0x52ed60
52ed7d:	8b 5d bc             	mov    -0x44(%ebp),%ebx
52ed80:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
52ed84:	89 75 80             	mov    %esi,-0x80(%ebp)
52ed87:	8b 75 94             	mov    -0x6c(%ebp),%esi
52ed8a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
52ed8d:	8b 55 cc             	mov    -0x34(%ebp),%edx
52ed90:	85 c9                	test   %ecx,%ecx
52ed92:	75 24                	jne    0x52edb8
52ed94:	85 d2                	test   %edx,%edx
52ed96:	74 3c                	je     0x52edd4
52ed98:	2b 45 80             	sub    -0x80(%ebp),%eax
52ed9b:	3b d0                	cmp    %eax,%edx
52ed9d:	74 35                	je     0x52edd4
52ed9f:	52                   	push   %edx
52eda0:	50                   	push   %eax
52eda1:	51                   	push   %ecx
52eda2:	ff 75 84             	push   -0x7c(%ebp)
52eda5:	68 e8 a8 6b 00       	push   $0x6ba8e8
52edaa:	56                   	push   %esi
52edab:	e8 b0 44 ff ff       	call   0x523260
52edb0:	83 c4 18             	add    $0x18,%esp
52edb3:	e9 ca 08 00 00       	jmp    0x52f682
52edb8:	8b 41 04             	mov    0x4(%ecx),%eax
52edbb:	3b d0                	cmp    %eax,%edx
52edbd:	74 15                	je     0x52edd4
52edbf:	50                   	push   %eax
52edc0:	52                   	push   %edx
52edc1:	68 1c a9 6b 00       	push   $0x6ba91c
52edc6:	56                   	push   %esi
52edc7:	e8 94 44 ff ff       	call   0x523260
52edcc:	83 c4 10             	add    $0x10,%esp
52edcf:	e9 ae 08 00 00       	jmp    0x52f682
52edd4:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
52edda:	8b 48 24             	mov    0x24(%eax),%ecx
52eddd:	33 c0                	xor    %eax,%eax
52eddf:	83 e1 01             	and    $0x1,%ecx
52ede2:	0b c1                	or     %ecx,%eax
52ede4:	74 26                	je     0x52ee0c
52ede6:	80 7e 12 00          	cmpb   $0x0,0x12(%esi)
52edea:	75 20                	jne    0x52ee0c
52edec:	83 7e 78 00          	cmpl   $0x0,0x78(%esi)
52edf0:	75 1a                	jne    0x52ee0c
52edf2:	ff 46 2c             	incl   0x2c(%esi)
52edf5:	8b 46 2c             	mov    0x2c(%esi),%eax
52edf8:	50                   	push   %eax
52edf9:	6a 00                	push   $0x0
52edfb:	6a 45                	push   $0x45
52edfd:	53                   	push   %ebx
52edfe:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
52ee04:	e8 d7 2c 01 00       	call   0x541ae0
52ee09:	83 c4 10             	add    $0x10,%esp
52ee0c:	83 bd 58 ff ff ff 00 	cmpl   $0x0,-0xa8(%ebp)
52ee13:	0f 85 81 00 00 00    	jne    0x52ee9a
52ee19:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
52ee1f:	50                   	push   %eax
52ee20:	8d 45 9c             	lea    -0x64(%ebp),%eax
52ee23:	50                   	push   %eax
52ee24:	6a 00                	push   $0x0
52ee26:	6a ff                	push   $0xffffffff
52ee28:	6a 00                	push   $0x0
52ee2a:	6a 61                	push   $0x61
52ee2c:	57                   	push   %edi
52ee2d:	56                   	push   %esi
52ee2e:	e8 4d 2c 00 00       	call   0x531a80
52ee33:	89 45 80             	mov    %eax,-0x80(%ebp)
52ee36:	6a 00                	push   $0x0
52ee38:	8d 04 85 08 00 00 00 	lea    0x8(,%eax,4),%eax
52ee3f:	50                   	push   %eax
52ee40:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
52ee46:	e8 95 25 ff ff       	call   0x5213e0
52ee4b:	83 c4 2c             	add    $0x2c,%esp
52ee4e:	89 45 8c             	mov    %eax,-0x74(%ebp)
52ee51:	85 c0                	test   %eax,%eax
52ee53:	0f 84 29 08 00 00    	je     0x52f682
52ee59:	8b 57 08             	mov    0x8(%edi),%edx
52ee5c:	33 c9                	xor    %ecx,%ecx
52ee5e:	39 4d 80             	cmp    %ecx,-0x80(%ebp)
52ee61:	7e 2b                	jle    0x52ee8e
52ee63:	8b 5d 80             	mov    -0x80(%ebp),%ebx
52ee66:	8b f8                	mov    %eax,%edi
52ee68:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
52ee6f:	00
52ee70:	ff 46 2c             	incl   0x2c(%esi)
52ee73:	8b 46 2c             	mov    0x2c(%esi),%eax
52ee76:	89 04 8f             	mov    %eax,(%edi,%ecx,4)
52ee79:	41                   	inc    %ecx
52ee7a:	0f b7 42 34          	movzwl 0x34(%edx),%eax
52ee7e:	01 46 2c             	add    %eax,0x2c(%esi)
52ee81:	8b 52 14             	mov    0x14(%edx),%edx
52ee84:	3b cb                	cmp    %ebx,%ecx
52ee86:	7c e8                	jl     0x52ee70
52ee88:	8b 5d bc             	mov    -0x44(%ebp),%ebx
52ee8b:	8b 7d d8             	mov    -0x28(%ebp),%edi
52ee8e:	8b 55 8c             	mov    -0x74(%ebp),%edx
52ee91:	ff 46 2c             	incl   0x2c(%esi)
52ee94:	8b 46 2c             	mov    0x2c(%esi),%eax
52ee97:	89 04 8a             	mov    %eax,(%edx,%ecx,4)
52ee9a:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
52eea0:	85 c0                	test   %eax,%eax
52eea2:	74 7d                	je     0x52ef21
52eea4:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
52eea8:	74 15                	je     0x52eebf
52eeaa:	ff 37                	push   (%edi)
52eeac:	68 38 a9 6b 00       	push   $0x6ba938
52eeb1:	56                   	push   %esi
52eeb2:	e8 a9 43 ff ff       	call   0x523260
52eeb7:	83 c4 0c             	add    $0xc,%esp
52eeba:	e9 c3 07 00 00       	jmp    0x52f682
52eebf:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
52eec3:	74 13                	je     0x52eed8
52eec5:	68 68 a9 6b 00       	push   $0x6ba968
52eeca:	56                   	push   %esi
52eecb:	e8 90 43 ff ff       	call   0x523260
52eed0:	83 c4 08             	add    $0x8,%esp
52eed3:	e9 aa 07 00 00       	jmp    0x52f682
52eed8:	ff 30                	push   (%eax)
52eeda:	56                   	push   %esi
52eedb:	e8 a0 ea ff ff       	call   0x52d980
52eee0:	83 c4 08             	add    $0x8,%esp
52eee3:	85 c0                	test   %eax,%eax
52eee5:	0f 85 97 07 00 00    	jne    0x52f682
52eeeb:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
52eef1:	8b 55 84             	mov    -0x7c(%ebp),%edx
52eef4:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
52eef7:	8b 7d a0             	mov    -0x60(%ebp),%edi
52eefa:	89 4a 34             	mov    %ecx,0x34(%edx)
52eefd:	83 38 00             	cmpl   $0x0,(%eax)
52ef00:	89 48 1c             	mov    %ecx,0x1c(%eax)
52ef03:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
52ef09:	89 50 14             	mov    %edx,0x14(%eax)
52ef0c:	89 78 18             	mov    %edi,0x18(%eax)
52ef0f:	89 48 20             	mov    %ecx,0x20(%eax)
52ef12:	74 10                	je     0x52ef24
52ef14:	50                   	push   %eax
52ef15:	52                   	push   %edx
52ef16:	56                   	push   %esi
52ef17:	e8 24 1e 01 00       	call   0x540d40
52ef1c:	83 c4 0c             	add    $0xc,%esp
52ef1f:	eb 03                	jmp    0x52ef24
52ef21:	8b 7d a0             	mov    -0x60(%ebp),%edi
52ef24:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
52ef28:	74 1f                	je     0x52ef49
52ef2a:	ff 75 a8             	push   -0x58(%ebp)
52ef2d:	6a 25                	push   $0x25
52ef2f:	53                   	push   %ebx
52ef30:	e8 4b 2b 01 00       	call   0x541a80
52ef35:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
52ef3b:	83 c4 0c             	add    $0xc,%esp
52ef3e:	8b 43 6c             	mov    0x6c(%ebx),%eax
52ef41:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
52ef47:	eb 3b                	jmp    0x52ef84
52ef49:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
52ef4d:	74 35                	je     0x52ef84
52ef4f:	ff 75 98             	push   -0x68(%ebp)
52ef52:	6a 0e                	push   $0xe
52ef54:	53                   	push   %ebx
52ef55:	e8 26 2b 01 00       	call   0x541a80
52ef5a:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
52ef60:	83 c4 0c             	add    $0xc,%esp
52ef63:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
52ef69:	8b 45 b0             	mov    -0x50(%ebp),%eax
52ef6c:	85 c0                	test   %eax,%eax
52ef6e:	78 14                	js     0x52ef84
52ef70:	ff 75 c0             	push   -0x40(%ebp)
52ef73:	8b 4d ac             	mov    -0x54(%ebp),%ecx
52ef76:	03 c8                	add    %eax,%ecx
52ef78:	51                   	push   %ecx