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
402699:	bf 7a 00 07 80       	mov    $0x8007007a,%edi
40269e:	57                   	push   %edi
40269f:	68 a1 05 00 00       	push   $0x5a1
4026a4:	68 90 b5 44 00       	push   $0x44b590
4026a9:	e8 25 11 00 00       	call   0x4037d3
4026ae:	eb 33                	jmp    0x4026e3
4026b0:	85 f6                	test   %esi,%esi
4026b2:	74 2f                	je     0x4026e3
4026b4:	8b 7d 0c             	mov    0xc(%ebp),%edi
4026b7:	0f b7 03             	movzwl (%ebx),%eax
4026ba:	50                   	push   %eax
4026bb:	e8 74 ee ff ff       	call   0x401534
4026c0:	8a d0                	mov    %al,%dl
4026c2:	8d 5b 04             	lea    0x4(%ebx),%ebx
4026c5:	c0 e2 04             	shl    $0x4,%dl
4026c8:	88 17                	mov    %dl,(%edi)
4026ca:	0f b7 43 fe          	movzwl -0x2(%ebx),%eax
4026ce:	50                   	push   %eax
4026cf:	e8 60 ee ff ff       	call   0x401534
4026d4:	24 0f                	and    $0xf,%al
4026d6:	0a c2                	or     %dl,%al
4026d8:	88 07                	mov    %al,(%edi)
4026da:	47                   	inc    %edi
4026db:	83 ee 01             	sub    $0x1,%esi
4026de:	75 d7                	jne    0x4026b7
4026e0:	8b 7d fc             	mov    -0x4(%ebp),%edi
4026e3:	8b c7                	mov    %edi,%eax
4026e5:	5f                   	pop    %edi
4026e6:	5e                   	pop    %esi
4026e7:	5b                   	pop    %ebx
4026e8:	8b e5                	mov    %ebp,%esp
4026ea:	5d                   	pop    %ebp
4026eb:	c2 0c 00             	ret    $0xc
4026ee:	55                   	push   %ebp
4026ef:	8b ec                	mov    %esp,%ebp
4026f1:	56                   	push   %esi
4026f2:	8b 75 0c             	mov    0xc(%ebp),%esi
4026f5:	57                   	push   %edi
4026f6:	33 ff                	xor    %edi,%edi
4026f8:	8d 04 75 01 00 00 00 	lea    0x1(,%esi,2),%eax
4026ff:	39 45 14             	cmp    %eax,0x14(%ebp)
402702:	73 07                	jae    0x40270b
402704:	bf 7a 00 07 80       	mov    $0x8007007a,%edi
402709:	eb 4a                	jmp    0x402755
40270b:	8b 55 10             	mov    0x10(%ebp),%edx
40270e:	85 f6                	test   %esi,%esi
402710:	74 3e                	je     0x402750
402712:	53                   	push   %ebx
402713:	8b 5d 08             	mov    0x8(%ebp),%ebx
402716:	8a 03                	mov    (%ebx),%al
402718:	c0 e8 04             	shr    $0x4,%al
40271b:	3c 0a                	cmp    $0xa,%al
40271d:	0f b6 c0             	movzbl %al,%eax
402720:	1b c9                	sbb    %ecx,%ecx
402722:	83 e1 f9             	and    $0xfffffff9,%ecx
402725:	83 c1 37             	add    $0x37,%ecx
402728:	66 03 c8             	add    %ax,%cx
40272b:	66 89 0a             	mov    %cx,(%edx)
40272e:	8a 03                	mov    (%ebx),%al
402730:	24 0f                	and    $0xf,%al
402732:	3c 0a                	cmp    $0xa,%al
402734:	0f b6 c0             	movzbl %al,%eax
402737:	1b c9                	sbb    %ecx,%ecx
402739:	83 e1 f9             	and    $0xfffffff9,%ecx
40273c:	83 c1 37             	add    $0x37,%ecx
40273f:	66 03 c8             	add    %ax,%cx
402742:	66 89 4a 02          	mov    %cx,0x2(%edx)
402746:	83 c2 04             	add    $0x4,%edx
402749:	43                   	inc    %ebx
40274a:	83 ee 01             	sub    $0x1,%esi
40274d:	75 c7                	jne    0x402716
40274f:	5b                   	pop    %ebx
402750:	33 c0                	xor    %eax,%eax
402752:	66 89 02             	mov    %ax,(%edx)
402755:	8b c7                	mov    %edi,%eax
402757:	5f                   	pop    %edi
402758:	5e                   	pop    %esi
402759:	5d                   	pop    %ebp
40275a:	c2 10 00             	ret    $0x10
40275d:	55                   	push   %ebp
40275e:	8b ec                	mov    %esp,%ebp
402760:	56                   	push   %esi
402761:	33 f6                	xor    %esi,%esi
402763:	39 75 08             	cmp    %esi,0x8(%ebp)
402766:	74 1f                	je     0x402787
402768:	ff 75 08             	push   0x8(%ebp)
40276b:	e8 e1 13 00 00       	call   0x403b51
402770:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402773:	89 01                	mov    %eax,(%ecx)
402775:	83 f8 ff             	cmp    $0xffffffff,%eax
402778:	75 07                	jne    0x402781
40277a:	be 05 40 00 80       	mov    $0x80004005,%esi
40277f:	eb 0b                	jmp    0x40278c
402781:	d1 e8                	shr    $1,%eax
402783:	89 01                	mov    %eax,(%ecx)
402785:	eb 05                	jmp    0x40278c
402787:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40278a:	89 31                	mov    %esi,(%ecx)
40278c:	8b c6                	mov    %esi,%eax
40278e:	5e                   	pop    %esi
40278f:	5d                   	pop    %ebp
402790:	c2 08 00             	ret    $0x8
402793:	55                   	push   %ebp
402794:	8b ec                	mov    %esp,%ebp
402796:	57                   	push   %edi
402797:	ff 75 08             	push   0x8(%ebp)
40279a:	e8 17 00 00 00       	call   0x4027b6
40279f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4027a3:	8b f8                	mov    %eax,%edi
4027a5:	74 08                	je     0x4027af
4027a7:	ff 75 08             	push   0x8(%ebp)
4027aa:	e8 ea 11 00 00       	call   0x403999
4027af:	8b c7                	mov    %edi,%eax
4027b1:	5f                   	pop    %edi
4027b2:	5d                   	pop    %ebp
4027b3:	c2 04 00             	ret    $0x4
4027b6:	55                   	push   %ebp
4027b7:	8b ec                	mov    %esp,%ebp
4027b9:	53                   	push   %ebx
4027ba:	56                   	push   %esi
4027bb:	8b 75 08             	mov    0x8(%ebp),%esi
4027be:	33 db                	xor    %ebx,%ebx
4027c0:	85 f6                	test   %esi,%esi
4027c2:	74 1e                	je     0x4027e2
4027c4:	56                   	push   %esi
4027c5:	e8 87 13 00 00       	call   0x403b51
4027ca:	83 f8 ff             	cmp    $0xffffffff,%eax
4027cd:	75 07                	jne    0x4027d6
4027cf:	bb 57 00 07 80       	mov    $0x80070057,%ebx
4027d4:	eb 0c                	jmp    0x4027e2
4027d6:	85 c0                	test   %eax,%eax
4027d8:	74 08                	je     0x4027e2
4027da:	88 1e                	mov    %bl,(%esi)
4027dc:	46                   	inc    %esi
4027dd:	83 e8 01             	sub    $0x1,%eax
4027e0:	75 f8                	jne    0x4027da
4027e2:	5e                   	pop    %esi
4027e3:	8b c3                	mov    %ebx,%eax
4027e5:	5b                   	pop    %ebx
4027e6:	5d                   	pop    %ebp
4027e7:	c2 04 00             	ret    $0x4
4027ea:	55                   	push   %ebp
4027eb:	8b ec                	mov    %esp,%ebp
4027ed:	ff 75 08             	push   0x8(%ebp)
4027f0:	e8 5c 13 00 00       	call   0x403b51
4027f5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4027f8:	8b d0                	mov    %eax,%edx
4027fa:	b8 05 40 00 80       	mov    $0x80004005,%eax
4027ff:	89 11                	mov    %edx,(%ecx)
402801:	33 c9                	xor    %ecx,%ecx
402803:	83 fa ff             	cmp    $0xffffffff,%edx
402806:	0f 45 c1             	cmovne %ecx,%eax
402809:	5d                   	pop    %ebp
40280a:	c2 08 00             	ret    $0x8
40280d:	55                   	push   %ebp
40280e:	8b ec                	mov    %esp,%ebp
402810:	51                   	push   %ecx
402811:	51                   	push   %ecx
402812:	53                   	push   %ebx
402813:	56                   	push   %esi
402814:	33 db                	xor    %ebx,%ebx
402816:	8d 45 fc             	lea    -0x4(%ebp),%eax
402819:	53                   	push   %ebx
40281a:	53                   	push   %ebx
40281b:	ff 75 10             	push   0x10(%ebp)
40281e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402821:	50                   	push   %eax
402822:	89 5d f8             	mov    %ebx,-0x8(%ebp)
402825:	e8 88 ec ff ff       	call   0x4014b2
40282a:	8b f0                	mov    %eax,%esi
40282c:	85 f6                	test   %esi,%esi
40282e:	78 33                	js     0x402863
402830:	8d 45 f8             	lea    -0x8(%ebp),%eax
402833:	50                   	push   %eax
402834:	ff 75 14             	push   0x14(%ebp)