40235c:	89 04 24             	mov    %eax,(%esp)
40235f:	ff 05 ac 15 46 00    	incl   0x4615ac
402365:	83 eb 04             	sub    $0x4,%ebx
402368:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
40236e:	eb 69                	jmp    0x4023d9
402370:	8b 06                	mov    (%esi),%eax
402372:	e8 e9 f9 ff ff       	call   0x401d60
402377:	8b 06                	mov    (%esi),%eax
402379:	8b 50 08             	mov    0x8(%eax),%edx
40237c:	8b c2                	mov    %edx,%eax
40237e:	2b c3                	sub    %ebx,%eax
402380:	83 f8 0c             	cmp    $0xc,%eax
402383:	7c 0c                	jl     0x402391
402385:	8b 16                	mov    (%esi),%edx
402387:	03 d3                	add    %ebx,%edx
402389:	92                   	xchg   %eax,%edx
40238a:	e8 a5 fc ff ff       	call   0x402034
40238f:	eb 1e                	jmp    0x4023af
402391:	8b da                	mov    %edx,%ebx
402393:	8b 06                	mov    (%esi),%eax
402395:	3b 07                	cmp    (%edi),%eax
402397:	75 07                	jne    0x4023a0
402399:	8b 06                	mov    (%esi),%eax
40239b:	8b 40 04             	mov    0x4(%eax),%eax
40239e:	89 07                	mov    %eax,(%edi)
4023a0:	8b 06                	mov    (%esi),%eax
4023a2:	03 c3                	add    %ebx,%eax
4023a4:	89 44 24 04          	mov    %eax,0x4(%esp)
4023a8:	8b 44 24 04          	mov    0x4(%esp),%eax
4023ac:	83 20 fe             	andl   $0xfffffffe,(%eax)
4023af:	8b 06                	mov    (%esi),%eax
4023b1:	89 44 24 04          	mov    %eax,0x4(%esp)
4023b5:	8b c3                	mov    %ebx,%eax
4023b7:	83 c8 02             	or     $0x2,%eax
4023ba:	8b 54 24 04          	mov    0x4(%esp),%edx
4023be:	89 02                	mov    %eax,(%edx)
4023c0:	8b 44 24 04          	mov    0x4(%esp),%eax
4023c4:	83 c0 04             	add    $0x4,%eax
4023c7:	89 04 24             	mov    %eax,(%esp)
4023ca:	ff 05 ac 15 46 00    	incl   0x4615ac
4023d0:	83 eb 04             	sub    $0x4,%ebx
4023d3:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
4023d9:	8b 04 24             	mov    (%esp),%eax
4023dc:	83 c4 0c             	add    $0xc,%esp
4023df:	5d                   	pop    %ebp
4023e0:	5f                   	pop    %edi
4023e1:	5e                   	pop    %esi
4023e2:	5b                   	pop    %ebx
4023e3:	c3                   	ret
4023e4:	55                   	push   %ebp
4023e5:	8b ec                	mov    %esp,%ebp
4023e7:	83 c4 ec             	add    $0xffffffec,%esp
4023ea:	53                   	push   %ebx
4023eb:	8b d8                	mov    %eax,%ebx
4023ed:	80 3d bc 15 46 00 00 	cmpb   $0x0,0x4615bc
4023f4:	75 09                	jne    0x4023ff
4023f6:	e8 8d f7 ff ff       	call   0x401b88
4023fb:	84 c0                	test   %al,%al
4023fd:	74 08                	je     0x402407
4023ff:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
402405:	7e 0a                	jle    0x402411
402407:	33 c0                	xor    %eax,%eax
402409:	89 45 fc             	mov    %eax,-0x4(%ebp)
40240c:	e9 76 01 00 00       	jmp    0x402587
402411:	33 d2                	xor    %edx,%edx
402413:	55                   	push   %ebp
402414:	68 80 25 40 00       	push   $0x402580
402419:	64 ff 32             	push   %fs:(%edx)
40241c:	64 89 22             	mov    %esp,%fs:(%edx)
40241f:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
402426:	74 0a                	je     0x402432
402428:	68 c4 15 46 00       	push   $0x4615c4
40242d:	e8 36 ef ff ff       	call   0x401368
402432:	83 c3 07             	add    $0x7,%ebx
402435:	83 e3 fc             	and    $0xfffffffc,%ebx
402438:	83 fb 0c             	cmp    $0xc,%ebx
40243b:	7d 05                	jge    0x402442
40243d:	bb 0c 00 00 00       	mov    $0xc,%ebx
402442:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402448:	0f 8f ac 00 00 00    	jg     0x4024fa
40244e:	8b c3                	mov    %ebx,%eax
402450:	85 c0                	test   %eax,%eax
402452:	79 03                	jns    0x402457
402454:	83 c0 03             	add    $0x3,%eax
402457:	c1 f8 02             	sar    $0x2,%eax
40245a:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
402460:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
402464:	89 55 f8             	mov    %edx,-0x8(%ebp)
402467:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40246b:	0f 84 89 00 00 00    	je     0x4024fa
402471:	8b 55 f8             	mov    -0x8(%ebp),%edx
402474:	03 d3                	add    %ebx,%edx
402476:	89 55 ec             	mov    %edx,-0x14(%ebp)
402479:	8b 55 ec             	mov    -0x14(%ebp),%edx
40247c:	83 22 fe             	andl   $0xfffffffe,(%edx)
40247f:	8b 55 f8             	mov    -0x8(%ebp),%edx
402482:	8b 52 04             	mov    0x4(%edx),%edx
402485:	89 55 f0             	mov    %edx,-0x10(%ebp)
402488:	8b 55 f0             	mov    -0x10(%ebp),%edx
40248b:	3b 55 f8             	cmp    -0x8(%ebp),%edx
40248e:	75 0e                	jne    0x40249e
402490:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
402496:	33 c9                	xor    %ecx,%ecx
402498:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
40249c:	eb 26                	jmp    0x4024c4
40249e:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
4024a4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4024a7:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
4024ab:	8b 45 f8             	mov    -0x8(%ebp),%eax
4024ae:	8b 00                	mov    (%eax),%eax
4024b0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4024b3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4024b6:	8b 55 f0             	mov    -0x10(%ebp),%edx
4024b9:	89 50 04             	mov    %edx,0x4(%eax)
4024bc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4024bf:	8b 55 f4             	mov    -0xc(%ebp),%edx
4024c2:	89 10                	mov    %edx,(%eax)
4024c4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4024c7:	89 45 ec             	mov    %eax,-0x14(%ebp)
4024ca:	8b 45 f8             	mov    -0x8(%ebp),%eax
4024cd:	8b 40 08             	mov    0x8(%eax),%eax
4024d0:	83 c8 02             	or     $0x2,%eax
4024d3:	8b 55 ec             	mov    -0x14(%ebp),%edx
4024d6:	89 02                	mov    %eax,(%edx)
4024d8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4024db:	83 c0 04             	add    $0x4,%eax
4024de:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024e1:	ff 05 ac 15 46 00    	incl   0x4615ac
4024e7:	83 eb 04             	sub    $0x4,%ebx
4024ea:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
4024f0:	e8 3b 1b 00 00       	call   0x404030
4024f5:	e9 8d 00 00 00       	jmp    0x402587
4024fa:	3b 1d 14 16 46 00    	cmp    0x461614,%ebx
402500:	7f 53                	jg     0x402555
402502:	29 1d 14 16 46 00    	sub    %ebx,0x461614
402508:	83 3d 14 16 46 00 0c 	cmpl   $0xc,0x461614
40250f:	7d 0d                	jge    0x40251e
402511:	03 1d 14 16 46 00    	add    0x461614,%ebx
402517:	33 c0                	xor    %eax,%eax
402519:	a3 14 16 46 00       	mov    %eax,0x461614
40251e:	a1 18 16 46 00       	mov    0x461618,%eax
402523:	89 45 ec             	mov    %eax,-0x14(%ebp)
402526:	01 1d 18 16 46 00    	add    %ebx,0x461618
40252c:	8b c3                	mov    %ebx,%eax
40252e:	83 c8 02             	or     $0x2,%eax
402531:	8b 55 ec             	mov    -0x14(%ebp),%edx
402534:	89 02                	mov    %eax,(%edx)
402536:	8b 45 ec             	mov    -0x14(%ebp),%eax
402539:	83 c0 04             	add    $0x4,%eax
40253c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40253f:	ff 05 ac 15 46 00    	incl   0x4615ac
402545:	83 eb 04             	sub    $0x4,%ebx
402548:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
40254e:	e8 dd 1a 00 00       	call   0x404030
402553:	eb 32                	jmp    0x402587
402555:	8b c3                	mov    %ebx,%eax
402557:	e8 40 fd ff ff       	call   0x40229c
40255c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40255f:	33 c0                	xor    %eax,%eax
402561:	5a                   	pop    %edx
402562:	59                   	pop    %ecx
402563:	59                   	pop    %ecx
402564:	64 89 10             	mov    %edx,%fs:(%eax)
402567:	68 87 25 40 00       	push   $0x402587
40256c:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
402573:	74 0a                	je     0x40257f
402575:	68 c4 15 46 00       	push   $0x4615c4
40257a:	e8 f1 ed ff ff       	call   0x401370
40257f:	c3                   	ret
402580:	e9 c7 19 00 00       	jmp    0x403f4c
402585:	eb e5                	jmp    0x40256c
402587:	8b 45 fc             	mov    -0x4(%ebp),%eax
40258a:	5b                   	pop    %ebx
40258b:	8b e5                	mov    %ebp,%esp
40258d:	5d                   	pop    %ebp
40258e:	c3                   	ret
40258f:	90                   	nop
402590:	55                   	push   %ebp
402591:	8b ec                	mov    %esp,%ebp
402593:	83 c4 f0             	add    $0xfffffff0,%esp
402596:	53                   	push   %ebx
402597:	8b d8                	mov    %eax,%ebx
402599:	33 c0                	xor    %eax,%eax
40259b:	a3 c0 15 46 00       	mov    %eax,0x4615c0
4025a0:	80 3d bc 15 46 00 00 	cmpb   $0x0,0x4615bc
4025a7:	75 1f                	jne    0x4025c8
4025a9:	e8 da f5 ff ff       	call   0x401b88
4025ae:	84 c0                	test   %al,%al
4025b0:	75 16                	jne    0x4025c8
4025b2:	c7 05 c0 15 46 00 08 	movl   $0x8,0x4615c0
4025b9:	00 00 00
4025bc:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
4025c3:	e9 96 01 00 00       	jmp    0x40275e
4025c8:	33 d2                	xor    %edx,%edx
4025ca:	55                   	push   %ebp
4025cb:	68 57 27 40 00       	push   $0x402757
4025d0:	64 ff 32             	push   %fs:(%edx)
4025d3:	64 89 22             	mov    %esp,%fs:(%edx)
4025d6:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
4025dd:	74 0a                	je     0x4025e9
4025df:	68 c4 15 46 00       	push   $0x4615c4
4025e4:	e8 7f ed ff ff       	call   0x401368
4025e9:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4025ec:	8b 45 f8             	mov    -0x8(%ebp),%eax
4025ef:	83 e8 04             	sub    $0x4,%eax
4025f2:	89 45 f8             	mov    %eax,-0x8(%ebp)
4025f5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4025f8:	8b 18                	mov    (%eax),%ebx
4025fa:	f6 c3 02             	test   $0x2,%bl
4025fd:	75 0f                	jne    0x40260e
4025ff:	c7 05 c0 15 46 00 09 	movl   $0x9,0x4615c0
402606:	00 00 00
402609:	e9 20 01 00 00       	jmp    0x40272e
40260e:	ff 0d ac 15 46 00    	decl   0x4615ac
402614:	8b c3                	mov    %ebx,%eax
402616:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
40261b:	83 e8 04             	sub    $0x4,%eax
40261e:	29 05 b0 15 46 00    	sub    %eax,0x4615b0
402624:	f6 c3 01             	test   $0x1,%bl
402627:	74 53                	je     0x40267c
402629:	8b 45 f8             	mov    -0x8(%ebp),%eax
40262c:	83 e8 0c             	sub    $0xc,%eax
40262f:	8b 40 08             	mov    0x8(%eax),%eax
402632:	83 f8 0c             	cmp    $0xc,%eax
402635:	7c 07                	jl     0x40263e
402637:	a9 03 00 00 80       	test   $0x80000003,%eax
40263c:	74 0f                	je     0x40264d
40263e:	c7 05 c0 15 46 00 0a 	movl   $0xa,0x4615c0
402645:	00 00 00
402648:	e9 e1 00 00 00       	jmp    0x40272e
40264d:	8b 55 f8             	mov    -0x8(%ebp),%edx
402650:	2b d0                	sub    %eax,%edx
402652:	89 55 f0             	mov    %edx,-0x10(%ebp)
402655:	8b 55 f0             	mov    -0x10(%ebp),%edx
402658:	3b 42 08             	cmp    0x8(%edx),%eax
40265b:	74 0f                	je     0x40266c
40265d:	c7 05 c0 15 46 00 0a 	movl   $0xa,0x4615c0
402664:	00 00 00
402667:	e9 c2 00 00 00       	jmp    0x40272e
40266c:	03 d8                	add    %eax,%ebx
40266e:	8b 45 f0             	mov    -0x10(%ebp),%eax
402671:	89 45 f8             	mov    %eax,-0x8(%ebp)
402674:	8b 45 f0             	mov    -0x10(%ebp),%eax
402677:	e8 e4 f6 ff ff       	call   0x401d60
40267c:	81 e3 fc ff ff 7f    	and    $0x7ffffffc,%ebx
402682:	8b 45 f8             	mov    -0x8(%ebp),%eax
402685:	03 c3                	add    %ebx,%eax
402687:	89 45 f4             	mov    %eax,-0xc(%ebp)
40268a:	8b 45 f4             	mov    -0xc(%ebp),%eax
40268d:	3b 05 18 16 46 00    	cmp    0x461618,%eax
402693:	75 2c                	jne    0x4026c1
402695:	29 1d 18 16 46 00    	sub    %ebx,0x461618
40269b:	01 1d 14 16 46 00    	add    %ebx,0x461614
4026a1:	81 3d 14 16 46 00 00 	cmpl   $0x3c00,0x461614
4026a8:	3c 00 00
4026ab:	7e 05                	jle    0x4026b2
4026ad:	e8 7a fa ff ff       	call   0x40212c
4026b2:	33 c0                	xor    %eax,%eax
4026b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4026b7:	e8 74 19 00 00       	call   0x404030
4026bc:	e9 9d 00 00 00       	jmp    0x40275e
4026c1:	8b 45 f4             	mov    -0xc(%ebp),%eax
4026c4:	8b 00                	mov    (%eax),%eax
4026c6:	a8 02                	test   $0x2,%al
4026c8:	74 1e                	je     0x4026e8
4026ca:	25 fc ff ff 7f       	and    $0x7ffffffc,%eax
4026cf:	83 f8 04             	cmp    $0x4,%eax
4026d2:	7d 0c                	jge    0x4026e0
4026d4:	c7 05 c0 15 46 00 0b 	movl   $0xb,0x4615c0
4026db:	00 00 00
4026de:	eb 4e                	jmp    0x40272e
4026e0:	8b 45 f4             	mov    -0xc(%ebp),%eax
4026e3:	83 08 01             	orl    $0x1,(%eax)
4026e6:	eb 3c                	jmp    0x402724
4026e8:	8b 45 f4             	mov    -0xc(%ebp),%eax
4026eb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4026ee:	8b 45 f0             	mov    -0x10(%ebp),%eax
4026f1:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4026f5:	74 11                	je     0x402708
4026f7:	8b 45 f0             	mov    -0x10(%ebp),%eax
4026fa:	83 38 00             	cmpl   $0x0,(%eax)
4026fd:	74 09                	je     0x402708
4026ff:	8b 45 f0             	mov    -0x10(%ebp),%eax
402702:	83 78 08 0c          	cmpl   $0xc,0x8(%eax)
402706:	7d 0c                	jge    0x402714
402708:	c7 05 c0 15 46 00 0b 	movl   $0xb,0x4615c0
40270f:	00 00 00
402712:	eb 1a                	jmp    0x40272e
402714:	8b 45 f0             	mov    -0x10(%ebp),%eax
402717:	8b 40 08             	mov    0x8(%eax),%eax
40271a:	03 d8                	add    %eax,%ebx
40271c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40271f:	e8 3c f6 ff ff       	call   0x401d60
402724:	8b d3                	mov    %ebx,%edx
402726:	8b 45 f8             	mov    -0x8(%ebp),%eax
402729:	e8 06 f9 ff ff       	call   0x402034
40272e:	a1 c0 15 46 00       	mov    0x4615c0,%eax
402733:	89 45 fc             	mov    %eax,-0x4(%ebp)
402736:	33 c0                	xor    %eax,%eax
402738:	5a                   	pop    %edx
402739:	59                   	pop    %ecx
40273a:	59                   	pop    %ecx
40273b:	64 89 10             	mov    %edx,%fs:(%eax)
40273e:	68 5e 27 40 00       	push   $0x40275e
402743:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
40274a:	74 0a                	je     0x402756
40274c:	68 c4 15 46 00       	push   $0x4615c4
402751:	e8 1a ec ff ff       	call   0x401370
402756:	c3                   	ret
402757:	e9 f0 17 00 00       	jmp    0x403f4c
40275c:	eb e5                	jmp    0x402743
40275e:	8b 45 fc             	mov    -0x4(%ebp),%eax
402761:	5b                   	pop    %ebx
402762:	8b e5                	mov    %ebp,%esp
402764:	5d                   	pop    %ebp
402765:	c3                   	ret
402766:	8b c0                	mov    %eax,%eax
402768:	53                   	push   %ebx
402769:	56                   	push   %esi
40276a:	57                   	push   %edi
40276b:	55                   	push   %ebp
40276c:	83 c4 f4             	add    $0xfffffff4,%esp
40276f:	8b da                	mov    %edx,%ebx
402771:	83 c3 07             	add    $0x7,%ebx
402774:	83 e3 fc             	and    $0xfffffffc,%ebx
402777:	83 fb 0c             	cmp    $0xc,%ebx
40277a:	7d 05                	jge    0x402781
40277c:	bb 0c 00 00 00       	mov    $0xc,%ebx
402781:	83 e8 04             	sub    $0x4,%eax
402784:	89 04 24             	mov    %eax,(%esp)
402787:	8b 04 24             	mov    (%esp),%eax
40278a:	8b 30                	mov    (%eax),%esi
40278c:	81 e6 fc ff ff 7f    	and    $0x7ffffffc,%esi
402792:	8b 04 24             	mov    (%esp),%eax
402795:	03 c6                	add    %esi,%eax
402797:	89 44 24 04          	mov    %eax,0x4(%esp)
40279b:	3b f3                	cmp    %ebx,%esi
40279d:	75 07                	jne    0x4027a6
40279f:	b0 01                	mov    $0x1,%al
4027a1:	e9 bd 01 00 00       	jmp    0x402963
4027a6:	3b f3                	cmp    %ebx,%esi
4027a8:	0f 8e 90 00 00 00    	jle    0x40283e
4027ae:	8b ee                	mov    %esi,%ebp
4027b0:	2b eb                	sub    %ebx,%ebp
4027b2:	8b 54 24 04          	mov    0x4(%esp),%edx
4027b6:	3b 15 18 16 46 00    	cmp    0x461618,%edx
4027bc:	75 2c                	jne    0x4027ea
4027be:	29 2d 18 16 46 00    	sub    %ebp,0x461618
4027c4:	01 2d 14 16 46 00    	add    %ebp,0x461614
4027ca:	83 3d 14 16 46 00 0c 	cmpl   $0xc,0x461614