40c998:	33 c0                	xor    %eax,%eax
40c99a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c99d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c9a4:	5f                   	pop    %edi
40c9a5:	5e                   	pop    %esi
40c9a6:	5b                   	pop    %ebx
40c9a7:	8b e5                	mov    %ebp,%esp
40c9a9:	5d                   	pop    %ebp
40c9aa:	c2 04 00             	ret    $0x4
40c9ad:	90                   	nop
40c9ae:	90                   	nop
40c9af:	90                   	nop
40c9b0:	a1 b4 8a 43 00       	mov    0x438ab4,%eax
40c9b5:	56                   	push   %esi
40c9b6:	85 c0                	test   %eax,%eax
40c9b8:	74 02                	je     0x40c9bc
40c9ba:	ff d0                	call   *%eax
40c9bc:	e8 7f 18 00 00       	call   0x40e240
40c9c1:	8b f0                	mov    %eax,%esi
40c9c3:	85 f6                	test   %esi,%esi
40c9c5:	75 0a                	jne    0x40c9d1
40c9c7:	6a 10                	push   $0x10
40c9c9:	e8 c2 f9 ff ff       	call   0x40c390
40c9ce:	83 c4 04             	add    $0x4,%esp
40c9d1:	56                   	push   %esi
40c9d2:	e8 e9 18 00 00       	call   0x40e2c0
40c9d7:	8b 44 24 0c          	mov    0xc(%esp),%eax
40c9db:	83 c4 04             	add    $0x4,%esp
40c9de:	50                   	push   %eax
40c9df:	ff 15 1c 96 43 00    	call   *0x43961c
40c9e5:	5e                   	pop    %esi
40c9e6:	c3                   	ret
40c9e7:	90                   	nop
40c9e8:	90                   	nop
40c9e9:	90                   	nop
40c9ea:	90                   	nop
40c9eb:	90                   	nop
40c9ec:	90                   	nop
40c9ed:	90                   	nop
40c9ee:	90                   	nop
40c9ef:	90                   	nop
40c9f0:	53                   	push   %ebx
40c9f1:	56                   	push   %esi
40c9f2:	8b 74 24 0c          	mov    0xc(%esp),%esi
40c9f6:	57                   	push   %edi
40c9f7:	85 f6                	test   %esi,%esi
40c9f9:	74 3f                	je     0x40ca3a
40c9fb:	8b fe                	mov    %esi,%edi
40c9fd:	83 c9 ff             	or     $0xffffffff,%ecx
40ca00:	33 c0                	xor    %eax,%eax
40ca02:	f2 ae                	repnz scas %es:(%edi),%al
40ca04:	f7 d1                	not    %ecx
40ca06:	51                   	push   %ecx
40ca07:	e8 b4 fa ff ff       	call   0x40c4c0
40ca0c:	8b d0                	mov    %eax,%edx
40ca0e:	83 c4 04             	add    $0x4,%esp
40ca11:	85 d2                	test   %edx,%edx
40ca13:	74 25                	je     0x40ca3a
40ca15:	8b fe                	mov    %esi,%edi
40ca17:	83 c9 ff             	or     $0xffffffff,%ecx
40ca1a:	33 c0                	xor    %eax,%eax
40ca1c:	f2 ae                	repnz scas %es:(%edi),%al
40ca1e:	f7 d1                	not    %ecx
40ca20:	2b f9                	sub    %ecx,%edi
40ca22:	8b f7                	mov    %edi,%esi
40ca24:	8b d9                	mov    %ecx,%ebx
40ca26:	8b fa                	mov    %edx,%edi
40ca28:	8b c7                	mov    %edi,%eax
40ca2a:	c1 e9 02             	shr    $0x2,%ecx
40ca2d:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40ca2f:	8b cb                	mov    %ebx,%ecx
40ca31:	83 e1 03             	and    $0x3,%ecx
40ca34:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40ca36:	5f                   	pop    %edi
40ca37:	5e                   	pop    %esi
40ca38:	5b                   	pop    %ebx
40ca39:	c3                   	ret
40ca3a:	5f                   	pop    %edi
40ca3b:	5e                   	pop    %esi
40ca3c:	33 c0                	xor    %eax,%eax
40ca3e:	5b                   	pop    %ebx
40ca3f:	c3                   	ret
40ca40:	a1 ac 8a 43 00       	mov    0x438aac,%eax
40ca45:	85 c0                	test   %eax,%eax
40ca47:	74 02                	je     0x40ca4b
40ca49:	ff d0                	call   *%eax
40ca4b:	68 ec 10 43 00       	push   $0x4310ec
40ca50:	68 dc 10 43 00       	push   $0x4310dc
40ca55:	e8 36 01 00 00       	call   0x40cb90
40ca5a:	83 c4 08             	add    $0x8,%esp
40ca5d:	68 d8 10 43 00       	push   $0x4310d8
40ca62:	68 00 10 43 00       	push   $0x431000
40ca67:	e8 24 01 00 00       	call   0x40cb90
40ca6c:	83 c4 08             	add    $0x8,%esp
40ca6f:	c3                   	ret
40ca70:	8b 44 24 04          	mov    0x4(%esp),%eax
40ca74:	6a 00                	push   $0x0
40ca76:	6a 00                	push   $0x0
40ca78:	50                   	push   %eax
40ca79:	e8 32 00 00 00       	call   0x40cab0
40ca7e:	83 c4 0c             	add    $0xc,%esp
40ca81:	c3                   	ret
40ca82:	90                   	nop
40ca83:	90                   	nop
40ca84:	90                   	nop
40ca85:	90                   	nop
40ca86:	90                   	nop
40ca87:	90                   	nop
40ca88:	90                   	nop
40ca89:	90                   	nop
40ca8a:	90                   	nop
40ca8b:	90                   	nop
40ca8c:	90                   	nop
40ca8d:	90                   	nop
40ca8e:	90                   	nop
40ca8f:	90                   	nop
40ca90:	8b 44 24 04          	mov    0x4(%esp),%eax
40ca94:	6a 00                	push   $0x0
40ca96:	6a 01                	push   $0x1
40ca98:	50                   	push   %eax
40ca99:	e8 12 00 00 00       	call   0x40cab0
40ca9e:	83 c4 0c             	add    $0xc,%esp
40caa1:	c3                   	ret
40caa2:	90                   	nop
40caa3:	90                   	nop
40caa4:	90                   	nop
40caa5:	90                   	nop
40caa6:	90                   	nop
40caa7:	90                   	nop
40caa8:	90                   	nop
40caa9:	90                   	nop
40caaa:	90                   	nop
40caab:	90                   	nop
40caac:	90                   	nop
40caad:	90                   	nop
40caae:	90                   	nop
40caaf:	90                   	nop
40cab0:	53                   	push   %ebx
40cab1:	55                   	push   %ebp
40cab2:	56                   	push   %esi
40cab3:	e8 b8 00 00 00       	call   0x40cb70
40cab8:	a1 70 70 43 00       	mov    0x437070,%eax
40cabd:	8b 6c 24 10          	mov    0x10(%esp),%ebp
40cac1:	83 f8 01             	cmp    $0x1,%eax
40cac4:	75 0e                	jne    0x40cad4
40cac6:	55                   	push   %ebp
40cac7:	ff 15 70 97 43 00    	call   *0x439770
40cacd:	50                   	push   %eax
40cace:	ff 15 d8 95 43 00    	call   *0x4395d8
40cad4:	8b 44 24 14          	mov    0x14(%esp),%eax
40cad8:	8b 5c 24 18          	mov    0x18(%esp),%ebx
40cadc:	85 c0                	test   %eax,%eax
40cade:	c7 05 6c 70 43 00 01 	movl   $0x1,0x43706c
40cae5:	00 00 00
40cae8:	88 1d 68 70 43 00    	mov    %bl,0x437068
40caee:	75 3e                	jne    0x40cb2e
40caf0:	8b 0d a8 8a 43 00    	mov    0x438aa8,%ecx
40caf6:	85 c9                	test   %ecx,%ecx
40caf8:	74 22                	je     0x40cb1c
40cafa:	8b 35 a4 8a 43 00    	mov    0x438aa4,%esi
40cb00:	83 ee 04             	sub    $0x4,%esi
40cb03:	3b f1                	cmp    %ecx,%esi
40cb05:	72 15                	jb     0x40cb1c
40cb07:	8b 06                	mov    (%esi),%eax
40cb09:	85 c0                	test   %eax,%eax
40cb0b:	74 08                	je     0x40cb15
40cb0d:	ff d0                	call   *%eax
40cb0f:	8b 0d a8 8a 43 00    	mov    0x438aa8,%ecx
40cb15:	83 ee 04             	sub    $0x4,%esi
40cb18:	3b f1                	cmp    %ecx,%esi
40cb1a:	73 eb                	jae    0x40cb07
40cb1c:	68 f8 10 43 00       	push   $0x4310f8
40cb21:	68 f0 10 43 00       	push   $0x4310f0
40cb26:	e8 65 00 00 00       	call   0x40cb90
40cb2b:	83 c4 08             	add    $0x8,%esp
40cb2e:	68 04 11 43 00       	push   $0x431104
40cb33:	68 fc 10 43 00       	push   $0x4310fc
40cb38:	e8 53 00 00 00       	call   0x40cb90
40cb3d:	83 c4 08             	add    $0x8,%esp
40cb40:	85 db                	test   %ebx,%ebx
40cb42:	74 09                	je     0x40cb4d
40cb44:	e8 37 00 00 00       	call   0x40cb80
40cb49:	5e                   	pop    %esi
40cb4a:	5d                   	pop    %ebp
40cb4b:	5b                   	pop    %ebx
40cb4c:	c3                   	ret
40cb4d:	55                   	push   %ebp
40cb4e:	c7 05 70 70 43 00 01 	movl   $0x1,0x437070
40cb55:	00 00 00
40cb58:	ff 15 d4 95 43 00    	call   *0x4395d4
40cb5e:	5e                   	pop    %esi
40cb5f:	5d                   	pop    %ebp
40cb60:	5b                   	pop    %ebx
40cb61:	c3                   	ret
40cb62:	90                   	nop
40cb63:	90                   	nop
40cb64:	90                   	nop
40cb65:	90                   	nop
40cb66:	90                   	nop
40cb67:	90                   	nop
40cb68:	90                   	nop
40cb69:	90                   	nop
40cb6a:	90                   	nop
40cb6b:	90                   	nop
40cb6c:	90                   	nop
40cb6d:	90                   	nop
40cb6e:	90                   	nop
40cb6f:	90                   	nop
40cb70:	6a 0d                	push   $0xd
40cb72:	e8 c9 28 00 00       	call   0x40f440
40cb77:	83 c4 04             	add    $0x4,%esp
40cb7a:	c3                   	ret
40cb7b:	90                   	nop
40cb7c:	90                   	nop
40cb7d:	90                   	nop
40cb7e:	90                   	nop
40cb7f:	90                   	nop
40cb80:	6a 0d                	push   $0xd
40cb82:	e8 39 29 00 00       	call   0x40f4c0
40cb87:	83 c4 04             	add    $0x4,%esp
40cb8a:	c3                   	ret
40cb8b:	90                   	nop
40cb8c:	90                   	nop
40cb8d:	90                   	nop
40cb8e:	90                   	nop
40cb8f:	90                   	nop
40cb90:	56                   	push   %esi
40cb91:	8b 74 24 08          	mov    0x8(%esp),%esi
40cb95:	57                   	push   %edi
40cb96:	8b 7c 24 10          	mov    0x10(%esp),%edi
40cb9a:	3b f7                	cmp    %edi,%esi
40cb9c:	73 0f                	jae    0x40cbad
40cb9e:	8b 06                	mov    (%esi),%eax
40cba0:	85 c0                	test   %eax,%eax
40cba2:	74 02                	je     0x40cba6
40cba4:	ff d0                	call   *%eax
40cba6:	83 c6 04             	add    $0x4,%esi
40cba9:	3b f7                	cmp    %edi,%esi
40cbab:	72 f1                	jb     0x40cb9e
40cbad:	5f                   	pop    %edi
40cbae:	5e                   	pop    %esi
40cbaf:	c3                   	ret
40cbb0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40cbb4:	66 83 39 00          	cmpw   $0x0,(%ecx)
40cbb8:	8d 41 02             	lea    0x2(%ecx),%eax
40cbbb:	74 0b                	je     0x40cbc8
40cbbd:	66 8b 10             	mov    (%eax),%dx
40cbc0:	83 c0 02             	add    $0x2,%eax
40cbc3:	66 85 d2             	test   %dx,%dx
40cbc6:	75 f5                	jne    0x40cbbd
40cbc8:	2b c1                	sub    %ecx,%eax
40cbca:	d1 f8                	sar    $1,%eax
40cbcc:	48                   	dec    %eax
40cbcd:	c3                   	ret
40cbce:	90                   	nop
40cbcf:	90                   	nop
40cbd0:	83 ec 08             	sub    $0x8,%esp
40cbd3:	56                   	push   %esi
40cbd4:	6a 09                	push   $0x9
40cbd6:	e8 65 28 00 00       	call   0x40f440
40cbdb:	8b 74 24 14          	mov    0x14(%esp),%esi
40cbdf:	83 c4 04             	add    $0x4,%esp
40cbe2:	8d 44 24 04          	lea    0x4(%esp),%eax
40cbe6:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40cbea:	50                   	push   %eax
40cbeb:	51                   	push   %ecx
40cbec:	56                   	push   %esi
40cbed:	e8 1e 2d 00 00       	call   0x40f910
40cbf2:	83 c4 0c             	add    $0xc,%esp
40cbf5:	85 c0                	test   %eax,%eax
40cbf7:	74 1a                	je     0x40cc13
40cbf9:	33 d2                	xor    %edx,%edx
40cbfb:	6a 09                	push   $0x9
40cbfd:	8a 10                	mov    (%eax),%dl
40cbff:	8b f2                	mov    %edx,%esi
40cc01:	c1 e6 04             	shl    $0x4,%esi
40cc04:	e8 b7 28 00 00       	call   0x40f4c0
40cc09:	83 c4 04             	add    $0x4,%esp
40cc0c:	8b c6                	mov    %esi,%eax
40cc0e:	5e                   	pop    %esi
40cc0f:	83 c4 08             	add    $0x8,%esp
40cc12:	c3                   	ret
40cc13:	6a 09                	push   $0x9
40cc15:	e8 a6 28 00 00       	call   0x40f4c0
40cc1a:	a1 8c 89 43 00       	mov    0x43898c,%eax
40cc1f:	83 c4 04             	add    $0x4,%esp
40cc22:	56                   	push   %esi
40cc23:	6a 00                	push   $0x0
40cc25:	50                   	push   %eax
40cc26:	ff 15 dc 95 43 00    	call   *0x4395dc
40cc2c:	8b f0                	mov    %eax,%esi
40cc2e:	5e                   	pop    %esi
40cc2f:	83 c4 08             	add    $0x8,%esp
40cc32:	c3                   	ret
40cc33:	90                   	nop
40cc34:	90                   	nop
40cc35:	90                   	nop
40cc36:	90                   	nop
40cc37:	90                   	nop
40cc38:	90                   	nop
40cc39:	90                   	nop
40cc3a:	90                   	nop
40cc3b:	90                   	nop
40cc3c:	90                   	nop
40cc3d:	90                   	nop
40cc3e:	90                   	nop
40cc3f:	90                   	nop
40cc40:	51                   	push   %ecx
40cc41:	8b 44 24 0c          	mov    0xc(%esp),%eax
40cc45:	53                   	push   %ebx
40cc46:	56                   	push   %esi
40cc47:	83 f8 e0             	cmp    $0xffffffe0,%eax
40cc4a:	57                   	push   %edi
40cc4b:	76 07                	jbe    0x40cc54
40cc4d:	33 c0                	xor    %eax,%eax
40cc4f:	5f                   	pop    %edi
40cc50:	5e                   	pop    %esi
40cc51:	5b                   	pop    %ebx
40cc52:	59                   	pop    %ecx
40cc53:	c3                   	ret
40cc54:	85 c0                	test   %eax,%eax
40cc56:	76 08                	jbe    0x40cc60
40cc58:	8d 70 0f             	lea    0xf(%eax),%esi
40cc5b:	83 e6 f0             	and    $0xfffffff0,%esi
40cc5e:	eb 05                	jmp    0x40cc65
40cc60:	be 10 00 00 00       	mov    $0x10,%esi
40cc65:	6a 09                	push   $0x9
40cc67:	e8 d4 27 00 00       	call   0x40f440
40cc6c:	8b 7c 24 18          	mov    0x18(%esp),%edi
40cc70:	83 c4 04             	add    $0x4,%esp
40cc73:	8d 44 24 18          	lea    0x18(%esp),%eax
40cc77:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40cc7b:	50                   	push   %eax
40cc7c:	51                   	push   %ecx
40cc7d:	57                   	push   %edi
40cc7e:	e8 8d 2c 00 00       	call   0x40f910
40cc83:	83 c4 0c             	add    $0xc,%esp
40cc86:	85 c0                	test   %eax,%eax
40cc88:	74 3a                	je     0x40ccc4
40cc8a:	8b 0d 84 3f 43 00    	mov    0x433f84,%ecx
40cc90:	33 db                	xor    %ebx,%ebx
40cc92:	3b f1                	cmp    %ecx,%esi
40cc94:	77 1d                	ja     0x40ccb3
40cc96:	8b 54 24 18          	mov    0x18(%esp),%edx
40cc9a:	c1 ee 04             	shr    $0x4,%esi
40cc9d:	56                   	push   %esi
40cc9e:	50                   	push   %eax
40cc9f:	8b 44 24 14          	mov    0x14(%esp),%eax
40cca3:	52                   	push   %edx
40cca4:	50                   	push   %eax