52e93e:	56                   	push   %esi
52e93f:	e8 2c 10 00 00       	call   0x52f970
52e944:	83 c4 0c             	add    $0xc,%esp
52e947:	85 c0                	test   %eax,%eax
52e949:	0f 85 33 0d 00 00    	jne    0x52f682
52e94f:	56                   	push   %esi
52e950:	e8 7b ef ff ff       	call   0x52d8d0
52e955:	8b d8                	mov    %eax,%ebx
52e957:	83 c4 04             	add    $0x4,%esp
52e95a:	89 5d bc             	mov    %ebx,-0x44(%ebp)
52e95d:	85 db                	test   %ebx,%ebx
52e95f:	0f 84 1d 0d 00 00    	je     0x52f682
52e965:	80 7e 12 00          	cmpb   $0x0,0x12(%esi)
52e969:	75 07                	jne    0x52e972
52e96b:	83 8b 98 00 00 00 20 	orl    $0x20,0x98(%ebx)
52e972:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
52e976:	75 0d                	jne    0x52e985
52e978:	83 bd 6c ff ff ff 00 	cmpl   $0x0,-0x94(%ebp)
52e97f:	75 04                	jne    0x52e985
52e981:	33 c0                	xor    %eax,%eax
52e983:	eb 05                	jmp    0x52e98a
52e985:	b8 01 00 00 00       	mov    $0x1,%eax
52e98a:	ff 75 c8             	push   -0x38(%ebp)
52e98d:	50                   	push   %eax
52e98e:	56                   	push   %esi
52e98f:	e8 bc b8 fe ff       	call   0x51a250
52e994:	83 c4 0c             	add    $0xc,%esp
52e997:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
52e99b:	75 1b                	jne    0x52e9b8
52e99d:	ff 75 c8             	push   -0x38(%ebp)
52e9a0:	ff 75 18             	push   0x18(%ebp)
52e9a3:	ff 75 b8             	push   -0x48(%ebp)
52e9a6:	57                   	push   %edi
52e9a7:	56                   	push   %esi
52e9a8:	e8 b3 a5 03 00       	call   0x568f60
52e9ad:	83 c4 14             	add    $0x14,%esp
52e9b0:	85 c0                	test   %eax,%eax
52e9b2:	0f 85 48 0c 00 00    	jne    0x52f600
52e9b8:	57                   	push   %edi
52e9b9:	ff 75 c8             	push   -0x38(%ebp)
52e9bc:	56                   	push   %esi
52e9bd:	e8 1e 52 fc ff       	call   0x4f3be0
52e9c2:	8b 4e 2c             	mov    0x2c(%esi),%ecx
52e9c5:	83 c4 0c             	add    $0xc,%esp
52e9c8:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
52e9ce:	8d 41 01             	lea    0x1(%ecx),%eax
52e9d1:	8b d0                	mov    %eax,%edx
52e9d3:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
52e9d9:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
52e9dd:	40                   	inc    %eax
52e9de:	89 55 c0             	mov    %edx,-0x40(%ebp)
52e9e1:	03 c1                	add    %ecx,%eax
52e9e3:	89 46 2c             	mov    %eax,0x2c(%esi)
52e9e6:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
52e9ea:	74 0a                	je     0x52e9f6
52e9ec:	8d 51 02             	lea    0x2(%ecx),%edx
52e9ef:	40                   	inc    %eax
52e9f0:	89 55 c0             	mov    %edx,-0x40(%ebp)
52e9f3:	89 46 2c             	mov    %eax,0x2c(%esi)
52e9f6:	f7 47 24 40 04 00 00 	testl  $0x440,0x24(%edi)
52e9fd:	8d 42 01             	lea    0x1(%edx),%eax
52ea00:	8b 55 d4             	mov    -0x2c(%ebp),%edx
52ea03:	0f 94 45 d2          	sete   -0x2e(%ebp)
52ea07:	89 45 a0             	mov    %eax,-0x60(%ebp)
52ea0a:	85 d2                	test   %edx,%edx
52ea0c:	0f 84 fb 00 00 00    	je     0x52eb0d
52ea12:	33 c9                	xor    %ecx,%ecx
52ea14:	39 4a 04             	cmp    %ecx,0x4(%edx)
52ea17:	7e 17                	jle    0x52ea30
52ea19:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
52ea20:	8b 02                	mov    (%edx),%eax
52ea22:	c7 44 c8 04 ff ff ff 	movl   $0xffffffff,0x4(%eax,%ecx,8)
52ea29:	ff
52ea2a:	41                   	inc    %ecx
52ea2b:	3b 4a 04             	cmp    0x4(%edx),%ecx
52ea2e:	7c f0                	jl     0x52ea20
52ea30:	33 c9                	xor    %ecx,%ecx
52ea32:	89 4d cc             	mov    %ecx,-0x34(%ebp)
52ea35:	39 4a 04             	cmp    %ecx,0x4(%edx)
52ea38:	0f 8e cf 00 00 00    	jle    0x52eb0d
52ea3e:	8b 55 d8             	mov    -0x28(%ebp),%edx
52ea41:	0f bf 42 2a          	movswl 0x2a(%edx),%eax
52ea45:	33 ff                	xor    %edi,%edi
52ea47:	89 45 b4             	mov    %eax,-0x4c(%ebp)
52ea4a:	85 c0                	test   %eax,%eax
52ea4c:	7e 75                	jle    0x52eac3
52ea4e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52ea51:	8b 00                	mov    (%eax),%eax
52ea53:	8d 0c c8             	lea    (%eax,%ecx,8),%ecx
52ea56:	8b 42 04             	mov    0x4(%edx),%eax
52ea59:	89 4d 88             	mov    %ecx,-0x78(%ebp)
52ea5c:	89 45 a4             	mov    %eax,-0x5c(%ebp)
52ea5f:	90                   	nop
52ea60:	ff 30                	push   (%eax)
52ea62:	ff 31                	push   (%ecx)
52ea64:	e8 c7 f1 00 00       	call   0x53dc30
52ea69:	83 c4 08             	add    $0x8,%esp
52ea6c:	85 c0                	test   %eax,%eax
52ea6e:	74 17                	je     0x52ea87
52ea70:	8b 45 a4             	mov    -0x5c(%ebp),%eax
52ea73:	47                   	inc    %edi
52ea74:	8b 4d 88             	mov    -0x78(%ebp),%ecx
52ea77:	83 c0 14             	add    $0x14,%eax
52ea7a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
52ea7d:	3b 7d b4             	cmp    -0x4c(%ebp),%edi
52ea80:	7c de                	jl     0x52ea60
52ea82:	8b 55 d8             	mov    -0x28(%ebp),%edx
52ea85:	eb 39                	jmp    0x52eac0
52ea87:	8b 45 88             	mov    -0x78(%ebp),%eax
52ea8a:	33 c9                	xor    %ecx,%ecx
52ea8c:	39 7d cc             	cmp    %edi,-0x34(%ebp)
52ea8f:	8b 55 d8             	mov    -0x28(%ebp),%edx
52ea92:	89 78 04             	mov    %edi,0x4(%eax)
52ea95:	0f b6 45 d2          	movzbl -0x2e(%ebp),%eax
52ea99:	0f 44 c8             	cmove  %eax,%ecx
52ea9c:	0f bf 42 28          	movswl 0x28(%edx),%eax
52eaa0:	88 4d d2             	mov    %cl,-0x2e(%ebp)
52eaa3:	3b f8                	cmp    %eax,%edi
52eaa5:	8b 4d b0             	mov    -0x50(%ebp),%ecx
52eaa8:	0f 44 4d cc          	cmove  -0x34(%ebp),%ecx
52eaac:	8b 42 04             	mov    0x4(%edx),%eax
52eaaf:	89 4d b0             	mov    %ecx,-0x50(%ebp)
52eab2:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
52eab5:	f6 44 88 10 60       	testb  $0x60,0x10(%eax,%ecx,4)
52eaba:	0f 85 19 01 00 00    	jne    0x52ebd9
52eac0:	8b 4d cc             	mov    -0x34(%ebp),%ecx
52eac3:	0f bf 42 2a          	movswl 0x2a(%edx),%eax
52eac7:	3b f8                	cmp    %eax,%edi
52eac9:	8b 7d d4             	mov    -0x2c(%ebp),%edi
52eacc:	7c 2f                	jl     0x52eafd
52eace:	8b 07                	mov    (%edi),%eax
52ead0:	ff 34 c8             	push   (%eax,%ecx,8)
52ead3:	e8 f8 0e 00 00       	call   0x52f9d0
52ead8:	83 c4 04             	add    $0x4,%esp
52eadb:	85 c0                	test   %eax,%eax
52eadd:	0f 84 0f 01 00 00    	je     0x52ebf2
52eae3:	80 bd 50 ff ff ff 00 	cmpb   $0x0,-0xb0(%ebp)
52eaea:	0f 85 02 01 00 00    	jne    0x52ebf2
52eaf0:	8b 4d cc             	mov    -0x34(%ebp),%ecx
52eaf3:	8b 55 d8             	mov    -0x28(%ebp),%edx
52eaf6:	89 4d b0             	mov    %ecx,-0x50(%ebp)
52eaf9:	c6 45 d2 00          	movb   $0x0,-0x2e(%ebp)
52eafd:	41                   	inc    %ecx
52eafe:	89 4d cc             	mov    %ecx,-0x34(%ebp)
52eb01:	3b 4f 04             	cmp    0x4(%edi),%ecx
52eb04:	0f 8c 37 ff ff ff    	jl     0x52ea41
52eb0a:	8b 7d d8             	mov    -0x28(%ebp),%edi
52eb0d:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
52eb11:	0f 84 9e 01 00 00    	je     0x52ecb5
52eb17:	ff 46 2c             	incl   0x2c(%esi)
52eb1a:	8b 43 6c             	mov    0x6c(%ebx),%eax
52eb1d:	8b 4e 2c             	mov    0x2c(%esi),%ecx
52eb20:	89 45 b4             	mov    %eax,-0x4c(%ebp)
52eb23:	40                   	inc    %eax
52eb24:	50                   	push   %eax
52eb25:	6a 00                	push   $0x0
52eb27:	51                   	push   %ecx
52eb28:	6a 0d                	push   $0xd
52eb2a:	53                   	push   %ebx
52eb2b:	89 4d a4             	mov    %ecx,-0x5c(%ebp)
52eb2e:	e8 0d 30 01 00       	call   0x541b40
52eb33:	8b 45 a4             	mov    -0x5c(%ebp),%eax
52eb36:	8a 55 d2             	mov    -0x2e(%ebp),%dl
52eb39:	89 45 e8             	mov    %eax,-0x18(%ebp)
52eb3c:	33 c0                	xor    %eax,%eax
52eb3e:	84 d2                	test   %dl,%dl
52eb40:	c6 45 e4 0d          	movb   $0xd,-0x1c(%ebp)
52eb44:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
52eb4b:	0f 45 45 a0          	cmovne -0x60(%ebp),%eax
52eb4f:	89 45 ec             	mov    %eax,-0x14(%ebp)
52eb52:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
52eb56:	89 45 f0             	mov    %eax,-0x10(%ebp)
52eb59:	8d 45 e4             	lea    -0x1c(%ebp),%eax
52eb5c:	50                   	push   %eax
52eb5d:	ff 75 b8             	push   -0x48(%ebp)
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