40bfa4:	e8 80 47 04 00       	call   0x450729
40bfa9:	66 83 3e 0d          	cmpw   $0xd,(%esi)
40bfad:	b8 1c 5d 49 00       	mov    $0x495d1c,%eax
40bfb2:	74 05                	je     0x40bfb9
40bfb4:	b8 0c 4e 49 00       	mov    $0x494e0c,%eax
40bfb9:	8d 7e 08             	lea    0x8(%esi),%edi
40bfbc:	57                   	push   %edi
40bfbd:	50                   	push   %eax
40bfbe:	6a 17                	push   $0x17
40bfc0:	53                   	push   %ebx
40bfc1:	8b 1d e8 0a 4b 00    	mov    0x4b0ae8,%ebx
40bfc7:	8d 45 dc             	lea    -0x24(%ebp),%eax
40bfca:	50                   	push   %eax
40bfcb:	ff d3                	call   *%ebx
40bfcd:	3d 57 00 07 80       	cmp    $0x80070057,%eax
40bfd2:	75 1c                	jne    0x40bff0
40bfd4:	66 83 3e 0d          	cmpw   $0xd,(%esi)
40bfd8:	b8 1c 5d 49 00       	mov    $0x495d1c,%eax
40bfdd:	74 05                	je     0x40bfe4
40bfdf:	b8 0c 4e 49 00       	mov    $0x494e0c,%eax
40bfe4:	57                   	push   %edi
40bfe5:	50                   	push   %eax
40bfe6:	6a 07                	push   $0x7
40bfe8:	6a 00                	push   $0x0
40bfea:	8d 45 dc             	lea    -0x24(%ebp),%eax
40bfed:	50                   	push   %eax
40bfee:	ff d3                	call   *%ebx
40bff0:	50                   	push   %eax
40bff1:	e8 9e dd ff ff       	call   0x409d94
40bff6:	8b 07                	mov    (%edi),%eax
40bff8:	8b 08                	mov    (%eax),%ecx
40bffa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bffe:	8d 55 d8             	lea    -0x28(%ebp),%edx
40c001:	52                   	push   %edx
40c002:	68 bc 61 49 00       	push   $0x4961bc
40c007:	50                   	push   %eax
40c008:	ff 11                	call   *(%ecx)
40c00a:	85 c0                	test   %eax,%eax
40c00c:	7d 10                	jge    0x40c01e
40c00e:	8b 3f                	mov    (%edi),%edi
40c010:	8b 07                	mov    (%edi),%eax
40c012:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40c015:	51                   	push   %ecx
40c016:	68 1c 64 49 00       	push   $0x49641c
40c01b:	57                   	push   %edi
40c01c:	ff 10                	call   *(%eax)
40c01e:	50                   	push   %eax
40c01f:	e8 70 dd ff ff       	call   0x409d94
40c024:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c027:	8b 08                	mov    (%eax),%ecx
40c029:	8d 55 d0             	lea    -0x30(%ebp),%edx
40c02c:	52                   	push   %edx
40c02d:	50                   	push   %eax
40c02e:	ff 51 14             	call   *0x14(%ecx)
40c031:	50                   	push   %eax
40c032:	e8 5d dd ff ff       	call   0x409d94
40c037:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c03a:	8b 08                	mov    (%eax),%ecx
40c03c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c040:	50                   	push   %eax
40c041:	ff 51 08             	call   *0x8(%ecx)
40c044:	8b 45 08             	mov    0x8(%ebp),%eax
40c047:	e9 05 ff ff ff       	jmp    0x40bf51
40c04c:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c04f:	85 c0                	test   %eax,%eax
40c051:	74 06                	je     0x40c059
40c053:	8b 08                	mov    (%eax),%ecx
40c055:	50                   	push   %eax
40c056:	ff 51 08             	call   *0x8(%ecx)
40c059:	8b 45 0c             	mov    0xc(%ebp),%eax
40c05c:	8b 40 08             	mov    0x8(%eax),%eax
40c05f:	8b 08                	mov    (%eax),%ecx
40c061:	50                   	push   %eax
40c062:	ff 51 08             	call   *0x8(%ecx)
40c065:	6a 00                	push   $0x0
40c067:	6a 00                	push   $0x0
40c069:	e8 e9 b4 00 00       	call   0x417557
40c06e:	4f                   	dec    %edi
40c06f:	bf 40 00 4f bf       	mov    $0xbf4f0040,%edi
40c074:	40                   	inc    %eax
40c075:	00 9d be 40 00 bd    	add    %bl,-0x42ffbf42(%ebp)
40c07b:	be 40 00 04 bf       	mov    $0xbf040040,%esi
40c080:	40                   	inc    %eax
40c081:	00 11                	add    %dl,(%ecx)
40c083:	bf 40 00 f4 be       	mov    $0xbef40040,%edi
40c088:	40                   	inc    %eax
40c089:	00 11                	add    %dl,(%ecx)
40c08b:	bf 40 00 1e bf       	mov    $0xbf1e0040,%edi
40c090:	40                   	inc    %eax
40c091:	00 6f bf             	add    %ch,-0x41(%edi)
40c094:	40                   	inc    %eax
40c095:	00 bd be 40 00 9d    	add    %bh,-0x62ffbf42(%ebp)
40c09b:	be 40 00 4f bf       	mov    $0xbf4f0040,%esi
40c0a0:	40                   	inc    %eax
40c0a1:	00 6f bf             	add    %ch,-0x41(%edi)
40c0a4:	40                   	inc    %eax
40c0a5:	00 4f bf             	add    %cl,-0x41(%edi)
40c0a8:	40                   	inc    %eax
40c0a9:	00 4f bf             	add    %cl,-0x41(%edi)
40c0ac:	40                   	inc    %eax
40c0ad:	00 ad be 40 00 ad    	add    %ch,-0x52ffbf42(%ebp)
40c0b3:	be 40 00 9d be       	mov    $0xbe9d0040,%esi
40c0b8:	40                   	inc    %eax
40c0b9:	00 cd                	add    %cl,%ch
40c0bb:	be 40 00 da be       	mov    $0xbeda0040,%esi
40c0c0:	40                   	inc    %eax
40c0c1:	00 e7                	add    %ah,%bh
40c0c3:	be 40 00 55 8b       	mov    $0x8b550040,%esi
40c0c8:	ec                   	in     (%dx),%al
40c0c9:	56                   	push   %esi
40c0ca:	8b 75 10             	mov    0x10(%ebp),%esi
40c0cd:	57                   	push   %edi
40c0ce:	8b 7d 08             	mov    0x8(%ebp),%edi
40c0d1:	8b 47 18             	mov    0x18(%edi),%eax
40c0d4:	f7 d0                	not    %eax
40c0d6:	a8 01                	test   $0x1,%al
40c0d8:	74 23                	je     0x40c0fd
40c0da:	85 f6                	test   %esi,%esi
40c0dc:	74 33                	je     0x40c111
40c0de:	83 ec 10             	sub    $0x10,%esp
40c0e1:	8b cc                	mov    %esp,%ecx
40c0e3:	89 65 10             	mov    %esp,0x10(%ebp)
40c0e6:	ff 75 0c             	push   0xc(%ebp)
40c0e9:	e8 e0 e7 ff ff       	call   0x40a8ce
40c0ee:	57                   	push   %edi
40c0ef:	e8 35 fb ff ff       	call   0x40bc29
40c0f4:	83 45 0c 10          	addl   $0x10,0xc(%ebp)
40c0f8:	4e                   	dec    %esi
40c0f9:	75 e3                	jne    0x40c0de
40c0fb:	eb 14                	jmp    0x40c111
40c0fd:	85 f6                	test   %esi,%esi
40c0ff:	74 10                	je     0x40c111
40c101:	ff 75 0c             	push   0xc(%ebp)
40c104:	57                   	push   %edi
40c105:	e8 3d fd ff ff       	call   0x40be47
40c10a:	83 45 0c 10          	addl   $0x10,0xc(%ebp)
40c10e:	4e                   	dec    %esi
40c10f:	75 f0                	jne    0x40c101
40c111:	5f                   	pop    %edi
40c112:	5e                   	pop    %esi
40c113:	5d                   	pop    %ebp
40c114:	c2 0c 00             	ret    $0xc
40c117:	56                   	push   %esi
40c118:	ff 74 24 0c          	push   0xc(%esp)
40c11c:	8b f1                	mov    %ecx,%esi
40c11e:	ff 74 24 0c          	push   0xc(%esp)
40c122:	e8 a0 f7 ff ff       	call   0x40b8c7
40c127:	83 66 08 00          	andl   $0x0,0x8(%esi)
40c12b:	8b c6                	mov    %esi,%eax
40c12d:	5e                   	pop    %esi
40c12e:	c2 08 00             	ret    $0x8
40c131:	b8 0f 31 48 00       	mov    $0x48310f,%eax
40c136:	e8 41 bb 00 00       	call   0x417c7c
40c13b:	51                   	push   %ecx
40c13c:	51                   	push   %ecx
40c13d:	53                   	push   %ebx
40c13e:	56                   	push   %esi
40c13f:	57                   	push   %edi
40c140:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c146:	8b 7d 08             	mov    0x8(%ebp),%edi
40c149:	ff 75 0c             	push   0xc(%ebp)
40c14c:	8b cf                	mov    %edi,%ecx
40c14e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c151:	e8 42 9c 04 00       	call   0x455d98
40c156:	8b 4f 04             	mov    0x4(%edi),%ecx
40c159:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c15c:	50                   	push   %eax
40c15d:	ff 75 0c             	push   0xc(%ebp)
40c160:	e8 9b 49 03 00       	call   0x440b00
40c165:	33 db                	xor    %ebx,%ebx
40c167:	39 1f                	cmp    %ebx,(%edi)
40c169:	0f 84 8d 00 00 00    	je     0x40c1fc
40c16f:	ff 75 f0             	push   -0x10(%ebp)
40c172:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c178:	8b f0                	mov    %eax,%esi
40c17a:	e8 77 40 03 00       	call   0x4401f6
40c17f:	8b 10                	mov    (%eax),%edx
40c181:	8b c8                	mov    %eax,%ecx
40c183:	ff 52 0c             	call   *0xc(%edx)
40c186:	83 c0 10             	add    $0x10,%eax
40c189:	89 45 0c             	mov    %eax,0xc(%ebp)
40c18c:	8d 46 01             	lea    0x1(%esi),%eax
40c18f:	50                   	push   %eax
40c190:	56                   	push   %esi
40c191:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c194:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c197:	e8 ae 4f ff ff       	call   0x40114a
40c19c:	50                   	push   %eax
40c19d:	ff 75 f0             	push   -0x10(%ebp)
40c1a0:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c1a6:	6a ff                	push   $0xffffffff
40c1a8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c1ab:	e8 77 4f ff ff       	call   0x401127
40c1b0:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c1b3:	e8 9e 0c 06 00       	call   0x46ce56
40c1b8:	ff 75 10             	push   0x10(%ebp)
40c1bb:	8b f0                	mov    %eax,%esi
40c1bd:	53                   	push   %ebx
40c1be:	ff 15 ac 03 4b 00    	call   *0x4b03ac
40c1c4:	50                   	push   %eax
40c1c5:	56                   	push   %esi
40c1c6:	ff 15 84 04 4b 00    	call   *0x4b0484
40c1cc:	56                   	push   %esi
40c1cd:	89 45 10             	mov    %eax,0x10(%ebp)
40c1d0:	ff 15 08 05 4b 00    	call   *0x4b0508
40c1d6:	39 5d 10             	cmp    %ebx,0x10(%ebp)
40c1d9:	7d 14                	jge    0x40c1ef
40c1db:	6a ff                	push   $0xffffffff
40c1dd:	53                   	push   %ebx
40c1de:	68 11 f1 00 00       	push   $0xf111
40c1e3:	e8 d5 96 04 00       	call   0x4558bd
40c1e8:	8b cf                	mov    %edi,%ecx
40c1ea:	e8 db 97 04 00       	call   0x4559ca
40c1ef:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c1f2:	83 c1 f0             	add    $0xfffffff0,%ecx
40c1f5:	e8 58 51 ff ff       	call   0x401352
40c1fa:	eb 59                	jmp    0x40c255
40c1fc:	8d 45 0c             	lea    0xc(%ebp),%eax
40c1ff:	50                   	push   %eax
40c200:	53                   	push   %ebx
40c201:	ff 15 ac 03 4b 00    	call   *0x4b03ac
40c207:	50                   	push   %eax
40c208:	ff 75 10             	push   0x10(%ebp)
40c20b:	ff 15 88 04 4b 00    	call   *0x4b0488
40c211:	85 c0                	test   %eax,%eax
40c213:	7c 40                	jl     0x40c255
40c215:	8b 7d 0c             	mov    0xc(%ebp),%edi
40c218:	3b fb                	cmp    %ebx,%edi
40c21a:	74 27                	je     0x40c243
40c21c:	57                   	push   %edi
40c21d:	ff 15 90 03 4b 00    	call   *0x4b0390
40c223:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
40c227:	8b c6                	mov    %esi,%eax
40c229:	83 c0 03             	add    $0x3,%eax
40c22c:	83 e0 fc             	and    $0xfffffffc,%eax
40c22f:	e8 bc a4 00 00       	call   0x4166f0
40c234:	8b c4                	mov    %esp,%eax
40c236:	ff 75 ec             	push   -0x14(%ebp)
40c239:	56                   	push   %esi
40c23a:	57                   	push   %edi
40c23b:	50                   	push   %eax
40c23c:	e8 ae a1 ff ff       	call   0x4063ef
40c241:	8b d8                	mov    %eax,%ebx
40c243:	ff 75 0c             	push   0xc(%ebp)
40c246:	ff 15 08 05 4b 00    	call   *0x4b0508
40c24c:	53                   	push   %ebx
40c24d:	ff 75 f0             	push   -0x10(%ebp)
40c250:	e8 de 4f 04 00       	call   0x451233
40c255:	8d 65 e0             	lea    -0x20(%ebp),%esp
40c258:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c25b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c262:	5f                   	pop    %edi
40c263:	5e                   	pop    %esi
40c264:	5b                   	pop    %ebx
40c265:	c9                   	leave
40c266:	c2 0c 00             	ret    $0xc
40c269:	b8 21 31 48 00       	mov    $0x483121,%eax
40c26e:	e8 09 ba 00 00       	call   0x417c7c
40c273:	81 ec 8c 00 00 00    	sub    $0x8c,%esp
40c279:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
40c27e:	53                   	push   %ebx
40c27f:	56                   	push   %esi
40c280:	57                   	push   %edi
40c281:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c284:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c28a:	8b 7d 08             	mov    0x8(%ebp),%edi
40c28d:	ff 75 0c             	push   0xc(%ebp)
40c290:	8b cf                	mov    %edi,%ecx
40c292:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
40c298:	e8 fb 9a 04 00       	call   0x455d98
40c29d:	8b 4f 04             	mov    0x4(%edi),%ecx
40c2a0:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40c2a6:	50                   	push   %eax
40c2a7:	ff 75 0c             	push   0xc(%ebp)
40c2aa:	e8 51 48 03 00       	call   0x440b00
40c2af:	83 3f 00             	cmpl   $0x0,(%edi)
40c2b2:	0f 84 a8 00 00 00    	je     0x40c360
40c2b8:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40c2be:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c2c4:	8b f0                	mov    %eax,%esi
40c2c6:	e8 2b 3f 03 00       	call   0x4401f6
40c2cb:	8b 10                	mov    (%eax),%edx
40c2cd:	8b c8                	mov    %eax,%ecx
40c2cf:	ff 52 0c             	call   *0xc(%edx)
40c2d2:	83 c0 10             	add    $0x10,%eax
40c2d5:	89 45 0c             	mov    %eax,0xc(%ebp)
40c2d8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c2dc:	8d 46 01             	lea    0x1(%esi),%eax
40c2df:	50                   	push   %eax
40c2e0:	56                   	push   %esi
40c2e1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c2e4:	e8 61 4e ff ff       	call   0x40114a
40c2e9:	50                   	push   %eax
40c2ea:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40c2f0:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c2f6:	6a ff                	push   $0xffffffff
40c2f8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c2fb:	e8 27 4e ff ff       	call   0x401127
40c300:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c303:	85 db                	test   %ebx,%ebx
40c305:	75 04                	jne    0x40c30b
40c307:	33 c0                	xor    %eax,%eax
40c309:	eb 28                	jmp    0x40c333
40c30b:	53                   	push   %ebx
40c30c:	ff 15 88 03 4b 00    	call   *0x4b0388
40c312:	8b f0                	mov    %eax,%esi
40c314:	46                   	inc    %esi
40c315:	8d 04 36             	lea    (%esi,%esi,1),%eax
40c318:	83 c0 03             	add    $0x3,%eax
40c31b:	83 e0 fc             	and    $0xfffffffc,%eax
40c31e:	e8 cd a3 00 00       	call   0x4166f0
40c323:	8b c4                	mov    %esp,%eax
40c325:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
40c32b:	56                   	push   %esi
40c32c:	53                   	push   %ebx
40c32d:	50                   	push   %eax
40c32e:	e8 85 a0 ff ff       	call   0x4063b8
40c333:	ff 75 10             	push   0x10(%ebp)
40c336:	50                   	push   %eax
40c337:	ff 15 28 0b 4b 00    	call   *0x4b0b28
40c33d:	85 c0                	test   %eax,%eax
40c33f:	7d 15                	jge    0x40c356
40c341:	6a ff                	push   $0xffffffff
40c343:	6a 00                	push   $0x0
40c345:	68 1a f1 00 00       	push   $0xf11a
40c34a:	e8 6e 95 04 00       	call   0x4558bd
40c34f:	8b cf                	mov    %edi,%ecx
40c351:	e8 74 96 04 00       	call   0x4559ca
40c356:	8d 4b f0             	lea    -0x10(%ebx),%ecx
40c359:	e8 f4 4f ff ff       	call   0x401352
40c35e:	eb 52                	jmp    0x40c3b2
40c360:	6a 40                	push   $0x40
40c362:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
40c368:	50                   	push   %eax
40c369:	ff 75 10             	push   0x10(%ebp)
40c36c:	ff 15 34 0b 4b 00    	call   *0x4b0b34
40c372:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
40c378:	50                   	push   %eax
40c379:	ff 15 90 03 4b 00    	call   *0x4b0390
40c37f:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
40c383:	8b c6                	mov    %esi,%eax
40c385:	83 c0 03             	add    $0x3,%eax
40c388:	83 e0 fc             	and    $0xfffffffc,%eax
40c38b:	e8 60 a3 00 00       	call   0x4166f0
40c390:	8b c4                	mov    %esp,%eax
40c392:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
40c398:	8d 8d 70 ff ff ff    	lea    -0x90(%ebp),%ecx
40c39e:	56                   	push   %esi
40c39f:	51                   	push   %ecx
40c3a0:	50                   	push   %eax