40c003:	8d 85 eb 01 00 00    	lea    0x1eb(%ebp),%eax
40c009:	2b c6                	sub    %esi,%eax
40c00b:	46                   	inc    %esi
40c00c:	66 f7 45 e8 00 02    	testw  $0x200,-0x18(%ebp)
40c012:	89 45 d8             	mov    %eax,-0x28(%ebp)
40c015:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c018:	74 4c                	je     0x40c066
40c01a:	85 c0                	test   %eax,%eax
40c01c:	74 07                	je     0x40c025
40c01e:	8b ce                	mov    %esi,%ecx
40c020:	80 39 30             	cmpb   $0x30,(%ecx)
40c023:	74 41                	je     0x40c066
40c025:	ff 4d dc             	decl   -0x24(%ebp)
40c028:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40c02b:	c6 01 30             	movb   $0x30,(%ecx)
40c02e:	40                   	inc    %eax
40c02f:	eb 32                	jmp    0x40c063
40c031:	49                   	dec    %ecx
40c032:	66 39 30             	cmp    %si,(%eax)
40c035:	74 06                	je     0x40c03d
40c037:	40                   	inc    %eax
40c038:	40                   	inc    %eax
40c039:	3b ce                	cmp    %esi,%ecx
40c03b:	75 f4                	jne    0x40c031
40c03d:	2b 45 dc             	sub    -0x24(%ebp),%eax
40c040:	d1 f8                	sar    $1,%eax
40c042:	eb 1f                	jmp    0x40c063
40c044:	3b fe                	cmp    %esi,%edi
40c046:	75 08                	jne    0x40c050
40c048:	a1 70 c9 41 00       	mov    0x41c970,%eax
40c04d:	89 45 dc             	mov    %eax,-0x24(%ebp)
40c050:	8b 45 dc             	mov    -0x24(%ebp),%eax
40c053:	eb 07                	jmp    0x40c05c
40c055:	49                   	dec    %ecx
40c056:	80 38 00             	cmpb   $0x0,(%eax)
40c059:	74 05                	je     0x40c060
40c05b:	40                   	inc    %eax
40c05c:	3b ce                	cmp    %esi,%ecx
40c05e:	75 f5                	jne    0x40c055
40c060:	2b 45 dc             	sub    -0x24(%ebp),%eax
40c063:	89 45 d8             	mov    %eax,-0x28(%ebp)
40c066:	83 7d b0 00          	cmpl   $0x0,-0x50(%ebp)
40c06a:	0f 85 fb 00 00 00    	jne    0x40c16b
40c070:	8b 45 e8             	mov    -0x18(%ebp),%eax
40c073:	a8 40                	test   $0x40,%al
40c075:	74 25                	je     0x40c09c
40c077:	66 a9 00 01          	test   $0x100,%ax
40c07b:	74 06                	je     0x40c083
40c07d:	c6 45 c8 2d          	movb   $0x2d,-0x38(%ebp)
40c081:	eb 12                	jmp    0x40c095
40c083:	a8 01                	test   $0x1,%al
40c085:	74 06                	je     0x40c08d
40c087:	c6 45 c8 2b          	movb   $0x2b,-0x38(%ebp)
40c08b:	eb 08                	jmp    0x40c095
40c08d:	a8 02                	test   $0x2,%al
40c08f:	74 0b                	je     0x40c09c
40c091:	c6 45 c8 20          	movb   $0x20,-0x38(%ebp)
40c095:	c7 45 c4 01 00 00 00 	movl   $0x1,-0x3c(%ebp)
40c09c:	8b 5d c0             	mov    -0x40(%ebp),%ebx
40c09f:	2b 5d d8             	sub    -0x28(%ebp),%ebx
40c0a2:	2b 5d c4             	sub    -0x3c(%ebp),%ebx
40c0a5:	f6 45 e8 0c          	testb  $0xc,-0x18(%ebp)
40c0a9:	75 11                	jne    0x40c0bc
40c0ab:	ff 75 d0             	push   -0x30(%ebp)
40c0ae:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c0b1:	53                   	push   %ebx
40c0b2:	6a 20                	push   $0x20
40c0b4:	e8 3a f7 ff ff       	call   0x40b7f3
40c0b9:	83 c4 0c             	add    $0xc,%esp
40c0bc:	ff 75 c4             	push   -0x3c(%ebp)
40c0bf:	8b 7d d0             	mov    -0x30(%ebp),%edi
40c0c2:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c0c5:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40c0c8:	e8 4a f7 ff ff       	call   0x40b817
40c0cd:	f6 45 e8 08          	testb  $0x8,-0x18(%ebp)
40c0d1:	59                   	pop    %ecx
40c0d2:	74 15                	je     0x40c0e9
40c0d4:	f6 45 e8 04          	testb  $0x4,-0x18(%ebp)
40c0d8:	75 0f                	jne    0x40c0e9
40c0da:	57                   	push   %edi
40c0db:	53                   	push   %ebx
40c0dc:	6a 30                	push   $0x30
40c0de:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c0e1:	e8 0d f7 ff ff       	call   0x40b7f3
40c0e6:	83 c4 0c             	add    $0xc,%esp
40c0e9:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
40c0ed:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c0f0:	74 51                	je     0x40c143
40c0f2:	85 c0                	test   %eax,%eax
40c0f4:	7e 4d                	jle    0x40c143
40c0f6:	8b 75 dc             	mov    -0x24(%ebp),%esi
40c0f9:	89 45 98             	mov    %eax,-0x68(%ebp)
40c0fc:	0f b7 06             	movzwl (%esi),%eax
40c0ff:	ff 4d 98             	decl   -0x68(%ebp)
40c102:	50                   	push   %eax
40c103:	6a 06                	push   $0x6
40c105:	8d 85 ec 01 00 00    	lea    0x1ec(%ebp),%eax
40c10b:	50                   	push   %eax
40c10c:	8d 45 90             	lea    -0x70(%ebp),%eax
40c10f:	46                   	inc    %esi
40c110:	50                   	push   %eax
40c111:	46                   	inc    %esi
40c112:	e8 2b 2c 00 00       	call   0x40ed42
40c117:	83 c4 10             	add    $0x10,%esp
40c11a:	85 c0                	test   %eax,%eax
40c11c:	75 1f                	jne    0x40c13d
40c11e:	39 45 90             	cmp    %eax,-0x70(%ebp)
40c121:	74 1a                	je     0x40c13d
40c123:	ff 75 90             	push   -0x70(%ebp)
40c126:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c129:	8d 8d ec 01 00 00    	lea    0x1ec(%ebp),%ecx
40c12f:	e8 e3 f6 ff ff       	call   0x40b817
40c134:	83 7d 98 00          	cmpl   $0x0,-0x68(%ebp)
40c138:	59                   	pop    %ecx
40c139:	75 c1                	jne    0x40c0fc
40c13b:	eb 13                	jmp    0x40c150
40c13d:	83 4d cc ff          	orl    $0xffffffff,-0x34(%ebp)
40c141:	eb 0d                	jmp    0x40c150
40c143:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40c146:	50                   	push   %eax
40c147:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c14a:	e8 c8 f6 ff ff       	call   0x40b817
40c14f:	59                   	pop    %ecx
40c150:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
40c154:	7c 15                	jl     0x40c16b
40c156:	f6 45 e8 04          	testb  $0x4,-0x18(%ebp)
40c15a:	74 0f                	je     0x40c16b
40c15c:	57                   	push   %edi
40c15d:	53                   	push   %ebx
40c15e:	6a 20                	push   $0x20
40c160:	8d 45 cc             	lea    -0x34(%ebp),%eax
40c163:	e8 8b f6 ff ff       	call   0x40b7f3
40c168:	83 c4 0c             	add    $0xc,%esp
40c16b:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
40c16f:	74 0d                	je     0x40c17e
40c171:	ff 75 ac             	push   -0x54(%ebp)
40c174:	e8 da a2 ff ff       	call   0x406453
40c179:	83 65 ac 00          	andl   $0x0,-0x54(%ebp)
40c17d:	59                   	pop    %ecx
40c17e:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40c181:	8a 03                	mov    (%ebx),%al
40c183:	84 c0                	test   %al,%al
40c185:	88 45 e7             	mov    %al,-0x19(%ebp)
40c188:	74 24                	je     0x40c1ae
40c18a:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
40c18d:	8b 7d d4             	mov    -0x2c(%ebp),%edi
40c190:	8a d0                	mov    %al,%dl
40c192:	e9 28 f8 ff ff       	jmp    0x40b9bf
40c197:	e8 5e d2 ff ff       	call   0x4093fa
40c19c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40c1a2:	33 c0                	xor    %eax,%eax
40c1a4:	50                   	push   %eax
40c1a5:	50                   	push   %eax
40c1a6:	50                   	push   %eax
40c1a7:	50                   	push   %eax
40c1a8:	50                   	push   %eax
40c1a9:	e9 23 f7 ff ff       	jmp    0x40b8d1
40c1ae:	80 7d a8 00          	cmpb   $0x0,-0x58(%ebp)
40c1b2:	74 07                	je     0x40c1bb
40c1b4:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40c1b7:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40c1bb:	8b 45 cc             	mov    -0x34(%ebp),%eax
40c1be:	8b 8d f4 01 00 00    	mov    0x1f4(%ebp),%ecx
40c1c4:	5f                   	pop    %edi
40c1c5:	5e                   	pop    %esi
40c1c6:	33 cd                	xor    %ebp,%ecx
40c1c8:	5b                   	pop    %ebx
40c1c9:	e8 67 9d ff ff       	call   0x405f35
40c1ce:	81 c5 f8 01 00 00    	add    $0x1f8,%ebp
40c1d4:	c9                   	leave
40c1d5:	c3                   	ret
40c1d6:	8d 49 00             	lea    0x0(%ecx),%ecx
40c1d9:	a3 bb 40 00 0a       	mov    %eax,0xa0040bb
40c1de:	ba 40 00 25 ba       	mov    $0xba250040,%edx
40c1e3:	40                   	inc    %eax
40c1e4:	00 74 ba 40          	add    %dh,0x40(%edx,%edi,4)
40c1e8:	00 ae ba 40 00 b6    	add    %ch,-0x49ffbf46(%esi)
40c1ee:	ba 40 00 ed ba       	mov    $0xbaed0040,%edx
40c1f3:	40                   	inc    %eax
40c1f4:	00 e5                	add    %ah,%ch
40c1f6:	bb 40 00 8b 44       	mov    $0x448b0040,%ebx
40c1fb:	24 04                	and    $0x4,%al
40c1fd:	a3 3c dd 41 00       	mov    %eax,0x41dd3c
40c202:	c3                   	ret
40c203:	ff 35 3c dd 41 00    	push   0x41dd3c
40c209:	e8 34 01 00 00       	call   0x40c342
40c20e:	85 c0                	test   %eax,%eax
40c210:	59                   	pop    %ecx
40c211:	74 0f                	je     0x40c222
40c213:	ff 74 24 04          	push   0x4(%esp)
40c217:	ff d0                	call   *%eax
40c219:	85 c0                	test   %eax,%eax
40c21b:	59                   	pop    %ecx
40c21c:	74 04                	je     0x40c222
40c21e:	33 c0                	xor    %eax,%eax
40c220:	40                   	inc    %eax
40c221:	c3                   	ret
40c222:	33 c0                	xor    %eax,%eax
40c224:	c3                   	ret
40c225:	57                   	push   %edi
40c226:	8b 7c 24 08          	mov    0x8(%esp),%edi
40c22a:	8b 07                	mov    (%edi),%eax
40c22c:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40c232:	75 2a                	jne    0x40c25e
40c234:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40c238:	75 24                	jne    0x40c25e
40c23a:	8b 40 14             	mov    0x14(%eax),%eax
40c23d:	3d 20 05 93 19       	cmp    $0x19930520,%eax
40c242:	74 15                	je     0x40c259
40c244:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40c249:	74 0e                	je     0x40c259
40c24b:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40c250:	74 07                	je     0x40c259
40c252:	3d 00 40 99 01       	cmp    $0x1994000,%eax
40c257:	75 05                	jne    0x40c25e
40c259:	e8 ab 05 00 00       	call   0x40c809
40c25e:	80 3d 44 dd 41 00 00 	cmpb   $0x0,0x41dd44
40c265:	56                   	push   %esi
40c266:	74 22                	je     0x40c28a
40c268:	ff 35 40 dd 41 00    	push   0x41dd40
40c26e:	e8 cf 00 00 00       	call   0x40c342
40c273:	8b f0                	mov    %eax,%esi
40c275:	85 f6                	test   %esi,%esi
40c277:	59                   	pop    %ecx
40c278:	74 10                	je     0x40c28a
40c27a:	56                   	push   %esi
40c27b:	e8 f1 23 00 00       	call   0x40e671
40c280:	85 c0                	test   %eax,%eax
40c282:	59                   	pop    %ecx
40c283:	74 05                	je     0x40c28a
40c285:	57                   	push   %edi
40c286:	ff d6                	call   *%esi
40c288:	eb 02                	jmp    0x40c28c
40c28a:	33 c0                	xor    %eax,%eax
40c28c:	5e                   	pop    %esi
40c28d:	5f                   	pop    %edi
40c28e:	c2 04 00             	ret    $0x4
40c291:	68 25 c2 40 00       	push   $0x40c225
40c296:	ff 15 d0 70 41 00    	call   *0x4170d0
40c29c:	50                   	push   %eax
40c29d:	e8 34 00 00 00       	call   0x40c2d6
40c2a2:	a3 40 dd 41 00       	mov    %eax,0x41dd40
40c2a7:	59                   	pop    %ecx
40c2a8:	c6 05 44 dd 41 00 01 	movb   $0x1,0x41dd44
40c2af:	33 c0                	xor    %eax,%eax
40c2b1:	c3                   	ret
40c2b2:	80 3d 44 dd 41 00 00 	cmpb   $0x0,0x41dd44
40c2b9:	74 1a                	je     0x40c2d5
40c2bb:	ff 35 40 dd 41 00    	push   0x41dd40
40c2c1:	e8 7c 00 00 00       	call   0x40c342
40c2c6:	59                   	pop    %ecx
40c2c7:	50                   	push   %eax
40c2c8:	ff 15 d0 70 41 00    	call   *0x4170d0
40c2ce:	c6 05 44 dd 41 00 00 	movb   $0x0,0x41dd44
40c2d5:	c3                   	ret
40c2d6:	56                   	push   %esi
40c2d7:	ff 35 7c c9 41 00    	push   0x41c97c
40c2dd:	8b 35 f0 70 41 00    	mov    0x4170f0,%esi
40c2e3:	ff d6                	call   *%esi
40c2e5:	85 c0                	test   %eax,%eax
40c2e7:	74 21                	je     0x40c30a
40c2e9:	a1 78 c9 41 00       	mov    0x41c978,%eax
40c2ee:	83 f8 ff             	cmp    $0xffffffff,%eax
40c2f1:	74 17                	je     0x40c30a
40c2f3:	50                   	push   %eax
40c2f4:	ff 35 7c c9 41 00    	push   0x41c97c
40c2fa:	ff d6                	call   *%esi
40c2fc:	ff d0                	call   *%eax
40c2fe:	85 c0                	test   %eax,%eax
40c300:	74 08                	je     0x40c30a
40c302:	8b 80 f8 01 00 00    	mov    0x1f8(%eax),%eax
40c308:	eb 1b                	jmp    0x40c325
40c30a:	68 44 80 41 00       	push   $0x418044
40c30f:	ff 15 44 70 41 00    	call   *0x417044
40c315:	85 c0                	test   %eax,%eax
40c317:	74 1a                	je     0x40c333
40c319:	68 34 80 41 00       	push   $0x418034
40c31e:	50                   	push   %eax
40c31f:	ff 15 ec 70 41 00    	call   *0x4170ec
40c325:	85 c0                	test   %eax,%eax
40c327:	74 0a                	je     0x40c333
40c329:	ff 74 24 08          	push   0x8(%esp)
40c32d:	ff d0                	call   *%eax
40c32f:	89 44 24 08          	mov    %eax,0x8(%esp)
40c333:	8b 44 24 08          	mov    0x8(%esp),%eax
40c337:	5e                   	pop    %esi
40c338:	c3                   	ret
40c339:	6a 00                	push   $0x0
40c33b:	e8 96 ff ff ff       	call   0x40c2d6
40c340:	59                   	pop    %ecx
40c341:	c3                   	ret
40c342:	56                   	push   %esi
40c343:	ff 35 7c c9 41 00    	push   0x41c97c
40c349:	8b 35 f0 70 41 00    	mov    0x4170f0,%esi
40c34f:	ff d6                	call   *%esi
40c351:	85 c0                	test   %eax,%eax
40c353:	74 21                	je     0x40c376
40c355:	a1 78 c9 41 00       	mov    0x41c978,%eax
40c35a:	83 f8 ff             	cmp    $0xffffffff,%eax
40c35d:	74 17                	je     0x40c376
40c35f:	50                   	push   %eax
40c360:	ff 35 7c c9 41 00    	push   0x41c97c
40c366:	ff d6                	call   *%esi
40c368:	ff d0                	call   *%eax
40c36a:	85 c0                	test   %eax,%eax
40c36c:	74 08                	je     0x40c376
40c36e:	8b 80 fc 01 00 00    	mov    0x1fc(%eax),%eax
40c374:	eb 1b                	jmp    0x40c391
40c376:	68 44 80 41 00       	push   $0x418044
40c37b:	ff 15 44 70 41 00    	call   *0x417044
40c381:	85 c0                	test   %eax,%eax
40c383:	74 1a                	je     0x40c39f
40c385:	68 54 80 41 00       	push   $0x418054
40c38a:	50                   	push   %eax
40c38b:	ff 15 ec 70 41 00    	call   *0x4170ec
40c391:	85 c0                	test   %eax,%eax
40c393:	74 0a                	je     0x40c39f
40c395:	ff 74 24 08          	push   0x8(%esp)
40c399:	ff d0                	call   *%eax
40c39b:	89 44 24 08          	mov    %eax,0x8(%esp)
40c39f:	8b 44 24 08          	mov    0x8(%esp),%eax
40c3a3:	5e                   	pop    %esi
40c3a4:	c3                   	ret
40c3a5:	ff 15 f4 70 41 00    	call   *0x4170f4
40c3ab:	c2 04 00             	ret    $0x4
40c3ae:	ff 35 7c c9 41 00    	push   0x41c97c
40c3b4:	ff 15 f0 70 41 00    	call   *0x4170f0
40c3ba:	85 c0                	test   %eax,%eax
40c3bc:	75 19                	jne    0x40c3d7
40c3be:	ff 35 4c dd 41 00    	push   0x41dd4c
40c3c4:	e8 79 ff ff ff       	call   0x40c342
40c3c9:	59                   	pop    %ecx
40c3ca:	50                   	push   %eax
40c3cb:	ff 35 7c c9 41 00    	push   0x41c97c
40c3d1:	ff 15 f8 70 41 00    	call   *0x4170f8
40c3d7:	c3                   	ret
40c3d8:	a1 78 c9 41 00       	mov    0x41c978,%eax
40c3dd:	83 f8 ff             	cmp    $0xffffffff,%eax
40c3e0:	74 16                	je     0x40c3f8
40c3e2:	50                   	push   %eax
40c3e3:	ff 35 54 dd 41 00    	push   0x41dd54
40c3e9:	e8 54 ff ff ff       	call   0x40c342
40c3ee:	59                   	pop    %ecx
40c3ef:	ff d0                	call   *%eax
40c3f1:	83 0d 78 c9 41 00 ff 	orl    $0xffffffff,0x41c978
40c3f8:	a1 7c c9 41 00       	mov    0x41c97c,%eax
40c3fd:	83 f8 ff             	cmp    $0xffffffff,%eax
40c400:	74 0e                	je     0x40c410
40c402:	50                   	push   %eax
40c403:	ff 15 fc 70 41 00    	call   *0x4170fc