40bdbb:	6a 01                	push   $0x1
40bdbd:	8d 55 d0             	lea    -0x30(%ebp),%edx
40bdc0:	52                   	push   %edx
40bdc1:	50                   	push   %eax
40bdc2:	ff 51 18             	call   *0x18(%ecx)
40bdc5:	50                   	push   %eax
40bdc6:	e8 c9 df ff ff       	call   0x409d94
40bdcb:	8b 45 d8             	mov    -0x28(%ebp),%eax
40bdce:	8b 08                	mov    (%eax),%ecx
40bdd0:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bdd4:	50                   	push   %eax
40bdd5:	ff 51 08             	call   *0x8(%ecx)
40bdd8:	e9 9a fe ff ff       	jmp    0x40bc77
40bddd:	8b 45 d8             	mov    -0x28(%ebp),%eax
40bde0:	8b 08                	mov    (%eax),%ecx
40bde2:	50                   	push   %eax
40bde3:	ff 51 08             	call   *0x8(%ecx)
40bde6:	6a 00                	push   $0x0
40bde8:	6a 00                	push   $0x0
40bdea:	e8 68 b7 00 00       	call   0x417557
40bdef:	77 bc                	ja     0x40bdad
40bdf1:	40                   	inc    %eax
40bdf2:	00 77 bc             	add    %dh,-0x44(%edi)
40bdf5:	40                   	inc    %eax
40bdf6:	00 6b bc             	add    %ch,-0x44(%ebx)
40bdf9:	40                   	inc    %eax
40bdfa:	00 30                	add    %dh,(%eax)
40bdfc:	bd 40 00 e1 bc       	mov    $0xbce10040,%ebp
40be01:	40                   	inc    %eax
40be02:	00 f1                	add    %dh,%cl
40be04:	bc 40 00 d2 bc       	mov    $0xbcd20040,%esp
40be09:	40                   	inc    %eax
40be0a:	00 f1                	add    %dh,%cl
40be0c:	bc 40 00 05 bd       	mov    $0xbd050040,%esp
40be11:	40                   	inc    %eax
40be12:	00 3f                	add    %bh,(%edi)
40be14:	bd 40 00 30 bd       	mov    $0xbd300040,%ebp
40be19:	40                   	inc    %eax
40be1a:	00 6b bc             	add    %ch,-0x44(%ebx)
40be1d:	40                   	inc    %eax
40be1e:	00 77 bc             	add    %dh,-0x44(%edi)
40be21:	40                   	inc    %eax
40be22:	00 3f                	add    %bh,(%edi)
40be24:	bd 40 00 77 bc       	mov    $0xbc770040,%ebp
40be29:	40                   	inc    %eax
40be2a:	00 77 bc             	add    %dh,-0x44(%edi)
40be2d:	40                   	inc    %eax
40be2e:	00 9c bc 40 00 9c bc 	add    %bl,-0x4363ffc0(%esp,%edi,4)
40be35:	40                   	inc    %eax
40be36:	00 6b bc             	add    %ch,-0x44(%ebx)
40be39:	40                   	inc    %eax
40be3a:	00 a8 bc 40 00 b4    	add    %ch,-0x4bffbf44(%eax)
40be40:	bc 40 00 c3 bc       	mov    $0xbcc30040,%esp
40be45:	40                   	inc    %eax
40be46:	00 b8 fd 30 48 00    	add    %bh,0x4830fd(%eax)
40be4c:	e8 2b be 00 00       	call   0x417c7c
40be51:	83 ec 28             	sub    $0x28,%esp
40be54:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
40be59:	53                   	push   %ebx
40be5a:	56                   	push   %esi
40be5b:	8b 75 0c             	mov    0xc(%ebp),%esi
40be5e:	33 db                	xor    %ebx,%ebx
40be60:	66 39 1e             	cmp    %bx,(%esi)
40be63:	57                   	push   %edi
40be64:	89 45 ec             	mov    %eax,-0x14(%ebp)
40be67:	89 65 f0             	mov    %esp,-0x10(%ebp)
40be6a:	74 07                	je     0x40be73
40be6c:	56                   	push   %esi
40be6d:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40be73:	8b 7d 08             	mov    0x8(%ebp),%edi
40be76:	56                   	push   %esi
40be77:	8b cf                	mov    %edi,%ecx
40be79:	e8 30 f5 ff ff       	call   0x40b3ae
40be7e:	66 8b 06             	mov    (%esi),%ax
40be81:	f6 c4 60             	test   $0x60,%ah
40be84:	0f 85 c5 00 00 00    	jne    0x40bf4f
40be8a:	0f b7 c0             	movzwl %ax,%eax
40be8d:	83 f8 15             	cmp    $0x15,%eax
40be90:	0f 87 b9 00 00 00    	ja     0x40bf4f
40be96:	ff 24 85 6e c0 40 00 	jmp    *0x40c06e(,%eax,4)
40be9d:	83 c6 08             	add    $0x8,%esi
40bea0:	56                   	push   %esi
40bea1:	8b cf                	mov    %edi,%ecx
40bea3:	e8 06 f5 ff ff       	call   0x40b3ae
40bea8:	e9 a4 00 00 00       	jmp    0x40bf51
40bead:	83 c6 08             	add    $0x8,%esi
40beb0:	56                   	push   %esi
40beb1:	8b cf                	mov    %edi,%ecx
40beb3:	e8 27 f4 ff ff       	call   0x40b2df
40beb8:	e9 94 00 00 00       	jmp    0x40bf51
40bebd:	83 c6 08             	add    $0x8,%esi
40bec0:	56                   	push   %esi
40bec1:	8b cf                	mov    %edi,%ecx
40bec3:	e8 ef f5 ff ff       	call   0x40b4b7
40bec8:	e9 84 00 00 00       	jmp    0x40bf51
40becd:	83 c6 08             	add    $0x8,%esi
40bed0:	56                   	push   %esi
40bed1:	8b cf                	mov    %edi,%ecx
40bed3:	e8 19 f5 ff ff       	call   0x40b3f1
40bed8:	eb 77                	jmp    0x40bf51
40beda:	83 c6 08             	add    $0x8,%esi
40bedd:	56                   	push   %esi
40bede:	8b cf                	mov    %edi,%ecx
40bee0:	e8 39 f4 ff ff       	call   0x40b31e
40bee5:	eb 6a                	jmp    0x40bf51
40bee7:	83 c6 08             	add    $0x8,%esi
40beea:	56                   	push   %esi
40beeb:	8b cf                	mov    %edi,%ecx
40beed:	e8 74 f4 ff ff       	call   0x40b366
40bef2:	eb 5d                	jmp    0x40bf51
40bef4:	8d 46 08             	lea    0x8(%esi),%eax
40bef7:	50                   	push   %eax
40bef8:	8b cf                	mov    %edi,%ecx
40befa:	e8 f2 f4 ff ff       	call   0x40b3f1
40beff:	83 c6 0c             	add    $0xc,%esi
40bf02:	eb bc                	jmp    0x40bec0
40bf04:	83 c6 08             	add    $0x8,%esi
40bf07:	56                   	push   %esi
40bf08:	8b cf                	mov    %edi,%ecx
40bf0a:	e8 24 f5 ff ff       	call   0x40b433
40bf0f:	eb 40                	jmp    0x40bf51
40bf11:	83 c6 08             	add    $0x8,%esi
40bf14:	56                   	push   %esi
40bf15:	8b cf                	mov    %edi,%ecx
40bf17:	e8 59 f5 ff ff       	call   0x40b475
40bf1c:	eb 33                	jmp    0x40bf51
40bf1e:	8d 45 08             	lea    0x8(%ebp),%eax
40bf21:	50                   	push   %eax
40bf22:	8b cf                	mov    %edi,%ecx
40bf24:	e8 c8 f4 ff ff       	call   0x40b3f1
40bf29:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40bf2c:	76 3c                	jbe    0x40bf6a
40bf2e:	ff 75 08             	push   0x8(%ebp)
40bf31:	53                   	push   %ebx
40bf32:	ff 15 00 05 4b 00    	call   *0x4b0500
40bf38:	3b c3                	cmp    %ebx,%eax
40bf3a:	89 46 08             	mov    %eax,0x8(%esi)
40bf3d:	75 05                	jne    0x40bf44
40bf3f:	e8 d3 94 02 00       	call   0x435417
40bf44:	ff 75 08             	push   0x8(%ebp)
40bf47:	8b cf                	mov    %edi,%ecx
40bf49:	50                   	push   %eax
40bf4a:	e8 da 47 04 00       	call   0x450729
40bf4f:	8b c7                	mov    %edi,%eax
40bf51:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40bf54:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40bf5b:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40bf5e:	e8 7b bc 00 00       	call   0x417bde
40bf63:	5f                   	pop    %edi
40bf64:	5e                   	pop    %esi
40bf65:	5b                   	pop    %ebx
40bf66:	c9                   	leave
40bf67:	c2 08 00             	ret    $0x8
40bf6a:	89 5e 08             	mov    %ebx,0x8(%esi)
40bf6d:	eb e0                	jmp    0x40bf4f
40bf6f:	57                   	push   %edi
40bf70:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40bf73:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40bf76:	e8 01 be 02 00       	call   0x437d7c
40bf7b:	8d 45 dc             	lea    -0x24(%ebp),%eax
40bf7e:	50                   	push   %eax
40bf7f:	8b cf                	mov    %edi,%ecx
40bf81:	e8 6b f4 ff ff       	call   0x40b3f1
40bf86:	8d 45 e0             	lea    -0x20(%ebp),%eax
40bf89:	50                   	push   %eax
40bf8a:	8b cf                	mov    %edi,%ecx
40bf8c:	e8 1d f4 ff ff       	call   0x40b3ae
40bf91:	8d 45 e2             	lea    -0x1e(%ebp),%eax
40bf94:	50                   	push   %eax
40bf95:	8b cf                	mov    %edi,%ecx
40bf97:	e8 12 f4 ff ff       	call   0x40b3ae
40bf9c:	6a 08                	push   $0x8
40bf9e:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40bfa1:	50                   	push   %eax
40bfa2:	8b cf                	mov    %edi,%ecx
40bfa4:	e8 80 47 04 00       	call   0x450729
40bfa9:	66 83 3e 0d          	cmpw   $0xd,(%esi)
40bfad:	b8 1c 5d 49 00       	mov    $0x495d1c,%eax
40bfb2:	74 05                	je     0x40bfb9
40bfb4:	b8 0c 4e 49 00       	mov    $0x494e0c,%eax
40bfb9:	8d 7e 08             	lea    0x8(%esi),%edi
40bfbc:	57                   	push   %edi
40bfbd:	50                   	push   %eax
40bfbe:	6a 17                	push   $0x17
40bfc0:	53                   	push   %ebx
40bfc1:	8b 1d e8 0a 4b 00    	mov    0x4b0ae8,%ebx
40bfc7:	8d 45 dc             	lea    -0x24(%ebp),%eax
40bfca:	50                   	push   %eax
40bfcb:	ff d3                	call   *%ebx
40bfcd:	3d 57 00 07 80       	cmp    $0x80070057,%eax
40bfd2:	75 1c                	jne    0x40bff0
40bfd4:	66 83 3e 0d          	cmpw   $0xd,(%esi)
40bfd8:	b8 1c 5d 49 00       	mov    $0x495d1c,%eax
40bfdd:	74 05                	je     0x40bfe4
40bfdf:	b8 0c 4e 49 00       	mov    $0x494e0c,%eax
40bfe4:	57                   	push   %edi
40bfe5:	50                   	push   %eax
40bfe6:	6a 07                	push   $0x7
40bfe8:	6a 00                	push   $0x0
40bfea:	8d 45 dc             	lea    -0x24(%ebp),%eax
40bfed:	50                   	push   %eax
40bfee:	ff d3                	call   *%ebx
40bff0:	50                   	push   %eax
40bff1:	e8 9e dd ff ff       	call   0x409d94
40bff6:	8b 07                	mov    (%edi),%eax
40bff8:	8b 08                	mov    (%eax),%ecx
40bffa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bffe:	8d 55 d8             	lea    -0x28(%ebp),%edx
40c001:	52                   	push   %edx
40c002:	68 bc 61 49 00       	push   $0x4961bc
40c007:	50                   	push   %eax
40c008:	ff 11                	call   *(%ecx)
40c00a:	85 c0                	test   %eax,%eax
40c00c:	7d 10                	jge    0x40c01e
40c00e:	8b 3f                	mov    (%edi),%edi
40c010:	8b 07                	mov    (%edi),%eax
40c012:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40c015:	51                   	push   %ecx
40c016:	68 1c 64 49 00       	push   $0x49641c
40c01b:	57                   	push   %edi
40c01c:	ff 10                	call   *(%eax)
40c01e:	50                   	push   %eax
40c01f:	e8 70 dd ff ff       	call   0x409d94
40c024:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c027:	8b 08                	mov    (%eax),%ecx
40c029:	8d 55 d0             	lea    -0x30(%ebp),%edx
40c02c:	52                   	push   %edx
40c02d:	50                   	push   %eax
40c02e:	ff 51 14             	call   *0x14(%ecx)
40c031:	50                   	push   %eax
40c032:	e8 5d dd ff ff       	call   0x409d94
40c037:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c03a:	8b 08                	mov    (%eax),%ecx
40c03c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c040:	50                   	push   %eax
40c041:	ff 51 08             	call   *0x8(%ecx)
40c044:	8b 45 08             	mov    0x8(%ebp),%eax
40c047:	e9 05 ff ff ff       	jmp    0x40bf51
40c04c:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c04f:	85 c0                	test   %eax,%eax
40c051:	74 06                	je     0x40c059
40c053:	8b 08                	mov    (%eax),%ecx
40c055:	50                   	push   %eax
40c056:	ff 51 08             	call   *0x8(%ecx)
40c059:	8b 45 0c             	mov    0xc(%ebp),%eax
40c05c:	8b 40 08             	mov    0x8(%eax),%eax
40c05f:	8b 08                	mov    (%eax),%ecx
40c061:	50                   	push   %eax
40c062:	ff 51 08             	call   *0x8(%ecx)
40c065:	6a 00                	push   $0x0
40c067:	6a 00                	push   $0x0
40c069:	e8 e9 b4 00 00       	call   0x417557
40c06e:	4f                   	dec    %edi
40c06f:	bf 40 00 4f bf       	mov    $0xbf4f0040,%edi
40c074:	40                   	inc    %eax
40c075:	00 9d be 40 00 bd    	add    %bl,-0x42ffbf42(%ebp)
40c07b:	be 40 00 04 bf       	mov    $0xbf040040,%esi
40c080:	40                   	inc    %eax
40c081:	00 11                	add    %dl,(%ecx)
40c083:	bf 40 00 f4 be       	mov    $0xbef40040,%edi
40c088:	40                   	inc    %eax
40c089:	00 11                	add    %dl,(%ecx)
40c08b:	bf 40 00 1e bf       	mov    $0xbf1e0040,%edi
40c090:	40                   	inc    %eax
40c091:	00 6f bf             	add    %ch,-0x41(%edi)
40c094:	40                   	inc    %eax
40c095:	00 bd be 40 00 9d    	add    %bh,-0x62ffbf42(%ebp)
40c09b:	be 40 00 4f bf       	mov    $0xbf4f0040,%esi
40c0a0:	40                   	inc    %eax
40c0a1:	00 6f bf             	add    %ch,-0x41(%edi)
40c0a4:	40                   	inc    %eax
40c0a5:	00 4f bf             	add    %cl,-0x41(%edi)
40c0a8:	40                   	inc    %eax
40c0a9:	00 4f bf             	add    %cl,-0x41(%edi)
40c0ac:	40                   	inc    %eax
40c0ad:	00 ad be 40 00 ad    	add    %ch,-0x52ffbf42(%ebp)
40c0b3:	be 40 00 9d be       	mov    $0xbe9d0040,%esi
40c0b8:	40                   	inc    %eax
40c0b9:	00 cd                	add    %cl,%ch
40c0bb:	be 40 00 da be       	mov    $0xbeda0040,%esi
40c0c0:	40                   	inc    %eax
40c0c1:	00 e7                	add    %ah,%bh
40c0c3:	be 40 00 55 8b       	mov    $0x8b550040,%esi
40c0c8:	ec                   	in     (%dx),%al
40c0c9:	56                   	push   %esi
40c0ca:	8b 75 10             	mov    0x10(%ebp),%esi
40c0cd:	57                   	push   %edi
40c0ce:	8b 7d 08             	mov    0x8(%ebp),%edi
40c0d1:	8b 47 18             	mov    0x18(%edi),%eax
40c0d4:	f7 d0                	not    %eax
40c0d6:	a8 01                	test   $0x1,%al
40c0d8:	74 23                	je     0x40c0fd
40c0da:	85 f6                	test   %esi,%esi
40c0dc:	74 33                	je     0x40c111
40c0de:	83 ec 10             	sub    $0x10,%esp
40c0e1:	8b cc                	mov    %esp,%ecx
40c0e3:	89 65 10             	mov    %esp,0x10(%ebp)
40c0e6:	ff 75 0c             	push   0xc(%ebp)
40c0e9:	e8 e0 e7 ff ff       	call   0x40a8ce
40c0ee:	57                   	push   %edi
40c0ef:	e8 35 fb ff ff       	call   0x40bc29
40c0f4:	83 45 0c 10          	addl   $0x10,0xc(%ebp)
40c0f8:	4e                   	dec    %esi
40c0f9:	75 e3                	jne    0x40c0de
40c0fb:	eb 14                	jmp    0x40c111
40c0fd:	85 f6                	test   %esi,%esi
40c0ff:	74 10                	je     0x40c111
40c101:	ff 75 0c             	push   0xc(%ebp)
40c104:	57                   	push   %edi
40c105:	e8 3d fd ff ff       	call   0x40be47
40c10a:	83 45 0c 10          	addl   $0x10,0xc(%ebp)
40c10e:	4e                   	dec    %esi
40c10f:	75 f0                	jne    0x40c101
40c111:	5f                   	pop    %edi
40c112:	5e                   	pop    %esi
40c113:	5d                   	pop    %ebp
40c114:	c2 0c 00             	ret    $0xc
40c117:	56                   	push   %esi
40c118:	ff 74 24 0c          	push   0xc(%esp)
40c11c:	8b f1                	mov    %ecx,%esi
40c11e:	ff 74 24 0c          	push   0xc(%esp)
40c122:	e8 a0 f7 ff ff       	call   0x40b8c7
40c127:	83 66 08 00          	andl   $0x0,0x8(%esi)
40c12b:	8b c6                	mov    %esi,%eax
40c12d:	5e                   	pop    %esi
40c12e:	c2 08 00             	ret    $0x8
40c131:	b8 0f 31 48 00       	mov    $0x48310f,%eax
40c136:	e8 41 bb 00 00       	call   0x417c7c
40c13b:	51                   	push   %ecx
40c13c:	51                   	push   %ecx
40c13d:	53                   	push   %ebx
40c13e:	56                   	push   %esi
40c13f:	57                   	push   %edi
40c140:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c146:	8b 7d 08             	mov    0x8(%ebp),%edi
40c149:	ff 75 0c             	push   0xc(%ebp)
40c14c:	8b cf                	mov    %edi,%ecx
40c14e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c151:	e8 42 9c 04 00       	call   0x455d98
40c156:	8b 4f 04             	mov    0x4(%edi),%ecx
40c159:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c15c:	50                   	push   %eax
40c15d:	ff 75 0c             	push   0xc(%ebp)
40c160:	e8 9b 49 03 00       	call   0x440b00
40c165:	33 db                	xor    %ebx,%ebx
40c167:	39 1f                	cmp    %ebx,(%edi)
40c169:	0f 84 8d 00 00 00    	je     0x40c1fc
40c16f:	ff 75 f0             	push   -0x10(%ebp)
40c172:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c178:	8b f0                	mov    %eax,%esi