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
52ef79:	6a 4d                	push   $0x4d
52ef7b:	53                   	push   %ebx
52ef7c:	e8 5f 2b 01 00       	call   0x541ae0
52ef81:	83 c4 10             	add    $0x10,%esp
52ef84:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52ef87:	33 d2                	xor    %edx,%edx
52ef89:	33 c0                	xor    %eax,%eax
52ef8b:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%ebp)
52ef92:	89 55 c8             	mov    %edx,-0x38(%ebp)
52ef95:	66 3b 41 2a          	cmp    0x2a(%ecx),%ax
52ef99:	0f 8d 3f 01 00 00    	jge    0x52f0de
52ef9f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
52efa2:	0f bf 41 28          	movswl 0x28(%ecx),%eax
52efa6:	3b d0                	cmp    %eax,%edx
52efa8:	75 0e                	jne    0x52efb8
52efaa:	57                   	push   %edi
52efab:	6a 49                	push   $0x49
52efad:	53                   	push   %ebx
52efae:	e8 cd 2a 01 00       	call   0x541a80
52efb3:	e9 08 01 00 00       	jmp    0x52f0c0
52efb8:	8b 41 04             	mov    0x4(%ecx),%eax
52efbb:	03 45 a4             	add    -0x5c(%ebp),%eax
52efbe:	8b 75 94             	mov    -0x6c(%ebp),%esi
52efc1:	89 45 98             	mov    %eax,-0x68(%ebp)
52efc4:	0f b7 40 10          	movzwl 0x10(%eax),%eax
52efc8:	a8 62                	test   $0x62,%al
52efca:	74 44                	je     0x52f010
52efcc:	ff 45 88             	incl   -0x78(%ebp)
52efcf:	a8 20                	test   $0x20,%al
52efd1:	74 06                	je     0x52efd9
52efd3:	4f                   	dec    %edi
52efd4:	e9 f0 00 00 00       	jmp    0x52f0c9
52efd9:	a8 40                	test   $0x40,%al
52efdb:	74 1b                	je     0x52eff8
52efdd:	f6 85 5c ff ff ff 01 	testb  $0x1,-0xa4(%ebp)
52efe4:	0f 84 df 00 00 00    	je     0x52f0c9
52efea:	57                   	push   %edi
52efeb:	6a 49                	push   $0x49
52efed:	53                   	push   %ebx
52efee:	e8 8d 2a 01 00       	call   0x541a80
52eff3:	e9 c8 00 00 00       	jmp    0x52f0c0
52eff8:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
52effc:	75 18                	jne    0x52f016
52effe:	8b 45 98             	mov    -0x68(%ebp),%eax
52f001:	57                   	push   %edi
52f002:	ff 70 04             	push   0x4(%eax)
52f005:	56                   	push   %esi
52f006:	e8 e5 4e ff ff       	call   0x523ef0
52f00b:	e9 b0 00 00 00       	jmp    0x52f0c0
52f010:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
52f014:	74 44                	je     0x52f05a
52f016:	8b 55 d4             	mov    -0x2c(%ebp),%edx
52f019:	33 c0                	xor    %eax,%eax
52f01b:	8b 52 04             	mov    0x4(%edx),%edx
52f01e:	85 d2                	test   %edx,%edx
52f020:	7e 20                	jle    0x52f042
52f022:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
52f025:	8b 5d c8             	mov    -0x38(%ebp),%ebx
52f028:	8b 09                	mov    (%ecx),%ecx
52f02a:	83 c1 04             	add    $0x4,%ecx
52f02d:	0f 1f 00             	nopl   (%eax)
52f030:	39 19                	cmp    %ebx,(%ecx)
52f032:	74 08                	je     0x52f03c
52f034:	40                   	inc    %eax
52f035:	83 c1 08             	add    $0x8,%ecx
52f038:	3b c2                	cmp    %edx,%eax
52f03a:	7c f4                	jl     0x52f030
52f03c:	8b 5d bc             	mov    -0x44(%ebp),%ebx
52f03f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52f042:	3b c2                	cmp    %edx,%eax
52f044:	7c 0f                	jl     0x52f055
52f046:	8b 45 98             	mov    -0x68(%ebp),%eax
52f049:	57                   	push   %edi
52f04a:	ff 70 04             	push   0x4(%eax)
52f04d:	56                   	push   %esi
52f04e:	e8 9d 4e ff ff       	call   0x523ef0
52f053:	eb 6b                	jmp    0x52f0c0
52f055:	8b 55 c8             	mov    -0x38(%ebp),%edx
52f058:	eb 1a                	jmp    0x52f074
52f05a:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
52f05e:	75 0f                	jne    0x52f06f
52f060:	8b 45 98             	mov    -0x68(%ebp),%eax
52f063:	57                   	push   %edi
52f064:	ff 70 04             	push   0x4(%eax)
52f067:	56                   	push   %esi
52f068:	e8 83 4e ff ff       	call   0x523ef0
52f06d:	eb 51                	jmp    0x52f0c0
52f06f:	8b c2                	mov    %edx,%eax
52f071:	2b 45 88             	sub    -0x78(%ebp),%eax
52f074:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
52f078:	74 12                	je     0x52f08c
52f07a:	57                   	push   %edi
52f07b:	50                   	push   %eax
52f07c:	ff 75 a8             	push   -0x58(%ebp)
52f07f:	6a 59                	push   $0x59
52f081:	53                   	push   %ebx
52f082:	e8 b9 2a 01 00       	call   0x541b40
52f087:	83 c4 14             	add    $0x14,%esp
52f08a:	eb 37                	jmp    0x52f0c3
52f08c:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
52f090:	74 1d                	je     0x52f0af
52f092:	8b 75 a0             	mov    -0x60(%ebp),%esi
52f095:	39 75 ac             	cmp    %esi,-0x54(%ebp)
52f098:	8b 75 94             	mov    -0x6c(%ebp),%esi
52f09b:	74 2c                	je     0x52f0c9
52f09d:	03 45 ac             	add    -0x54(%ebp),%eax
52f0a0:	57                   	push   %edi
52f0a1:	50                   	push   %eax
52f0a2:	6a 4e                	push   $0x4e
52f0a4:	53                   	push   %ebx
52f0a5:	e8 36 2a 01 00       	call   0x541ae0
52f0aa:	83 c4 10             	add    $0x10,%esp
52f0ad:	eb 14                	jmp    0x52f0c3
52f0af:	8b 4d 90             	mov    -0x70(%ebp),%ecx
52f0b2:	8d 04 80             	lea    (%eax,%eax,4),%eax
52f0b5:	57                   	push   %edi
52f0b6:	ff 74 81 04          	push   0x4(%ecx,%eax,4)
52f0ba:	56                   	push   %esi
52f0bb:	e8 10 4b ff ff       	call   0x523bd0
52f0c0:	83 c4 0c             	add    $0xc,%esp
52f0c3:	8b 55 c8             	mov    -0x38(%ebp),%edx
52f0c6:	8b 4d d8             	mov    -0x28(%ebp),%ecx
52f0c9:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
52f0cd:	42                   	inc    %edx
52f0ce:	83 45 a4 14          	addl   $0x14,-0x5c(%ebp)
52f0d2:	47                   	inc    %edi
52f0d3:	89 55 c8             	mov    %edx,-0x38(%ebp)
52f0d6:	3b d0                	cmp    %eax,%edx
52f0d8:	0f 8c c4 fe ff ff    	jl     0x52efa2
52f0de:	ff 4e 38             	decl   0x38(%esi)
52f0e1:	f6 85 5c ff ff ff 01 	testb  $0x1,-0xa4(%ebp)
52f0e8:	8b 46 38             	mov    0x38(%esi),%eax
52f0eb:	89 45 ac             	mov    %eax,-0x54(%ebp)
52f0ee:	0f 84 84 01 00 00    	je     0x52f278
52f0f4:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
52f0f8:	40                   	inc    %eax
52f0f9:	50                   	push   %eax
52f0fa:	56                   	push   %esi
52f0fb:	e8 20 de ff ff       	call   0x52cf20
52f100:	83 c4 08             	add    $0x8,%esp
52f103:	8b f8                	mov    %eax,%edi
52f105:	8b 45 b0             	mov    -0x50(%ebp),%eax
52f108:	57                   	push   %edi
52f109:	85 c0                	test   %eax,%eax
52f10b:	79 0f                	jns    0x52f11c
52f10d:	6a ff                	push   $0xffffffff
52f10f:	6a 45                	push   $0x45
52f111:	53                   	push   %ebx
52f112:	e8 c9 29 01 00       	call   0x541ae0
52f117:	83 c4 10             	add    $0x10,%esp
52f11a:	eb 78                	jmp    0x52f194
52f11c:	80 7d d3 00          	cmpb   $0x0,-0x2d(%ebp)
52f120:	74 11                	je     0x52f133
52f122:	50                   	push   %eax
52f123:	ff 75 a8             	push   -0x58(%ebp)
52f126:	6a 59                	push   $0x59
52f128:	53                   	push   %ebx
52f129:	e8 12 2a 01 00       	call   0x541b40
52f12e:	83 c4 14             	add    $0x14,%esp
52f131:	eb 13                	jmp    0x52f146
52f133:	8b 4d 90             	mov    -0x70(%ebp),%ecx
52f136:	8d 04 80             	lea    (%eax,%eax,4),%eax
52f139:	ff 74 81 04          	push   0x4(%ecx,%eax,4)
52f13d:	56                   	push   %esi
52f13e:	e8 8d 4a ff ff       	call   0x523bd0
52f143:	83 c4 0c             	add    $0xc,%esp
52f146:	57                   	push   %edi
52f147:	6a 33                	push   $0x33
52f149:	53                   	push   %ebx
52f14a:	e8 31 29 01 00       	call   0x541a80
52f14f:	57                   	push   %edi
52f150:	6a ff                	push   $0xffffffff
52f152:	6a 45                	push   $0x45
52f154:	53                   	push   %ebx
52f155:	89 45 b4             	mov    %eax,-0x4c(%ebp)