40ee8f:	66 83 7d e8 01       	cmpw   $0x1,-0x18(%ebp)
40ee94:	75 04                	jne    0x40ee9a
40ee96:	80 4d ee 80          	orb    $0x80,-0x12(%ebp)
40ee9a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ee9d:	8b 45 ec             	mov    -0x14(%ebp),%eax
40eea0:	5f                   	pop    %edi
40eea1:	5e                   	pop    %esi
40eea2:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40eea9:	5b                   	pop    %ebx
40eeaa:	c9                   	leave
40eeab:	c3                   	ret
40eeac:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40eeaf:	e8 65 10 03 00       	call   0x43ff19
40eeb4:	b8 9a ee 40 00       	mov    $0x40ee9a,%eax
40eeb9:	c3                   	ret
40eeba:	b8 38 36 48 00       	mov    $0x483638,%eax
40eebf:	e8 b8 8d 00 00       	call   0x417c7c
40eec4:	83 ec 10             	sub    $0x10,%esp
40eec7:	53                   	push   %ebx
40eec8:	56                   	push   %esi
40eec9:	57                   	push   %edi
40eeca:	89 65 f0             	mov    %esp,-0x10(%ebp)
40eecd:	8b f1                	mov    %ecx,%esi
40eecf:	6a ec                	push   $0xffffffec
40eed1:	ff 76 20             	push   0x20(%esi)
40eed4:	ff 15 14 08 4b 00    	call   *0x4b0814
40eeda:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40eede:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40eee2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40eee5:	51                   	push   %ecx
40eee6:	6a 02                	push   $0x2
40eee8:	89 45 ec             	mov    %eax,-0x14(%ebp)
40eeeb:	8b 06                	mov    (%esi),%eax
40eeed:	68 f8 fd ff ff       	push   $0xfffffdf8
40eef2:	8b ce                	mov    %esi,%ecx
40eef4:	ff 50 6c             	call   *0x6c(%eax)
40eef7:	66 83 7d e8 01       	cmpw   $0x1,-0x18(%ebp)
40eefc:	75 04                	jne    0x40ef02
40eefe:	80 4d ed 02          	orb    $0x2,-0x13(%ebp)
40ef02:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ef05:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ef08:	5f                   	pop    %edi
40ef09:	5e                   	pop    %esi
40ef0a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ef11:	5b                   	pop    %ebx
40ef12:	c9                   	leave
40ef13:	c3                   	ret
40ef14:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40ef17:	e8 fd 0f 03 00       	call   0x43ff19
40ef1c:	b8 02 ef 40 00       	mov    $0x40ef02,%eax
40ef21:	c3                   	ret
40ef22:	53                   	push   %ebx
40ef23:	8b 5c 24 08          	mov    0x8(%esp),%ebx
40ef27:	56                   	push   %esi
40ef28:	8b f1                	mov    %ecx,%esi
40ef2a:	8b c3                	mov    %ebx,%eax
40ef2c:	f7 d0                	not    %eax
40ef2e:	23 46 68             	and    0x68(%esi),%eax
40ef31:	57                   	push   %edi
40ef32:	8b 7c 24 14          	mov    0x14(%esp),%edi
40ef36:	0b c7                	or     %edi,%eax
40ef38:	23 46 64             	and    0x64(%esi),%eax
40ef3b:	89 46 68             	mov    %eax,0x68(%esi)
40ef3e:	b8 00 00 00 08       	mov    $0x8000000,%eax
40ef43:	85 d8                	test   %ebx,%eax
40ef45:	75 04                	jne    0x40ef4b
40ef47:	85 f8                	test   %edi,%eax
40ef49:	74 24                	je     0x40ef6f
40ef4b:	8b 0e                	mov    (%esi),%ecx
40ef4d:	8b d7                	mov    %edi,%edx
40ef4f:	f7 d2                	not    %edx
40ef51:	23 d0                	and    %eax,%edx
40ef53:	52                   	push   %edx
40ef54:	6a 0b                	push   $0xb
40ef56:	68 fe fd ff ff       	push   $0xfffffdfe
40ef5b:	56                   	push   %esi
40ef5c:	ff 51 74             	call   *0x74(%ecx)
40ef5f:	83 c4 10             	add    $0x10,%esp
40ef62:	85 c0                	test   %eax,%eax
40ef64:	74 09                	je     0x40ef6f
40ef66:	b8 ff ff ff f7       	mov    $0xf7ffffff,%eax
40ef6b:	23 d8                	and    %eax,%ebx
40ef6d:	23 f8                	and    %eax,%edi
40ef6f:	b8 00 00 80 00       	mov    $0x800000,%eax
40ef74:	85 d8                	test   %ebx,%eax
40ef76:	75 04                	jne    0x40ef7c
40ef78:	85 f8                	test   %edi,%eax
40ef7a:	74 22                	je     0x40ef9e
40ef7c:	8b 0e                	mov    (%esi),%ecx
40ef7e:	8b d7                	mov    %edi,%edx
40ef80:	23 d0                	and    %eax,%edx
40ef82:	52                   	push   %edx
40ef83:	6a 02                	push   $0x2
40ef85:	68 08 fe ff ff       	push   $0xfffffe08
40ef8a:	56                   	push   %esi
40ef8b:	ff 51 74             	call   *0x74(%ecx)
40ef8e:	83 c4 10             	add    $0x10,%esp
40ef91:	85 c0                	test   %eax,%eax
40ef93:	74 09                	je     0x40ef9e
40ef95:	b8 ff ff 7f ff       	mov    $0xff7fffff,%eax
40ef9a:	23 d8                	and    %eax,%ebx
40ef9c:	23 f8                	and    %eax,%edi
40ef9e:	8b 76 20             	mov    0x20(%esi),%esi
40efa1:	85 f6                	test   %esi,%esi
40efa3:	74 0e                	je     0x40efb3
40efa5:	ff 74 24 18          	push   0x18(%esp)
40efa9:	57                   	push   %edi
40efaa:	53                   	push   %ebx
40efab:	56                   	push   %esi
40efac:	e8 dc 41 03 00       	call   0x44318d
40efb1:	eb 03                	jmp    0x40efb6
40efb3:	33 c0                	xor    %eax,%eax
40efb5:	40                   	inc    %eax
40efb6:	5f                   	pop    %edi
40efb7:	5e                   	pop    %esi
40efb8:	5b                   	pop    %ebx
40efb9:	c2 0c 00             	ret    $0xc
40efbc:	55                   	push   %ebp
40efbd:	8b ec                	mov    %esp,%ebp
40efbf:	56                   	push   %esi
40efc0:	b8 00 02 00 00       	mov    $0x200,%eax
40efc5:	85 45 08             	test   %eax,0x8(%ebp)
40efc8:	57                   	push   %edi
40efc9:	8b 7d 0c             	mov    0xc(%ebp),%edi
40efcc:	8b f1                	mov    %ecx,%esi
40efce:	75 04                	jne    0x40efd4
40efd0:	85 f8                	test   %edi,%eax
40efd2:	74 23                	je     0x40eff7
40efd4:	8b 0e                	mov    (%esi),%ecx
40efd6:	8b d7                	mov    %edi,%edx
40efd8:	23 d0                	and    %eax,%edx
40efda:	52                   	push   %edx
40efdb:	6a 02                	push   $0x2
40efdd:	68 f8 fd ff ff       	push   $0xfffffdf8
40efe2:	56                   	push   %esi
40efe3:	ff 51 74             	call   *0x74(%ecx)
40efe6:	83 c4 10             	add    $0x10,%esp
40efe9:	85 c0                	test   %eax,%eax
40efeb:	74 0a                	je     0x40eff7
40efed:	b8 ff fd ff ff       	mov    $0xfffffdff,%eax
40eff2:	21 45 08             	and    %eax,0x8(%ebp)
40eff5:	23 f8                	and    %eax,%edi
40eff7:	8b 76 20             	mov    0x20(%esi),%esi
40effa:	85 f6                	test   %esi,%esi
40effc:	74 0f                	je     0x40f00d
40effe:	ff 75 10             	push   0x10(%ebp)
40f001:	57                   	push   %edi
40f002:	ff 75 08             	push   0x8(%ebp)
40f005:	56                   	push   %esi
40f006:	e8 9c 41 03 00       	call   0x4431a7
40f00b:	eb 03                	jmp    0x40f010
40f00d:	33 c0                	xor    %eax,%eax
40f00f:	40                   	inc    %eax
40f010:	5f                   	pop    %edi
40f011:	5e                   	pop    %esi
40f012:	5d                   	pop    %ebp
40f013:	c2 0c 00             	ret    $0xc
40f016:	56                   	push   %esi
40f017:	ff 74 24 08          	push   0x8(%esp)
40f01b:	8b f1                	mov    %ecx,%esi
40f01d:	8b 06                	mov    (%esi),%eax
40f01f:	6a 08                	push   $0x8
40f021:	68 fa fd ff ff       	push   $0xfffffdfa
40f026:	56                   	push   %esi
40f027:	ff 50 74             	call   *0x74(%eax)
40f02a:	83 c4 10             	add    $0x10,%esp
40f02d:	85 c0                	test   %eax,%eax
40f02f:	75 14                	jne    0x40f045
40f031:	ff 74 24 08          	push   0x8(%esp)
40f035:	8b 06                	mov    (%esi),%eax
40f037:	6a 08                	push   $0x8
40f039:	68 fb fd ff ff       	push   $0xfffffdfb
40f03e:	56                   	push   %esi
40f03f:	ff 50 74             	call   *0x74(%eax)
40f042:	83 c4 10             	add    $0x10,%esp
40f045:	5e                   	pop    %esi
40f046:	c2 04 00             	ret    $0x4
40f049:	b8 42 36 48 00       	mov    $0x483642,%eax
40f04e:	e8 29 8c 00 00       	call   0x417c7c
40f053:	83 ec 0c             	sub    $0xc,%esp
40f056:	8b 01                	mov    (%ecx),%eax
40f058:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f05c:	53                   	push   %ebx
40f05d:	56                   	push   %esi
40f05e:	57                   	push   %edi
40f05f:	89 65 f0             	mov    %esp,-0x10(%ebp)
40f062:	ff 75 08             	push   0x8(%ebp)
40f065:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f068:	6a 08                	push   $0x8
40f06a:	68 fa fd ff ff       	push   $0xfffffdfa
40f06f:	ff 50 6c             	call   *0x6c(%eax)
40f072:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f075:	5f                   	pop    %edi
40f076:	5e                   	pop    %esi
40f077:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f07e:	5b                   	pop    %ebx
40f07f:	c9                   	leave
40f080:	c2 04 00             	ret    $0x4
40f083:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f086:	89 65 f0             	mov    %esp,-0x10(%ebp)
40f089:	e8 8b 0e 03 00       	call   0x43ff19
40f08e:	ff 75 08             	push   0x8(%ebp)
40f091:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f094:	8b 01                	mov    (%ecx),%eax
40f096:	6a 08                	push   $0x8
40f098:	68 fb fd ff ff       	push   $0xfffffdfb
40f09d:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40f0a1:	ff 50 6c             	call   *0x6c(%eax)
40f0a4:	b8 72 f0 40 00       	mov    $0x40f072,%eax
40f0a9:	c3                   	ret
40f0aa:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f0ad:	e8 67 0e 03 00       	call   0x43ff19
40f0b2:	b8 a4 f0 40 00       	mov    $0x40f0a4,%eax
40f0b7:	c3                   	ret
40f0b8:	8b 41 28             	mov    0x28(%ecx),%eax
40f0bb:	c3                   	ret
40f0bc:	8b 54 24 04          	mov    0x4(%esp),%edx
40f0c0:	8b 41 28             	mov    0x28(%ecx),%eax
40f0c3:	89 51 28             	mov    %edx,0x28(%ecx)
40f0c6:	c2 04 00             	ret    $0x4
40f0c9:	55                   	push   %ebp
40f0ca:	8b ec                	mov    %esp,%ebp
40f0cc:	83 ec 14             	sub    $0x14,%esp
40f0cf:	8b 45 14             	mov    0x14(%ebp),%eax
40f0d2:	53                   	push   %ebx
40f0d3:	56                   	push   %esi
40f0d4:	57                   	push   %edi
40f0d5:	8d 59 2c             	lea    0x2c(%ecx),%ebx
40f0d8:	8b f3                	mov    %ebx,%esi
40f0da:	8d 7d ec             	lea    -0x14(%ebp),%edi
40f0dd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f0de:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f0df:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f0e0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f0e1:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f0e4:	8b 35 1c 06 4b 00    	mov    0x4b061c,%esi
40f0ea:	03 c7                	add    %edi,%eax
40f0ec:	50                   	push   %eax
40f0ed:	8b 45 08             	mov    0x8(%ebp),%eax
40f0f0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f0f3:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f0f6:	03 c8                	add    %eax,%ecx
40f0f8:	51                   	push   %ecx
40f0f9:	57                   	push   %edi
40f0fa:	50                   	push   %eax
40f0fb:	53                   	push   %ebx
40f0fc:	ff d6                	call   *%esi
40f0fe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f101:	e8 ba f4 ff ff       	call   0x40e5c0
40f106:	85 c0                	test   %eax,%eax
40f108:	74 29                	je     0x40f133
40f10a:	8b 43 0c             	mov    0xc(%ebx),%eax
40f10d:	2b 43 04             	sub    0x4(%ebx),%eax
40f110:	03 c7                	add    %edi,%eax
40f112:	50                   	push   %eax
40f113:	8b 43 08             	mov    0x8(%ebx),%eax
40f116:	2b 03                	sub    (%ebx),%eax
40f118:	03 45 08             	add    0x8(%ebp),%eax
40f11b:	50                   	push   %eax
40f11c:	57                   	push   %edi
40f11d:	ff 75 08             	push   0x8(%ebp)
40f120:	53                   	push   %ebx
40f121:	ff d6                	call   *%esi
40f123:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f126:	8b 40 50             	mov    0x50(%eax),%eax
40f129:	8b 08                	mov    (%eax),%ecx
40f12b:	53                   	push   %ebx
40f12c:	53                   	push   %ebx
40f12d:	50                   	push   %eax
40f12e:	ff 51 1c             	call   *0x1c(%ecx)
40f131:	eb 09                	jmp    0x40f13c
40f133:	8d 75 ec             	lea    -0x14(%ebp),%esi
40f136:	8b fb                	mov    %ebx,%edi
40f138:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f139:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f13a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f13b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40f13c:	5f                   	pop    %edi
40f13d:	5e                   	pop    %esi
40f13e:	5b                   	pop    %ebx
40f13f:	c9                   	leave
40f140:	c2 10 00             	ret    $0x10
40f143:	56                   	push   %esi
40f144:	57                   	push   %edi
40f145:	8b f1                	mov    %ecx,%esi
40f147:	ff 76 20             	push   0x20(%esi)
40f14a:	ff 15 a0 07 4b 00    	call   *0x4b07a0
40f150:	8b f8                	mov    %eax,%edi
40f152:	8b 44 24 0c          	mov    0xc(%esp),%eax
40f156:	85 c0                	test   %eax,%eax
40f158:	74 14                	je     0x40f16e
40f15a:	83 f8 01             	cmp    $0x1,%eax
40f15d:	74 0a                	je     0x40f169
40f15f:	83 f8 03             	cmp    $0x3,%eax
40f162:	7e 17                	jle    0x40f17b
40f164:	83 f8 05             	cmp    $0x5,%eax
40f167:	7f 12                	jg     0x40f17b
40f169:	83 c8 ff             	or     $0xffffffff,%eax
40f16c:	eb 03                	jmp    0x40f171
40f16e:	6a fd                	push   $0xfffffffd
40f170:	58                   	pop    %eax
40f171:	8b 16                	mov    (%esi),%edx
40f173:	6a 00                	push   $0x0
40f175:	50                   	push   %eax
40f176:	8b ce                	mov    %esi,%ecx
40f178:	ff 52 5c             	call   *0x5c(%edx)
40f17b:	8b c7                	mov    %edi,%eax
40f17d:	5f                   	pop    %edi
40f17e:	5e                   	pop    %esi
40f17f:	c2 04 00             	ret    $0x4
40f182:	b8 4c 36 48 00       	mov    $0x48364c,%eax
40f187:	e8 f0 8a 00 00       	call   0x417c7c
40f18c:	83 ec 0c             	sub    $0xc,%esp
40f18f:	8b 01                	mov    (%ecx),%eax
40f191:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f195:	53                   	push   %ebx
40f196:	56                   	push   %esi
40f197:	57                   	push   %edi
40f198:	89 65 f0             	mov    %esp,-0x10(%ebp)
40f19b:	8d 55 ec             	lea    -0x14(%ebp),%edx
40f19e:	52                   	push   %edx
40f19f:	6a 0b                	push   $0xb
40f1a1:	68 fe fd ff ff       	push   $0xfffffdfe
40f1a6:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40f1ad:	ff 50 6c             	call   *0x6c(%eax)
40f1b0:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f1b3:	8b 45 ec             	mov    -0x14(%ebp),%eax
40f1b6:	5f                   	pop    %edi
40f1b7:	5e                   	pop    %esi
40f1b8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f1bf:	5b                   	pop    %ebx
40f1c0:	c9                   	leave
40f1c1:	c3                   	ret
40f1c2:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40f1c5:	e8 4f 0d 03 00       	call   0x43ff19
40f1ca:	b8 b0 f1 40 00       	mov    $0x40f1b0,%eax
40f1cf:	c3                   	ret
40f1d0:	b8 56 36 48 00       	mov    $0x483656,%eax
40f1d5:	e8 a2 8a 00 00       	call   0x417c7c
40f1da:	83 ec 0c             	sub    $0xc,%esp
40f1dd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f1e1:	53                   	push   %ebx
40f1e2:	56                   	push   %esi
40f1e3:	57                   	push   %edi
40f1e4:	8b f1                	mov    %ecx,%esi
40f1e6:	8b 06                	mov    (%esi),%eax
40f1e8:	89 65 f0             	mov    %esp,-0x10(%ebp)
40f1eb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40f1ee:	51                   	push   %ecx
40f1ef:	6a 0b                	push   $0xb