7c254c:	8b bc 24 4c 0d 00 00 	mov    0xd4c(%esp),%edi
7c2553:	89 5c 24 24          	mov    %ebx,0x24(%esp)
7c2557:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
7c255b:	89 44 24 20          	mov    %eax,0x20(%esp)
7c255f:	89 6c 24 34          	mov    %ebp,0x34(%esp)
7c2563:	89 74 24 28          	mov    %esi,0x28(%esp)
7c2567:	7c 18                	jl     0x7c2581
7c2569:	68 e8 bb c2 00       	push   $0xc2bbe8
7c256e:	6a 02                	push   $0x2
7c2570:	e8 c5 82 c4 ff       	call   0x40a83a
7c2575:	83 c4 04             	add    $0x4,%esp
7c2578:	50                   	push   %eax
7c2579:	e8 32 89 c5 ff       	call   0x41aeb0
7c257e:	83 c4 08             	add    $0x8,%esp
7c2581:	b8 00 00 01 00       	mov    $0x10000,%eax
7c2586:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
7c258d:	00 00 00
7c2590:	c7 44 85 00 00 00 00 	movl   $0x0,0x0(%ebp,%eax,4)
7c2597:	00
7c2598:	83 e8 01             	sub    $0x1,%eax
7c259b:	79 f3                	jns    0x7c2590
7c259d:	0f b6 0f             	movzbl (%edi),%ecx
7c25a0:	8d 46 ff             	lea    -0x1(%esi),%eax
7c25a3:	8b d0                	mov    %eax,%edx
7c25a5:	c1 e1 08             	shl    $0x8,%ecx
7c25a8:	89 44 24 3c          	mov    %eax,0x3c(%esp)
7c25ac:	83 fa 03             	cmp    $0x3,%edx
7c25af:	7c 7d                	jl     0x7c262e
7c25b1:	8b 7c 24 20          	mov    0x20(%esp),%edi
7c25b5:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
7c25b9:	83 c7 fc             	add    $0xfffffffc,%edi
7c25bc:	8d 3c 57             	lea    (%edi,%edx,2),%edi
7c25bf:	90                   	nop
7c25c0:	33 c0                	xor    %eax,%eax
7c25c2:	c1 f9 08             	sar    $0x8,%ecx
7c25c5:	66 89 47 04          	mov    %ax,0x4(%edi)
7c25c9:	8d 7f f8             	lea    -0x8(%edi),%edi
7c25cc:	0f b6 04 13          	movzbl (%ebx,%edx,1),%eax
7c25d0:	c1 e0 08             	shl    $0x8,%eax
7c25d3:	0b c1                	or     %ecx,%eax
7c25d5:	33 c9                	xor    %ecx,%ecx
7c25d7:	ff 44 85 00          	incl   0x0(%ebp,%eax,4)
7c25db:	66 89 4f 0a          	mov    %cx,0xa(%edi)
7c25df:	0f b6 4c 13 ff       	movzbl -0x1(%ebx,%edx,1),%ecx
7c25e4:	c1 e1 08             	shl    $0x8,%ecx
7c25e7:	c1 f8 08             	sar    $0x8,%eax
7c25ea:	0b c8                	or     %eax,%ecx
7c25ec:	33 c0                	xor    %eax,%eax
7c25ee:	ff 44 8d 00          	incl   0x0(%ebp,%ecx,4)
7c25f2:	66 89 47 08          	mov    %ax,0x8(%edi)
7c25f6:	0f b6 44 13 fe       	movzbl -0x2(%ebx,%edx,1),%eax
7c25fb:	c1 f9 08             	sar    $0x8,%ecx
7c25fe:	c1 e0 08             	shl    $0x8,%eax
7c2601:	0b c1                	or     %ecx,%eax
7c2603:	33 c9                	xor    %ecx,%ecx
7c2605:	ff 44 85 00          	incl   0x0(%ebp,%eax,4)
7c2609:	66 89 4f 06          	mov    %cx,0x6(%edi)
7c260d:	0f b6 4c 13 fd       	movzbl -0x3(%ebx,%edx,1),%ecx
7c2612:	83 ea 04             	sub    $0x4,%edx
7c2615:	c1 e1 08             	shl    $0x8,%ecx
7c2618:	c1 f8 08             	sar    $0x8,%eax
7c261b:	0b c8                	or     %eax,%ecx
7c261d:	ff 44 8d 00          	incl   0x0(%ebp,%ecx,4)
7c2621:	83 fa 03             	cmp    $0x3,%edx
7c2624:	7d 9a                	jge    0x7c25c0
7c2626:	8b 5c 24 24          	mov    0x24(%esp),%ebx
7c262a:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
7c262e:	85 d2                	test   %edx,%edx
7c2630:	78 23                	js     0x7c2655
7c2632:	8b 5c 24 20          	mov    0x20(%esp),%ebx
7c2636:	33 c0                	xor    %eax,%eax
7c2638:	c1 f9 08             	sar    $0x8,%ecx
7c263b:	66 89 04 53          	mov    %ax,(%ebx,%edx,2)
7c263f:	0f b6 04 17          	movzbl (%edi,%edx,1),%eax
7c2643:	c1 e0 08             	shl    $0x8,%eax
7c2646:	0b c8                	or     %eax,%ecx
7c2648:	ff 44 8d 00          	incl   0x0(%ebp,%ecx,4)
7c264c:	83 ea 01             	sub    $0x1,%edx
7c264f:	79 e5                	jns    0x7c2636
7c2651:	8b 5c 24 24          	mov    0x24(%esp),%ebx
7c2655:	8b 44 24 20          	mov    0x20(%esp),%eax
7c2659:	33 c9                	xor    %ecx,%ecx
7c265b:	8d 14 70             	lea    (%eax,%esi,2),%edx
7c265e:	03 f7                	add    %edi,%esi
7c2660:	8a 04 0f             	mov    (%edi,%ecx,1),%al
7c2663:	8d 52 02             	lea    0x2(%edx),%edx
7c2666:	88 04 0e             	mov    %al,(%esi,%ecx,1)
7c2669:	33 c0                	xor    %eax,%eax
7c266b:	41                   	inc    %ecx
7c266c:	66 89 42 fe          	mov    %ax,-0x2(%edx)
7c2670:	83 f9 22             	cmp    $0x22,%ecx
7c2673:	7c eb                	jl     0x7c2660
7c2675:	83 bc 24 5c 0d 00 00 	cmpl   $0x4,0xd5c(%esp)
7c267c:	04
7c267d:	7c 18                	jl     0x7c2697
7c267f:	68 64 bb c2 00       	push   $0xc2bb64
7c2684:	6a 02                	push   $0x2
7c2686:	e8 af 81 c4 ff       	call   0x40a83a
7c268b:	83 c4 04             	add    $0x4,%esp
7c268e:	50                   	push   %eax
7c268f:	e8 1c 88 c5 ff       	call   0x41aeb0
7c2694:	83 c4 08             	add    $0x8,%esp
7c2697:	8d 4d 08             	lea    0x8(%ebp),%ecx
7c269a:	ba 00 40 00 00       	mov    $0x4000,%edx
7c269f:	90                   	nop
7c26a0:	8b 41 f8             	mov    -0x8(%ecx),%eax
7c26a3:	8d 49 10             	lea    0x10(%ecx),%ecx
7c26a6:	01 41 ec             	add    %eax,-0x14(%ecx)
7c26a9:	8b 41 ec             	mov    -0x14(%ecx),%eax
7c26ac:	01 41 f0             	add    %eax,-0x10(%ecx)
7c26af:	8b 41 f0             	mov    -0x10(%ecx),%eax
7c26b2:	01 41 f4             	add    %eax,-0xc(%ecx)
7c26b5:	8b 41 f4             	mov    -0xc(%ecx),%eax
7c26b8:	01 41 f8             	add    %eax,-0x8(%ecx)
7c26bb:	83 ea 01             	sub    $0x1,%edx
7c26be:	75 e0                	jne    0x7c26a0
7c26c0:	0f b6 07             	movzbl (%edi),%eax
7c26c3:	8b 74 24 3c          	mov    0x3c(%esp),%esi
7c26c7:	66 c1 e0 08          	shl    $0x8,%ax
7c26cb:	0f b7 d0             	movzwl %ax,%edx
7c26ce:	83 fe 03             	cmp    $0x3,%esi
7c26d1:	0f 8c ca 00 00 00    	jl     0x7c27a1
7c26d7:	8d 46 ff             	lea    -0x1(%esi),%eax
7c26da:	03 c7                	add    %edi,%eax
7c26dc:	89 44 24 18          	mov    %eax,0x18(%esp)
7c26e0:	83 c8 ff             	or     $0xffffffff,%eax
7c26e3:	2b c7                	sub    %edi,%eax
7c26e5:	89 44 24 14          	mov    %eax,0x14(%esp)
7c26e9:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
7c26ee:	2b c7                	sub    %edi,%eax
7c26f0:	8b 7c 24 18          	mov    0x18(%esp),%edi
7c26f4:	89 44 24 10          	mov    %eax,0x10(%esp)
7c26f8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
7c26ff:	00
7c2700:	0f b6 47 01          	movzbl 0x1(%edi),%eax
7c2704:	66 c1 e0 08          	shl    $0x8,%ax
7c2708:	66 c1 ea 08          	shr    $0x8,%dx
7c270c:	66 0b c2             	or     %dx,%ax
7c270f:	0f b7 d0             	movzwl %ax,%edx
7c2712:	8b c2                	mov    %edx,%eax
7c2714:	66 c1 ea 08          	shr    $0x8,%dx
7c2718:	8b 4c 85 00          	mov    0x0(%ebp,%eax,4),%ecx
7c271c:	49                   	dec    %ecx
7c271d:	89 4c 85 00          	mov    %ecx,0x0(%ebp,%eax,4)
7c2721:	89 34 8b             	mov    %esi,(%ebx,%ecx,4)
7c2724:	0f b6 07             	movzbl (%edi),%eax
7c2727:	66 c1 e0 08          	shl    $0x8,%ax
7c272b:	66 0b c2             	or     %dx,%ax
7c272e:	0f b7 d0             	movzwl %ax,%edx
7c2731:	8b c2                	mov    %edx,%eax
7c2733:	66 c1 ea 08          	shr    $0x8,%dx
7c2737:	8b 4c 85 00          	mov    0x0(%ebp,%eax,4),%ecx
7c273b:	49                   	dec    %ecx
7c273c:	89 4c 85 00          	mov    %ecx,0x0(%ebp,%eax,4)
7c2740:	8d 46 ff             	lea    -0x1(%esi),%eax
7c2743:	83 ee 04             	sub    $0x4,%esi
7c2746:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
7c2749:	0f b6 47 ff          	movzbl -0x1(%edi),%eax
7c274d:	66 c1 e0 08          	shl    $0x8,%ax
7c2751:	66 0b c2             	or     %dx,%ax
7c2754:	0f b7 d0             	movzwl %ax,%edx
7c2757:	8b c2                	mov    %edx,%eax
7c2759:	66 c1 ea 08          	shr    $0x8,%dx
7c275d:	8b 4c 85 00          	mov    0x0(%ebp,%eax,4),%ecx
7c2761:	49                   	dec    %ecx
7c2762:	89 4c 85 00          	mov    %ecx,0x0(%ebp,%eax,4)
7c2766:	8b 44 24 14          	mov    0x14(%esp),%eax
7c276a:	03 c7                	add    %edi,%eax
7c276c:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
7c276f:	0f b6 47 fe          	movzbl -0x2(%edi),%eax
7c2773:	66 c1 e0 08          	shl    $0x8,%ax
7c2777:	66 0b c2             	or     %dx,%ax
7c277a:	0f b7 d0             	movzwl %ax,%edx
7c277d:	8b c2                	mov    %edx,%eax
7c277f:	8b 4c 85 00          	mov    0x0(%ebp,%eax,4),%ecx
7c2783:	49                   	dec    %ecx
7c2784:	89 4c 85 00          	mov    %ecx,0x0(%ebp,%eax,4)
7c2788:	8b 44 24 10          	mov    0x10(%esp),%eax
7c278c:	03 c7                	add    %edi,%eax
7c278e:	83 ef 04             	sub    $0x4,%edi
7c2791:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
7c2794:	83 fe 03             	cmp    $0x3,%esi
7c2797:	0f 8d 63 ff ff ff    	jge    0x7c2700
7c279d:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
7c27a1:	85 f6                	test   %esi,%esi
7c27a3:	78 30                	js     0x7c27d5
7c27a5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
7c27ac:	00 00 00 00
7c27b0:	0f b6 04 37          	movzbl (%edi,%esi,1),%eax
7c27b4:	66 c1 e0 08          	shl    $0x8,%ax
7c27b8:	66 c1 ea 08          	shr    $0x8,%dx
7c27bc:	66 0b c2             	or     %dx,%ax
7c27bf:	0f b7 d0             	movzwl %ax,%edx
7c27c2:	8b c2                	mov    %edx,%eax
7c27c4:	8b 4c 85 00          	mov    0x0(%ebp,%eax,4),%ecx
7c27c8:	49                   	dec    %ecx
7c27c9:	89 4c 85 00          	mov    %ecx,0x0(%ebp,%eax,4)
7c27cd:	89 34 8b             	mov    %esi,(%ebx,%ecx,4)
7c27d0:	83 ee 01             	sub    $0x1,%esi
7c27d3:	79 db                	jns    0x7c27b0
7c27d5:	33 c0                	xor    %eax,%eax
7c27d7:	66 0f 1f 84 00 00 00 	nopw   0x0(%eax,%eax,1)
7c27de:	00 00
7c27e0:	3d 00 01 00 00       	cmp    $0x100,%eax
7c27e5:	0f 83 5e 04 00 00    	jae    0x7c2c49
7c27eb:	c6 84 04 40 0c 00 00 	movb   $0x0,0xc40(%esp,%eax,1)
7c27f2:	00
7c27f3:	89 44 84 40          	mov    %eax,0x40(%esp,%eax,4)
7c27f7:	40                   	inc    %eax
7c27f8:	3d ff 00 00 00       	cmp    $0xff,%eax
7c27fd:	7e e1                	jle    0x7c27e0
7c27ff:	bf 01 00 00 00       	mov    $0x1,%edi
7c2804:	8d 3c 7f             	lea    (%edi,%edi,2),%edi
7c2807:	47                   	inc    %edi
7c2808:	81 ff 00 01 00 00    	cmp    $0x100,%edi
7c280e:	7e f4                	jle    0x7c2804
7c2810:	b8 56 55 55 55       	mov    $0x55555556,%eax
7c2815:	f7 ef                	imul   %edi
7c2817:	8b fa                	mov    %edx,%edi
7c2819:	c1 ef 1f             	shr    $0x1f,%edi
7c281c:	03 fa                	add    %edx,%edi
7c281e:	8b c7                	mov    %edi,%eax
7c2820:	89 44 24 14          	mov    %eax,0x14(%esp)
7c2824:	81 ff ff 00 00 00    	cmp    $0xff,%edi
7c282a:	0f 8f 8e 00 00 00    	jg     0x7c28be
7c2830:	8d 74 24 40          	lea    0x40(%esp),%esi
7c2834:	89 74 24 10          	mov    %esi,0x10(%esp)
7c2838:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
7c283f:	00
7c2840:	8b 4c 84 40          	mov    0x40(%esp,%eax,4),%ecx
7c2844:	89 4c 24 18          	mov    %ecx,0x18(%esp)
7c2848:	c1 e1 0a             	shl    $0xa,%ecx
7c284b:	8b 9c 29 00 04 00 00 	mov    0x400(%ecx,%ebp,1),%ebx
7c2852:	2b 1c 29             	sub    (%ecx,%ebp,1),%ebx
7c2855:	8b 0e                	mov    (%esi),%ecx
7c2857:	c1 e1 0a             	shl    $0xa,%ecx
7c285a:	8b 94 29 00 04 00 00 	mov    0x400(%ecx,%ebp,1),%edx
7c2861:	2b 14 29             	sub    (%ecx,%ebp,1),%edx
7c2864:	3b d3                	cmp    %ebx,%edx
7c2866:	76 37                	jbe    0x7c289f
7c2868:	8d 57 ff             	lea    -0x1(%edi),%edx
7c286b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
7c2870:	8b 0e                	mov    (%esi),%ecx
7c2872:	89 4c 84 40          	mov    %ecx,0x40(%esp,%eax,4)
7c2876:	8d 0c bd 00 00 00 00 	lea    0x0(,%edi,4),%ecx
7c287d:	2b c7                	sub    %edi,%eax
7c287f:	2b f1                	sub    %ecx,%esi
7c2881:	3b c2                	cmp    %edx,%eax
7c2883:	7e 16                	jle    0x7c289b
7c2885:	8b 0e                	mov    (%esi),%ecx
7c2887:	c1 e1 0a             	shl    $0xa,%ecx
7c288a:	8b 94 29 00 04 00 00 	mov    0x400(%ecx,%ebp,1),%edx
7c2891:	2b 14 29             	sub    (%ecx,%ebp,1),%edx
7c2894:	3b d3                	cmp    %ebx,%edx
7c2896:	8d 57 ff             	lea    -0x1(%edi),%edx
7c2899:	77 d5                	ja     0x7c2870
7c289b:	8b 74 24 10          	mov    0x10(%esp),%esi
7c289f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
7c28a3:	83 c6 04             	add    $0x4,%esi
7c28a6:	89 4c 84 40          	mov    %ecx,0x40(%esp,%eax,4)
7c28aa:	8b 44 24 14          	mov    0x14(%esp),%eax
7c28ae:	40                   	inc    %eax
7c28af:	89 74 24 10          	mov    %esi,0x10(%esp)
7c28b3:	89 44 24 14          	mov    %eax,0x14(%esp)
7c28b7:	3d ff 00 00 00       	cmp    $0xff,%eax
7c28bc:	7e 82                	jle    0x7c2840
7c28be:	83 ff 01             	cmp    $0x1,%edi
7c28c1:	0f 85 49 ff ff ff    	jne    0x7c2810
7c28c7:	33 c9                	xor    %ecx,%ecx
7c28c9:	33 ff                	xor    %edi,%edi
7c28cb:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
7c28cf:	89 7c 24 14          	mov    %edi,0x14(%esp)
7c28d3:	8b 54 bc 40          	mov    0x40(%esp,%edi,4),%edx
7c28d7:	33 db                	xor    %ebx,%ebx
7c28d9:	89 54 24 10          	mov    %edx,0x10(%esp)
7c28dd:	0f 1f 00             	nopl   (%eax)
7c28e0:	3b da                	cmp    %edx,%ebx
7c28e2:	0f 84 af 00 00 00    	je     0x7c2997
7c28e8:	8b c2                	mov    %edx,%eax
7c28ea:	c1 e0 08             	shl    $0x8,%eax
7c28ed:	03 c3                	add    %ebx,%eax
7c28ef:	8d 04 85 00 00 00 00 	lea    0x0(,%eax,4),%eax
7c28f6:	03 c5                	add    %ebp,%eax
7c28f8:	89 44 24 18          	mov    %eax,0x18(%esp)
7c28fc:	8b 38                	mov    (%eax),%edi
7c28fe:	f7 c7 00 00 20 00    	test   $0x200000,%edi
7c2904:	0f 85 87 00 00 00    	jne    0x7c2991
7c290a:	8b 70 04             	mov    0x4(%eax),%esi
7c290d:	81 e7 ff ff df ff    	and    $0xffdfffff,%edi
7c2913:	81 e6 ff ff df ff    	and    $0xffdfffff,%esi
7c2919:	4e                   	dec    %esi
7c291a:	3b f7                	cmp    %edi,%esi
7c291c:	7e 73                	jle    0x7c2991
7c291e:	83 bc 24 5c 0d 00 00 	cmpl   $0x4,0xd5c(%esp)
7c2925:	04
7c2926:	7c 21                	jl     0x7c2949
7c2928:	8b c6                	mov    %esi,%eax
7c292a:	2b c7                	sub    %edi,%eax
7c292c:	40                   	inc    %eax
7c292d:	50                   	push   %eax
7c292e:	51                   	push   %ecx
7c292f:	53                   	push   %ebx
7c2930:	52                   	push   %edx
7c2931:	68 10 bc c2 00       	push   $0xc2bc10
7c2936:	6a 02                	push   $0x2
7c2938:	e8 fd 7e c4 ff       	call   0x40a83a
7c293d:	83 c4 04             	add    $0x4,%esp
7c2940:	50                   	push   %eax
7c2941:	e8 6a 85 c5 ff       	call   0x41aeb0
7c2946:	83 c4 18             	add    $0x18,%esp
7c2949:	ff b4 24 60 0d 00 00 	push   0xd60(%esp)
7c2950:	6a 02                	push   $0x2
7c2952:	56                   	push   %esi
7c2953:	57                   	push   %edi
7c2954:	ff 74 24 38          	push   0x38(%esp)
7c2958:	ff 74 24 34          	push   0x34(%esp)
7c295c:	ff 74 24 34          	push   0x34(%esp)
7c2960:	ff 74 24 40          	push   0x40(%esp)
7c2964:	e8 77 f3 ff ff       	call   0x7c1ce0
7c2969:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
7c296d:	2b f7                	sub    %edi,%esi
7c296f:	8b 84 24 80 0d 00 00 	mov    0xd80(%esp),%eax
7c2976:	41                   	inc    %ecx
7c2977:	03 ce                	add    %esi,%ecx
7c2979:	83 c4 20             	add    $0x20,%esp
7c297c:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
7c2980:	83 38 00             	cmpl   $0x0,(%eax)
7c2983:	0f 8c a7 02 00 00    	jl     0x7c2c30
7c2989:	8b 44 24 18          	mov    0x18(%esp),%eax
7c298d:	8b 54 24 10          	mov    0x10(%esp),%edx
7c2991:	81 08 00 00 20 00    	orl    $0x200000,(%eax)
7c2997:	43                   	inc    %ebx
7c2998:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
7c299e:	0f 8e 3c ff ff ff    	jle    0x7c28e0
7c29a4:	8d 84 24 40 0c 00 00 	lea    0xc40(%esp),%eax
7c29ab:	03 c2                	add    %edx,%eax
7c29ad:	89 44 24 38          	mov    %eax,0x38(%esp)
7c29b1:	80 38 00             	cmpb   $0x0,(%eax)
7c29b4:	74 11                	je     0x7c29c7
7c29b6:	68 ee 03 00 00       	push   $0x3ee
7c29bb:	e8 78 10 c6 ff       	call   0x423a38
7c29c0:	8b 54 24 14          	mov    0x14(%esp),%edx
7c29c4:	83 c4 04             	add    $0x4,%esp
7c29c7:	8d 1c 95 00 00 00 00 	lea    0x0(,%edx,4),%ebx
7c29ce:	33 c9                	xor    %ecx,%ecx
7c29d0:	8d 3c 2b             	lea    (%ebx,%ebp,1),%edi
7c29d3:	89 5c 24 30          	mov    %ebx,0x30(%esp)
7c29d7:	89 7c 24 18          	mov    %edi,0x18(%esp)
7c29db:	8b f7                	mov    %edi,%esi
7c29dd:	0f 1f 00             	nopl   (%eax)