40ed43:	8d 55 e4             	lea    -0x1c(%ebp),%edx
40ed46:	a1 ac 45 47 00       	mov    0x4745ac,%eax
40ed4b:	e8 94 70 ff ff       	call   0x405de4
40ed50:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40ed53:	b2 01                	mov    $0x1,%dl
40ed55:	a1 3c e5 40 00       	mov    0x40e53c,%eax
40ed5a:	e8 95 cd ff ff       	call   0x40baf4
40ed5f:	e8 28 4d ff ff       	call   0x403a8c
40ed64:	eb 73                	jmp    0x40edd9
40ed66:	8d 55 e0             	lea    -0x20(%ebp),%edx
40ed69:	a1 34 45 47 00       	mov    0x474534,%eax
40ed6e:	e8 71 70 ff ff       	call   0x405de4
40ed73:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40ed76:	b2 01                	mov    $0x1,%dl
40ed78:	a1 04 e8 40 00       	mov    0x40e804,%eax
40ed7d:	e8 72 cd ff ff       	call   0x40baf4
40ed82:	e8 05 4d ff ff       	call   0x403a8c
40ed87:	eb 50                	jmp    0x40edd9
40ed89:	a1 7c 48 47 00       	mov    0x47487c,%eax
40ed8e:	8b 00                	mov    (%eax),%eax
40ed90:	89 45 c8             	mov    %eax,-0x38(%ebp)
40ed93:	c6 45 cc 0b          	movb   $0xb,-0x34(%ebp)
40ed97:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40ed9a:	c6 45 d4 00          	movb   $0x0,-0x2c(%ebp)
40ed9e:	8d 55 c4             	lea    -0x3c(%ebp),%edx
40eda1:	8b c3                	mov    %ebx,%eax
40eda3:	e8 44 c5 ff ff       	call   0x40b2ec
40eda8:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40edab:	89 45 d8             	mov    %eax,-0x28(%ebp)
40edae:	c6 45 dc 0b          	movb   $0xb,-0x24(%ebp)
40edb2:	8d 45 c8             	lea    -0x38(%ebp),%eax
40edb5:	50                   	push   %eax
40edb6:	6a 02                	push   $0x2
40edb8:	8d 55 c0             	lea    -0x40(%ebp),%edx
40edbb:	a1 64 46 47 00       	mov    0x474664,%eax
40edc0:	e8 1f 70 ff ff       	call   0x405de4
40edc5:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40edc8:	b2 01                	mov    $0x1,%dl
40edca:	a1 ac 79 40 00       	mov    0x4079ac,%eax
40edcf:	e8 5c cd ff ff       	call   0x40bb30
40edd4:	e8 b3 4c ff ff       	call   0x403a8c
40edd9:	33 c0                	xor    %eax,%eax
40eddb:	5a                   	pop    %edx
40eddc:	59                   	pop    %ecx
40eddd:	59                   	pop    %ecx
40edde:	64 89 10             	mov    %edx,%fs:(%eax)
40ede1:	68 08 ee 40 00       	push   $0x40ee08
40ede6:	8d 45 c0             	lea    -0x40(%ebp),%eax
40ede9:	ba 02 00 00 00       	mov    $0x2,%edx
40edee:	e8 81 52 ff ff       	call   0x404074
40edf3:	8d 45 e0             	lea    -0x20(%ebp),%eax
40edf6:	ba 08 00 00 00       	mov    $0x8,%edx
40edfb:	e8 74 52 ff ff       	call   0x404074
40ee00:	c3                   	ret
40ee01:	e9 4e 4c ff ff       	jmp    0x403a54
40ee06:	eb de                	jmp    0x40ede6
40ee08:	5b                   	pop    %ebx
40ee09:	8b e5                	mov    %ebp,%esp
40ee0b:	5d                   	pop    %ebp
40ee0c:	c3                   	ret
40ee0d:	8d 40 00             	lea    0x0(%eax),%eax
40ee10:	85 c0                	test   %eax,%eax
40ee12:	74 05                	je     0x40ee19
40ee14:	e8 a3 fd ff ff       	call   0x40ebbc
40ee19:	c3                   	ret
40ee1a:	8b c0                	mov    %eax,%eax
40ee1c:	53                   	push   %ebx
40ee1d:	85 c0                	test   %eax,%eax
40ee1f:	74 2c                	je     0x40ee4d
40ee21:	8b d8                	mov    %eax,%ebx
40ee23:	81 eb 05 00 02 80    	sub    $0x80020005,%ebx
40ee29:	74 07                	je     0x40ee32
40ee2b:	83 eb 05             	sub    $0x5,%ebx
40ee2e:	74 0d                	je     0x40ee3d
40ee30:	eb 16                	jmp    0x40ee48
40ee32:	8b c2                	mov    %edx,%eax
40ee34:	8b d1                	mov    %ecx,%edx
40ee36:	e8 4d fb ff ff       	call   0x40e988
40ee3b:	eb 10                	jmp    0x40ee4d
40ee3d:	8b c2                	mov    %edx,%eax
40ee3f:	8b d1                	mov    %ecx,%edx
40ee41:	e8 86 fc ff ff       	call   0x40eacc
40ee46:	eb 05                	jmp    0x40ee4d
40ee48:	e8 6f fd ff ff       	call   0x40ebbc
40ee4d:	5b                   	pop    %ebx
40ee4e:	c3                   	ret
40ee4f:	90                   	nop
40ee50:	53                   	push   %ebx
40ee51:	56                   	push   %esi
40ee52:	8b f2                	mov    %edx,%esi
40ee54:	8b d8                	mov    %eax,%ebx
40ee56:	e8 29 39 ff ff       	call   0x402784
40ee5b:	8b 15 c0 74 40 00    	mov    0x4074c0,%edx
40ee61:	e8 e6 45 ff ff       	call   0x40344c
40ee66:	84 c0                	test   %al,%al
40ee68:	74 11                	je     0x40ee7b
40ee6a:	8b ce                	mov    %esi,%ecx
40ee6c:	8b d3                	mov    %ebx,%edx
40ee6e:	b8 0a 00 02 80       	mov    $0x8002000a,%eax
40ee73:	e8 a4 ff ff ff       	call   0x40ee1c
40ee78:	5e                   	pop    %esi
40ee79:	5b                   	pop    %ebx
40ee7a:	c3                   	ret
40ee7b:	e8 04 39 ff ff       	call   0x402784
40ee80:	8b 15 7c 76 40 00    	mov    0x40767c,%edx
40ee86:	e8 c1 45 ff ff       	call   0x40344c
40ee8b:	84 c0                	test   %al,%al
40ee8d:	74 10                	je     0x40ee9f
40ee8f:	8b ce                	mov    %esi,%ecx
40ee91:	8b d3                	mov    %ebx,%edx
40ee93:	b8 0a 00 02 80       	mov    $0x8002000a,%eax
40ee98:	e8 7f ff ff ff       	call   0x40ee1c
40ee9d:	eb 32                	jmp    0x40eed1
40ee9f:	e8 e0 38 ff ff       	call   0x402784
40eea4:	8b 15 e4 77 40 00    	mov    0x4077e4,%edx
40eeaa:	e8 9d 45 ff ff       	call   0x40344c
40eeaf:	84 c0                	test   %al,%al
40eeb1:	74 10                	je     0x40eec3
40eeb3:	8b ce                	mov    %esi,%ecx
40eeb5:	8b d3                	mov    %ebx,%edx
40eeb7:	b8 05 00 02 80       	mov    $0x80020005,%eax
40eebc:	e8 5b ff ff ff       	call   0x40ee1c
40eec1:	eb 0e                	jmp    0x40eed1
40eec3:	e8 fc 38 ff ff       	call   0x4027c4
40eec8:	8b d0                	mov    %eax,%edx
40eeca:	8b c2                	mov    %edx,%eax
40eecc:	e8 bb 4b ff ff       	call   0x403a8c
40eed1:	5e                   	pop    %esi
40eed2:	5b                   	pop    %ebx
40eed3:	c3                   	ret
40eed4:	55                   	push   %ebp
40eed5:	8b ec                	mov    %esp,%ebp
40eed7:	6a 00                	push   $0x0
40eed9:	33 c0                	xor    %eax,%eax
40eedb:	55                   	push   %ebp
40eedc:	68 1e ef 40 00       	push   $0x40ef1e
40eee1:	64 ff 30             	push   %fs:(%eax)
40eee4:	64 89 20             	mov    %esp,%fs:(%eax)
40eee7:	8d 55 fc             	lea    -0x4(%ebp),%edx
40eeea:	a1 a8 44 47 00       	mov    0x4744a8,%eax
40eeef:	e8 f0 6e ff ff       	call   0x405de4
40eef4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40eef7:	b2 01                	mov    $0x1,%dl
40eef9:	a1 68 e8 40 00       	mov    0x40e868,%eax
40eefe:	e8 f1 cb ff ff       	call   0x40baf4
40ef03:	e8 84 4b ff ff       	call   0x403a8c
40ef08:	33 c0                	xor    %eax,%eax
40ef0a:	5a                   	pop    %edx
40ef0b:	59                   	pop    %ecx
40ef0c:	59                   	pop    %ecx
40ef0d:	64 89 10             	mov    %edx,%fs:(%eax)
40ef10:	68 25 ef 40 00       	push   $0x40ef25
40ef15:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ef18:	e8 33 51 ff ff       	call   0x404050
40ef1d:	c3                   	ret
40ef1e:	e9 31 4b ff ff       	jmp    0x403a54
40ef23:	eb f0                	jmp    0x40ef15
40ef25:	59                   	pop    %ecx
40ef26:	5d                   	pop    %ebp
40ef27:	c3                   	ret
40ef28:	53                   	push   %ebx
40ef29:	8b d8                	mov    %eax,%ebx
40ef2b:	8b c3                	mov    %ebx,%eax
40ef2d:	e8 8e 02 00 00       	call   0x40f1c0
40ef32:	66 c7 03 01 00       	movw   $0x1,(%ebx)
40ef37:	5b                   	pop    %ebx
40ef38:	c3                   	ret
40ef39:	8d 40 00             	lea    0x0(%eax),%eax
40ef3c:	55                   	push   %ebp
40ef3d:	8b ec                	mov    %esp,%ebp
40ef3f:	53                   	push   %ebx
40ef40:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ef43:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40ef49:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40ef4d:	03 14 c1             	add    (%ecx,%eax,8),%edx
40ef50:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ef53:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40ef5a:	0f 9f c2             	setg   %dl
40ef5d:	48                   	dec    %eax
40ef5e:	84 d2                	test   %dl,%dl
40ef60:	74 04                	je     0x40ef66
40ef62:	85 c0                	test   %eax,%eax
40ef64:	7d e3                	jge    0x40ef49
40ef66:	8b c2                	mov    %edx,%eax
40ef68:	5b                   	pop    %ebx
40ef69:	5d                   	pop    %ebp
40ef6a:	c3                   	ret
40ef6b:	90                   	nop
40ef6c:	55                   	push   %ebp
40ef6d:	8b ec                	mov    %esp,%ebp
40ef6f:	53                   	push   %ebx
40ef70:	56                   	push   %esi
40ef71:	b2 01                	mov    $0x1,%dl
40ef73:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ef76:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40ef7d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ef80:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40ef87:	8b d9                	mov    %ecx,%ebx
40ef89:	8b 75 08             	mov    0x8(%ebp),%esi
40ef8c:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40ef93:	8b 75 08             	mov    0x8(%ebp),%esi
40ef96:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40ef9d:	7f 22                	jg     0x40efc1
40ef9f:	85 c0                	test   %eax,%eax
40efa1:	75 04                	jne    0x40efa7
40efa3:	33 d2                	xor    %edx,%edx
40efa5:	eb 1a                	jmp    0x40efc1
40efa7:	8b 55 08             	mov    0x8(%ebp),%edx
40efaa:	8b 55 08             	mov    0x8(%ebp),%edx
40efad:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40efb4:	8b 55 08             	mov    0x8(%ebp),%edx
40efb7:	52                   	push   %edx
40efb8:	48                   	dec    %eax
40efb9:	e8 ae ff ff ff       	call   0x40ef6c
40efbe:	59                   	pop    %ecx
40efbf:	8b d0                	mov    %eax,%edx
40efc1:	8b c2                	mov    %edx,%eax
40efc3:	5e                   	pop    %esi
40efc4:	5b                   	pop    %ebx
40efc5:	5d                   	pop    %ebp
40efc6:	c3                   	ret
40efc7:	90                   	nop
40efc8:	55                   	push   %ebp
40efc9:	8b ec                	mov    %esp,%ebp
40efcb:	81 c4 e8 fc ff ff    	add    $0xfffffce8,%esp
40efd1:	53                   	push   %ebx
40efd2:	56                   	push   %esi
40efd3:	57                   	push   %edi
40efd4:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40efda:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40efe0:	f6 40 01 20          	testb  $0x20,0x1(%eax)
40efe4:	75 0a                	jne    0x40eff0
40efe6:	b8 57 00 07 80       	mov    $0x80070057,%eax
40efeb:	e8 20 fe ff ff       	call   0x40ee10
40eff0:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40eff6:	66 8b 00             	mov    (%eax),%ax
40eff9:	8b d0                	mov    %eax,%edx
40effb:	66 81 e2 ff 0f       	and    $0xfff,%dx
40f000:	66 83 fa 0c          	cmp    $0xc,%dx
40f004:	0f 85 22 01 00 00    	jne    0x40f12c
40f00a:	8b 95 fc fc ff ff    	mov    -0x304(%ebp),%edx
40f010:	f6 c4 40             	test   $0x40,%ah
40f013:	74 13                	je     0x40f028
40f015:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f01b:	8b 40 08             	mov    0x8(%eax),%eax
40f01e:	8b 00                	mov    (%eax),%eax
40f020:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40f026:	eb 0f                	jmp    0x40f037
40f028:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f02e:	8b 40 08             	mov    0x8(%eax),%eax
40f031:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40f037:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f03d:	0f b7 00             	movzwl (%eax),%eax
40f040:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40f046:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f04c:	4b                   	dec    %ebx
40f04d:	85 db                	test   %ebx,%ebx
40f04f:	7c 6b                	jl     0x40f0bc
40f051:	43                   	inc    %ebx
40f052:	33 ff                	xor    %edi,%edi
40f054:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40f05a:	8b c6                	mov    %esi,%eax
40f05c:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40f062:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f068:	83 c0 04             	add    $0x4,%eax
40f06b:	50                   	push   %eax
40f06c:	8d 47 01             	lea    0x1(%edi),%eax
40f06f:	50                   	push   %eax
40f070:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f076:	50                   	push   %eax
40f077:	e8 e8 ee ff ff       	call   0x40df64
40f07c:	e8 8f fd ff ff       	call   0x40ee10
40f081:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40f087:	50                   	push   %eax
40f088:	8d 47 01             	lea    0x1(%edi),%eax
40f08b:	50                   	push   %eax
40f08c:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f092:	50                   	push   %eax
40f093:	e8 d4 ee ff ff       	call   0x40df6c
40f098:	e8 73 fd ff ff       	call   0x40ee10
40f09d:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f0a3:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40f0a9:	2b 50 04             	sub    0x4(%eax),%edx
40f0ac:	42                   	inc    %edx
40f0ad:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f0b3:	89 10                	mov    %edx,(%eax)
40f0b5:	47                   	inc    %edi
40f0b6:	83 c6 08             	add    $0x8,%esi
40f0b9:	4b                   	dec    %ebx
40f0ba:	75 9e                	jne    0x40f05a
40f0bc:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f0c2:	4b                   	dec    %ebx
40f0c3:	85 db                	test   %ebx,%ebx
40f0c5:	7c 1a                	jl     0x40f0e1
40f0c7:	43                   	inc    %ebx
40f0c8:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40f0ce:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40f0d4:	8b 08                	mov    (%eax),%ecx
40f0d6:	89 0a                	mov    %ecx,(%edx)
40f0d8:	83 c2 04             	add    $0x4,%edx
40f0db:	83 c0 08             	add    $0x8,%eax
40f0de:	4b                   	dec    %ebx
40f0df:	75 f3                	jne    0x40f0d4
40f0e1:	55                   	push   %ebp
40f0e2:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f0e8:	4b                   	dec    %ebx
40f0e9:	8b c3                	mov    %ebx,%eax
40f0eb:	e8 4c fe ff ff       	call   0x40ef3c
40f0f0:	59                   	pop    %ecx
40f0f1:	84 c0                	test   %al,%al
40f0f3:	74 2a                	je     0x40f11f
40f0f5:	8d 85 ec fc ff ff    	lea    -0x314(%ebp),%eax
40f0fb:	50                   	push   %eax
40f0fc:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40f102:	50                   	push   %eax
40f103:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f109:	50                   	push   %eax
40f10a:	e8 65 ee ff ff       	call   0x40df74
40f10f:	e8 fc fc ff ff       	call   0x40ee10
40f114:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40f11a:	e8 a1 00 00 00       	call   0x40f1c0
40f11f:	55                   	push   %ebp
40f120:	8b c3                	mov    %ebx,%eax
40f122:	e8 45 fe ff ff       	call   0x40ef6c
40f127:	59                   	pop    %ecx
40f128:	84 c0                	test   %al,%al
40f12a:	75 b5                	jne    0x40f0e1
40f12c:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f132:	50                   	push   %eax
40f133:	e8 c8 e9 ff ff       	call   0x40db00
40f138:	e8 d3 fc ff ff       	call   0x40ee10
40f13d:	5f                   	pop    %edi
40f13e:	5e                   	pop    %esi
40f13f:	5b                   	pop    %ebx
40f140:	8b e5                	mov    %ebp,%esp
40f142:	5d                   	pop    %ebp
40f143:	c3                   	ret
40f144:	53                   	push   %ebx
40f145:	56                   	push   %esi
40f146:	51                   	push   %ecx
40f147:	8b d8                	mov    %eax,%ebx
40f149:	66 8b 33             	mov    (%ebx),%si
40f14c:	66 83 fe 14          	cmp    $0x14,%si
40f150:	73 0d                	jae    0x40f15f
40f152:	53                   	push   %ebx
40f153:	e8 a8 e9 ff ff       	call   0x40db00
40f158:	e8 b3 fc ff ff       	call   0x40ee10
40f15d:	eb 5b                	jmp    0x40f1ba
40f15f:	66 81 fe 00 01       	cmp    $0x100,%si
40f164:	75 0f                	jne    0x40f175