403242:	ff 46 08             	incl   0x8(%esi)
403245:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403249:	e8 28 00 00 00       	call   0x403276
40324e:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
403252:	75 17                	jne    0x40326b
403254:	8d 5e 0c             	lea    0xc(%esi),%ebx
403257:	53                   	push   %ebx
403258:	ff 15 74 f0 40 00    	call   *0x40f074
40325e:	f6 46 04 01          	testb  $0x1,0x4(%esi)
403262:	74 1b                	je     0x40327f
403264:	53                   	push   %ebx
403265:	ff 15 78 f0 40 00    	call   *0x40f078
40326b:	83 c6 40             	add    $0x40,%esi
40326e:	eb 83                	jmp    0x4031f3
403270:	8b 7d d8             	mov    -0x28(%ebp),%edi
403273:	8b 75 e0             	mov    -0x20(%ebp),%esi
403276:	6a 0a                	push   $0xa
403278:	e8 43 3a 00 00       	call   0x406cc0
40327d:	59                   	pop    %ecx
40327e:	c3                   	ret
40327f:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
403283:	75 e6                	jne    0x40326b
403285:	c6 46 04 01          	movb   $0x1,0x4(%esi)
403289:	83 0e ff             	orl    $0xffffffff,(%esi)
40328c:	2b 34 bd 20 46 41 00 	sub    0x414620(,%edi,4),%esi
403293:	c1 fe 06             	sar    $0x6,%esi
403296:	8b c7                	mov    %edi,%eax
403298:	c1 e0 05             	shl    $0x5,%eax
40329b:	03 f0                	add    %eax,%esi
40329d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4032a0:	83 7d e4 ff          	cmpl   $0xffffffff,-0x1c(%ebp)
4032a4:	75 79                	jne    0x40331f
4032a6:	47                   	inc    %edi
4032a7:	e9 2c ff ff ff       	jmp    0x4031d8
4032ac:	6a 40                	push   $0x40
4032ae:	6a 20                	push   $0x20
4032b0:	e8 4f 36 00 00       	call   0x406904
4032b5:	59                   	pop    %ecx
4032b6:	59                   	pop    %ecx
4032b7:	89 45 e0             	mov    %eax,-0x20(%ebp)
4032ba:	85 c0                	test   %eax,%eax
4032bc:	74 61                	je     0x40331f
4032be:	8d 0c bd 20 46 41 00 	lea    0x414620(,%edi,4),%ecx
4032c5:	89 01                	mov    %eax,(%ecx)
4032c7:	83 05 00 46 41 00 20 	addl   $0x20,0x414600
4032ce:	8b 11                	mov    (%ecx),%edx
4032d0:	81 c2 00 08 00 00    	add    $0x800,%edx
4032d6:	3b c2                	cmp    %edx,%eax
4032d8:	73 17                	jae    0x4032f1
4032da:	c6 40 04 00          	movb   $0x0,0x4(%eax)
4032de:	83 08 ff             	orl    $0xffffffff,(%eax)
4032e1:	c6 40 05 0a          	movb   $0xa,0x5(%eax)
4032e5:	83 60 08 00          	andl   $0x0,0x8(%eax)
4032e9:	83 c0 40             	add    $0x40,%eax
4032ec:	89 45 e0             	mov    %eax,-0x20(%ebp)
4032ef:	eb dd                	jmp    0x4032ce
4032f1:	c1 e7 05             	shl    $0x5,%edi
4032f4:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4032f7:	8b c7                	mov    %edi,%eax
4032f9:	c1 f8 05             	sar    $0x5,%eax
4032fc:	8b cf                	mov    %edi,%ecx
4032fe:	83 e1 1f             	and    $0x1f,%ecx
403301:	c1 e1 06             	shl    $0x6,%ecx
403304:	8b 04 85 20 46 41 00 	mov    0x414620(,%eax,4),%eax
40330b:	c6 44 08 04 01       	movb   $0x1,0x4(%eax,%ecx,1)
403310:	57                   	push   %edi
403311:	e8 c8 fd ff ff       	call   0x4030de
403316:	59                   	pop    %ecx
403317:	85 c0                	test   %eax,%eax
403319:	75 04                	jne    0x40331f
40331b:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
40331f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403326:	e8 09 00 00 00       	call   0x403334
40332b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40332e:	e8 82 0e 00 00       	call   0x4041b5
403333:	c3                   	ret
403334:	6a 0b                	push   $0xb
403336:	e8 85 39 00 00       	call   0x406cc0
40333b:	59                   	pop    %ecx
40333c:	c3                   	ret
40333d:	8b ff                	mov    %edi,%edi
40333f:	55                   	push   %ebp
403340:	8b ec                	mov    %esp,%ebp
403342:	83 ec 20             	sub    $0x20,%esp
403345:	53                   	push   %ebx
403346:	57                   	push   %edi
403347:	33 db                	xor    %ebx,%ebx
403349:	6a 07                	push   $0x7
40334b:	33 c0                	xor    %eax,%eax
40334d:	59                   	pop    %ecx
40334e:	8d 7d e4             	lea    -0x1c(%ebp),%edi
403351:	89 5d e0             	mov    %ebx,-0x20(%ebp)
403354:	f3 ab                	rep stos %eax,%es:(%edi)
403356:	39 5d 14             	cmp    %ebx,0x14(%ebp)
403359:	75 18                	jne    0x403373
40335b:	e8 c7 0d 00 00       	call   0x404127
403360:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403366:	e8 1c f9 ff ff       	call   0x402c87
40336b:	83 c8 ff             	or     $0xffffffff,%eax
40336e:	e9 bc 00 00 00       	jmp    0x40342f
403373:	8b 7d 10             	mov    0x10(%ebp),%edi
403376:	56                   	push   %esi
403377:	8b 75 0c             	mov    0xc(%ebp),%esi
40337a:	3b fb                	cmp    %ebx,%edi
40337c:	74 1c                	je     0x40339a
40337e:	3b f3                	cmp    %ebx,%esi
403380:	75 18                	jne    0x40339a
403382:	e8 a0 0d 00 00       	call   0x404127
403387:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40338d:	e8 f5 f8 ff ff       	call   0x402c87
403392:	83 c8 ff             	or     $0xffffffff,%eax
403395:	e9 94 00 00 00       	jmp    0x40342e
40339a:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
4033a1:	89 75 e8             	mov    %esi,-0x18(%ebp)
4033a4:	89 75 e0             	mov    %esi,-0x20(%ebp)
4033a7:	81 ff ff ff ff 3f    	cmp    $0x3fffffff,%edi
4033ad:	76 09                	jbe    0x4033b8
4033af:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
4033b6:	eb 06                	jmp    0x4033be
4033b8:	8d 04 3f             	lea    (%edi,%edi,1),%eax
4033bb:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4033be:	ff 75 1c             	push   0x1c(%ebp)
4033c1:	8d 45 e0             	lea    -0x20(%ebp),%eax
4033c4:	ff 75 18             	push   0x18(%ebp)
4033c7:	ff 75 14             	push   0x14(%ebp)
4033ca:	50                   	push   %eax
4033cb:	ff 55 08             	call   *0x8(%ebp)
4033ce:	83 c4 10             	add    $0x10,%esp
4033d1:	89 45 14             	mov    %eax,0x14(%ebp)
4033d4:	3b f3                	cmp    %ebx,%esi
4033d6:	74 56                	je     0x40342e
4033d8:	3b c3                	cmp    %ebx,%eax
4033da:	7c 42                	jl     0x40341e
4033dc:	ff 4d e4             	decl   -0x1c(%ebp)
4033df:	78 0a                	js     0x4033eb
4033e1:	8b 45 e0             	mov    -0x20(%ebp),%eax
4033e4:	88 18                	mov    %bl,(%eax)
4033e6:	ff 45 e0             	incl   -0x20(%ebp)
4033e9:	eb 11                	jmp    0x4033fc
4033eb:	8d 45 e0             	lea    -0x20(%ebp),%eax
4033ee:	50                   	push   %eax
4033ef:	53                   	push   %ebx
4033f0:	e8 37 3c 00 00       	call   0x40702c
4033f5:	59                   	pop    %ecx
4033f6:	59                   	pop    %ecx
4033f7:	83 f8 ff             	cmp    $0xffffffff,%eax
4033fa:	74 22                	je     0x40341e
4033fc:	ff 4d e4             	decl   -0x1c(%ebp)
4033ff:	78 07                	js     0x403408
403401:	8b 45 e0             	mov    -0x20(%ebp),%eax
403404:	88 18                	mov    %bl,(%eax)
403406:	eb 11                	jmp    0x403419
403408:	8d 45 e0             	lea    -0x20(%ebp),%eax
40340b:	50                   	push   %eax
40340c:	53                   	push   %ebx
40340d:	e8 1a 3c 00 00       	call   0x40702c
403412:	59                   	pop    %ecx
403413:	59                   	pop    %ecx
403414:	83 f8 ff             	cmp    $0xffffffff,%eax
403417:	74 05                	je     0x40341e
403419:	8b 45 14             	mov    0x14(%ebp),%eax
40341c:	eb 10                	jmp    0x40342e
40341e:	33 c0                	xor    %eax,%eax
403420:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
403423:	66 89 44 7e fe       	mov    %ax,-0x2(%esi,%edi,2)
403428:	0f 9d c0             	setge  %al
40342b:	83 e8 02             	sub    $0x2,%eax
40342e:	5e                   	pop    %esi
40342f:	5f                   	pop    %edi
403430:	5b                   	pop    %ebx
403431:	c9                   	leave
403432:	c3                   	ret
403433:	8b ff                	mov    %edi,%edi
403435:	55                   	push   %ebp
403436:	8b ec                	mov    %esp,%ebp
403438:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40343c:	75 15                	jne    0x403453
40343e:	e8 e4 0c 00 00       	call   0x404127
403443:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403449:	e8 39 f8 ff ff       	call   0x402c87
40344e:	83 c8 ff             	or     $0xffffffff,%eax
403451:	5d                   	pop    %ebp
403452:	c3                   	ret
403453:	53                   	push   %ebx
403454:	8b 5d 10             	mov    0x10(%ebp),%ebx
403457:	56                   	push   %esi
403458:	8b 75 08             	mov    0x8(%ebp),%esi
40345b:	57                   	push   %edi
40345c:	85 db                	test   %ebx,%ebx
40345e:	75 10                	jne    0x403470
403460:	85 f6                	test   %esi,%esi
403462:	75 10                	jne    0x403474
403464:	39 75 0c             	cmp    %esi,0xc(%ebp)
403467:	75 12                	jne    0x40347b
403469:	33 c0                	xor    %eax,%eax
40346b:	e9 ae 00 00 00       	jmp    0x40351e
403470:	85 f6                	test   %esi,%esi
403472:	74 07                	je     0x40347b
403474:	8b 7d 0c             	mov    0xc(%ebp),%edi
403477:	85 ff                	test   %edi,%edi
403479:	75 10                	jne    0x40348b
40347b:	e8 a7 0c 00 00       	call   0x404127
403480:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403486:	e9 8b 00 00 00       	jmp    0x403516
40348b:	e8 97 0c 00 00       	call   0x404127
403490:	ff 75 1c             	push   0x1c(%ebp)
403493:	ff 75 18             	push   0x18(%ebp)
403496:	ff 75 14             	push   0x14(%ebp)
403499:	3b fb                	cmp    %ebx,%edi
40349b:	76 2a                	jbe    0x4034c7
40349d:	8b 38                	mov    (%eax),%edi
40349f:	43                   	inc    %ebx
4034a0:	53                   	push   %ebx
4034a1:	56                   	push   %esi
4034a2:	68 7c 88 40 00       	push   $0x40887c
4034a7:	e8 91 fe ff ff       	call   0x40333d
4034ac:	83 c4 18             	add    $0x18,%esp
4034af:	83 f8 fe             	cmp    $0xfffffffe,%eax
4034b2:	75 49                	jne    0x4034fd
4034b4:	e8 6e 0c 00 00       	call   0x404127
4034b9:	83 38 22             	cmpl   $0x22,(%eax)
4034bc:	75 5d                	jne    0x40351b
4034be:	e8 64 0c 00 00       	call   0x404127
4034c3:	89 38                	mov    %edi,(%eax)
4034c5:	eb 54                	jmp    0x40351b
4034c7:	8b 18                	mov    (%eax),%ebx
4034c9:	57                   	push   %edi
4034ca:	56                   	push   %esi
4034cb:	68 7c 88 40 00       	push   $0x40887c
4034d0:	e8 68 fe ff ff       	call   0x40333d
4034d5:	33 c9                	xor    %ecx,%ecx
4034d7:	83 c4 18             	add    $0x18,%esp
4034da:	66 89 4c 7e fe       	mov    %cx,-0x2(%esi,%edi,2)
4034df:	83 f8 fe             	cmp    $0xfffffffe,%eax
4034e2:	75 19                	jne    0x4034fd
4034e4:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
4034e8:	75 17                	jne    0x403501
4034ea:	e8 38 0c 00 00       	call   0x404127
4034ef:	83 38 22             	cmpl   $0x22,(%eax)
4034f2:	75 27                	jne    0x40351b
4034f4:	e8 2e 0c 00 00       	call   0x404127
4034f9:	89 18                	mov    %ebx,(%eax)
4034fb:	eb 1e                	jmp    0x40351b
4034fd:	85 c0                	test   %eax,%eax
4034ff:	79 1d                	jns    0x40351e
403501:	33 c9                	xor    %ecx,%ecx
403503:	66 89 0e             	mov    %cx,(%esi)
403506:	83 f8 fe             	cmp    $0xfffffffe,%eax
403509:	75 10                	jne    0x40351b
40350b:	e8 17 0c 00 00       	call   0x404127
403510:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
403516:	e8 6c f7 ff ff       	call   0x402c87
40351b:	83 c8 ff             	or     $0xffffffff,%eax
40351e:	5f                   	pop    %edi
40351f:	5e                   	pop    %esi
403520:	5b                   	pop    %ebx
403521:	5d                   	pop    %ebp
403522:	c3                   	ret
403523:	8b ff                	mov    %edi,%edi
403525:	55                   	push   %ebp
403526:	8b ec                	mov    %esp,%ebp
403528:	ff 75 18             	push   0x18(%ebp)
40352b:	6a 00                	push   $0x0
40352d:	ff 75 14             	push   0x14(%ebp)
403530:	ff 75 10             	push   0x10(%ebp)
403533:	ff 75 0c             	push   0xc(%ebp)
403536:	ff 75 08             	push   0x8(%ebp)
403539:	e8 f5 fe ff ff       	call   0x403433
40353e:	83 c4 18             	add    $0x18,%esp
403541:	5d                   	pop    %ebp
403542:	c3                   	ret
403543:	8b ff                	mov    %edi,%edi
403545:	55                   	push   %ebp
403546:	8b ec                	mov    %esp,%ebp
403548:	56                   	push   %esi
403549:	8b 75 08             	mov    0x8(%ebp),%esi
40354c:	8b 46 0c             	mov    0xc(%esi),%eax
40354f:	a8 83                	test   $0x83,%al
403551:	75 10                	jne    0x403563
403553:	e8 cf 0b 00 00       	call   0x404127
403558:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40355e:	83 c8 ff             	or     $0xffffffff,%eax
403561:	eb 67                	jmp    0x4035ca
403563:	83 e0 ef             	and    $0xffffffef,%eax
403566:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
40356a:	89 46 0c             	mov    %eax,0xc(%esi)
40356d:	75 0e                	jne    0x40357d
40356f:	56                   	push   %esi
403570:	e8 00 f8 ff ff       	call   0x402d75
403575:	01 45 0c             	add    %eax,0xc(%ebp)
403578:	83 65 10 00          	andl   $0x0,0x10(%ebp)
40357c:	59                   	pop    %ecx
40357d:	56                   	push   %esi
40357e:	e8 09 35 00 00       	call   0x406a8c
403583:	8b 46 0c             	mov    0xc(%esi),%eax
403586:	59                   	pop    %ecx
403587:	84 c0                	test   %al,%al
403589:	79 08                	jns    0x403593
40358b:	83 e0 fc             	and    $0xfffffffc,%eax
40358e:	89 46 0c             	mov    %eax,0xc(%esi)
403591:	eb 16                	jmp    0x4035a9
403593:	a8 01                	test   $0x1,%al
403595:	74 12                	je     0x4035a9
403597:	a8 08                	test   $0x8,%al
403599:	74 0e                	je     0x4035a9
40359b:	a9 00 04 00 00       	test   $0x400,%eax
4035a0:	75 07                	jne    0x4035a9
4035a2:	c7 46 18 00 02 00 00 	movl   $0x200,0x18(%esi)
4035a9:	ff 75 10             	push   0x10(%ebp)
4035ac:	ff 75 0c             	push   0xc(%ebp)
4035af:	56                   	push   %esi
4035b0:	e8 fb f4 ff ff       	call   0x402ab0
4035b5:	59                   	pop    %ecx
4035b6:	50                   	push   %eax
4035b7:	e8 85 51 00 00       	call   0x408741
4035bc:	33 c9                	xor    %ecx,%ecx
4035be:	83 c4 0c             	add    $0xc,%esp
4035c1:	83 f8 ff             	cmp    $0xffffffff,%eax
4035c4:	0f 95 c1             	setne  %cl
4035c7:	8d 41 ff             	lea    -0x1(%ecx),%eax
4035ca:	5e                   	pop    %esi
4035cb:	5d                   	pop    %ebp
4035cc:	c3                   	ret
4035cd:	6a 0c                	push   $0xc
4035cf:	68 38 11 41 00       	push   $0x411138
4035d4:	e8 97 0b 00 00       	call   0x404170
4035d9:	33 c0                	xor    %eax,%eax
4035db:	39 45 08             	cmp    %eax,0x8(%ebp)
4035de:	0f 95 c0             	setne  %al
4035e1:	85 c0                	test   %eax,%eax
4035e3:	75 15                	jne    0x4035fa
4035e5:	e8 3d 0b 00 00       	call   0x404127
4035ea:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4035f0:	e8 92 f6 ff ff       	call   0x402c87
4035f5:	83 c8 ff             	or     $0xffffffff,%eax
4035f8:	eb 3f                	jmp    0x403639
4035fa:	8b 75 10             	mov    0x10(%ebp),%esi
4035fd:	85 f6                	test   %esi,%esi
4035ff:	74 0a                	je     0x40360b
403601:	83 fe 01             	cmp    $0x1,%esi
403604:	74 05                	je     0x40360b
403606:	83 fe 02             	cmp    $0x2,%esi
403609:	75 da                	jne    0x4035e5
40360b:	ff 75 08             	push   0x8(%ebp)
40360e:	e8 47 ed ff ff       	call   0x40235a
403613:	59                   	pop    %ecx
403614:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403618:	56                   	push   %esi
403619:	ff 75 0c             	push   0xc(%ebp)
40361c:	ff 75 08             	push   0x8(%ebp)