40ec89:	75 25                	jne    0x40ecb0
40ec8b:	f6 c1 01             	test   $0x1,%cl
40ec8e:	75 1e                	jne    0x40ecae
40ec90:	85 d2                	test   %edx,%edx
40ec92:	74 09                	je     0x40ec9d
40ec94:	80 78 01 22          	cmpb   $0x22,0x1(%eax)
40ec98:	75 03                	jne    0x40ec9d
40ec9a:	40                   	inc    %eax
40ec9b:	eb 02                	jmp    0x40ec9f
40ec9d:	33 ed                	xor    %ebp,%ebp
40ec9f:	8b 5c 24 24          	mov    0x24(%esp),%ebx
40eca3:	33 d2                	xor    %edx,%edx
40eca5:	85 db                	test   %ebx,%ebx
40eca7:	0f 94 c2             	sete   %dl
40ecaa:	89 54 24 24          	mov    %edx,0x24(%esp)
40ecae:	d1 e9                	shr    $1,%ecx
40ecb0:	8b d9                	mov    %ecx,%ebx
40ecb2:	49                   	dec    %ecx
40ecb3:	85 db                	test   %ebx,%ebx
40ecb5:	74 11                	je     0x40ecc8
40ecb7:	41                   	inc    %ecx
40ecb8:	85 f6                	test   %esi,%esi
40ecba:	74 04                	je     0x40ecc0
40ecbc:	c6 06 5c             	movb   $0x5c,(%esi)
40ecbf:	46                   	inc    %esi
40ecc0:	8b 1f                	mov    (%edi),%ebx
40ecc2:	43                   	inc    %ebx
40ecc3:	49                   	dec    %ecx
40ecc4:	89 1f                	mov    %ebx,(%edi)
40ecc6:	75 f0                	jne    0x40ecb8
40ecc8:	8a 08                	mov    (%eax),%cl
40ecca:	84 c9                	test   %cl,%cl
40eccc:	74 5d                	je     0x40ed2b
40ecce:	85 d2                	test   %edx,%edx
40ecd0:	75 0a                	jne    0x40ecdc
40ecd2:	80 f9 20             	cmp    $0x20,%cl
40ecd5:	74 54                	je     0x40ed2b
40ecd7:	80 f9 09             	cmp    $0x9,%cl
40ecda:	74 4f                	je     0x40ed2b
40ecdc:	85 ed                	test   %ebp,%ebp
40ecde:	74 45                	je     0x40ed25
40ece0:	85 f6                	test   %esi,%esi
40ece2:	74 2a                	je     0x40ed0e
40ece4:	8b d9                	mov    %ecx,%ebx
40ece6:	81 e3 ff 00 00 00    	and    $0xff,%ebx
40ecec:	f6 83 79 70 43 00 04 	testb  $0x4,0x437079(%ebx)
40ecf3:	74 09                	je     0x40ecfe
40ecf5:	88 0e                	mov    %cl,(%esi)
40ecf7:	8b 0f                	mov    (%edi),%ecx
40ecf9:	46                   	inc    %esi
40ecfa:	40                   	inc    %eax
40ecfb:	41                   	inc    %ecx
40ecfc:	89 0f                	mov    %ecx,(%edi)
40ecfe:	8a 08                	mov    (%eax),%cl
40ed00:	88 0e                	mov    %cl,(%esi)
40ed02:	8b 0f                	mov    (%edi),%ecx
40ed04:	46                   	inc    %esi
40ed05:	41                   	inc    %ecx
40ed06:	89 0f                	mov    %ecx,(%edi)
40ed08:	40                   	inc    %eax
40ed09:	e9 60 ff ff ff       	jmp    0x40ec6e
40ed0e:	81 e1 ff 00 00 00    	and    $0xff,%ecx
40ed14:	f6 81 79 70 43 00 04 	testb  $0x4,0x437079(%ecx)
40ed1b:	74 06                	je     0x40ed23
40ed1d:	8b 0f                	mov    (%edi),%ecx
40ed1f:	40                   	inc    %eax
40ed20:	41                   	inc    %ecx
40ed21:	89 0f                	mov    %ecx,(%edi)
40ed23:	ff 07                	incl   (%edi)
40ed25:	40                   	inc    %eax
40ed26:	e9 43 ff ff ff       	jmp    0x40ec6e
40ed2b:	85 f6                	test   %esi,%esi
40ed2d:	74 04                	je     0x40ed33
40ed2f:	c6 06 00             	movb   $0x0,(%esi)
40ed32:	46                   	inc    %esi
40ed33:	8b 0f                	mov    (%edi),%ecx
40ed35:	8b 6c 24 18          	mov    0x18(%esp),%ebp
40ed39:	41                   	inc    %ecx
40ed3a:	bb 04 00 00 00       	mov    $0x4,%ebx
40ed3f:	89 0f                	mov    %ecx,(%edi)
40ed41:	e9 f4 fe ff ff       	jmp    0x40ec3a
40ed46:	85 ed                	test   %ebp,%ebp
40ed48:	74 07                	je     0x40ed51
40ed4a:	c7 45 00 00 00 00 00 	movl   $0x0,0x0(%ebp)
40ed51:	8b 44 24 20          	mov    0x20(%esp),%eax
40ed55:	5f                   	pop    %edi
40ed56:	5e                   	pop    %esi
40ed57:	5d                   	pop    %ebp
40ed58:	8b 08                	mov    (%eax),%ecx
40ed5a:	5b                   	pop    %ebx
40ed5b:	41                   	inc    %ecx
40ed5c:	89 08                	mov    %ecx,(%eax)
40ed5e:	c3                   	ret
40ed5f:	90                   	nop
40ed60:	a1 e8 72 43 00       	mov    0x4372e8,%eax
40ed65:	53                   	push   %ebx
40ed66:	55                   	push   %ebp
40ed67:	8b 2d fc 95 43 00    	mov    0x4395fc,%ebp
40ed6d:	56                   	push   %esi
40ed6e:	33 f6                	xor    %esi,%esi
40ed70:	33 db                	xor    %ebx,%ebx
40ed72:	57                   	push   %edi
40ed73:	8b 3d 00 96 43 00    	mov    0x439600,%edi
40ed79:	85 c0                	test   %eax,%eax
40ed7b:	75 25                	jne    0x40eda2
40ed7d:	ff d7                	call   *%edi
40ed7f:	8b f0                	mov    %eax,%esi
40ed81:	85 f6                	test   %esi,%esi
40ed83:	74 07                	je     0x40ed8c
40ed85:	b8 01 00 00 00       	mov    $0x1,%eax
40ed8a:	eb 11                	jmp    0x40ed9d
40ed8c:	ff d5                	call   *%ebp
40ed8e:	8b d8                	mov    %eax,%ebx
40ed90:	85 db                	test   %ebx,%ebx
40ed92:	0f 84 17 01 00 00    	je     0x40eeaf
40ed98:	b8 02 00 00 00       	mov    $0x2,%eax
40ed9d:	a3 e8 72 43 00       	mov    %eax,0x4372e8
40eda2:	83 f8 01             	cmp    $0x1,%eax
40eda5:	0f 85 97 00 00 00    	jne    0x40ee42
40edab:	85 f6                	test   %esi,%esi
40edad:	75 0c                	jne    0x40edbb
40edaf:	ff d7                	call   *%edi
40edb1:	8b f0                	mov    %eax,%esi
40edb3:	85 f6                	test   %esi,%esi
40edb5:	0f 84 f4 00 00 00    	je     0x40eeaf
40edbb:	66 83 3e 00          	cmpw   $0x0,(%esi)
40edbf:	8b c6                	mov    %esi,%eax
40edc1:	74 12                	je     0x40edd5
40edc3:	83 c0 02             	add    $0x2,%eax
40edc6:	66 83 38 00          	cmpw   $0x0,(%eax)
40edca:	75 f7                	jne    0x40edc3
40edcc:	83 c0 02             	add    $0x2,%eax
40edcf:	66 83 38 00          	cmpw   $0x0,(%eax)
40edd3:	75 ee                	jne    0x40edc3
40edd5:	2b c6                	sub    %esi,%eax
40edd7:	6a 00                	push   $0x0
40edd9:	d1 f8                	sar    $1,%eax
40eddb:	40                   	inc    %eax
40eddc:	6a 00                	push   $0x0
40edde:	8b e8                	mov    %eax,%ebp
40ede0:	6a 00                	push   $0x0
40ede2:	6a 00                	push   $0x0
40ede4:	55                   	push   %ebp
40ede5:	56                   	push   %esi
40ede6:	6a 00                	push   $0x0
40ede8:	6a 00                	push   $0x0
40edea:	ff 15 f8 96 43 00    	call   *0x4396f8
40edf0:	8b f8                	mov    %eax,%edi
40edf2:	85 ff                	test   %edi,%edi
40edf4:	74 3e                	je     0x40ee34
40edf6:	57                   	push   %edi
40edf7:	e8 c4 d6 ff ff       	call   0x40c4c0
40edfc:	8b d8                	mov    %eax,%ebx
40edfe:	83 c4 04             	add    $0x4,%esp
40ee01:	85 db                	test   %ebx,%ebx
40ee03:	74 2f                	je     0x40ee34
40ee05:	6a 00                	push   $0x0
40ee07:	6a 00                	push   $0x0
40ee09:	57                   	push   %edi
40ee0a:	53                   	push   %ebx
40ee0b:	55                   	push   %ebp
40ee0c:	56                   	push   %esi
40ee0d:	6a 00                	push   $0x0
40ee0f:	6a 00                	push   $0x0
40ee11:	ff 15 f8 96 43 00    	call   *0x4396f8
40ee17:	85 c0                	test   %eax,%eax
40ee19:	75 0b                	jne    0x40ee26
40ee1b:	53                   	push   %ebx
40ee1c:	e8 6f d7 ff ff       	call   0x40c590
40ee21:	83 c4 04             	add    $0x4,%esp
40ee24:	33 db                	xor    %ebx,%ebx
40ee26:	56                   	push   %esi
40ee27:	ff 15 f8 95 43 00    	call   *0x4395f8
40ee2d:	8b c3                	mov    %ebx,%eax
40ee2f:	5f                   	pop    %edi
40ee30:	5e                   	pop    %esi
40ee31:	5d                   	pop    %ebp
40ee32:	5b                   	pop    %ebx
40ee33:	c3                   	ret
40ee34:	56                   	push   %esi
40ee35:	ff 15 f8 95 43 00    	call   *0x4395f8
40ee3b:	33 c0                	xor    %eax,%eax
40ee3d:	5f                   	pop    %edi
40ee3e:	5e                   	pop    %esi
40ee3f:	5d                   	pop    %ebp
40ee40:	5b                   	pop    %ebx
40ee41:	c3                   	ret
40ee42:	83 f8 02             	cmp    $0x2,%eax
40ee45:	75 68                	jne    0x40eeaf
40ee47:	85 db                	test   %ebx,%ebx
40ee49:	75 08                	jne    0x40ee53
40ee4b:	ff d5                	call   *%ebp
40ee4d:	8b d8                	mov    %eax,%ebx
40ee4f:	85 db                	test   %ebx,%ebx
40ee51:	74 5c                	je     0x40eeaf
40ee53:	8a 0b                	mov    (%ebx),%cl
40ee55:	8b c3                	mov    %ebx,%eax
40ee57:	84 c9                	test   %cl,%cl
40ee59:	74 10                	je     0x40ee6b
40ee5b:	8a 48 01             	mov    0x1(%eax),%cl
40ee5e:	40                   	inc    %eax
40ee5f:	84 c9                	test   %cl,%cl
40ee61:	75 f8                	jne    0x40ee5b
40ee63:	8a 48 01             	mov    0x1(%eax),%cl
40ee66:	40                   	inc    %eax
40ee67:	84 c9                	test   %cl,%cl
40ee69:	75 f0                	jne    0x40ee5b
40ee6b:	2b c3                	sub    %ebx,%eax
40ee6d:	40                   	inc    %eax
40ee6e:	8b f0                	mov    %eax,%esi
40ee70:	56                   	push   %esi
40ee71:	e8 4a d6 ff ff       	call   0x40c4c0
40ee76:	8b e8                	mov    %eax,%ebp
40ee78:	83 c4 04             	add    $0x4,%esp
40ee7b:	85 ed                	test   %ebp,%ebp
40ee7d:	75 0e                	jne    0x40ee8d
40ee7f:	53                   	push   %ebx
40ee80:	ff 15 f4 95 43 00    	call   *0x4395f4
40ee86:	33 c0                	xor    %eax,%eax
40ee88:	5f                   	pop    %edi
40ee89:	5e                   	pop    %esi
40ee8a:	5d                   	pop    %ebp
40ee8b:	5b                   	pop    %ebx
40ee8c:	c3                   	ret
40ee8d:	8b ce                	mov    %esi,%ecx
40ee8f:	8b f3                	mov    %ebx,%esi
40ee91:	8b c1                	mov    %ecx,%eax
40ee93:	8b fd                	mov    %ebp,%edi
40ee95:	c1 e9 02             	shr    $0x2,%ecx
40ee98:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ee9a:	8b c8                	mov    %eax,%ecx
40ee9c:	53                   	push   %ebx
40ee9d:	83 e1 03             	and    $0x3,%ecx
40eea0:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40eea2:	ff 15 f4 95 43 00    	call   *0x4395f4
40eea8:	8b c5                	mov    %ebp,%eax
40eeaa:	5f                   	pop    %edi
40eeab:	5e                   	pop    %esi
40eeac:	5d                   	pop    %ebp
40eead:	5b                   	pop    %ebx
40eeae:	c3                   	ret
40eeaf:	5f                   	pop    %edi
40eeb0:	5e                   	pop    %esi
40eeb1:	5d                   	pop    %ebp
40eeb2:	33 c0                	xor    %eax,%eax
40eeb4:	5b                   	pop    %ebx
40eeb5:	c3                   	ret
40eeb6:	90                   	nop
40eeb7:	90                   	nop
40eeb8:	90                   	nop
40eeb9:	90                   	nop
40eeba:	90                   	nop
40eebb:	90                   	nop
40eebc:	90                   	nop
40eebd:	90                   	nop
40eebe:	90                   	nop
40eebf:	90                   	nop
40eec0:	83 ec 48             	sub    $0x48,%esp
40eec3:	53                   	push   %ebx
40eec4:	55                   	push   %ebp
40eec5:	56                   	push   %esi
40eec6:	57                   	push   %edi
40eec7:	68 80 04 00 00       	push   $0x480
40eecc:	e8 ef d5 ff ff       	call   0x40c4c0
40eed1:	8b f0                	mov    %eax,%esi
40eed3:	33 ff                	xor    %edi,%edi
40eed5:	83 c4 04             	add    $0x4,%esp
40eed8:	3b f7                	cmp    %edi,%esi
40eeda:	75 0a                	jne    0x40eee6
40eedc:	6a 1b                	push   $0x1b
40eede:	e8 ad d4 ff ff       	call   0x40c390
40eee3:	83 c4 04             	add    $0x4,%esp
40eee6:	8d 86 80 04 00 00    	lea    0x480(%esi),%eax
40eeec:	89 35 a0 89 43 00    	mov    %esi,0x4389a0
40eef2:	3b f0                	cmp    %eax,%esi
40eef4:	c7 05 a0 8a 43 00 20 	movl   $0x20,0x438aa0
40eefb:	00 00 00
40eefe:	b3 0a                	mov    $0xa,%bl
40ef00:	73 23                	jae    0x40ef25
40ef02:	c6 46 04 00          	movb   $0x0,0x4(%esi)
40ef06:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
40ef0c:	88 5e 05             	mov    %bl,0x5(%esi)
40ef0f:	89 7e 08             	mov    %edi,0x8(%esi)
40ef12:	8b 0d a0 89 43 00    	mov    0x4389a0,%ecx
40ef18:	83 c6 24             	add    $0x24,%esi
40ef1b:	81 c1 80 04 00 00    	add    $0x480,%ecx
40ef21:	3b f1                	cmp    %ecx,%esi
40ef23:	72 dd                	jb     0x40ef02
40ef25:	8d 54 24 14          	lea    0x14(%esp),%edx
40ef29:	52                   	push   %edx
40ef2a:	ff 15 64 96 43 00    	call   *0x439664
40ef30:	66 39 7c 24 46       	cmp    %di,0x46(%esp)
40ef35:	0f 84 fd 00 00 00    	je     0x40f038
40ef3b:	8b 44 24 48          	mov    0x48(%esp),%eax
40ef3f:	3b c7                	cmp    %edi,%eax
40ef41:	0f 84 f1 00 00 00    	je     0x40f038
40ef47:	8b 08                	mov    (%eax),%ecx
40ef49:	8d 78 04             	lea    0x4(%eax),%edi
40ef4c:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
40ef52:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40ef56:	8d 2c 0f             	lea    (%edi,%ecx,1),%ebp
40ef59:	7c 08                	jl     0x40ef63
40ef5b:	c7 44 24 10 00 08 00 	movl   $0x800,0x10(%esp)
40ef62:	00
40ef63:	8b 44 24 10          	mov    0x10(%esp),%eax
40ef67:	8b 0d a0 8a 43 00    	mov    0x438aa0,%ecx
40ef6d:	3b c8                	cmp    %eax,%ecx
40ef6f:	7d 70                	jge    0x40efe1
40ef71:	be a4 89 43 00       	mov    $0x4389a4,%esi
40ef76:	68 80 04 00 00       	push   $0x480
40ef7b:	e8 40 d5 ff ff       	call   0x40c4c0
40ef80:	33 c9                	xor    %ecx,%ecx
40ef82:	83 c4 04             	add    $0x4,%esp
40ef85:	3b c1                	cmp    %ecx,%eax
40ef87:	74 4c                	je     0x40efd5
40ef89:	8b 15 a0 8a 43 00    	mov    0x438aa0,%edx
40ef8f:	89 06                	mov    %eax,(%esi)
40ef91:	83 c2 20             	add    $0x20,%edx
40ef94:	89 15 a0 8a 43 00    	mov    %edx,0x438aa0
40ef9a:	8d 90 80 04 00 00    	lea    0x480(%eax),%edx
40efa0:	3b c2                	cmp    %edx,%eax
40efa2:	73 1f                	jae    0x40efc3
40efa4:	c6 40 04 00          	movb   $0x0,0x4(%eax)
40efa8:	c7 00 ff ff ff ff    	movl   $0xffffffff,(%eax)
40efae:	88 58 05             	mov    %bl,0x5(%eax)
40efb1:	89 48 08             	mov    %ecx,0x8(%eax)
40efb4:	8b 16                	mov    (%esi),%edx
40efb6:	83 c0 24             	add    $0x24,%eax
40efb9:	81 c2 80 04 00 00    	add    $0x480,%edx
40efbf:	3b c2                	cmp    %edx,%eax
40efc1:	72 e1                	jb     0x40efa4
40efc3:	a1 a0 8a 43 00       	mov    0x438aa0,%eax
40efc8:	8b 54 24 10          	mov    0x10(%esp),%edx
40efcc:	83 c6 04             	add    $0x4,%esi
40efcf:	3b c2                	cmp    %edx,%eax
40efd1:	7c a3                	jl     0x40ef76
40efd3:	eb 0e                	jmp    0x40efe3
40efd5:	8b 15 a0 8a 43 00    	mov    0x438aa0,%edx
40efdb:	89 54 24 10          	mov    %edx,0x10(%esp)
40efdf:	eb 02                	jmp    0x40efe3
40efe1:	33 c9                	xor    %ecx,%ecx
40efe3:	8b 44 24 10          	mov    0x10(%esp),%eax
40efe7:	33 f6                	xor    %esi,%esi
40efe9:	3b c1                	cmp    %ecx,%eax
40efeb:	7e 4b                	jle    0x40f038
40efed:	8b 4d 00             	mov    0x0(%ebp),%ecx
40eff0:	83 f9 ff             	cmp    $0xffffffff,%ecx
40eff3:	74 36                	je     0x40f02b
40eff5:	8a 07                	mov    (%edi),%al
40eff7:	a8 01                	test   $0x1,%al