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
40eff9:	74 30                	je     0x40f02b
40effb:	a8 08                	test   $0x8,%al
40effd:	75 0b                	jne    0x40f00a
40efff:	51                   	push   %ecx
40f000:	ff 15 0c 96 43 00    	call   *0x43960c
40f006:	85 c0                	test   %eax,%eax
40f008:	74 21                	je     0x40f02b
40f00a:	8b ce                	mov    %esi,%ecx
40f00c:	8b c6                	mov    %esi,%eax
40f00e:	c1 f9 05             	sar    $0x5,%ecx
40f011:	83 e0 1f             	and    $0x1f,%eax
40f014:	8d 14 c0             	lea    (%eax,%eax,8),%edx
40f017:	8b 04 8d a0 89 43 00 	mov    0x4389a0(,%ecx,4),%eax
40f01e:	8b 4d 00             	mov    0x0(%ebp),%ecx
40f021:	8d 04 90             	lea    (%eax,%edx,4),%eax
40f024:	89 08                	mov    %ecx,(%eax)
40f026:	8a 17                	mov    (%edi),%dl
40f028:	88 50 04             	mov    %dl,0x4(%eax)
40f02b:	8b 44 24 10          	mov    0x10(%esp),%eax
40f02f:	46                   	inc    %esi
40f030:	47                   	inc    %edi
40f031:	83 c5 04             	add    $0x4,%ebp
40f034:	3b f0                	cmp    %eax,%esi
40f036:	7c b5                	jl     0x40efed
40f038:	8b 1d 08 96 43 00    	mov    0x439608,%ebx
40f03e:	33 ed                	xor    %ebp,%ebp
40f040:	8b 0d a0 89 43 00    	mov    0x4389a0,%ecx
40f046:	8d 44 ed 00          	lea    0x0(%ebp,%ebp,8),%eax
40f04a:	8d 34 81             	lea    (%ecx,%eax,4),%esi
40f04d:	8b 04 81             	mov    (%ecx,%eax,4),%eax
40f050:	83 f8 ff             	cmp    $0xffffffff,%eax
40f053:	75 54                	jne    0x40f0a9
40f055:	85 ed                	test   %ebp,%ebp
40f057:	c6 46 04 81          	movb   $0x81,0x4(%esi)
40f05b:	75 07                	jne    0x40f064
40f05d:	b8 f6 ff ff ff       	mov    $0xfffffff6,%eax
40f062:	eb 0a                	jmp    0x40f06e
40f064:	8b c5                	mov    %ebp,%eax
40f066:	48                   	dec    %eax
40f067:	f7 d8                	neg    %eax
40f069:	1b c0                	sbb    %eax,%eax
40f06b:	83 c0 f5             	add    $0xfffffff5,%eax
40f06e:	50                   	push   %eax
40f06f:	ff d3                	call   *%ebx
40f071:	8b f8                	mov    %eax,%edi
40f073:	83 ff ff             	cmp    $0xffffffff,%edi
40f076:	74 2a                	je     0x40f0a2
40f078:	57                   	push   %edi
40f079:	ff 15 0c 96 43 00    	call   *0x43960c
40f07f:	85 c0                	test   %eax,%eax
40f081:	74 1f                	je     0x40f0a2
40f083:	25 ff 00 00 00       	and    $0xff,%eax
40f088:	89 3e                	mov    %edi,(%esi)
40f08a:	83 f8 02             	cmp    $0x2,%eax
40f08d:	75 07                	jne    0x40f096
40f08f:	8a 46 04             	mov    0x4(%esi),%al
40f092:	0c 40                	or     $0x40,%al
40f094:	eb 18                	jmp    0x40f0ae
40f096:	83 f8 03             	cmp    $0x3,%eax
40f099:	75 16                	jne    0x40f0b1
40f09b:	8a 46 04             	mov    0x4(%esi),%al
40f09e:	0c 08                	or     $0x8,%al
40f0a0:	eb 0c                	jmp    0x40f0ae
40f0a2:	8a 46 04             	mov    0x4(%esi),%al
40f0a5:	0c 40                	or     $0x40,%al
40f0a7:	eb 05                	jmp    0x40f0ae
40f0a9:	8a 46 04             	mov    0x4(%esi),%al
40f0ac:	0c 80                	or     $0x80,%al
40f0ae:	88 46 04             	mov    %al,0x4(%esi)
40f0b1:	45                   	inc    %ebp
40f0b2:	83 fd 03             	cmp    $0x3,%ebp
40f0b5:	7c 89                	jl     0x40f040
40f0b7:	8b 15 a0 8a 43 00    	mov    0x438aa0,%edx
40f0bd:	52                   	push   %edx
40f0be:	ff 15 04 96 43 00    	call   *0x439604
40f0c4:	5f                   	pop    %edi
40f0c5:	5e                   	pop    %esi
40f0c6:	5d                   	pop    %ebp
40f0c7:	5b                   	pop    %ebx
40f0c8:	83 c4 48             	add    $0x48,%esp
40f0cb:	c3                   	ret
40f0cc:	90                   	nop
40f0cd:	90                   	nop
40f0ce:	90                   	nop
40f0cf:	90                   	nop
40f0d0:	6a 00                	push   $0x0
40f0d2:	68 00 10 00 00       	push   $0x1000
40f0d7:	6a 00                	push   $0x0
40f0d9:	ff 15 14 96 43 00    	call   *0x439614
40f0df:	85 c0                	test   %eax,%eax
40f0e1:	a3 8c 89 43 00       	mov    %eax,0x43898c
40f0e6:	75 01                	jne    0x40f0e9
40f0e8:	c3                   	ret
40f0e9:	e8 82 05 00 00       	call   0x40f670
40f0ee:	85 c0                	test   %eax,%eax
40f0f0:	75 0f                	jne    0x40f101
40f0f2:	a1 8c 89 43 00       	mov    0x43898c,%eax
40f0f7:	50                   	push   %eax
40f0f8:	ff 15 10 96 43 00    	call   *0x439610
40f0fe:	33 c0                	xor    %eax,%eax
40f100:	c3                   	ret
40f101:	b8 01 00 00 00       	mov    $0x1,%eax
40f106:	c3                   	ret
40f107:	90                   	nop
40f108:	90                   	nop
40f109:	90                   	nop
40f10a:	90                   	nop
40f10b:	90                   	nop
40f10c:	90                   	nop
40f10d:	90                   	nop
40f10e:	90                   	nop
40f10f:	90                   	nop
40f110:	56                   	push   %esi
40f111:	43                   	inc    %ebx
40f112:	32 30                	xor    (%eax),%dh
40f114:	58                   	pop    %eax
40f115:	43                   	inc    %ebx
40f116:	30 30                	xor    %dh,(%eax)
40f118:	55                   	push   %ebp
40f119:	8b ec                	mov    %esp,%ebp
40f11b:	83 ec 08             	sub    $0x8,%esp
40f11e:	53                   	push   %ebx
40f11f:	56                   	push   %esi
40f120:	57                   	push   %edi
40f121:	55                   	push   %ebp
40f122:	fc                   	cld
40f123:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f126:	8b 45 08             	mov    0x8(%ebp),%eax
40f129:	f7 40 04 06 00 00 00 	testl  $0x6,0x4(%eax)
40f130:	0f 85 82 00 00 00    	jne    0x40f1b8
40f136:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f139:	8b 45 10             	mov    0x10(%ebp),%eax
40f13c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f13f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f142:	89 43 fc             	mov    %eax,-0x4(%ebx)
40f145:	8b 73 0c             	mov    0xc(%ebx),%esi
40f148:	8b 7b 08             	mov    0x8(%ebx),%edi
40f14b:	83 fe ff             	cmp    $0xffffffff,%esi
40f14e:	74 61                	je     0x40f1b1
40f150:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40f153:	83 7c 8f 04 00       	cmpl   $0x0,0x4(%edi,%ecx,4)
40f158:	74 45                	je     0x40f19f
40f15a:	56                   	push   %esi
40f15b:	55                   	push   %ebp
40f15c:	8d 6b 10             	lea    0x10(%ebx),%ebp
40f15f:	ff 54 8f 04          	call   *0x4(%edi,%ecx,4)
40f163:	5d                   	pop    %ebp
40f164:	5e                   	pop    %esi
40f165:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f168:	0b c0                	or     %eax,%eax
40f16a:	74 33                	je     0x40f19f
40f16c:	78 3c                	js     0x40f1aa
40f16e:	8b 7b 08             	mov    0x8(%ebx),%edi
40f171:	53                   	push   %ebx
40f172:	e8 c9 c9 ff ff       	call   0x40bb40
40f177:	83 c4 04             	add    $0x4,%esp
40f17a:	8d 6b 10             	lea    0x10(%ebx),%ebp
40f17d:	56                   	push   %esi
40f17e:	53                   	push   %ebx
40f17f:	e8 fe c9 ff ff       	call   0x40bb82
40f184:	83 c4 08             	add    $0x8,%esp
40f187:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40f18a:	6a 01                	push   $0x1
40f18c:	8b 44 8f 08          	mov    0x8(%edi,%ecx,4),%eax
40f190:	e8 81 ca ff ff       	call   0x40bc16
40f195:	8b 04 8f             	mov    (%edi,%ecx,4),%eax
40f198:	89 43 0c             	mov    %eax,0xc(%ebx)
40f19b:	ff 54 8f 08          	call   *0x8(%edi,%ecx,4)
40f19f:	8b 7b 08             	mov    0x8(%ebx),%edi
40f1a2:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
40f1a5:	8b 34 8f             	mov    (%edi,%ecx,4),%esi
40f1a8:	eb a1                	jmp    0x40f14b
40f1aa:	b8 00 00 00 00       	mov    $0x0,%eax
40f1af:	eb 1c                	jmp    0x40f1cd
40f1b1:	b8 01 00 00 00       	mov    $0x1,%eax