40dbe8:	8b 55 0c             	mov    0xc(%ebp),%edx
40dbeb:	8b cf                	mov    %edi,%ecx
40dbed:	d1 e8                	shr    $1,%eax
40dbef:	50                   	push   %eax
40dbf0:	e8 61 c8 ff ff       	call   0x40a456
40dbf5:	2b 5d f8             	sub    -0x8(%ebp),%ebx
40dbf8:	8b 45 f4             	mov    -0xc(%ebp),%eax
40dbfb:	3b f0                	cmp    %eax,%esi
40dbfd:	8b 45 f0             	mov    -0x10(%ebp),%eax
40dc00:	72 95                	jb     0x40db97
40dc02:	5f                   	pop    %edi
40dc03:	5e                   	pop    %esi
40dc04:	5b                   	pop    %ebx
40dc05:	c9                   	leave
40dc06:	c2 08 00             	ret    $0x8
40dc09:	8b ff                	mov    %edi,%edi
40dc0b:	55                   	push   %ebp
40dc0c:	8b ec                	mov    %esp,%ebp
40dc0e:	83 ec 54             	sub    $0x54,%esp
40dc11:	a1 44 10 41 00       	mov    0x411044,%eax
40dc16:	33 c5                	xor    %ebp,%eax
40dc18:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dc1b:	53                   	push   %ebx
40dc1c:	56                   	push   %esi
40dc1d:	57                   	push   %edi
40dc1e:	89 55 d0             	mov    %edx,-0x30(%ebp)
40dc21:	8b f1                	mov    %ecx,%esi
40dc23:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40dc26:	8b 45 08             	mov    0x8(%ebp),%eax
40dc29:	89 45 cc             	mov    %eax,-0x34(%ebp)
40dc2c:	8b 45 0c             	mov    0xc(%ebp),%eax
40dc2f:	89 45 c8             	mov    %eax,-0x38(%ebp)
40dc32:	a1 2c 1a 40 00       	mov    0x401a2c,%eax
40dc37:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40dc3a:	66 a1 30 1a 40 00    	mov    0x401a30,%ax
40dc40:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
40dc44:	a1 48 15 40 00       	mov    0x401548,%eax
40dc49:	89 45 ec             	mov    %eax,-0x14(%ebp)
40dc4c:	66 a1 4c 15 40 00    	mov    0x40154c,%ax
40dc52:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
40dc56:	a1 4c 18 40 00       	mov    0x40184c,%eax
40dc5b:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dc5e:	66 a1 50 18 40 00    	mov    0x401850,%ax
40dc64:	6a 16                	push   $0x16
40dc66:	59                   	pop    %ecx
40dc67:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
40dc6b:	e8 e7 b8 ff ff       	call   0x409557
40dc70:	8b d8                	mov    %eax,%ebx
40dc72:	85 f6                	test   %esi,%esi
40dc74:	0f 84 35 01 00 00    	je     0x40ddaf
40dc7a:	85 db                	test   %ebx,%ebx
40dc7c:	0f 84 2d 01 00 00    	je     0x40ddaf
40dc82:	33 c0                	xor    %eax,%eax
40dc84:	8d 7d d4             	lea    -0x2c(%ebp),%edi
40dc87:	ab                   	stos   %eax,%es:(%edi)
40dc88:	8b cb                	mov    %ebx,%ecx
40dc8a:	ab                   	stos   %eax,%es:(%edi)
40dc8b:	ab                   	stos   %eax,%es:(%edi)
40dc8c:	ab                   	stos   %eax,%es:(%edi)
40dc8d:	e8 68 d1 ff ff       	call   0x40adfa
40dc92:	d1 e8                	shr    $1,%eax
40dc94:	bf 30 12 40 00       	mov    $0x401230,%edi
40dc99:	50                   	push   %eax
40dc9a:	8b d7                	mov    %edi,%edx
40dc9c:	8b cb                	mov    %ebx,%ecx
40dc9e:	e8 53 c7 ff ff       	call   0x40a3f6
40dca3:	8b 8e 04 02 00 00    	mov    0x204(%esi),%ecx
40dca9:	8b c1                	mov    %ecx,%eax
40dcab:	6a 10                	push   $0x10
40dcad:	25 f0 0f 00 00       	and    $0xff0,%eax
40dcb2:	5a                   	pop    %edx
40dcb3:	2b c2                	sub    %edx,%eax
40dcb5:	0f 84 ba 01 00 00    	je     0x40de75
40dcbb:	2b c2                	sub    %edx,%eax
40dcbd:	0f 84 73 01 00 00    	je     0x40de36
40dcc3:	2b c2                	sub    %edx,%eax
40dcc5:	0f 84 24 01 00 00    	je     0x40ddef
40dccb:	2b c2                	sub    %edx,%eax
40dccd:	0f 84 ed 00 00 00    	je     0x40ddc0
40dcd3:	83 e8 20             	sub    $0x20,%eax
40dcd6:	74 4b                	je     0x40dd23
40dcd8:	83 e8 20             	sub    $0x20,%eax
40dcdb:	74 18                	je     0x40dcf5
40dcdd:	8b cb                	mov    %ebx,%ecx
40dcdf:	e8 16 d1 ff ff       	call   0x40adfa
40dce4:	d1 e8                	shr    $1,%eax
40dce6:	8b d7                	mov    %edi,%edx
40dce8:	50                   	push   %eax
40dce9:	8b cb                	mov    %ebx,%ecx
40dceb:	e8 06 c7 ff ff       	call   0x40a3f6
40dcf0:	e9 86 00 00 00       	jmp    0x40dd7b
40dcf5:	8b be 8c 02 00 00    	mov    0x28c(%esi),%edi
40dcfb:	85 ff                	test   %edi,%edi
40dcfd:	0f 84 ac 00 00 00    	je     0x40ddaf
40dd03:	8b 86 90 02 00 00    	mov    0x290(%esi),%eax
40dd09:	85 c0                	test   %eax,%eax
40dd0b:	75 02                	jne    0x40dd0f
40dd0d:	8b c6                	mov    %esi,%eax
40dd0f:	53                   	push   %ebx
40dd10:	50                   	push   %eax
40dd11:	ff 75 cc             	push   -0x34(%ebp)
40dd14:	8b cf                	mov    %edi,%ecx
40dd16:	ff 75 d0             	push   -0x30(%ebp)
40dd19:	ff 15 20 23 41 00    	call   *0x412320
40dd1f:	ff d7                	call   *%edi
40dd21:	eb 58                	jmp    0x40dd7b
40dd23:	8b 55 d0             	mov    -0x30(%ebp),%edx
40dd26:	8d 45 b0             	lea    -0x50(%ebp),%eax
40dd29:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40dd2c:	50                   	push   %eax
40dd2d:	e8 87 b1 ff ff       	call   0x408eb9
40dd32:	8b f0                	mov    %eax,%esi
40dd34:	8d 7d d4             	lea    -0x2c(%ebp),%edi
40dd37:	68 fe 00 00 00       	push   $0xfe
40dd3c:	53                   	push   %ebx
40dd3d:	6a 00                	push   $0x0
40dd3f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dd40:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40dd43:	50                   	push   %eax
40dd44:	68 00 00 00 80       	push   $0x80000000
40dd49:	68 00 04 00 00       	push   $0x400
40dd4e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dd4f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dd50:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dd51:	ff 15 70 20 41 00    	call   *0x412070
40dd57:	85 c0                	test   %eax,%eax
40dd59:	75 1d                	jne    0x40dd78
40dd5b:	e8 94 ba ff ff       	call   0x4097f4
40dd60:	8b cb                	mov    %ebx,%ecx
40dd62:	e8 93 d0 ff ff       	call   0x40adfa
40dd67:	d1 e8                	shr    $1,%eax
40dd69:	50                   	push   %eax
40dd6a:	e8 7d b9 ff ff       	call   0x4096ec
40dd6f:	8b d0                	mov    %eax,%edx
40dd71:	8b cb                	mov    %ebx,%ecx
40dd73:	e8 7e c6 ff ff       	call   0x40a3f6
40dd78:	8b 75 c4             	mov    -0x3c(%ebp),%esi
40dd7b:	53                   	push   %ebx
40dd7c:	ff 15 d4 20 41 00    	call   *0x4120d4
40dd82:	85 c0                	test   %eax,%eax
40dd84:	75 29                	jne    0x40ddaf
40dd86:	f7 86 04 02 00 00 00 	testl  $0x100000,0x204(%esi)
40dd8d:	00 10 00
40dd90:	74 1d                	je     0x40ddaf
40dd92:	8b cb                	mov    %ebx,%ecx
40dd94:	e8 61 d0 ff ff       	call   0x40adfa
40dd99:	d1 e8                	shr    $1,%eax
40dd9b:	b9 8d 13 00 00       	mov    $0x138d,%ecx
40dda0:	50                   	push   %eax
40dda1:	e8 ab bc ff ff       	call   0x409a51
40dda6:	8b d0                	mov    %eax,%edx
40dda8:	8b cb                	mov    %ebx,%ecx
40ddaa:	e8 47 c6 ff ff       	call   0x40a3f6
40ddaf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ddb2:	5f                   	pop    %edi
40ddb3:	5e                   	pop    %esi
40ddb4:	33 cd                	xor    %ebp,%ecx
40ddb6:	5b                   	pop    %ebx
40ddb7:	e8 14 0f 00 00       	call   0x40ecd0
40ddbc:	c9                   	leave
40ddbd:	c2 08 00             	ret    $0x8
40ddc0:	8d be 08 02 00 00    	lea    0x208(%esi),%edi
40ddc6:	f7 c1 00 20 00 00    	test   $0x2000,%ecx
40ddcc:	75 03                	jne    0x40ddd1
40ddce:	8d 7d f4             	lea    -0xc(%ebp),%edi
40ddd1:	8b 55 d0             	mov    -0x30(%ebp),%edx
40ddd4:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
40ddda:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40dddd:	0f 85 b1 00 00 00    	jne    0x40de94
40dde3:	e8 b0 b0 ff ff       	call   0x408e98
40dde8:	51                   	push   %ecx
40dde9:	51                   	push   %ecx
40ddea:	dd 1c 24             	fstpl  (%esp)
40dded:	eb 2d                	jmp    0x40de1c
40ddef:	8d be 08 02 00 00    	lea    0x208(%esi),%edi
40ddf5:	f7 c1 00 20 00 00    	test   $0x2000,%ecx
40ddfb:	75 03                	jne    0x40de00
40ddfd:	8d 7d f4             	lea    -0xc(%ebp),%edi
40de00:	8b 55 d0             	mov    -0x30(%ebp),%edx
40de03:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
40de09:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40de0c:	0f 85 82 00 00 00    	jne    0x40de94
40de12:	e8 60 b0 ff ff       	call   0x408e77
40de17:	51                   	push   %ecx
40de18:	51                   	push   %ecx
40de19:	dd 1c 24             	fstpl  (%esp)
40de1c:	57                   	push   %edi
40de1d:	8b cb                	mov    %ebx,%ecx
40de1f:	e8 d6 cf ff ff       	call   0x40adfa
40de24:	d1 e8                	shr    $1,%eax
40de26:	48                   	dec    %eax
40de27:	50                   	push   %eax
40de28:	53                   	push   %ebx
40de29:	e8 f6 b5 ff ff       	call   0x409424
40de2e:	83 c4 14             	add    $0x14,%esp
40de31:	e9 45 ff ff ff       	jmp    0x40dd7b
40de36:	8d be 08 02 00 00    	lea    0x208(%esi),%edi
40de3c:	f7 c1 00 20 00 00    	test   $0x2000,%ecx
40de42:	75 03                	jne    0x40de47
40de44:	8d 7d ec             	lea    -0x14(%ebp),%edi
40de47:	8b 55 d0             	mov    -0x30(%ebp),%edx
40de4a:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
40de50:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40de53:	75 3f                	jne    0x40de94
40de55:	e8 f7 af ff ff       	call   0x408e51
40de5a:	50                   	push   %eax
40de5b:	57                   	push   %edi
40de5c:	8b cb                	mov    %ebx,%ecx
40de5e:	e8 97 cf ff ff       	call   0x40adfa
40de63:	d1 e8                	shr    $1,%eax
40de65:	48                   	dec    %eax
40de66:	50                   	push   %eax
40de67:	53                   	push   %ebx
40de68:	e8 b7 b5 ff ff       	call   0x409424
40de6d:	83 c4 10             	add    $0x10,%esp
40de70:	e9 06 ff ff ff       	jmp    0x40dd7b
40de75:	8d be 08 02 00 00    	lea    0x208(%esi),%edi
40de7b:	f7 c1 00 20 00 00    	test   $0x2000,%ecx
40de81:	75 03                	jne    0x40de86
40de83:	8d 7d e4             	lea    -0x1c(%ebp),%edi
40de86:	8b 55 d0             	mov    -0x30(%ebp),%edx
40de89:	f7 c1 00 40 00 00    	test   $0x4000,%ecx
40de8f:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40de92:	74 23                	je     0x40deb7
40de94:	e8 52 af ff ff       	call   0x408deb
40de99:	85 c0                	test   %eax,%eax
40de9b:	0f 84 0e ff ff ff    	je     0x40ddaf
40dea1:	ff 75 c8             	push   -0x38(%ebp)
40dea4:	8b 96 00 02 00 00    	mov    0x200(%esi),%edx
40deaa:	8b c8                	mov    %eax,%ecx
40deac:	57                   	push   %edi
40dead:	e8 43 fc ff ff       	call   0x40daf5
40deb2:	e9 c4 fe ff ff       	jmp    0x40dd7b
40deb7:	e8 53 af ff ff       	call   0x408e0f
40debc:	85 c0                	test   %eax,%eax
40debe:	0f 84 eb fe ff ff    	je     0x40ddaf
40dec4:	eb 94                	jmp    0x40de5a
40dec6:	8b ff                	mov    %edi,%edi
40dec8:	55                   	push   %ebp
40dec9:	8b ec                	mov    %esp,%ebp
40decb:	83 ec 18             	sub    $0x18,%esp
40dece:	56                   	push   %esi
40decf:	8b f2                	mov    %edx,%esi
40ded1:	8b c1                	mov    %ecx,%eax
40ded3:	89 45 e8             	mov    %eax,-0x18(%ebp)
40ded6:	85 f6                	test   %esi,%esi
40ded8:	0f 84 78 01 00 00    	je     0x40e056
40dede:	53                   	push   %ebx
40dedf:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40dee2:	85 db                	test   %ebx,%ebx
40dee4:	0f 84 6b 01 00 00    	je     0x40e055
40deea:	85 c0                	test   %eax,%eax
40deec:	0f 84 63 01 00 00    	je     0x40e055
40def2:	8b ce                	mov    %esi,%ecx
40def4:	e8 c4 c0 ff ff       	call   0x409fbd
40def9:	89 45 f8             	mov    %eax,-0x8(%ebp)
40defc:	3b c3                	cmp    %ebx,%eax
40defe:	73 05                	jae    0x40df05
40df00:	8b c3                	mov    %ebx,%eax
40df02:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40df05:	6a 01                	push   $0x1
40df07:	83 c0 05             	add    $0x5,%eax
40df0a:	33 d2                	xor    %edx,%edx
40df0c:	50                   	push   %eax
40df0d:	6a 15                	push   $0x15
40df0f:	59                   	pop    %ecx
40df10:	e8 8e b6 ff ff       	call   0x4095a3
40df15:	89 45 f4             	mov    %eax,-0xc(%ebp)
40df18:	85 c0                	test   %eax,%eax
40df1a:	75 32                	jne    0x40df4e
40df1c:	ff 15 48 20 41 00    	call   *0x412048
40df22:	85 c0                	test   %eax,%eax
40df24:	75 08                	jne    0x40df2e
40df26:	6a 08                	push   $0x8
40df28:	ff 15 74 20 41 00    	call   *0x412074
40df2e:	e8 c1 b8 ff ff       	call   0x4097f4
40df33:	8b ce                	mov    %esi,%ecx
40df35:	e8 c0 ce ff ff       	call   0x40adfa
40df3a:	d1 e8                	shr    $1,%eax
40df3c:	ba 30 12 40 00       	mov    $0x401230,%edx
40df41:	50                   	push   %eax
40df42:	8b ce                	mov    %esi,%ecx
40df44:	e8 ad c4 ff ff       	call   0x40a3f6
40df49:	e9 07 01 00 00       	jmp    0x40e055
40df4e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40df52:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40df56:	74 0b                	je     0x40df63
40df58:	8b 4d 08             	mov    0x8(%ebp),%ecx
40df5b:	e8 5d c0 ff ff       	call   0x409fbd
40df60:	89 45 fc             	mov    %eax,-0x4(%ebp)
40df63:	57                   	push   %edi
40df64:	33 ff                	xor    %edi,%edi
40df66:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40df6a:	0f 84 a9 00 00 00    	je     0x40e019
40df70:	8b 55 08             	mov    0x8(%ebp),%edx
40df73:	8b ce                	mov    %esi,%ecx
40df75:	57                   	push   %edi
40df76:	6a 01                	push   $0x1
40df78:	e8 c3 bf ff ff       	call   0x409f40
40df7d:	83 f8 ff             	cmp    $0xffffffff,%eax
40df80:	0f 84 93 00 00 00    	je     0x40e019
40df86:	8d 04 46             	lea    (%esi,%eax,2),%eax
40df89:	89 45 f0             	mov    %eax,-0x10(%ebp)
40df8c:	85 c0                	test   %eax,%eax
40df8e:	0f 84 85 00 00 00    	je     0x40e019
40df94:	8b ce                	mov    %esi,%ecx
40df96:	e8 22 c0 ff ff       	call   0x409fbd
40df9b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40df9e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40dfa1:	e8 17 c0 ff ff       	call   0x409fbd
40dfa6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40dfa9:	2b c8                	sub    %eax,%ecx
40dfab:	03 4d fc             	add    -0x4(%ebp),%ecx
40dfae:	3b cb                	cmp    %ebx,%ecx
40dfb0:	73 04                	jae    0x40dfb6
40dfb2:	8b f9                	mov    %ecx,%edi
40dfb4:	eb b0                	jmp    0x40df66
40dfb6:	85 ff                	test   %edi,%edi
40dfb8:	74 04                	je     0x40dfbe
40dfba:	3b cb                	cmp    %ebx,%ecx
40dfbc:	75 02                	jne    0x40dfc0
40dfbe:	8b fb                	mov    %ebx,%edi
40dfc0:	8b 45 f8             	mov    -0x8(%ebp),%eax
40dfc3:	8d 4f 01             	lea    0x1(%edi),%ecx
40dfc6:	3b c1                	cmp    %ecx,%eax
40dfc8:	77 02                	ja     0x40dfcc
40dfca:	8b c8                	mov    %eax,%ecx
40dfcc:	51                   	push   %ecx
40dfcd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40dfd0:	8b d6                	mov    %esi,%edx
40dfd2:	e8 1f c4 ff ff       	call   0x40a3f6
40dfd7:	8b d3                	mov    %ebx,%edx
40dfd9:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40dfdc:	6a 00                	push   $0x0
40dfde:	8b cb                	mov    %ebx,%ecx
40dfe0:	e8 fa c0 ff ff       	call   0x40a0df
40dfe5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40dfe8:	8b d3                	mov    %ebx,%edx
40dfea:	e8 fe c4 ff ff       	call   0x40a4ed
40dfef:	8b cb                	mov    %ebx,%ecx
40dff1:	e8 04 ce ff ff       	call   0x40adfa
40dff6:	d1 e8                	shr    $1,%eax
40dff8:	8b d6                	mov    %esi,%edx
40dffa:	50                   	push   %eax
40dffb:	8b cb                	mov    %ebx,%ecx
40dffd:	e8 f4 c3 ff ff       	call   0x40a3f6
40e002:	8b ce                	mov    %esi,%ecx
40e004:	e8 b4 bf ff ff       	call   0x409fbd
40e009:	8b ce                	mov    %esi,%ecx
40e00b:	3b c7                	cmp    %edi,%eax