40bc07:	89 45 d0             	mov    %eax,-0x30(%ebp)
40bc0a:	88 45 d4             	mov    %al,-0x2c(%ebp)
40bc0d:	89 45 d8             	mov    %eax,-0x28(%ebp)
40bc10:	88 45 dc             	mov    %al,-0x24(%ebp)
40bc13:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
40bc17:	85 f6                	test   %esi,%esi
40bc19:	0f 84 e5 00 00 00    	je     0x40bd04
40bc1f:	8d 45 ac             	lea    -0x54(%ebp),%eax
40bc22:	56                   	push   %esi
40bc23:	50                   	push   %eax
40bc24:	e8 0b f7 00 00       	call   0x41b334
40bc29:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
40bc30:	c7 07 24 06 44 00    	movl   $0x440624,(%edi)
40bc36:	8d 45 ac             	lea    -0x54(%ebp),%eax
40bc39:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
40bc3d:	50                   	push   %eax
40bc3e:	e8 3c f7 00 00       	call   0x41b37f
40bc43:	8b 45 d8             	mov    -0x28(%ebp),%eax
40bc46:	83 c4 0c             	add    $0xc,%esp
40bc49:	85 c0                	test   %eax,%eax
40bc4b:	74 09                	je     0x40bc56
40bc4d:	50                   	push   %eax
40bc4e:	e8 fa a3 01 00       	call   0x42604d
40bc53:	83 c4 04             	add    $0x4,%esp
40bc56:	8b 45 d0             	mov    -0x30(%ebp),%eax
40bc59:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
40bc60:	85 c0                	test   %eax,%eax
40bc62:	74 09                	je     0x40bc6d
40bc64:	50                   	push   %eax
40bc65:	e8 e3 a3 01 00       	call   0x42604d
40bc6a:	83 c4 04             	add    $0x4,%esp
40bc6d:	8b 45 c8             	mov    -0x38(%ebp),%eax
40bc70:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
40bc77:	85 c0                	test   %eax,%eax
40bc79:	74 09                	je     0x40bc84
40bc7b:	50                   	push   %eax
40bc7c:	e8 cc a3 01 00       	call   0x42604d
40bc81:	83 c4 04             	add    $0x4,%esp
40bc84:	8b 45 c0             	mov    -0x40(%ebp),%eax
40bc87:	c7 45 c8 00 00 00 00 	movl   $0x0,-0x38(%ebp)
40bc8e:	85 c0                	test   %eax,%eax
40bc90:	74 09                	je     0x40bc9b
40bc92:	50                   	push   %eax
40bc93:	e8 b5 a3 01 00       	call   0x42604d
40bc98:	83 c4 04             	add    $0x4,%esp
40bc9b:	8b 45 b8             	mov    -0x48(%ebp),%eax
40bc9e:	c7 45 c0 00 00 00 00 	movl   $0x0,-0x40(%ebp)
40bca5:	85 c0                	test   %eax,%eax
40bca7:	74 09                	je     0x40bcb2
40bca9:	50                   	push   %eax
40bcaa:	e8 9e a3 01 00       	call   0x42604d
40bcaf:	83 c4 04             	add    $0x4,%esp
40bcb2:	8b 45 b0             	mov    -0x50(%ebp),%eax
40bcb5:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
40bcbc:	85 c0                	test   %eax,%eax
40bcbe:	74 09                	je     0x40bcc9
40bcc0:	50                   	push   %eax
40bcc1:	e8 87 a3 01 00       	call   0x42604d
40bcc6:	83 c4 04             	add    $0x4,%esp
40bcc9:	8d 4d ac             	lea    -0x54(%ebp),%ecx
40bccc:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
40bcd3:	e8 d0 f3 00 00       	call   0x41b0a8
40bcd8:	89 7d ec             	mov    %edi,-0x14(%ebp)
40bcdb:	57                   	push   %edi
40bcdc:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
40bce0:	e8 1d f5 00 00       	call   0x41b202
40bce5:	8b 07                	mov    (%edi),%eax
40bce7:	83 c4 04             	add    $0x4,%esp
40bcea:	8b 70 04             	mov    0x4(%eax),%esi
40bced:	8b ce                	mov    %esi,%ecx
40bcef:	ff 15 3c f2 43 00    	call   *0x43f23c
40bcf5:	8b cf                	mov    %edi,%ecx
40bcf7:	ff d6                	call   *%esi
40bcf9:	89 3d a8 61 45 00    	mov    %edi,0x4561a8
40bcff:	e9 58 fe ff ff       	jmp    0x40bb5c
40bd04:	68 f0 da 44 00       	push   $0x44daf0
40bd09:	e8 6c f1 00 00       	call   0x41ae7a
40bd0e:	cc                   	int3
40bd0f:	cc                   	int3
40bd10:	55                   	push   %ebp
40bd11:	8b ec                	mov    %esp,%ebp
40bd13:	51                   	push   %ecx
40bd14:	8b 45 08             	mov    0x8(%ebp),%eax
40bd17:	53                   	push   %ebx
40bd18:	8b d9                	mov    %ecx,%ebx
40bd1a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bd1d:	56                   	push   %esi
40bd1e:	8b 33                	mov    (%ebx),%esi
40bd20:	8b 76 04             	mov    0x4(%esi),%esi
40bd23:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40bd27:	75 33                	jne    0x40bd5c
40bd29:	57                   	push   %edi
40bd2a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
40bd30:	ff 76 08             	push   0x8(%esi)
40bd33:	8b cb                	mov    %ebx,%ecx
40bd35:	50                   	push   %eax
40bd36:	e8 25 15 00 00       	call   0x40d260
40bd3b:	8b fe                	mov    %esi,%edi
40bd3d:	8b 36                	mov    (%esi),%esi
40bd3f:	8d 4f 10             	lea    0x10(%edi),%ecx
40bd42:	e8 f9 20 00 00       	call   0x40de40
40bd47:	6a 40                	push   $0x40
40bd49:	57                   	push   %edi
40bd4a:	e8 bf fb 00 00       	call   0x41b90e
40bd4f:	8b 45 fc             	mov    -0x4(%ebp),%eax
40bd52:	83 c4 08             	add    $0x8,%esp
40bd55:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40bd59:	74 d5                	je     0x40bd30
40bd5b:	5f                   	pop    %edi
40bd5c:	6a 40                	push   $0x40
40bd5e:	ff 33                	push   (%ebx)
40bd60:	e8 a9 fb 00 00       	call   0x41b90e
40bd65:	83 c4 08             	add    $0x8,%esp
40bd68:	5e                   	pop    %esi
40bd69:	5b                   	pop    %ebx
40bd6a:	8b e5                	mov    %ebp,%esp
40bd6c:	5d                   	pop    %ebp
40bd6d:	c2 04 00             	ret    $0x4
40bd70:	55                   	push   %ebp
40bd71:	8b ec                	mov    %esp,%ebp
40bd73:	83 e4 f8             	and    $0xfffffff8,%esp
40bd76:	81 ec 14 01 00 00    	sub    $0x114,%esp
40bd7c:	a1 14 40 45 00       	mov    0x454014,%eax
40bd81:	33 c4                	xor    %esp,%eax
40bd83:	89 84 24 10 01 00 00 	mov    %eax,0x110(%esp)
40bd8a:	8b 45 0c             	mov    0xc(%ebp),%eax
40bd8d:	53                   	push   %ebx
40bd8e:	8b 5d 10             	mov    0x10(%ebp),%ebx
40bd91:	89 44 24 08          	mov    %eax,0x8(%esp)
40bd95:	56                   	push   %esi
40bd96:	8b f2                	mov    %edx,%esi
40bd98:	57                   	push   %edi
40bd99:	8b f9                	mov    %ecx,%edi
40bd9b:	85 db                	test   %ebx,%ebx
40bd9d:	0f 84 03 01 00 00    	je     0x40bea6
40bda3:	85 f6                	test   %esi,%esi
40bda5:	0f 84 fb 00 00 00    	je     0x40bea6
40bdab:	68 00 01 00 00       	push   $0x100
40bdb0:	8d 44 24 1c          	lea    0x1c(%esp),%eax
40bdb4:	6a 00                	push   $0x0
40bdb6:	50                   	push   %eax
40bdb7:	e8 24 1c 01 00       	call   0x41d9e0
40bdbc:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40bdc0:	83 c4 0c             	add    $0xc,%esp
40bdc3:	8b c8                	mov    %eax,%ecx
40bdc5:	c7 44 24 14 00 01 00 	movl   $0x100,0x14(%esp)
40bdcc:	00
40bdcd:	8d 14 58             	lea    (%eax,%ebx,2),%edx
40bdd0:	3b c2                	cmp    %edx,%eax
40bdd2:	74 19                	je     0x40bded
40bdd4:	0f b7 01             	movzwl (%ecx),%eax
40bdd7:	66 3b 44 24 14       	cmp    0x14(%esp),%ax
40bddc:	73 3e                	jae    0x40be1c
40bdde:	0f b6 c0             	movzbl %al,%eax
40bde1:	83 c1 02             	add    $0x2,%ecx
40bde4:	c6 44 04 18 01       	movb   $0x1,0x18(%esp,%eax,1)
40bde9:	3b ca                	cmp    %edx,%ecx
40bdeb:	75 e7                	jne    0x40bdd4
40bded:	8b 54 24 14          	mov    0x14(%esp),%edx
40bdf1:	8d 46 ff             	lea    -0x1(%esi),%eax
40bdf4:	83 c9 ff             	or     $0xffffffff,%ecx
40bdf7:	3b c1                	cmp    %ecx,%eax
40bdf9:	0f 42 c8             	cmovb  %eax,%ecx
40bdfc:	8d 0c 4f             	lea    (%edi,%ecx,2),%ecx
40bdff:	90                   	nop
40be00:	0f b7 01             	movzwl (%ecx),%eax
40be03:	66 3b c2             	cmp    %dx,%ax
40be06:	73 07                	jae    0x40be0f
40be08:	80 7c 04 18 00       	cmpb   $0x0,0x18(%esp,%eax,1)
40be0d:	75 7c                	jne    0x40be8b
40be0f:	3b cf                	cmp    %edi,%ecx
40be11:	0f 84 8f 00 00 00    	je     0x40bea6
40be17:	83 e9 02             	sub    $0x2,%ecx
40be1a:	eb e4                	jmp    0x40be00
40be1c:	8d 46 ff             	lea    -0x1(%esi),%eax
40be1f:	83 c9 ff             	or     $0xffffffff,%ecx
40be22:	3b c1                	cmp    %ecx,%eax
40be24:	0f 42 c8             	cmovb  %eax,%ecx
40be27:	8d 14 4f             	lea    (%edi,%ecx,2),%edx
40be2a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
40be30:	8b 44 24 10          	mov    0x10(%esp),%eax
40be34:	8b cb                	mov    %ebx,%ecx
40be36:	85 db                	test   %ebx,%ebx
40be38:	74 13                	je     0x40be4d
40be3a:	0f b7 32             	movzwl (%edx),%esi
40be3d:	0f 1f 00             	nopl   (%eax)
40be40:	66 39 30             	cmp    %si,(%eax)
40be43:	74 11                	je     0x40be56
40be45:	83 c0 02             	add    $0x2,%eax
40be48:	83 e9 01             	sub    $0x1,%ecx
40be4b:	75 f3                	jne    0x40be40
40be4d:	3b d7                	cmp    %edi,%edx
40be4f:	74 20                	je     0x40be71
40be51:	83 ea 02             	sub    $0x2,%edx
40be54:	eb da                	jmp    0x40be30
40be56:	2b d7                	sub    %edi,%edx
40be58:	d1 fa                	sar    $1,%edx
40be5a:	8b c2                	mov    %edx,%eax
40be5c:	5f                   	pop    %edi
40be5d:	5e                   	pop    %esi
40be5e:	5b                   	pop    %ebx
40be5f:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
40be66:	33 cc                	xor    %esp,%ecx
40be68:	e8 63 fa 00 00       	call   0x41b8d0
40be6d:	8b e5                	mov    %ebp,%esp
40be6f:	5d                   	pop    %ebp
40be70:	c3                   	ret
40be71:	83 ca ff             	or     $0xffffffff,%edx
40be74:	8b c2                	mov    %edx,%eax
40be76:	5f                   	pop    %edi
40be77:	5e                   	pop    %esi
40be78:	5b                   	pop    %ebx
40be79:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
40be80:	33 cc                	xor    %esp,%ecx
40be82:	e8 49 fa 00 00       	call   0x41b8d0
40be87:	8b e5                	mov    %ebp,%esp
40be89:	5d                   	pop    %ebp
40be8a:	c3                   	ret
40be8b:	2b cf                	sub    %edi,%ecx
40be8d:	d1 f9                	sar    $1,%ecx
40be8f:	8b c1                	mov    %ecx,%eax
40be91:	5f                   	pop    %edi
40be92:	5e                   	pop    %esi
40be93:	5b                   	pop    %ebx
40be94:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
40be9b:	33 cc                	xor    %esp,%ecx
40be9d:	e8 2e fa 00 00       	call   0x41b8d0
40bea2:	8b e5                	mov    %ebp,%esp
40bea4:	5d                   	pop    %ebp
40bea5:	c3                   	ret
40bea6:	8b 8c 24 1c 01 00 00 	mov    0x11c(%esp),%ecx
40bead:	83 c8 ff             	or     $0xffffffff,%eax
40beb0:	5f                   	pop    %edi
40beb1:	5e                   	pop    %esi
40beb2:	5b                   	pop    %ebx
40beb3:	33 cc                	xor    %esp,%ecx
40beb5:	e8 16 fa 00 00       	call   0x41b8d0
40beba:	8b e5                	mov    %ebp,%esp
40bebc:	5d                   	pop    %ebp
40bebd:	c3                   	ret
40bebe:	cc                   	int3
40bebf:	cc                   	int3
40bec0:	55                   	push   %ebp
40bec1:	8b ec                	mov    %esp,%ebp
40bec3:	83 ec 08             	sub    $0x8,%esp
40bec6:	53                   	push   %ebx
40bec7:	56                   	push   %esi
40bec8:	57                   	push   %edi
40bec9:	8b 7d 10             	mov    0x10(%ebp),%edi
40becc:	8b d9                	mov    %ecx,%ebx
40bece:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40bed1:	3b fa                	cmp    %edx,%edi
40bed3:	77 38                	ja     0x40bf0d
40bed5:	8b 45 08             	mov    0x8(%ebp),%eax
40bed8:	2b d7                	sub    %edi,%edx
40beda:	3b c2                	cmp    %edx,%eax
40bedc:	77 2f                	ja     0x40bf0d
40bede:	85 ff                	test   %edi,%edi
40bee0:	74 2e                	je     0x40bf10
40bee2:	8d 4a 01             	lea    0x1(%edx),%ecx
40bee5:	8d 0c 4b             	lea    (%ebx,%ecx,2),%ecx
40bee8:	8d 04 43             	lea    (%ebx,%eax,2),%eax
40beeb:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40beee:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40bef1:	2b c8                	sub    %eax,%ecx
40bef3:	d1 f9                	sar    $1,%ecx
40bef5:	74 16                	je     0x40bf0d
40bef7:	0f b7 13             	movzwl (%ebx),%edx
40befa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
40bf00:	66 39 10             	cmp    %dx,(%eax)
40bf03:	74 12                	je     0x40bf17
40bf05:	83 c0 02             	add    $0x2,%eax
40bf08:	83 e9 01             	sub    $0x1,%ecx
40bf0b:	75 f3                	jne    0x40bf00
40bf0d:	83 c8 ff             	or     $0xffffffff,%eax
40bf10:	5f                   	pop    %edi
40bf11:	5e                   	pop    %esi
40bf12:	5b                   	pop    %ebx
40bf13:	8b e5                	mov    %ebp,%esp
40bf15:	5d                   	pop    %ebp
40bf16:	c3                   	ret
40bf17:	85 c0                	test   %eax,%eax
40bf19:	74 f2                	je     0x40bf0d
40bf1b:	8b f7                	mov    %edi,%esi
40bf1d:	8b d3                	mov    %ebx,%edx
40bf1f:	85 ff                	test   %edi,%edi
40bf21:	74 15                	je     0x40bf38
40bf23:	8b f8                	mov    %eax,%edi
40bf25:	2b fb                	sub    %ebx,%edi
40bf27:	66 8b 0c 17          	mov    (%edi,%edx,1),%cx
40bf2b:	66 3b 0a             	cmp    (%edx),%cx
40bf2e:	75 14                	jne    0x40bf44
40bf30:	83 c2 02             	add    $0x2,%edx
40bf33:	83 ee 01             	sub    $0x1,%esi
40bf36:	75 ef                	jne    0x40bf27
40bf38:	2b 45 f8             	sub    -0x8(%ebp),%eax
40bf3b:	5f                   	pop    %edi
40bf3c:	5e                   	pop    %esi
40bf3d:	d1 f8                	sar    $1,%eax
40bf3f:	5b                   	pop    %ebx
40bf40:	8b e5                	mov    %ebp,%esp
40bf42:	5d                   	pop    %ebp
40bf43:	c3                   	ret
40bf44:	8b 7d 10             	mov    0x10(%ebp),%edi
40bf47:	83 c0 02             	add    $0x2,%eax
40bf4a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40bf4d:	eb a2                	jmp    0x40bef1
40bf4f:	cc                   	int3
40bf50:	55                   	push   %ebp
40bf51:	8b ec                	mov    %esp,%ebp
40bf53:	83 ec 14             	sub    $0x14,%esp
40bf56:	53                   	push   %ebx
40bf57:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40bf5a:	57                   	push   %edi
40bf5b:	8b f9                	mov    %ecx,%edi
40bf5d:	89 7d ec             	mov    %edi,-0x14(%ebp)
40bf60:	81 fb fe ff ff 7f    	cmp    $0x7ffffffe,%ebx
40bf66:	0f 87 28 01 00 00    	ja     0x40c094
40bf6c:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40bf73:	8d 47 14             	lea    0x14(%edi),%eax
40bf76:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bf79:	83 fb 08             	cmp    $0x8,%ebx
40bf7c:	73 30                	jae    0x40bfae
40bf7e:	89 5f 10             	mov    %ebx,0x10(%edi)
40bf81:	85 db                	test   %ebx,%ebx
40bf83:	74 1b                	je     0x40bfa0
40bf85:	8b 45 08             	mov    0x8(%ebp),%eax
40bf88:	8b cb                	mov    %ebx,%ecx
40bf8a:	0f b7 d0             	movzwl %ax,%edx
40bf8d:	8b c2                	mov    %edx,%eax
40bf8f:	c1 e2 10             	shl    $0x10,%edx
40bf92:	0b c2                	or     %edx,%eax
40bf94:	d1 e9                	shr    $1,%ecx
40bf96:	f3 ab                	rep stos %eax,%es:(%edi)
40bf98:	13 c9                	adc    %ecx,%ecx
40bf9a:	66 f3 ab             	rep stos %ax,%es:(%edi)
40bf9d:	8b 7d ec             	mov    -0x14(%ebp),%edi
40bfa0:	33 c0                	xor    %eax,%eax
40bfa2:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
40bfa6:	5f                   	pop    %edi
40bfa7:	5b                   	pop    %ebx
40bfa8:	8b e5                	mov    %ebp,%esp
40bfaa:	5d                   	pop    %ebp
40bfab:	c2 08 00             	ret    $0x8
40bfae:	56                   	push   %esi
40bfaf:	8b f3                	mov    %ebx,%esi
40bfb1:	83 ce 07             	or     $0x7,%esi
40bfb4:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
40bfba:	76 07                	jbe    0x40bfc3
40bfbc:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi