46e0ec:	5d                   	pop    %ebp
46e0ed:	c2 08 00             	ret    $0x8
46e0f0:	55                   	push   %ebp
46e0f1:	8b ec                	mov    %esp,%ebp
46e0f3:	83 e4 f8             	and    $0xfffffff8,%esp
46e0f6:	83 ec 14             	sub    $0x14,%esp
46e0f9:	8d 4c 24 04          	lea    0x4(%esp),%ecx
46e0fd:	53                   	push   %ebx
46e0fe:	56                   	push   %esi
46e0ff:	57                   	push   %edi
46e100:	e8 c2 96 f9 ff       	call   0x4077c7
46e105:	8b 5d 08             	mov    0x8(%ebp),%ebx
46e108:	8b 43 04             	mov    0x4(%ebx),%eax
46e10b:	8b 30                	mov    (%eax),%esi
46e10d:	8b ce                	mov    %esi,%ecx
46e10f:	e8 83 b8 f9 ff       	call   0x409997
46e114:	8b 4e 08             	mov    0x8(%esi),%ecx
46e117:	8d 54 24 10          	lea    0x10(%esp),%edx
46e11b:	e8 8e 67 f9 ff       	call   0x4048ae
46e120:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46e124:	e8 4a 5d ff ff       	call   0x463e73
46e129:	84 c0                	test   %al,%al
46e12b:	75 12                	jne    0x46e13f
46e12d:	8b 75 0c             	mov    0xc(%ebp),%esi
46e130:	8b ce                	mov    %esi,%ecx
46e132:	e8 e9 b8 f9 ff       	call   0x409a20
46e137:	83 26 00             	andl   $0x0,(%esi)
46e13a:	e9 83 00 00 00       	jmp    0x46e1c2
46e13f:	83 7b 08 02          	cmpl   $0x2,0x8(%ebx)
46e143:	74 40                	je     0x46e185
46e145:	83 7b 08 03          	cmpl   $0x3,0x8(%ebx)
46e149:	75 11                	jne    0x46e15c
46e14b:	8b 4b 04             	mov    0x4(%ebx),%ecx
46e14e:	6a 29                	push   $0x29
46e150:	8b 49 08             	mov    0x8(%ecx),%ecx
46e153:	e8 56 bc f9 ff       	call   0x409dae
46e158:	84 c0                	test   %al,%al
46e15a:	75 29                	jne    0x46e185
46e15c:	8b 43 04             	mov    0x4(%ebx),%eax
46e15f:	8b 70 08             	mov    0x8(%eax),%esi
46e162:	8b ce                	mov    %esi,%ecx
46e164:	e8 2e b8 f9 ff       	call   0x409997
46e169:	8b 46 08             	mov    0x8(%esi),%eax
46e16c:	8b 38                	mov    (%eax),%edi
46e16e:	8b 43 04             	mov    0x4(%ebx),%eax
46e171:	8b 70 04             	mov    0x4(%eax),%esi
46e174:	8b ce                	mov    %esi,%ecx
46e176:	e8 1c b8 f9 ff       	call   0x409997
46e17b:	ff 74 24 10          	push   0x10(%esp)
46e17f:	33 db                	xor    %ebx,%ebx
46e181:	53                   	push   %ebx
46e182:	57                   	push   %edi
46e183:	eb 15                	jmp    0x46e19a
46e185:	8b 43 04             	mov    0x4(%ebx),%eax
46e188:	8b 70 04             	mov    0x4(%eax),%esi
46e18b:	8b ce                	mov    %esi,%ecx
46e18d:	e8 05 b8 f9 ff       	call   0x409997
46e192:	ff 74 24 10          	push   0x10(%esp)
46e196:	33 db                	xor    %ebx,%ebx
46e198:	53                   	push   %ebx
46e199:	53                   	push   %ebx
46e19a:	8b 46 08             	mov    0x8(%esi),%eax
46e19d:	8b 35 98 f2 48 00    	mov    0x48f298,%esi
46e1a3:	ff 30                	push   (%eax)
46e1a5:	ff d6                	call   *%esi
46e1a7:	85 c0                	test   %eax,%eax
46e1a9:	74 0b                	je     0x46e1b6
46e1ab:	ff 74 24 10          	push   0x10(%esp)
46e1af:	53                   	push   %ebx
46e1b0:	53                   	push   %ebx
46e1b1:	53                   	push   %ebx
46e1b2:	ff d6                	call   *%esi
46e1b4:	eb 13                	jmp    0x46e1c9
46e1b6:	8b 75 0c             	mov    0xc(%ebp),%esi
46e1b9:	8b ce                	mov    %esi,%ecx
46e1bb:	e8 60 b8 f9 ff       	call   0x409a20
46e1c0:	89 1e                	mov    %ebx,(%esi)
46e1c2:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46e1c9:	8d 4c 24 10          	lea    0x10(%esp),%ecx
46e1cd:	e8 92 78 f9 ff       	call   0x405a64
46e1d2:	5f                   	pop    %edi
46e1d3:	5e                   	pop    %esi
46e1d4:	33 c0                	xor    %eax,%eax
46e1d6:	5b                   	pop    %ebx
46e1d7:	8b e5                	mov    %ebp,%esp
46e1d9:	5d                   	pop    %ebp
46e1da:	c2 08 00             	ret    $0x8
46e1dd:	55                   	push   %ebp
46e1de:	8b ec                	mov    %esp,%ebp
46e1e0:	83 ec 18             	sub    $0x18,%esp
46e1e3:	53                   	push   %ebx
46e1e4:	56                   	push   %esi
46e1e5:	57                   	push   %edi
46e1e6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46e1e9:	e8 d9 95 f9 ff       	call   0x4077c7
46e1ee:	68 fe ff 01 00       	push   $0x1fffe
46e1f3:	e8 fe 2d fb ff       	call   0x420ff6
46e1f8:	59                   	pop    %ecx
46e1f9:	50                   	push   %eax
46e1fa:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46e1fd:	e8 8c 71 f9 ff       	call   0x40538e
46e202:	8b 7d 08             	mov    0x8(%ebp),%edi
46e205:	8b 47 04             	mov    0x4(%edi),%eax
46e208:	8b 30                	mov    (%eax),%esi
46e20a:	8b ce                	mov    %esi,%ecx
46e20c:	e8 86 b7 f9 ff       	call   0x409997
46e211:	8b 4e 08             	mov    0x8(%esi),%ecx
46e214:	8d 55 e8             	lea    -0x18(%ebp),%edx
46e217:	e8 92 66 f9 ff       	call   0x4048ae
46e21c:	8b 47 04             	mov    0x4(%edi),%eax
46e21f:	8b 70 0c             	mov    0xc(%eax),%esi
46e222:	8b ce                	mov    %esi,%ecx
46e224:	e8 6e b7 f9 ff       	call   0x409997
46e229:	8b 46 08             	mov    0x8(%esi),%eax
46e22c:	8b 18                	mov    (%eax),%ebx
46e22e:	8b 47 04             	mov    0x4(%edi),%eax
46e231:	8b 70 08             	mov    0x8(%eax),%esi
46e234:	8b ce                	mov    %esi,%ecx
46e236:	e8 5c b7 f9 ff       	call   0x409997
46e23b:	8b 46 08             	mov    0x8(%esi),%eax
46e23e:	8b 38                	mov    (%eax),%edi
46e240:	8b 45 08             	mov    0x8(%ebp),%eax
46e243:	8b 40 04             	mov    0x4(%eax),%eax
46e246:	8b 70 04             	mov    0x4(%eax),%esi
46e249:	8b ce                	mov    %esi,%ecx
46e24b:	e8 47 b7 f9 ff       	call   0x409997
46e250:	ff 75 e8             	push   -0x18(%ebp)
46e253:	8b 46 08             	mov    0x8(%esi),%eax
46e256:	68 ff ff 00 00       	push   $0xffff
46e25b:	ff 75 f8             	push   -0x8(%ebp)
46e25e:	53                   	push   %ebx
46e25f:	57                   	push   %edi
46e260:	ff 30                	push   (%eax)
46e262:	ff 15 94 f2 48 00    	call   *0x48f294
46e268:	ff 75 f8             	push   -0x8(%ebp)
46e26b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46e26e:	e8 85 b9 f9 ff       	call   0x409bf8
46e273:	8b 45 fc             	mov    -0x4(%ebp),%eax
46e276:	5f                   	pop    %edi
46e277:	5e                   	pop    %esi
46e278:	5b                   	pop    %ebx
46e279:	ff 08                	decl   (%eax)
46e27b:	75 10                	jne    0x46e28d
46e27d:	50                   	push   %eax
46e27e:	e8 e9 2d fb ff       	call   0x42106c
46e283:	ff 75 f8             	push   -0x8(%ebp)
46e286:	e8 e1 2d fb ff       	call   0x42106c
46e28b:	59                   	pop    %ecx
46e28c:	59                   	pop    %ecx
46e28d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46e290:	e8 cf 77 f9 ff       	call   0x405a64
46e295:	33 c0                	xor    %eax,%eax
46e297:	8b e5                	mov    %ebp,%esp
46e299:	5d                   	pop    %ebp
46e29a:	c2 08 00             	ret    $0x8
46e29d:	55                   	push   %ebp
46e29e:	8b ec                	mov    %esp,%ebp
46e2a0:	83 e4 f8             	and    $0xfffffff8,%esp
46e2a3:	83 ec 74             	sub    $0x74,%esp
46e2a6:	53                   	push   %ebx
46e2a7:	56                   	push   %esi
46e2a8:	89 4c 24 20          	mov    %ecx,0x20(%esp)
46e2ac:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
46e2b0:	57                   	push   %edi
46e2b1:	e8 11 95 f9 ff       	call   0x4077c7
46e2b6:	8b 7d 08             	mov    0x8(%ebp),%edi
46e2b9:	8b 47 04             	mov    0x4(%edi),%eax
46e2bc:	8b 30                	mov    (%eax),%esi
46e2be:	8b ce                	mov    %esi,%ecx
46e2c0:	e8 d2 b6 f9 ff       	call   0x409997
46e2c5:	8b 4e 08             	mov    0x8(%esi),%ecx
46e2c8:	8d 54 24 50          	lea    0x50(%esp),%edx
46e2cc:	e8 dd 65 f9 ff       	call   0x4048ae
46e2d1:	68 fe ff 00 00       	push   $0xfffe
46e2d6:	e8 1b 2d fb ff       	call   0x420ff6
46e2db:	59                   	pop    %ecx
46e2dc:	50                   	push   %eax
46e2dd:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
46e2e1:	e8 a8 70 f9 ff       	call   0x40538e
46e2e6:	8b 47 04             	mov    0x4(%edi),%eax
46e2e9:	8b 70 04             	mov    0x4(%eax),%esi
46e2ec:	8b ce                	mov    %esi,%ecx
46e2ee:	e8 a4 b6 f9 ff       	call   0x409997
46e2f3:	ff 74 24 50          	push   0x50(%esp)
46e2f7:	8b 46 08             	mov    0x8(%esi),%eax
46e2fa:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
46e2fe:	68 ff 7f 00 00       	push   $0x7fff
46e303:	53                   	push   %ebx
46e304:	ff 30                	push   (%eax)
46e306:	ff 15 9c f2 48 00    	call   *0x48f29c
46e30c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
46e310:	85 c0                	test   %eax,%eax
46e312:	0f 84 78 02 00 00    	je     0x46e590
46e318:	6a 14                	push   $0x14
46e31a:	e8 d7 2c fb ff       	call   0x420ff6
46e31f:	8b f8                	mov    %eax,%edi
46e321:	33 db                	xor    %ebx,%ebx
46e323:	89 7c 24 24          	mov    %edi,0x24(%esp)
46e327:	59                   	pop    %ecx
46e328:	85 ff                	test   %edi,%edi
46e32a:	74 10                	je     0x46e33c
46e32c:	89 1f                	mov    %ebx,(%edi)
46e32e:	89 5f 04             	mov    %ebx,0x4(%edi)
46e331:	89 5f 08             	mov    %ebx,0x8(%edi)
46e334:	89 5f 0c             	mov    %ebx,0xc(%edi)
46e337:	89 5f 10             	mov    %ebx,0x10(%edi)
46e33a:	eb 06                	jmp    0x46e342
46e33c:	8b fb                	mov    %ebx,%edi
46e33e:	89 5c 24 20          	mov    %ebx,0x20(%esp)
46e342:	83 7c 24 1c 00       	cmpl   $0x0,0x1c(%esp)
46e347:	8b cf                	mov    %edi,%ecx
46e349:	8a c3                	mov    %bl,%al
46e34b:	89 4c 24 18          	mov    %ecx,0x18(%esp)
46e34f:	89 1f                	mov    %ebx,(%edi)
46e351:	8b f3                	mov    %ebx,%esi
46e353:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46e357:	88 44 24 0f          	mov    %al,0xf(%esp)
46e35b:	0f 8e 16 02 00 00    	jle    0x46e577
46e361:	8b 54 24 28          	mov    0x28(%esp),%edx
46e365:	0f b7 3c 72          	movzwl (%edx,%esi,2),%edi
46e369:	89 7c 24 14          	mov    %edi,0x14(%esp)
46e36d:	83 ff 3b             	cmp    $0x3b,%edi
46e370:	75 0f                	jne    0x46e381
46e372:	39 31                	cmp    %esi,(%ecx)
46e374:	75 0b                	jne    0x46e381
46e376:	b0 01                	mov    $0x1,%al
46e378:	88 44 24 0f          	mov    %al,0xf(%esp)
46e37c:	e9 92 00 00 00       	jmp    0x46e413
46e381:	66 83 7c 24 14 3d    	cmpw   $0x3d,0x14(%esp)
46e387:	75 18                	jne    0x46e3a1
46e389:	39 59 04             	cmp    %ebx,0x4(%ecx)
46e38c:	75 13                	jne    0x46e3a1
46e38e:	84 c0                	test   %al,%al
46e390:	75 0f                	jne    0x46e3a1
46e392:	8d 46 01             	lea    0x1(%esi),%eax
46e395:	89 71 04             	mov    %esi,0x4(%ecx)
46e398:	89 41 08             	mov    %eax,0x8(%ecx)
46e39b:	8a 44 24 0f          	mov    0xf(%esp),%al
46e39f:	eb 72                	jmp    0x46e413
46e3a1:	66 83 7c 24 14 00    	cmpw   $0x0,0x14(%esp)
46e3a7:	75 6a                	jne    0x46e413
46e3a9:	6a 0d                	push   $0xd
46e3ab:	5f                   	pop    %edi
46e3ac:	66 89 3c 72          	mov    %di,(%edx,%esi,2)
46e3b0:	39 59 08             	cmp    %ebx,0x8(%ecx)
46e3b3:	74 43                	je     0x46e3f8
46e3b5:	84 c0                	test   %al,%al
46e3b7:	75 3f                	jne    0x46e3f8
46e3b9:	ff 44 24 10          	incl   0x10(%esp)
46e3bd:	89 71 0c             	mov    %esi,0xc(%ecx)
46e3c0:	66 39 5c 72 02       	cmp    %bx,0x2(%edx,%esi,2)
46e3c5:	74 3f                	je     0x46e406
46e3c7:	6a 14                	push   $0x14
46e3c9:	e8 28 2c fb ff       	call   0x420ff6
46e3ce:	59                   	pop    %ecx
46e3cf:	8b c8                	mov    %eax,%ecx
46e3d1:	85 c9                	test   %ecx,%ecx
46e3d3:	74 10                	je     0x46e3e5
46e3d5:	89 19                	mov    %ebx,(%ecx)
46e3d7:	89 59 04             	mov    %ebx,0x4(%ecx)
46e3da:	89 59 08             	mov    %ebx,0x8(%ecx)
46e3dd:	89 59 0c             	mov    %ebx,0xc(%ecx)
46e3e0:	89 59 10             	mov    %ebx,0x10(%ecx)
46e3e3:	eb 02                	jmp    0x46e3e7
46e3e5:	8b cb                	mov    %ebx,%ecx
46e3e7:	8b 44 24 18          	mov    0x18(%esp),%eax
46e3eb:	8b 54 24 28          	mov    0x28(%esp),%edx
46e3ef:	89 4c 24 18          	mov    %ecx,0x18(%esp)
46e3f3:	89 48 10             	mov    %ecx,0x10(%eax)
46e3f6:	eb 09                	jmp    0x46e401
46e3f8:	89 59 0c             	mov    %ebx,0xc(%ecx)
46e3fb:	89 59 08             	mov    %ebx,0x8(%ecx)
46e3fe:	89 59 04             	mov    %ebx,0x4(%ecx)
46e401:	8d 46 01             	lea    0x1(%esi),%eax
46e404:	89 01                	mov    %eax,(%ecx)
46e406:	8a c3                	mov    %bl,%al
46e408:	88 44 24 0f          	mov    %al,0xf(%esp)
46e40c:	66 39 5c 72 02       	cmp    %bx,0x2(%edx,%esi,2)
46e411:	74 0b                	je     0x46e41e
46e413:	46                   	inc    %esi
46e414:	3b 74 24 1c          	cmp    0x1c(%esp),%esi
46e418:	0f 8c 47 ff ff ff    	jl     0x46e365
46e41e:	8b 74 24 10          	mov    0x10(%esp),%esi
46e422:	8b 7c 24 20          	mov    0x20(%esp),%edi
46e426:	85 f6                	test   %esi,%esi
46e428:	0f 8e 49 01 00 00    	jle    0x46e577
46e42e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46e431:	e8 f8 af f9 ff       	call   0x40942e
46e436:	8b 45 0c             	mov    0xc(%ebp),%eax
46e439:	83 78 0c 05          	cmpl   $0x5,0xc(%eax)
46e43d:	75 08                	jne    0x46e447
46e43f:	8b 08                	mov    (%eax),%ecx
46e441:	89 4c 24 10          	mov    %ecx,0x10(%esp)
46e445:	eb 06                	jmp    0x46e44d
46e447:	8b cb                	mov    %ebx,%ecx
46e449:	89 5c 24 10          	mov    %ebx,0x10(%esp)
46e44d:	6a 02                	push   $0x2
46e44f:	8d 46 01             	lea    0x1(%esi),%eax
46e452:	50                   	push   %eax
46e453:	6a 02                	push   $0x2
46e455:	51                   	push   %ecx
46e456:	e8 55 ad f9 ff       	call   0x4091b0
46e45b:	53                   	push   %ebx
46e45c:	53                   	push   %ebx
46e45d:	6a 02                	push   $0x2
46e45f:	8d 44 24 4c          	lea    0x4c(%esp),%eax
46e463:	89 74 24 4c          	mov    %esi,0x4c(%esp)
46e467:	50                   	push   %eax
46e468:	ff 74 24 30          	push   0x30(%esp)
46e46c:	89 5c 24 5c          	mov    %ebx,0x5c(%esp)
46e470:	c7 44 24 60 01 00 00 	movl   $0x1,0x60(%esp)
46e477:	00
46e478:	e8 c3 ab f9 ff       	call   0x409040
46e47d:	83 c4 24             	add    $0x24,%esp
46e480:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e484:	e8 97 b5 f9 ff       	call   0x409a20
46e489:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46e48d:	e8 35 93 f9 ff       	call   0x4077c7
46e492:	8d 4c 24 30          	lea    0x30(%esp),%ecx
46e496:	e8 2c 93 f9 ff       	call   0x4077c7
46e49b:	85 f6                	test   %esi,%esi
46e49d:	0f 8e c0 00 00 00    	jle    0x46e563
46e4a3:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
46e4aa:	00
46e4ab:	6a ff                	push   $0xffffffff
46e4ad:	53                   	push   %ebx
46e4ae:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46e4b2:	e8 d5 99 f9 ff       	call   0x407e8c
46e4b7:	8b 47 04             	mov    0x4(%edi),%eax
46e4ba:	8d 4c 24 40          	lea    0x40(%esp),%ecx
46e4be:	2b 07                	sub    (%edi),%eax
46e4c0:	50                   	push   %eax
46e4c1:	ff 37                	push   (%edi)
46e4c3:	ff 74 24 30          	push   0x30(%esp)
46e4c7:	e8 e1 93 f9 ff       	call   0x4078ad
46e4cc:	8d 44 24 40          	lea    0x40(%esp),%eax
46e4d0:	50                   	push   %eax
46e4d1:	8d 4c 24 64          	lea    0x64(%esp),%ecx
46e4d5:	e8 10 af f9 ff       	call   0x4093ea
46e4da:	53                   	push   %ebx
46e4db:	ff 74 24 18          	push   0x18(%esp)
46e4df:	8d 44 24 68          	lea    0x68(%esp),%eax
46e4e3:	6a 02                	push   $0x2
46e4e5:	50                   	push   %eax
46e4e6:	ff 74 24 20          	push   0x20(%esp)
46e4ea:	e8 51 ab f9 ff       	call   0x409040
46e4ef:	83 c4 14             	add    $0x14,%esp
46e4f2:	8d 4c 24 60          	lea    0x60(%esp),%ecx
46e4f6:	e8 25 b5 f9 ff       	call   0x409a20
46e4fb:	6a ff                	push   $0xffffffff