409083:	53                   	push   %ebx
409084:	56                   	push   %esi
409085:	ff 75 08             	push   0x8(%ebp)
409088:	8b 35 10 a2 42 00    	mov    0x42a210,%esi
40908e:	ff d6                	call   *%esi
409090:	85 c0                	test   %eax,%eax
409092:	0f 95 c3             	setne  %bl
409095:	84 db                	test   %bl,%bl
409097:	75 26                	jne    0x4090bf
409099:	68 00 08 00 00       	push   $0x800
40909e:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
4090a4:	50                   	push   %eax
4090a5:	ff 75 08             	push   0x8(%ebp)
4090a8:	e8 ad 16 00 00       	call   0x40a75a
4090ad:	84 c0                	test   %al,%al
4090af:	74 0e                	je     0x4090bf
4090b1:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
4090b7:	50                   	push   %eax
4090b8:	ff d6                	call   *%esi
4090ba:	85 c0                	test   %eax,%eax
4090bc:	0f 95 c3             	setne  %bl
4090bf:	5e                   	pop    %esi
4090c0:	8a c3                	mov    %bl,%al
4090c2:	5b                   	pop    %ebx
4090c3:	c9                   	leave
4090c4:	c2 04 00             	ret    $0x4
4090c7:	55                   	push   %ebp
4090c8:	8b ec                	mov    %esp,%ebp
4090ca:	b8 24 10 00 00       	mov    $0x1024,%eax
4090cf:	e8 fc 13 01 00       	call   0x41a4d0
4090d4:	8b 45 0c             	mov    0xc(%ebp),%eax
4090d7:	53                   	push   %ebx
4090d8:	56                   	push   %esi
4090d9:	33 f6                	xor    %esi,%esi
4090db:	57                   	push   %edi
4090dc:	3b c6                	cmp    %esi,%eax
4090de:	74 0b                	je     0x4090eb
4090e0:	8b 08                	mov    (%eax),%ecx
4090e2:	0b 48 04             	or     0x4(%eax),%ecx
4090e5:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
4090e9:	75 04                	jne    0x4090ef
4090eb:	c6 45 fd 00          	movb   $0x0,-0x3(%ebp)
4090ef:	8b 45 10             	mov    0x10(%ebp),%eax
4090f2:	3b c6                	cmp    %esi,%eax
4090f4:	74 0b                	je     0x409101
4090f6:	8b 08                	mov    (%eax),%ecx
4090f8:	0b 48 04             	or     0x4(%eax),%ecx
4090fb:	c6 45 fe 01          	movb   $0x1,-0x2(%ebp)
4090ff:	75 04                	jne    0x409105
409101:	c6 45 fe 00          	movb   $0x0,-0x2(%ebp)
409105:	8b 45 14             	mov    0x14(%ebp),%eax
409108:	3b c6                	cmp    %esi,%eax
40910a:	74 0b                	je     0x409117
40910c:	8b 08                	mov    (%eax),%ecx
40910e:	0b 48 04             	or     0x4(%eax),%ecx
409111:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
409115:	75 04                	jne    0x40911b
409117:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40911b:	ff 75 08             	push   0x8(%ebp)
40911e:	e8 b0 fe ff ff       	call   0x408fd3
409123:	89 45 f4             	mov    %eax,-0xc(%ebp)
409126:	83 f8 ff             	cmp    $0xffffffff,%eax
409129:	0f 84 ff 00 00 00    	je     0x40922e
40912f:	a8 01                	test   $0x1,%al
409131:	0f 84 f7 00 00 00    	je     0x40922e
409137:	56                   	push   %esi
409138:	ff 75 08             	push   0x8(%ebp)
40913b:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40913f:	e8 db fe ff ff       	call   0x40901f
409144:	56                   	push   %esi
409145:	bb 00 00 00 02       	mov    $0x2000000,%ebx
40914a:	53                   	push   %ebx
40914b:	6a 03                	push   $0x3
40914d:	56                   	push   %esi
40914e:	8b 35 00 a2 42 00    	mov    0x42a200,%esi
409154:	6a 03                	push   $0x3
409156:	bf 00 00 00 40       	mov    $0x40000000,%edi
40915b:	57                   	push   %edi
40915c:	ff 75 08             	push   0x8(%ebp)
40915f:	ff d6                	call   *%esi
409161:	89 45 f8             	mov    %eax,-0x8(%ebp)
409164:	83 f8 ff             	cmp    $0xffffffff,%eax
409167:	75 3b                	jne    0x4091a4
409169:	68 00 08 00 00       	push   $0x800
40916e:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
409174:	50                   	push   %eax
409175:	ff 75 08             	push   0x8(%ebp)
409178:	e8 dd 15 00 00       	call   0x40a75a
40917d:	84 c0                	test   %al,%al
40917f:	0f 84 a2 00 00 00    	je     0x409227
409185:	6a 00                	push   $0x0
409187:	53                   	push   %ebx
409188:	6a 03                	push   $0x3
40918a:	6a 00                	push   $0x0
40918c:	6a 03                	push   $0x3
40918e:	57                   	push   %edi
40918f:	8d 85 dc ef ff ff    	lea    -0x1024(%ebp),%eax
409195:	50                   	push   %eax
409196:	ff d6                	call   *%esi
409198:	89 45 f8             	mov    %eax,-0x8(%ebp)
40919b:	83 f8 ff             	cmp    $0xffffffff,%eax
40919e:	0f 84 83 00 00 00    	je     0x409227
4091a4:	80 7d fd 00          	cmpb   $0x0,-0x3(%ebp)
4091a8:	74 0c                	je     0x4091b6
4091aa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4091ad:	8d 45 dc             	lea    -0x24(%ebp),%eax
4091b0:	50                   	push   %eax
4091b1:	e8 c4 7e 00 00       	call   0x41107a
4091b6:	80 7d fe 00          	cmpb   $0x0,-0x2(%ebp)
4091ba:	74 0c                	je     0x4091c8
4091bc:	8b 4d 10             	mov    0x10(%ebp),%ecx
4091bf:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4091c2:	50                   	push   %eax
4091c3:	e8 b2 7e 00 00       	call   0x41107a
4091c8:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4091cc:	74 0c                	je     0x4091da
4091ce:	8b 4d 14             	mov    0x14(%ebp),%ecx
4091d1:	8d 45 ec             	lea    -0x14(%ebp),%eax
4091d4:	50                   	push   %eax
4091d5:	e8 a0 7e 00 00       	call   0x41107a
4091da:	0f b6 45 fd          	movzbl -0x3(%ebp),%eax
4091de:	f7 d8                	neg    %eax
4091e0:	1b c0                	sbb    %eax,%eax
4091e2:	8d 4d dc             	lea    -0x24(%ebp),%ecx
4091e5:	23 c1                	and    %ecx,%eax
4091e7:	50                   	push   %eax
4091e8:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
4091ec:	f7 d8                	neg    %eax
4091ee:	1b c0                	sbb    %eax,%eax
4091f0:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4091f3:	23 c1                	and    %ecx,%eax
4091f5:	50                   	push   %eax
4091f6:	0f b6 45 fe          	movzbl -0x2(%ebp),%eax
4091fa:	f7 d8                	neg    %eax
4091fc:	1b c0                	sbb    %eax,%eax
4091fe:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
409201:	23 c1                	and    %ecx,%eax
409203:	50                   	push   %eax
409204:	ff 75 f8             	push   -0x8(%ebp)
409207:	ff 15 24 a1 42 00    	call   *0x42a124
40920d:	ff 75 f8             	push   -0x8(%ebp)
409210:	ff 15 1c a2 42 00    	call   *0x42a21c
409216:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40921a:	74 0b                	je     0x409227
40921c:	ff 75 f4             	push   -0xc(%ebp)
40921f:	ff 75 08             	push   0x8(%ebp)
409222:	e8 f8 fd ff ff       	call   0x40901f
409227:	5f                   	pop    %edi
409228:	5e                   	pop    %esi
409229:	5b                   	pop    %ebx
40922a:	c9                   	leave
40922b:	c2 10 00             	ret    $0x10
40922e:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
409232:	e9 0d ff ff ff       	jmp    0x409144
409237:	ff 74 24 04          	push   0x4(%esp)
40923b:	e8 93 fd ff ff       	call   0x408fd3
409240:	33 c9                	xor    %ecx,%ecx
409242:	83 f8 ff             	cmp    $0xffffffff,%eax
409245:	0f 95 c1             	setne  %cl
409248:	8a c1                	mov    %cl,%al
40924a:	c2 04 00             	ret    $0x4
40924d:	6a 00                	push   $0x0
40924f:	ff 74 24 08          	push   0x8(%esp)
409253:	e8 c7 fd ff ff       	call   0x40901f
409258:	c2 04 00             	ret    $0x4
40925b:	55                   	push   %ebp
40925c:	8b ec                	mov    %esp,%ebp
40925e:	b8 00 10 00 00       	mov    $0x1000,%eax
409263:	e8 68 12 01 00       	call   0x41a4d0
409268:	56                   	push   %esi
409269:	8b 35 04 a2 42 00    	mov    0x42a204,%esi
40926f:	57                   	push   %edi
409270:	8b 7d 08             	mov    0x8(%ebp),%edi
409273:	6a 00                	push   $0x0
409275:	57                   	push   %edi
409276:	ff d6                	call   *%esi
409278:	85 c0                	test   %eax,%eax
40927a:	75 2f                	jne    0x4092ab
40927c:	57                   	push   %edi
40927d:	e8 b5 ff ff ff       	call   0x409237
409282:	84 c0                	test   %al,%al
409284:	75 38                	jne    0x4092be
409286:	68 00 08 00 00       	push   $0x800
40928b:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
409291:	50                   	push   %eax
409292:	57                   	push   %edi
409293:	e8 c2 14 00 00       	call   0x40a75a
409298:	84 c0                	test   %al,%al
40929a:	74 22                	je     0x4092be
40929c:	6a 00                	push   $0x0
40929e:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
4092a4:	50                   	push   %eax
4092a5:	ff d6                	call   *%esi
4092a7:	85 c0                	test   %eax,%eax
4092a9:	74 13                	je     0x4092be
4092ab:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4092af:	74 09                	je     0x4092ba
4092b1:	ff 75 10             	push   0x10(%ebp)
4092b4:	57                   	push   %edi
4092b5:	e8 65 fd ff ff       	call   0x40901f
4092ba:	33 c0                	xor    %eax,%eax
4092bc:	eb 18                	jmp    0x4092d6
4092be:	ff 15 24 a2 42 00    	call   *0x42a224
4092c4:	83 f8 02             	cmp    $0x2,%eax
4092c7:	74 0a                	je     0x4092d3
4092c9:	83 f8 03             	cmp    $0x3,%eax
4092cc:	74 05                	je     0x4092d3
4092ce:	33 c0                	xor    %eax,%eax
4092d0:	40                   	inc    %eax
4092d1:	eb 03                	jmp    0x4092d6
4092d3:	6a 02                	push   $0x2
4092d5:	58                   	pop    %eax
4092d6:	5f                   	pop    %edi
4092d7:	5e                   	pop    %esi
4092d8:	c9                   	leave
4092d9:	c2 0c 00             	ret    $0xc
4092dc:	55                   	push   %ebp
4092dd:	8b ec                	mov    %esp,%ebp
4092df:	b8 04 10 00 00       	mov    $0x1004,%eax
4092e4:	e8 e7 11 01 00       	call   0x41a4d0
4092e9:	56                   	push   %esi
4092ea:	8b 75 08             	mov    0x8(%ebp),%esi
4092ed:	85 f6                	test   %esi,%esi
4092ef:	0f 84 b5 00 00 00    	je     0x4093aa
4092f5:	66 83 3e 00          	cmpw   $0x0,(%esi)
4092f9:	0f 84 ab 00 00 00    	je     0x4093aa
4092ff:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409303:	53                   	push   %ebx
409304:	b3 01                	mov    $0x1,%bl
409306:	89 75 08             	mov    %esi,0x8(%ebp)
409309:	57                   	push   %edi
40930a:	8b 7d fc             	mov    -0x4(%ebp),%edi
40930d:	d1 ff                	sar    $1,%edi
40930f:	81 ff 00 08 00 00    	cmp    $0x800,%edi
409315:	73 62                	jae    0x409379
409317:	8b 45 08             	mov    0x8(%ebp),%eax
40931a:	0f b7 00             	movzwl (%eax),%eax
40931d:	50                   	push   %eax
40931e:	e8 b4 0c 00 00       	call   0x409fd7
409323:	84 c0                	test   %al,%al
409325:	74 41                	je     0x409368
409327:	8d 46 04             	lea    0x4(%esi),%eax
40932a:	39 45 08             	cmp    %eax,0x8(%ebp)
40932d:	75 07                	jne    0x409336
40932f:	66 83 7e 02 3a       	cmpw   $0x3a,0x2(%esi)
409334:	74 32                	je     0x409368
409336:	57                   	push   %edi
409337:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
40933d:	56                   	push   %esi
40933e:	50                   	push   %eax
40933f:	e8 6d 30 01 00       	call   0x41c3b1
409344:	83 c4 0c             	add    $0xc,%esp
409347:	33 c0                	xor    %eax,%eax
409349:	50                   	push   %eax
40934a:	66 89 84 7d fc ef ff 	mov    %ax,-0x1004(%ebp,%edi,2)
409351:	ff
409352:	6a 01                	push   $0x1
409354:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
40935a:	50                   	push   %eax
40935b:	e8 fb fe ff ff       	call   0x40925b
409360:	8b d8                	mov    %eax,%ebx
409362:	f7 db                	neg    %ebx
409364:	1a db                	sbb    %bl,%bl
409366:	fe c3                	inc    %bl
409368:	83 45 08 02          	addl   $0x2,0x8(%ebp)
40936c:	8b 45 08             	mov    0x8(%ebp),%eax
40936f:	83 45 fc 02          	addl   $0x2,-0x4(%ebp)
409373:	66 83 38 00          	cmpw   $0x0,(%eax)
409377:	75 91                	jne    0x40930a
409379:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
40937d:	5f                   	pop    %edi
40937e:	75 25                	jne    0x4093a5
409380:	56                   	push   %esi
409381:	e8 16 0c 00 00       	call   0x409f9c
409386:	0f b7 00             	movzwl (%eax),%eax
409389:	50                   	push   %eax
40938a:	e8 48 0c 00 00       	call   0x409fd7
40938f:	84 c0                	test   %al,%al
409391:	75 12                	jne    0x4093a5
409393:	6a 00                	push   $0x0
409395:	6a 01                	push   $0x1
409397:	56                   	push   %esi
409398:	e8 be fe ff ff       	call   0x40925b
40939d:	8b d8                	mov    %eax,%ebx
40939f:	f7 db                	neg    %ebx
4093a1:	1a db                	sbb    %bl,%bl
4093a3:	fe c3                	inc    %bl
4093a5:	8a c3                	mov    %bl,%al
4093a7:	5b                   	pop    %ebx
4093a8:	eb 02                	jmp    0x4093ac
4093aa:	32 c0                	xor    %al,%al
4093ac:	5e                   	pop    %esi
4093ad:	c9                   	leave
4093ae:	c2 08 00             	ret    $0x8
4093b1:	8b c1                	mov    %ecx,%eax
4093b3:	83 88 04 10 00 00 ff 	orl    $0xffffffff,0x1004(%eax)
4093ba:	33 c9                	xor    %ecx,%ecx
4093bc:	66 89 08             	mov    %cx,(%eax)
4093bf:	c6 80 00 10 00 00 01 	movb   $0x1,0x1000(%eax)
4093c6:	c3                   	ret
4093c7:	8b 81 04 10 00 00    	mov    0x1004(%ecx),%eax
4093cd:	83 f8 ff             	cmp    $0xffffffff,%eax
4093d0:	74 07                	je     0x4093d9
4093d2:	50                   	push   %eax
4093d3:	ff 15 64 a0 42 00    	call   *0x42a064
4093d9:	c3                   	ret
4093da:	56                   	push   %esi
4093db:	ff 74 24 08          	push   0x8(%esp)
4093df:	8b f1                	mov    %ecx,%esi
4093e1:	56                   	push   %esi
4093e2:	e8 ec 0d 01 00       	call   0x41a1d3
4093e7:	59                   	pop    %ecx
4093e8:	59                   	pop    %ecx
4093e9:	c6 86 00 10 00 00 01 	movb   $0x1,0x1000(%esi)
4093f0:	5e                   	pop    %esi
4093f1:	c2 04 00             	ret    $0x4
4093f4:	55                   	push   %ebp
4093f5:	8b ec                	mov    %esp,%ebp
4093f7:	b8 50 12 00 00       	mov    $0x1250,%eax
4093fc:	e8 cf 10 01 00       	call   0x41a4d0
409401:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
409405:	53                   	push   %ebx
409406:	56                   	push   %esi
409407:	8b 75 10             	mov    0x10(%ebp),%esi
40940a:	57                   	push   %edi
40940b:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
409411:	bf 00 08 00 00       	mov    $0x800,%edi
409416:	50                   	push   %eax
409417:	75 6a                	jne    0x409483
409419:	ff 75 0c             	push   0xc(%ebp)
40941c:	8b 1d 6c a0 42 00    	mov    0x42a06c,%ebx
409422:	ff d3                	call   *%ebx
409424:	89 45 08             	mov    %eax,0x8(%ebp)
409427:	83 f8 ff             	cmp    $0xffffffff,%eax
40942a:	0f 85 80 00 00 00    	jne    0x4094b0
409430:	57                   	push   %edi
409431:	8d 85 b0 ed ff ff    	lea    -0x1250(%ebp),%eax
409437:	50                   	push   %eax
409438:	ff 75 0c             	push   0xc(%ebp)
40943b:	e8 1a 13 00 00       	call   0x40a75a
409440:	84 c0                	test   %al,%al
409442:	74 18                	je     0x40945c
409444:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
40944a:	50                   	push   %eax
40944b:	8d 85 b0 ed ff ff    	lea    -0x1250(%ebp),%eax
409451:	50                   	push   %eax
409452:	ff d3                	call   *%ebx
409454:	89 45 08             	mov    %eax,0x8(%ebp)
409457:	83 f8 ff             	cmp    $0xffffffff,%eax
40945a:	75 54                	jne    0x4094b0