48ed54:	85 ff                	test   %edi,%edi
48ed56:	74 03                	je     0x48ed5b
48ed58:	83 27 00             	andl   $0x0,(%edi)
48ed5b:	51                   	push   %ecx
48ed5c:	56                   	push   %esi
48ed5d:	ff 75 1c             	push   0x1c(%ebp)
48ed60:	ff 75 18             	push   0x18(%ebp)
48ed63:	ff 75 14             	push   0x14(%ebp)
48ed66:	ff 75 10             	push   0x10(%ebp)
48ed69:	50                   	push   %eax
48ed6a:	52                   	push   %edx
48ed6b:	ff 15 4c e0 49 00    	call   *0x49e04c
48ed71:	5f                   	pop    %edi
48ed72:	5e                   	pop    %esi
48ed73:	5b                   	pop    %ebx
48ed74:	5d                   	pop    %ebp
48ed75:	c3                   	ret
48ed76:	cc                   	int3
48ed77:	cc                   	int3
48ed78:	cc                   	int3
48ed79:	cc                   	int3
48ed7a:	cc                   	int3
48ed7b:	cc                   	int3
48ed7c:	cc                   	int3
48ed7d:	cc                   	int3
48ed7e:	cc                   	int3
48ed7f:	cc                   	int3
48ed80:	8b ff                	mov    %edi,%edi
48ed82:	55                   	push   %ebp
48ed83:	8b ec                	mov    %esp,%ebp
48ed85:	8b 45 0c             	mov    0xc(%ebp),%eax
48ed88:	3b 45 08             	cmp    0x8(%ebp),%eax
48ed8b:	76 05                	jbe    0x48ed92
48ed8d:	83 c8 ff             	or     $0xffffffff,%eax
48ed90:	5d                   	pop    %ebp
48ed91:	c3                   	ret
48ed92:	1b c0                	sbb    %eax,%eax
48ed94:	f7 d8                	neg    %eax
48ed96:	5d                   	pop    %ebp
48ed97:	c3                   	ret
48ed98:	8b ff                	mov    %edi,%edi
48ed9a:	55                   	push   %ebp
48ed9b:	8b ec                	mov    %esp,%ebp
48ed9d:	83 ec 30             	sub    $0x30,%esp
48eda0:	a1 14 40 4c 00       	mov    0x4c4014,%eax
48eda5:	33 c5                	xor    %ebp,%eax
48eda7:	89 45 fc             	mov    %eax,-0x4(%ebp)
48edaa:	8b 45 0c             	mov    0xc(%ebp),%eax
48edad:	89 45 d0             	mov    %eax,-0x30(%ebp)
48edb0:	56                   	push   %esi
48edb1:	8b 75 08             	mov    0x8(%ebp),%esi
48edb4:	85 c0                	test   %eax,%eax
48edb6:	75 16                	jne    0x48edce
48edb8:	e8 78 b1 fe ff       	call   0x479f35
48edbd:	6a 16                	push   $0x16
48edbf:	5e                   	pop    %esi
48edc0:	89 30                	mov    %esi,(%eax)
48edc2:	e8 5a a8 fe ff       	call   0x479621
48edc7:	8b c6                	mov    %esi,%eax
48edc9:	e9 68 01 00 00       	jmp    0x48ef36
48edce:	53                   	push   %ebx
48edcf:	33 db                	xor    %ebx,%ebx
48edd1:	57                   	push   %edi
48edd2:	89 18                	mov    %ebx,(%eax)
48edd4:	8b fb                	mov    %ebx,%edi
48edd6:	8b 06                	mov    (%esi),%eax
48edd8:	8b d3                	mov    %ebx,%edx
48edda:	89 5d d8             	mov    %ebx,-0x28(%ebp)
48eddd:	89 7d dc             	mov    %edi,-0x24(%ebp)
48ede0:	89 55 e0             	mov    %edx,-0x20(%ebp)
48ede3:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
48ede6:	85 c0                	test   %eax,%eax
48ede8:	74 5e                	je     0x48ee48
48edea:	6a 2a                	push   $0x2a
48edec:	59                   	pop    %ecx
48eded:	66 89 4d f4          	mov    %cx,-0xc(%ebp)
48edf1:	6a 3f                	push   $0x3f
48edf3:	59                   	pop    %ecx
48edf4:	66 89 4d f6          	mov    %cx,-0xa(%ebp)
48edf8:	33 c9                	xor    %ecx,%ecx
48edfa:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
48edfe:	8d 4d f4             	lea    -0xc(%ebp),%ecx
48ee01:	51                   	push   %ecx
48ee02:	50                   	push   %eax
48ee03:	e8 6f 21 00 00       	call   0x490f77
48ee08:	59                   	pop    %ecx
48ee09:	59                   	pop    %ecx
48ee0a:	85 c0                	test   %eax,%eax
48ee0c:	75 18                	jne    0x48ee26
48ee0e:	8d 45 dc             	lea    -0x24(%ebp),%eax
48ee11:	50                   	push   %eax
48ee12:	53                   	push   %ebx
48ee13:	53                   	push   %ebx
48ee14:	ff 36                	push   (%esi)
48ee16:	e8 35 01 00 00       	call   0x48ef50
48ee1b:	8b f8                	mov    %eax,%edi
48ee1d:	83 c4 10             	add    $0x10,%esp
48ee20:	85 ff                	test   %edi,%edi
48ee22:	75 7b                	jne    0x48ee9f
48ee24:	eb 13                	jmp    0x48ee39
48ee26:	8d 4d dc             	lea    -0x24(%ebp),%ecx
48ee29:	51                   	push   %ecx
48ee2a:	50                   	push   %eax
48ee2b:	ff 36                	push   (%esi)
48ee2d:	e8 d2 01 00 00       	call   0x48f004
48ee32:	83 c4 0c             	add    $0xc,%esp
48ee35:	85 c0                	test   %eax,%eax
48ee37:	75 1d                	jne    0x48ee56
48ee39:	83 c6 04             	add    $0x4,%esi
48ee3c:	8b 06                	mov    (%esi),%eax
48ee3e:	85 c0                	test   %eax,%eax
48ee40:	75 a8                	jne    0x48edea
48ee42:	8b 7d dc             	mov    -0x24(%ebp),%edi
48ee45:	8b 55 e0             	mov    -0x20(%ebp),%edx
48ee48:	8b da                	mov    %edx,%ebx
48ee4a:	8b f7                	mov    %edi,%esi
48ee4c:	2b df                	sub    %edi,%ebx
48ee4e:	c1 fb 02             	sar    $0x2,%ebx
48ee51:	43                   	inc    %ebx
48ee52:	33 c0                	xor    %eax,%eax
48ee54:	eb 26                	jmp    0x48ee7c
48ee56:	8b f8                	mov    %eax,%edi
48ee58:	eb 45                	jmp    0x48ee9f
48ee5a:	8b 0e                	mov    (%esi),%ecx
48ee5c:	8d 41 02             	lea    0x2(%ecx),%eax
48ee5f:	89 45 f0             	mov    %eax,-0x10(%ebp)
48ee62:	66 8b 01             	mov    (%ecx),%ax
48ee65:	83 c1 02             	add    $0x2,%ecx
48ee68:	66 3b 45 d8          	cmp    -0x28(%ebp),%ax
48ee6c:	75 f4                	jne    0x48ee62
48ee6e:	2b 4d f0             	sub    -0x10(%ebp),%ecx
48ee71:	8b 45 ec             	mov    -0x14(%ebp),%eax
48ee74:	d1 f9                	sar    $1,%ecx
48ee76:	40                   	inc    %eax
48ee77:	03 c1                	add    %ecx,%eax
48ee79:	83 c6 04             	add    $0x4,%esi
48ee7c:	89 45 ec             	mov    %eax,-0x14(%ebp)
48ee7f:	3b f2                	cmp    %edx,%esi
48ee81:	75 d7                	jne    0x48ee5a
48ee83:	6a 02                	push   $0x2
48ee85:	50                   	push   %eax
48ee86:	53                   	push   %ebx
48ee87:	e8 16 43 ff ff       	call   0x4831a2
48ee8c:	8b f0                	mov    %eax,%esi
48ee8e:	83 c4 0c             	add    $0xc,%esp
48ee91:	85 f6                	test   %esi,%esi
48ee93:	75 19                	jne    0x48eeae
48ee95:	50                   	push   %eax
48ee96:	e8 5d 69 ff ff       	call   0x4857f8
48ee9b:	59                   	pop    %ecx
48ee9c:	83 cf ff             	or     $0xffffffff,%edi
48ee9f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
48eea2:	e8 d3 02 00 00       	call   0x48f17a
48eea7:	8b c7                	mov    %edi,%eax
48eea9:	e9 86 00 00 00       	jmp    0x48ef34
48eeae:	8d 04 9e             	lea    (%esi,%ebx,4),%eax
48eeb1:	8b 5d e0             	mov    -0x20(%ebp),%ebx
48eeb4:	89 45 d4             	mov    %eax,-0x2c(%ebp)
48eeb7:	8b d0                	mov    %eax,%edx
48eeb9:	89 55 f0             	mov    %edx,-0x10(%ebp)
48eebc:	3b fb                	cmp    %ebx,%edi
48eebe:	74 5c                	je     0x48ef1c
48eec0:	8b c6                	mov    %esi,%eax
48eec2:	2b c7                	sub    %edi,%eax
48eec4:	89 45 f4             	mov    %eax,-0xc(%ebp)
48eec7:	8b 0f                	mov    (%edi),%ecx
48eec9:	8d 41 02             	lea    0x2(%ecx),%eax
48eecc:	89 45 e8             	mov    %eax,-0x18(%ebp)
48eecf:	66 8b 01             	mov    (%ecx),%ax
48eed2:	83 c1 02             	add    $0x2,%ecx
48eed5:	66 3b 45 d8          	cmp    -0x28(%ebp),%ax
48eed9:	75 f4                	jne    0x48eecf
48eedb:	2b 4d e8             	sub    -0x18(%ebp),%ecx
48eede:	d1 f9                	sar    $1,%ecx
48eee0:	8d 41 01             	lea    0x1(%ecx),%eax
48eee3:	8b ca                	mov    %edx,%ecx
48eee5:	2b 4d d4             	sub    -0x2c(%ebp),%ecx
48eee8:	50                   	push   %eax
48eee9:	ff 37                	push   (%edi)
48eeeb:	89 45 e8             	mov    %eax,-0x18(%ebp)
48eeee:	8b 45 ec             	mov    -0x14(%ebp),%eax
48eef1:	d1 f9                	sar    $1,%ecx
48eef3:	2b c1                	sub    %ecx,%eax
48eef5:	50                   	push   %eax
48eef6:	52                   	push   %edx
48eef7:	e8 12 10 ff ff       	call   0x47ff0e
48eefc:	83 c4 10             	add    $0x10,%esp
48eeff:	85 c0                	test   %eax,%eax
48ef01:	75 40                	jne    0x48ef43
48ef03:	8b 45 f4             	mov    -0xc(%ebp),%eax
48ef06:	8b 55 f0             	mov    -0x10(%ebp),%edx
48ef09:	89 14 38             	mov    %edx,(%eax,%edi,1)
48ef0c:	83 c7 04             	add    $0x4,%edi
48ef0f:	8b 45 e8             	mov    -0x18(%ebp),%eax
48ef12:	8d 14 42             	lea    (%edx,%eax,2),%edx
48ef15:	89 55 f0             	mov    %edx,-0x10(%ebp)
48ef18:	3b fb                	cmp    %ebx,%edi
48ef1a:	75 ab                	jne    0x48eec7
48ef1c:	8b 45 d0             	mov    -0x30(%ebp),%eax
48ef1f:	89 30                	mov    %esi,(%eax)
48ef21:	33 c0                	xor    %eax,%eax
48ef23:	50                   	push   %eax
48ef24:	e8 cf 68 ff ff       	call   0x4857f8
48ef29:	59                   	pop    %ecx
48ef2a:	8d 4d dc             	lea    -0x24(%ebp),%ecx
48ef2d:	e8 48 02 00 00       	call   0x48f17a
48ef32:	33 c0                	xor    %eax,%eax
48ef34:	5f                   	pop    %edi
48ef35:	5b                   	pop    %ebx
48ef36:	8b 4d fc             	mov    -0x4(%ebp),%ecx
48ef39:	33 cd                	xor    %ebp,%ecx
48ef3b:	5e                   	pop    %esi
48ef3c:	e8 89 aa fd ff       	call   0x4699ca
48ef41:	c9                   	leave
48ef42:	c3                   	ret
48ef43:	33 c0                	xor    %eax,%eax
48ef45:	50                   	push   %eax
48ef46:	50                   	push   %eax
48ef47:	50                   	push   %eax
48ef48:	50                   	push   %eax
48ef49:	50                   	push   %eax
48ef4a:	e8 ff a6 fe ff       	call   0x47964e
48ef4f:	cc                   	int3
48ef50:	8b ff                	mov    %edi,%edi
48ef52:	55                   	push   %ebp
48ef53:	8b ec                	mov    %esp,%ebp
48ef55:	51                   	push   %ecx
48ef56:	8b 4d 08             	mov    0x8(%ebp),%ecx
48ef59:	53                   	push   %ebx
48ef5a:	57                   	push   %edi
48ef5b:	33 db                	xor    %ebx,%ebx
48ef5d:	8d 51 02             	lea    0x2(%ecx),%edx
48ef60:	66 8b 01             	mov    (%ecx),%ax
48ef63:	83 c1 02             	add    $0x2,%ecx
48ef66:	66 3b c3             	cmp    %bx,%ax
48ef69:	75 f5                	jne    0x48ef60
48ef6b:	8b 7d 10             	mov    0x10(%ebp),%edi
48ef6e:	2b ca                	sub    %edx,%ecx
48ef70:	d1 f9                	sar    $1,%ecx
48ef72:	8b c7                	mov    %edi,%eax
48ef74:	41                   	inc    %ecx
48ef75:	f7 d0                	not    %eax
48ef77:	89 4d fc             	mov    %ecx,-0x4(%ebp)
48ef7a:	3b c8                	cmp    %eax,%ecx
48ef7c:	76 07                	jbe    0x48ef85
48ef7e:	6a 0c                	push   $0xc
48ef80:	58                   	pop    %eax
48ef81:	5f                   	pop    %edi
48ef82:	5b                   	pop    %ebx
48ef83:	c9                   	leave
48ef84:	c3                   	ret
48ef85:	56                   	push   %esi
48ef86:	8d 5f 01             	lea    0x1(%edi),%ebx
48ef89:	03 d9                	add    %ecx,%ebx
48ef8b:	6a 02                	push   $0x2
48ef8d:	53                   	push   %ebx
48ef8e:	e8 aa 93 ff ff       	call   0x48833d
48ef93:	8b f0                	mov    %eax,%esi
48ef95:	59                   	pop    %ecx
48ef96:	59                   	pop    %ecx
48ef97:	85 ff                	test   %edi,%edi
48ef99:	74 12                	je     0x48efad
48ef9b:	57                   	push   %edi
48ef9c:	ff 75 0c             	push   0xc(%ebp)
48ef9f:	53                   	push   %ebx
48efa0:	56                   	push   %esi
48efa1:	e8 68 0f ff ff       	call   0x47ff0e
48efa6:	83 c4 10             	add    $0x10,%esp
48efa9:	85 c0                	test   %eax,%eax
48efab:	75 4a                	jne    0x48eff7
48efad:	ff 75 fc             	push   -0x4(%ebp)
48efb0:	2b df                	sub    %edi,%ebx
48efb2:	8d 04 7e             	lea    (%esi,%edi,2),%eax
48efb5:	ff 75 08             	push   0x8(%ebp)
48efb8:	53                   	push   %ebx
48efb9:	50                   	push   %eax
48efba:	e8 4f 0f ff ff       	call   0x47ff0e
48efbf:	83 c4 10             	add    $0x10,%esp
48efc2:	85 c0                	test   %eax,%eax
48efc4:	75 31                	jne    0x48eff7
48efc6:	8b 7d 14             	mov    0x14(%ebp),%edi
48efc9:	8b cf                	mov    %edi,%ecx
48efcb:	e8 f3 01 00 00       	call   0x48f1c3
48efd0:	8b d8                	mov    %eax,%ebx
48efd2:	85 db                	test   %ebx,%ebx
48efd4:	74 09                	je     0x48efdf
48efd6:	56                   	push   %esi
48efd7:	e8 1c 68 ff ff       	call   0x4857f8
48efdc:	59                   	pop    %ecx
48efdd:	eb 0b                	jmp    0x48efea
48efdf:	8b 47 04             	mov    0x4(%edi),%eax
48efe2:	89 30                	mov    %esi,(%eax)
48efe4:	83 47 04 04          	addl   $0x4,0x4(%edi)
48efe8:	33 db                	xor    %ebx,%ebx
48efea:	6a 00                	push   $0x0
48efec:	e8 07 68 ff ff       	call   0x4857f8
48eff1:	59                   	pop    %ecx
48eff2:	8b c3                	mov    %ebx,%eax
48eff4:	5e                   	pop    %esi
48eff5:	eb 8a                	jmp    0x48ef81
48eff7:	33 c0                	xor    %eax,%eax
48eff9:	50                   	push   %eax
48effa:	50                   	push   %eax
48effb:	50                   	push   %eax
48effc:	50                   	push   %eax
48effd:	50                   	push   %eax
48effe:	e8 4b a6 fe ff       	call   0x47964e
48f003:	cc                   	int3
48f004:	8b ff                	mov    %edi,%edi
48f006:	55                   	push   %ebp
48f007:	8b ec                	mov    %esp,%ebp
48f009:	81 ec 64 02 00 00    	sub    $0x264,%esp
48f00f:	a1 14 40 4c 00       	mov    0x4c4014,%eax
48f014:	33 c5                	xor    %ebp,%eax
48f016:	89 45 fc             	mov    %eax,-0x4(%ebp)
48f019:	8b 55 0c             	mov    0xc(%ebp),%edx
48f01c:	8b 4d 10             	mov    0x10(%ebp),%ecx
48f01f:	53                   	push   %ebx
48f020:	56                   	push   %esi
48f021:	57                   	push   %edi
48f022:	8b 7d 08             	mov    0x8(%ebp),%edi
48f025:	89 8d a4 fd ff ff    	mov    %ecx,-0x25c(%ebp)
48f02b:	3b d7                	cmp    %edi,%edx
48f02d:	74 20                	je     0x48f04f
48f02f:	0f b7 02             	movzwl (%edx),%eax
48f032:	8d 8d ab fd ff ff    	lea    -0x255(%ebp),%ecx
48f038:	50                   	push   %eax
48f039:	e8 61 01 00 00       	call   0x48f19f
48f03e:	84 c0                	test   %al,%al
48f040:	75 07                	jne    0x48f049
48f042:	83 ea 02             	sub    $0x2,%edx
48f045:	3b d7                	cmp    %edi,%edx
48f047:	75 e6                	jne    0x48f02f
48f049:	8b 8d a4 fd ff ff    	mov    -0x25c(%ebp),%ecx
48f04f:	0f b7 32             	movzwl (%edx),%esi
48f052:	83 fe 3a             	cmp    $0x3a,%esi
48f055:	75 1a                	jne    0x48f071
48f057:	8d 47 02             	lea    0x2(%edi),%eax
48f05a:	3b d0                	cmp    %eax,%edx
48f05c:	74 13                	je     0x48f071
48f05e:	51                   	push   %ecx
48f05f:	33 db                	xor    %ebx,%ebx
48f061:	53                   	push   %ebx
48f062:	53                   	push   %ebx
48f063:	57                   	push   %edi
48f064:	e8 e7 fe ff ff       	call   0x48ef50
48f069:	83 c4 10             	add    $0x10,%esp
48f06c:	e9 fa 00 00 00       	jmp    0x48f16b
48f071:	56                   	push   %esi
48f072:	8d 8d ab fd ff ff    	lea    -0x255(%ebp),%ecx