522ca3:	74 2d                	je     0x522cd2
522ca5:	51                   	push   %ecx
522ca6:	6a 00                	push   $0x0
522ca8:	6a 04                	push   $0x4
522caa:	57                   	push   %edi
522cab:	53                   	push   %ebx
522cac:	e8 cf 57 01 00       	call   0x538480
522cb1:	83 c4 14             	add    $0x14,%esp
522cb4:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
522cb8:	74 18                	je     0x522cd2
522cba:	8b 47 18             	mov    0x18(%edi),%eax
522cbd:	85 c0                	test   %eax,%eax
522cbf:	74 0a                	je     0x522ccb
522cc1:	50                   	push   %eax
522cc2:	56                   	push   %esi
522cc3:	e8 38 e3 fd ff       	call   0x501000
522cc8:	83 c4 08             	add    $0x8,%esp
522ccb:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)
522cd2:	f6 47 24 60          	testb  $0x60,0x24(%edi)
522cd6:	0f 84 cb 00 00 00    	je     0x522da7
522cdc:	33 c0                	xor    %eax,%eax
522cde:	33 d2                	xor    %edx,%edx
522ce0:	89 45 f0             	mov    %eax,-0x10(%ebp)
522ce3:	89 55 08             	mov    %edx,0x8(%ebp)
522ce6:	66 3b 47 2a          	cmp    0x2a(%edi),%ax
522cea:	0f 8d a2 00 00 00    	jge    0x522d92
522cf0:	33 c9                	xor    %ecx,%ecx
522cf2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
522cf5:	8b 47 04             	mov    0x4(%edi),%eax
522cf8:	f6 44 08 10 60       	testb  $0x60,0x10(%eax,%ecx,1)
522cfd:	74 6b                	je     0x522d6a
522cff:	8b 44 08 04          	mov    0x4(%eax,%ecx,1),%eax
522d03:	6a 00                	push   $0x0
522d05:	50                   	push   %eax
522d06:	6a 08                	push   $0x8
522d08:	57                   	push   %edi
522d09:	53                   	push   %ebx
522d0a:	89 45 ec             	mov    %eax,-0x14(%ebp)
522d0d:	e8 6e 57 01 00       	call   0x538480
522d12:	83 c4 14             	add    $0x14,%esp
522d15:	85 c0                	test   %eax,%eax
522d17:	74 56                	je     0x522d6f
522d19:	8b 45 ec             	mov    -0x14(%ebp),%eax
522d1c:	85 c0                	test   %eax,%eax
522d1e:	74 0a                	je     0x522d2a
522d20:	50                   	push   %eax
522d21:	56                   	push   %esi
522d22:	e8 89 3a 00 00       	call   0x5267b0
522d27:	83 c4 08             	add    $0x8,%esp
522d2a:	6a 00                	push   $0x0
522d2c:	6a 34                	push   $0x34
522d2e:	56                   	push   %esi
522d2f:	e8 ac e6 ff ff       	call   0x5213e0
522d34:	8b f0                	mov    %eax,%esi
522d36:	83 c4 0c             	add    $0xc,%esp
522d39:	85 f6                	test   %esi,%esi
522d3b:	74 1e                	je     0x522d5b
522d3d:	6a 34                	push   $0x34
522d3f:	6a 00                	push   $0x0
522d41:	56                   	push   %esi
522d42:	e8 b9 0c 0c 00       	call   0x5e3a00
522d47:	83 c4 0c             	add    $0xc,%esp
522d4a:	c6 06 77             	movb   $0x77,(%esi)
522d4d:	83 c8 ff             	or     $0xffffffff,%eax
522d50:	c7 46 18 01 00 00 00 	movl   $0x1,0x18(%esi)
522d57:	66 89 46 22          	mov    %ax,0x22(%esi)
522d5b:	8b 47 04             	mov    0x4(%edi),%eax
522d5e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
522d61:	89 74 01 04          	mov    %esi,0x4(%ecx,%eax,1)
522d65:	8b 75 fc             	mov    -0x4(%ebp),%esi
522d68:	eb 08                	jmp    0x522d72
522d6a:	ff 45 f0             	incl   -0x10(%ebp)
522d6d:	eb 06                	jmp    0x522d75
522d6f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
522d72:	8b 55 08             	mov    0x8(%ebp),%edx
522d75:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
522d79:	42                   	inc    %edx
522d7a:	83 c1 14             	add    $0x14,%ecx
522d7d:	89 55 08             	mov    %edx,0x8(%ebp)
522d80:	89 4d f4             	mov    %ecx,-0xc(%ebp)
522d83:	3b d0                	cmp    %eax,%edx
522d85:	0f 8c 6a ff ff ff    	jl     0x522cf5
522d8b:	8b 45 f0             	mov    -0x10(%ebp),%eax
522d8e:	85 c0                	test   %eax,%eax
522d90:	75 15                	jne    0x522da7
522d92:	68 84 a0 6b 00       	push   $0x6ba084
522d97:	53                   	push   %ebx
522d98:	e8 c3 04 00 00       	call   0x523260
522d9d:	83 c4 08             	add    $0x8,%esp
522da0:	5f                   	pop    %edi
522da1:	5e                   	pop    %esi
522da2:	5b                   	pop    %ebx
522da3:	8b e5                	mov    %ebp,%esp
522da5:	5d                   	pop    %ebp
522da6:	c3                   	ret
522da7:	57                   	push   %edi
522da8:	e8 a3 bc fd ff       	call   0x4fea50
522dad:	8b 77 08             	mov    0x8(%edi),%esi
522db0:	83 c4 04             	add    $0x4,%esp
522db3:	85 f6                	test   %esi,%esi
522db5:	74 10                	je     0x522dc7
522db7:	56                   	push   %esi
522db8:	e8 a3 bb fd ff       	call   0x4fe960
522dbd:	8b 76 14             	mov    0x14(%esi),%esi
522dc0:	83 c4 04             	add    $0x4,%esp
522dc3:	85 f6                	test   %esi,%esi
522dc5:	75 f0                	jne    0x522db7
522dc7:	8b 75 fc             	mov    -0x4(%ebp),%esi
522dca:	80 be a5 00 00 00 00 	cmpb   $0x0,0xa5(%esi)
522dd1:	0f 85 0b 03 00 00    	jne    0x5230e2
522dd7:	8b 53 08             	mov    0x8(%ebx),%edx
522dda:	89 55 08             	mov    %edx,0x8(%ebp)
522ddd:	85 d2                	test   %edx,%edx
522ddf:	75 27                	jne    0x522e08
522de1:	39 53 74             	cmp    %edx,0x74(%ebx)
522de4:	75 0c                	jne    0x522df2
522de6:	8b 03                	mov    (%ebx),%eax
522de8:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
522dec:	75 04                	jne    0x522df2
522dee:	c6 43 17 01          	movb   $0x1,0x17(%ebx)
522df2:	53                   	push   %ebx
522df3:	e8 18 f6 01 00       	call   0x542410
522df8:	8b d0                	mov    %eax,%edx
522dfa:	89 45 08             	mov    %eax,0x8(%ebp)
522dfd:	83 c4 04             	add    $0x4,%esp
522e00:	85 d2                	test   %edx,%edx
522e02:	0f 84 3a 03 00 00    	je     0x523142
522e08:	8b 4a 6c             	mov    0x6c(%edx),%ecx
522e0b:	39 4a 70             	cmp    %ecx,0x70(%edx)
522e0e:	7f 16                	jg     0x522e26
522e10:	6a 00                	push   $0x0
522e12:	6a 00                	push   $0x0
522e14:	6a 00                	push   $0x0
522e16:	6a 74                	push   $0x74
522e18:	52                   	push   %edx
522e19:	e8 e2 36 fe ff       	call   0x506500
522e1e:	8b 55 08             	mov    0x8(%ebp),%edx
522e21:	83 c4 14             	add    $0x14,%esp
522e24:	eb 33                	jmp    0x522e59
522e26:	8d 41 01             	lea    0x1(%ecx),%eax
522e29:	89 42 6c             	mov    %eax,0x6c(%edx)
522e2c:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
522e2f:	8b 42 68             	mov    0x68(%edx),%eax
522e32:	c7 04 88 74 00 00 00 	movl   $0x74,(%eax,%ecx,4)
522e39:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
522e40:	00
522e41:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
522e48:	00
522e49:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
522e50:	00
522e51:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
522e58:	00
522e59:	8b 47 0c             	mov    0xc(%edi),%eax
522e5c:	b9 b8 a0 6b 00       	mov    $0x6ba0b8,%ecx
522e61:	85 c0                	test   %eax,%eax
522e63:	c7 45 ec b0 a0 6b 00 	movl   $0x6ba0b0,-0x14(%ebp)
522e6a:	0f 44 4d ec          	cmove  -0x14(%ebp),%ecx
522e6e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
522e71:	b9 60 99 6b 00       	mov    $0x6b9960,%ecx
522e76:	c7 45 ec 1c 69 6b 00 	movl   $0x6b691c,-0x14(%ebp)
522e7d:	0f 44 4d ec          	cmove  -0x14(%ebp),%ecx
522e81:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
522e85:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
522e88:	0f 84 7f 01 00 00    	je     0x52300d
522e8e:	ff 43 2c             	incl   0x2c(%ebx)
522e91:	8b cb                	mov    %ebx,%ecx
522e93:	8b 43 2c             	mov    0x2c(%ebx),%eax
522e96:	ff 75 f8             	push   -0x8(%ebp)
522e99:	89 45 f0             	mov    %eax,-0x10(%ebp)
522e9c:	40                   	inc    %eax
522e9d:	89 45 ec             	mov    %eax,-0x14(%ebp)
522ea0:	40                   	inc    %eax
522ea1:	89 43 2c             	mov    %eax,0x2c(%ebx)
522ea4:	89 45 f4             	mov    %eax,-0xc(%ebp)
522ea7:	8b 43 74             	mov    0x74(%ebx),%eax
522eaa:	85 c0                	test   %eax,%eax
522eac:	0f 45 c8             	cmovne %eax,%ecx
522eaf:	c6 41 15 01          	movb   $0x1,0x15(%ecx)
522eb3:	ff 73 5c             	push   0x5c(%ebx)
522eb6:	6a 01                	push   $0x1
522eb8:	6a 61                	push   $0x61
522eba:	52                   	push   %edx
522ebb:	e8 80 ec 01 00       	call   0x541b40
522ec0:	8b 55 08             	mov    0x8(%ebp),%edx
522ec3:	83 c4 14             	add    $0x14,%esp
522ec6:	8b 42 6c             	mov    0x6c(%edx),%eax
522ec9:	85 c0                	test   %eax,%eax
522ecb:	7e 13                	jle    0x522ee0
522ecd:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
522ed0:	be 10 00 00 00       	mov    $0x10,%esi
522ed5:	8b 42 68             	mov    0x68(%edx),%eax
522ed8:	66 89 74 88 ee       	mov    %si,-0x12(%eax,%ecx,4)
522edd:	8b 75 fc             	mov    -0x4(%ebp),%esi
522ee0:	c7 43 28 02 00 00 00 	movl   $0x2,0x28(%ebx)
522ee7:	8b 42 6c             	mov    0x6c(%edx),%eax
522eea:	89 45 e8             	mov    %eax,-0x18(%ebp)
522eed:	40                   	inc    %eax
522eee:	50                   	push   %eax
522eef:	6a 00                	push   $0x0
522ef1:	ff 75 f0             	push   -0x10(%ebp)
522ef4:	6a 0d                	push   $0xd
522ef6:	52                   	push   %edx
522ef7:	e8 44 ec 01 00       	call   0x541b40
522efc:	83 c4 14             	add    $0x14,%esp
522eff:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
522f03:	0f 85 39 02 00 00    	jne    0x523142
522f09:	6a 41                	push   $0x41
522f0b:	ff 75 18             	push   0x18(%ebp)
522f0e:	53                   	push   %ebx
522f0f:	e8 2c 56 01 00       	call   0x538540
522f14:	83 c4 0c             	add    $0xc,%esp
522f17:	85 c0                	test   %eax,%eax
522f19:	0f 84 23 02 00 00    	je     0x523142
522f1f:	0f b7 48 2a          	movzwl 0x2a(%eax),%ecx
522f23:	66 89 4f 2c          	mov    %cx,0x2c(%edi)
522f27:	66 89 4f 2a          	mov    %cx,0x2a(%edi)
522f2b:	8b 48 04             	mov    0x4(%eax),%ecx
522f2e:	89 4f 04             	mov    %ecx,0x4(%edi)
522f31:	33 c9                	xor    %ecx,%ecx
522f33:	50                   	push   %eax
522f34:	56                   	push   %esi
522f35:	66 89 48 2a          	mov    %cx,0x2a(%eax)
522f39:	89 48 04             	mov    %ecx,0x4(%eax)
522f3c:	e8 7f f2 ff ff       	call   0x5221c0
522f41:	8b 75 f0             	mov    -0x10(%ebp),%esi
522f44:	8d 45 cc             	lea    -0x34(%ebp),%eax
522f47:	50                   	push   %eax
522f48:	ff 75 18             	push   0x18(%ebp)
522f4b:	c6 45 cc 0d          	movb   $0xd,-0x34(%ebp)
522f4f:	53                   	push   %ebx
522f50:	89 75 d0             	mov    %esi,-0x30(%ebp)
522f53:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
522f5a:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
522f61:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
522f68:	e8 33 6b 01 00       	call   0x539aa0
522f6d:	83 c4 14             	add    $0x14,%esp
522f70:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
522f74:	0f 85 c8 01 00 00    	jne    0x523142
522f7a:	56                   	push   %esi
522f7b:	8b 75 08             	mov    0x8(%ebp),%esi
522f7e:	56                   	push   %esi
522f7f:	e8 2c f7 01 00       	call   0x5426b0
522f84:	ff 75 e8             	push   -0x18(%ebp)
522f87:	56                   	push   %esi
522f88:	e8 d3 77 02 00       	call   0x54a760
522f8d:	ff 75 d0             	push   -0x30(%ebp)
522f90:	6a 0e                	push   $0xe
522f92:	56                   	push   %esi
522f93:	e8 e8 ea 01 00       	call   0x541a80
522f98:	ff 75 ec             	push   -0x14(%ebp)
522f9b:	8b f0                	mov    %eax,%esi
522f9d:	ff 75 d8             	push   -0x28(%ebp)
522fa0:	ff 75 d4             	push   -0x2c(%ebp)
522fa3:	6a 5b                	push   $0x5b
522fa5:	ff 75 08             	push   0x8(%ebp)
522fa8:	e8 93 eb 01 00       	call   0x541b40
522fad:	6a 00                	push   $0x0
522faf:	57                   	push   %edi
522fb0:	ff 75 08             	push   0x8(%ebp)
522fb3:	e8 88 ad 01 00       	call   0x53dd40
522fb8:	ff 75 f4             	push   -0xc(%ebp)
522fbb:	6a 01                	push   $0x1
522fbd:	6a 78                	push   $0x78
522fbf:	ff 75 08             	push   0x8(%ebp)
522fc2:	e8 19 eb 01 00       	call   0x541ae0
522fc7:	83 c4 4c             	add    $0x4c,%esp
522fca:	ff 75 f4             	push   -0xc(%ebp)
522fcd:	ff 75 ec             	push   -0x14(%ebp)
522fd0:	6a 01                	push   $0x1
522fd2:	6a 79                	push   $0x79
522fd4:	ff 75 08             	push   0x8(%ebp)
522fd7:	e8 64 eb 01 00       	call   0x541b40
522fdc:	56                   	push   %esi
522fdd:	ff 75 08             	push   0x8(%ebp)
522fe0:	e8 bb 70 02 00       	call   0x54a0a0
522fe5:	56                   	push   %esi
522fe6:	8b 75 08             	mov    0x8(%ebp),%esi
522fe9:	56                   	push   %esi
522fea:	e8 71 77 02 00       	call   0x54a760
522fef:	6a 01                	push   $0x1
522ff1:	6a 74                	push   $0x74
522ff3:	56                   	push   %esi
522ff4:	e8 87 ea 01 00       	call   0x541a80
522ff9:	8b 75 fc             	mov    -0x4(%ebp),%esi
522ffc:	57                   	push   %edi
522ffd:	56                   	push   %esi
522ffe:	e8 8d 9e fd ff       	call   0x4fce90
523003:	8b c8                	mov    %eax,%ecx
523005:	83 c4 38             	add    $0x38,%esp
523008:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52300b:	eb 3e                	jmp    0x52304b
52300d:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
523011:	8d 93 bc 00 00 00    	lea    0xbc(%ebx),%edx
523017:	75 03                	jne    0x52301c
523019:	8b 55 10             	mov    0x10(%ebp),%edx
52301c:	8b 02                	mov    (%edx),%eax
52301e:	8b c8                	mov    %eax,%ecx
523020:	2b 8b b4 00 00 00    	sub    0xb4(%ebx),%ecx
523026:	80 38 3b             	cmpb   $0x3b,(%eax)
523029:	74 03                	je     0x52302e
52302b:	03 4a 04             	add    0x4(%edx),%ecx
52302e:	ff b3 b4 00 00 00    	push   0xb4(%ebx)
523034:	51                   	push   %ecx
523035:	ff 75 e8             	push   -0x18(%ebp)
523038:	68 c0 a0 6b 00       	push   $0x6ba0c0
52303d:	56                   	push   %esi
52303e:	e8 fd de 00 00       	call   0x530f40
523043:	83 c4 14             	add    $0x14,%esp
523046:	89 45 ec             	mov    %eax,-0x14(%ebp)
523049:	8b c8                	mov    %eax,%ecx
52304b:	ff 73 58             	push   0x58(%ebx)
52304e:	8b 07                	mov    (%edi),%eax
523050:	8b 55 f8             	mov    -0x8(%ebp),%edx
523053:	51                   	push   %ecx
523054:	ff 73 5c             	push   0x5c(%ebx)
523057:	c1 e2 04             	shl    $0x4,%edx
52305a:	50                   	push   %eax
52305b:	50                   	push   %eax
52305c:	ff 75 e4             	push   -0x1c(%ebp)
52305f:	8b 46 10             	mov    0x10(%esi),%eax
523062:	68 24 8a 6b 00       	push   $0x6b8a24
523067:	89 55 e8             	mov    %edx,-0x18(%ebp)
52306a:	ff 34 02             	push   (%edx,%eax,1)
52306d:	68 d0 a0 6b 00       	push   $0x6ba0d0
523072:	53                   	push   %ebx
523073:	e8 28 e6 00 00       	call   0x5316a0
523078:	8b 45 ec             	mov    -0x14(%ebp),%eax
52307b:	83 c4 28             	add    $0x28,%esp
52307e:	85 c0                	test   %eax,%eax
523080:	74 0a                	je     0x52308c
523082:	50                   	push   %eax
523083:	56                   	push   %esi
523084:	e8 e7 e2 ff ff       	call   0x521370
523089:	83 c4 08             	add    $0x8,%esp
52308c:	ff 75 f8             	push   -0x8(%ebp)
52308f:	53                   	push   %ebx
523090:	e8 bb ae ff ff       	call   0x51df50
523095:	83 c4 08             	add    $0x8,%esp
523098:	f6 47 24 08          	testb  $0x8,0x24(%edi)
52309c:	74 1f                	je     0x5230bd
52309e:	8b 4e 10             	mov    0x10(%esi),%ecx
5230a1:	03 4d e8             	add    -0x18(%ebp),%ecx
5230a4:	8b 41 0c             	mov    0xc(%ecx),%eax
5230a7:	83 78 48 00          	cmpl   $0x0,0x48(%eax)
5230ab:	75 10                	jne    0x5230bd
5230ad:	ff 31                	push   (%ecx)
5230af:	68 28 a1 6b 00       	push   $0x6ba128
5230b4:	53                   	push   %ebx
5230b5:	e8 e6 e5 00 00       	call   0x5316a0
5230ba:	83 c4 0c             	add    $0xc,%esp