402330:	81 7d 0c ff ff ff 7f 	cmpl   $0x7fffffff,0xc(%ebp)
402337:	72 07                	jb     0x402340
402339:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40233e:	eb 3d                	jmp    0x40237d
402340:	57                   	push   %edi
402341:	8b 7d 08             	mov    0x8(%ebp),%edi
402344:	39 37                	cmp    %esi,(%edi)
402346:	74 0d                	je     0x402355
402348:	56                   	push   %esi
402349:	ff 75 0c             	push   0xc(%ebp)
40234c:	ff 37                	push   (%edi)
40234e:	e8 1f 17 00 00       	call   0x403a72
402353:	eb 0a                	jmp    0x40235f
402355:	6a 01                	push   $0x1
402357:	ff 75 0c             	push   0xc(%ebp)
40235a:	e8 75 15 00 00       	call   0x4038d4
40235f:	85 c0                	test   %eax,%eax
402361:	75 17                	jne    0x40237a
402363:	be 0e 00 07 80       	mov    $0x8007000e,%esi
402368:	56                   	push   %esi
402369:	68 e3 00 00 00       	push   $0xe3
40236e:	68 90 b5 44 00       	push   $0x44b590
402373:	e8 5b 14 00 00       	call   0x4037d3
402378:	eb 02                	jmp    0x40237c
40237a:	89 07                	mov    %eax,(%edi)
40237c:	5f                   	pop    %edi
40237d:	8b c6                	mov    %esi,%eax
40237f:	5e                   	pop    %esi
402380:	5d                   	pop    %ebp
402381:	c2 08 00             	ret    $0x8
402384:	55                   	push   %ebp
402385:	8b ec                	mov    %esp,%ebp
402387:	51                   	push   %ecx
402388:	53                   	push   %ebx
402389:	56                   	push   %esi
40238a:	57                   	push   %edi
40238b:	8b 7d 08             	mov    0x8(%ebp),%edi
40238e:	33 db                	xor    %ebx,%ebx
402390:	33 f6                	xor    %esi,%esi
402392:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402395:	39 1f                	cmp    %ebx,(%edi)
402397:	74 2c                	je     0x4023c5
402399:	ff 37                	push   (%edi)
40239b:	e8 b1 17 00 00       	call   0x403b51
4023a0:	8b f0                	mov    %eax,%esi
4023a2:	83 fe ff             	cmp    $0xffffffff,%esi
4023a5:	75 07                	jne    0x4023ae
4023a7:	b8 57 00 07 80       	mov    $0x80070057,%eax
4023ac:	eb 7f                	jmp    0x40242d
4023ae:	8d 45 fc             	lea    -0x4(%ebp),%eax
4023b1:	50                   	push   %eax
4023b2:	68 ff ff ff 7f       	push   $0x7fffffff
4023b7:	ff 37                	push   (%edi)
4023b9:	e8 60 f8 ff ff       	call   0x401c1e
4023be:	85 c0                	test   %eax,%eax
4023c0:	78 6b                	js     0x40242d
4023c2:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4023c5:	8b 7d 10             	mov    0x10(%ebp),%edi
4023c8:	85 ff                	test   %edi,%edi
4023ca:	75 18                	jne    0x4023e4
4023cc:	8d 45 10             	lea    0x10(%ebp),%eax
4023cf:	50                   	push   %eax
4023d0:	68 ff ff ff 7f       	push   $0x7fffffff
4023d5:	ff 75 0c             	push   0xc(%ebp)
4023d8:	e8 41 f8 ff ff       	call   0x401c1e
4023dd:	85 c0                	test   %eax,%eax
4023df:	78 4c                	js     0x40242d
4023e1:	8b 7d 10             	mov    0x10(%ebp),%edi
4023e4:	8b ce                	mov    %esi,%ecx
4023e6:	8d 47 01             	lea    0x1(%edi),%eax
4023e9:	2b cb                	sub    %ebx,%ecx
4023eb:	3b c8                	cmp    %eax,%ecx
4023ed:	73 1a                	jae    0x402409
4023ef:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4023f2:	8b 5d 08             	mov    0x8(%ebp),%ebx
4023f5:	8d 34 45 02 00 00 00 	lea    0x2(,%eax,2),%esi
4023fc:	56                   	push   %esi
4023fd:	53                   	push   %ebx
4023fe:	e8 27 ff ff ff       	call   0x40232a
402403:	85 c0                	test   %eax,%eax
402405:	78 26                	js     0x40242d
402407:	eb 03                	jmp    0x40240c
402409:	8b 5d 08             	mov    0x8(%ebp),%ebx
40240c:	83 3b 00             	cmpl   $0x0,(%ebx)
40240f:	74 17                	je     0x402428
402411:	68 00 02 00 00       	push   $0x200
402416:	6a 00                	push   $0x0
402418:	6a 00                	push   $0x0
40241a:	57                   	push   %edi
40241b:	ff 75 0c             	push   0xc(%ebp)
40241e:	56                   	push   %esi
40241f:	ff 33                	push   (%ebx)
402421:	e8 be f1 ff ff       	call   0x4015e4
402426:	eb 05                	jmp    0x40242d
402428:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40242d:	5f                   	pop    %edi
40242e:	5e                   	pop    %esi
40242f:	5b                   	pop    %ebx
402430:	8b e5                	mov    %ebp,%esp
402432:	5d                   	pop    %ebp
402433:	c2 0c 00             	ret    $0xc
402436:	55                   	push   %ebp
402437:	8b ec                	mov    %esp,%ebp
402439:	8b 4d 08             	mov    0x8(%ebp),%ecx
40243c:	83 ca ff             	or     $0xffffffff,%edx
40243f:	8b 45 10             	mov    0x10(%ebp),%eax
402442:	53                   	push   %ebx
402443:	56                   	push   %esi
402444:	33 db                	xor    %ebx,%ebx
402446:	8b f3                	mov    %ebx,%esi
402448:	57                   	push   %edi
402449:	8b f8                	mov    %eax,%edi
40244b:	39 19                	cmp    %ebx,(%ecx)
40244d:	74 1c                	je     0x40246b
40244f:	ff 31                	push   (%ecx)
402451:	e8 fb 16 00 00       	call   0x403b51
402456:	8b f0                	mov    %eax,%esi
402458:	83 ca ff             	or     $0xffffffff,%edx
40245b:	3b f2                	cmp    %edx,%esi
40245d:	75 0a                	jne    0x402469
40245f:	bb 57 00 07 80       	mov    $0x80070057,%ebx
402464:	e9 fe 00 00 00       	jmp    0x402567
402469:	8b c7                	mov    %edi,%eax
40246b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40246e:	85 c0                	test   %eax,%eax
402470:	75 4c                	jne    0x4024be
402472:	53                   	push   %ebx
402473:	53                   	push   %ebx
402474:	53                   	push   %ebx
402475:	53                   	push   %ebx
402476:	52                   	push   %edx
402477:	51                   	push   %ecx
402478:	53                   	push   %ebx
402479:	ff 75 14             	push   0x14(%ebp)
40247c:	ff 15 00 b1 44 00    	call   *0x44b100
402482:	8b f8                	mov    %eax,%edi
402484:	85 ff                	test   %edi,%edi
402486:	75 33                	jne    0x4024bb
402488:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40248e:	0f b7 d8             	movzwl %ax,%ebx
402491:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
402497:	85 c0                	test   %eax,%eax
402499:	0f 4e d8             	cmovle %eax,%ebx
40249c:	b8 05 40 00 80       	mov    $0x80004005,%eax
4024a1:	85 db                	test   %ebx,%ebx
4024a3:	0f 49 d8             	cmovns %eax,%ebx
4024a6:	53                   	push   %ebx
4024a7:	68 bc 01 00 00       	push   $0x1bc
4024ac:	68 90 b5 44 00       	push   $0x44b590
4024b1:	e8 1d 13 00 00       	call   0x4037d3
4024b6:	e9 ac 00 00 00       	jmp    0x402567
4024bb:	4f                   	dec    %edi
4024bc:	eb 0b                	jmp    0x4024c9
4024be:	33 d2                	xor    %edx,%edx
4024c0:	66 3b 14 41          	cmp    (%ecx,%eax,2),%dx
4024c4:	75 03                	jne    0x4024c9
4024c6:	8d 78 ff             	lea    -0x1(%eax),%edi
4024c9:	8d 47 01             	lea    0x1(%edi),%eax
4024cc:	3b f0                	cmp    %eax,%esi
4024ce:	73 44                	jae    0x402514
4024d0:	8b f0                	mov    %eax,%esi
4024d2:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
4024d8:	72 0a                	jb     0x4024e4
4024da:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
4024df:	e9 83 00 00 00       	jmp    0x402567
4024e4:	8b 45 08             	mov    0x8(%ebp),%eax
4024e7:	6a 01                	push   $0x1
4024e9:	56                   	push   %esi
4024ea:	39 18                	cmp    %ebx,(%eax)
4024ec:	74 09                	je     0x4024f7
4024ee:	ff 30                	push   (%eax)
4024f0:	e8 7d 15 00 00       	call   0x403a72
4024f5:	eb 05                	jmp    0x4024fc
4024f7:	e8 d8 13 00 00       	call   0x4038d4
4024fc:	8b c8                	mov    %eax,%ecx
4024fe:	85 c9                	test   %ecx,%ecx
402500:	75 0d                	jne    0x40250f
402502:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
402507:	53                   	push   %ebx
402508:	68 d7 01 00 00       	push   $0x1d7
40250d:	eb 9d                	jmp    0x4024ac
40250f:	8b 45 08             	mov    0x8(%ebp),%eax
402512:	89 08                	mov    %ecx,(%eax)
402514:	8b 45 10             	mov    0x10(%ebp),%eax
402517:	85 c0                	test   %eax,%eax
402519:	53                   	push   %ebx
40251a:	53                   	push   %ebx
40251b:	56                   	push   %esi
40251c:	8b 75 08             	mov    0x8(%ebp),%esi
40251f:	ff 36                	push   (%esi)
402521:	6a ff                	push   $0xffffffff
402523:	59                   	pop    %ecx
402524:	0f 44 c1             	cmove  %ecx,%eax
402527:	50                   	push   %eax
402528:	ff 75 0c             	push   0xc(%ebp)
40252b:	53                   	push   %ebx
40252c:	ff 75 14             	push   0x14(%ebp)
40252f:	ff 15 00 b1 44 00    	call   *0x44b100
402535:	85 c0                	test   %eax,%eax
402537:	75 29                	jne    0x402562
402539:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40253f:	0f b7 d8             	movzwl %ax,%ebx
402542:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
402548:	85 c0                	test   %eax,%eax
40254a:	0f 4e d8             	cmovle %eax,%ebx
40254d:	b8 05 40 00 80       	mov    $0x80004005,%eax
402552:	85 db                	test   %ebx,%ebx
402554:	0f 49 d8             	cmovns %eax,%ebx
402557:	53                   	push   %ebx
402558:	68 de 01 00 00       	push   $0x1de
40255d:	e9 4a ff ff ff       	jmp    0x4024ac
402562:	8b 0e                	mov    (%esi),%ecx
402564:	88 1c 0f             	mov    %bl,(%edi,%ecx,1)
402567:	5f                   	pop    %edi
402568:	5e                   	pop    %esi
402569:	8b c3                	mov    %ebx,%eax
40256b:	5b                   	pop    %ebx
40256c:	5d                   	pop    %ebp
40256d:	c2 10 00             	ret    $0x10
402570:	55                   	push   %ebp
402571:	8b ec                	mov    %esp,%ebp
402573:	8b 45 08             	mov    0x8(%ebp),%eax
402576:	56                   	push   %esi
402577:	57                   	push   %edi
402578:	33 f6                	xor    %esi,%esi
40257a:	83 cf ff             	or     $0xffffffff,%edi
40257d:	39 30                	cmp    %esi,(%eax)
40257f:	74 14                	je     0x402595
402581:	ff 30                	push   (%eax)
402583:	e8 c9 15 00 00       	call   0x403b51
402588:	8b f0                	mov    %eax,%esi
40258a:	3b f7                	cmp    %edi,%esi
40258c:	75 07                	jne    0x402595
40258e:	b8 57 00 07 80       	mov    $0x80070057,%eax
402593:	eb 52                	jmp    0x4025e7
402595:	53                   	push   %ebx
402596:	8b 5d 10             	mov    0x10(%ebp),%ebx
402599:	85 db                	test   %ebx,%ebx
40259b:	75 0b                	jne    0x4025a8
40259d:	ff 75 0c             	push   0xc(%ebp)
4025a0:	ff 15 f4 b0 44 00    	call   *0x44b0f4
4025a6:	8b d8                	mov    %eax,%ebx
4025a8:	8d 4b 01             	lea    0x1(%ebx),%ecx
4025ab:	3b cb                	cmp    %ebx,%ecx
4025ad:	0f 43 f9             	cmovae %ecx,%edi
4025b0:	1b c0                	sbb    %eax,%eax
4025b2:	25 16 02 07 80       	and    $0x80070216,%eax
4025b7:	3b cb                	cmp    %ebx,%ecx
4025b9:	72 2b                	jb     0x4025e6
4025bb:	3b f7                	cmp    %edi,%esi
4025bd:	73 0f                	jae    0x4025ce
4025bf:	57                   	push   %edi
4025c0:	ff 75 08             	push   0x8(%ebp)
4025c3:	8b f7                	mov    %edi,%esi
4025c5:	e8 60 fd ff ff       	call   0x40232a
4025ca:	85 c0                	test   %eax,%eax
4025cc:	78 18                	js     0x4025e6
4025ce:	8b 45 08             	mov    0x8(%ebp),%eax
4025d1:	68 00 02 00 00       	push   $0x200
4025d6:	6a 00                	push   $0x0
4025d8:	6a 00                	push   $0x0
4025da:	53                   	push   %ebx
4025db:	ff 75 0c             	push   0xc(%ebp)
4025de:	56                   	push   %esi
4025df:	ff 30                	push   (%eax)
4025e1:	e8 29 f3 ff ff       	call   0x40190f
4025e6:	5b                   	pop    %ebx
4025e7:	5f                   	pop    %edi
4025e8:	5e                   	pop    %esi
4025e9:	5d                   	pop    %ebp
4025ea:	c2 0c 00             	ret    $0xc
4025ed:	55                   	push   %ebp
4025ee:	8b ec                	mov    %esp,%ebp
4025f0:	56                   	push   %esi
4025f1:	57                   	push   %edi
4025f2:	8b 7d 0c             	mov    0xc(%ebp),%edi
4025f5:	83 ce ff             	or     $0xffffffff,%esi
4025f8:	8b 0f                	mov    (%edi),%ecx
4025fa:	8d 41 01             	lea    0x1(%ecx),%eax
4025fd:	3b c1                	cmp    %ecx,%eax
4025ff:	0f 43 f0             	cmovae %eax,%esi
402602:	1b d2                	sbb    %edx,%edx
402604:	81 e2 16 02 07 80    	and    $0x80070216,%edx
40260a:	3b c1                	cmp    %ecx,%eax
40260c:	72 31                	jb     0x40263f
40260e:	53                   	push   %ebx
40260f:	8b 5d 08             	mov    0x8(%ebp),%ebx
402612:	6a 05                	push   $0x5
402614:	6a 04                	push   $0x4
402616:	56                   	push   %esi
402617:	53                   	push   %ebx
402618:	e8 d9 12 00 00       	call   0x4038f6
40261d:	8b d0                	mov    %eax,%edx
40261f:	85 d2                	test   %edx,%edx
402621:	78 1b                	js     0x40263e
402623:	ff 75 14             	push   0x14(%ebp)
402626:	8b 0f                	mov    (%edi),%ecx
402628:	8b 03                	mov    (%ebx),%eax
40262a:	ff 75 10             	push   0x10(%ebp)
40262d:	8d 04 88             	lea    (%eax,%ecx,4),%eax
402630:	50                   	push   %eax
402631:	e8 6f fb ff ff       	call   0x4021a5
402636:	8b d0                	mov    %eax,%edx
402638:	85 d2                	test   %edx,%edx
40263a:	78 02                	js     0x40263e
40263c:	89 37                	mov    %esi,(%edi)
40263e:	5b                   	pop    %ebx
40263f:	5f                   	pop    %edi
402640:	8b c2                	mov    %edx,%eax
402642:	5e                   	pop    %esi
402643:	5d                   	pop    %ebp
402644:	c2 10 00             	ret    $0x10
402647:	55                   	push   %ebp
402648:	8b ec                	mov    %esp,%ebp
40264a:	56                   	push   %esi
40264b:	33 f6                	xor    %esi,%esi
40264d:	57                   	push   %edi
40264e:	8b 7d 08             	mov    0x8(%ebp),%edi
402651:	39 75 0c             	cmp    %esi,0xc(%ebp)
402654:	76 18                	jbe    0x40266e
402656:	83 3c b7 00          	cmpl   $0x0,(%edi,%esi,4)
40265a:	74 0c                	je     0x402668
40265c:	ff 34 b7             	push   (%edi,%esi,4)
40265f:	e8 35 13 00 00       	call   0x403999
402664:	85 c0                	test   %eax,%eax
402666:	78 0c                	js     0x402674
402668:	46                   	inc    %esi
402669:	3b 75 0c             	cmp    0xc(%ebp),%esi
40266c:	72 e8                	jb     0x402656
40266e:	57                   	push   %edi
40266f:	e8 25 13 00 00       	call   0x403999
402674:	5f                   	pop    %edi
402675:	5e                   	pop    %esi
402676:	5d                   	pop    %ebp
402677:	c2 08 00             	ret    $0x8
40267a:	55                   	push   %ebp
40267b:	8b ec                	mov    %esp,%ebp
40267d:	51                   	push   %ecx
40267e:	53                   	push   %ebx
40267f:	8b 5d 08             	mov    0x8(%ebp),%ebx
402682:	56                   	push   %esi
402683:	57                   	push   %edi
402684:	33 ff                	xor    %edi,%edi
402686:	53                   	push   %ebx
402687:	89 7d fc             	mov    %edi,-0x4(%ebp)
40268a:	ff 15 f8 b0 44 00    	call   *0x44b0f8
402690:	8b f0                	mov    %eax,%esi
402692:	d1 ee                	shr    $1,%esi
402694:	39 75 10             	cmp    %esi,0x10(%ebp)
402697:	73 17                	jae    0x4026b0