Rev 202 | Rev 211 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 202 | Rev 206 | ||
---|---|---|---|
Line 521... | Line 521... | ||
521 | lea eax, [attr] |
521 | lea eax, [attr] |
522 | stdcall get_fileinfo, [file_name], eax |
522 | stdcall get_fileinfo, [file_name], eax |
523 | test eax, eax |
523 | test eax, eax |
524 | jnz .fail |
524 | jnz .fail |
Line -... | Line 525... | ||
- | 525 | ||
- | 526 | mov eax, [file_size] |
|
525 | 527 | ||
526 | stdcall kernel_alloc, [file_size] |
528 | stdcall kernel_alloc, [file_size] |
Line 527... | Line 529... | ||
527 | mov [file], eax |
529 | mov [file], eax |
528 | 530 | ||
Line 672... | Line 674... | ||
672 | add [eax], edx |
674 | add [eax], edx |
673 | add edi, 10 |
675 | add edi, 10 |
674 | dec ecx |
676 | dec ecx |
675 | jnz .next_reloc |
677 | jnz .next_reloc |
676 | .next: |
678 | .next: |
677 | add [sec], 40 |
679 | add [sec], COFF_SECTION_SIZE |
678 | dec [n_sec] |
680 | dec [n_sec] |
679 | jnz .fix_sec |
681 | jnz .fix_sec |
680 | .exit: |
682 | .exit: |
681 | ret |
683 | ret |
682 | endp |
684 | endp |
Line 707... | Line 709... | ||
707 | lea edx, [eax+20] |
709 | lea edx, [eax+20] |
708 | @@: |
710 | @@: |
709 | add ebx, [edx+CFS.SizeOfRawData] |
711 | add ebx, [edx+CFS.SizeOfRawData] |
710 | add ebx, 15 |
712 | add ebx, 15 |
711 | and ebx, not 15 |
713 | and ebx, not 15 |
712 | add edx, 18 |
714 | add edx, COFF_SECTION_SIZE |
713 | dec ecx |
715 | dec ecx |
714 | jnz @B |
716 | jnz @B |
715 | mov [img_size], ebx |
717 | mov [img_size], ebx |
Line 716... | Line 718... | ||
716 | 718 | ||
Line 745... | Line 747... | ||
745 | cld |
747 | cld |
746 | rep movsb |
748 | rep movsb |
747 | .next: |
749 | .next: |
748 | add edi, 15 |
750 | add edi, 15 |
749 | and edi, not 15 |
751 | and edi, not 15 |
750 | add eax, 40 |
752 | add eax, COFF_SECTION_SIZE |
751 | dec ebx |
753 | dec ebx |
752 | jnz @B |
754 | jnz @B |
Line 753... | Line 755... | ||
753 | 755 | ||
754 | mov ebx, [edx+CFH.pSymTable] |
756 | mov ebx, [edx+CFH.pSymTable] |
Line 833... | Line 835... | ||
833 | lea edx, [eax+20] |
835 | lea edx, [eax+20] |
834 | @@: |
836 | @@: |
835 | add ebx, [edx+CFS.SizeOfRawData] |
837 | add ebx, [edx+CFS.SizeOfRawData] |
836 | add ebx, 15 |
838 | add ebx, 15 |
837 | and ebx, not 15 |
839 | and ebx, not 15 |
838 | add edx, 18 |
840 | add edx, COFF_SECTION_SIZE |
839 | dec ecx |
841 | dec ecx |
840 | jnz @B |
842 | jnz @B |
841 | mov [img_size], ebx |
843 | mov [img_size], ebx |
Line 842... | Line 844... | ||
842 | 844 | ||
Line 865... | Line 867... | ||
865 | cld |
867 | cld |
866 | rep movsb |
868 | rep movsb |
867 | .next: |
869 | .next: |
868 | add edi, 15-new_app_base |
870 | add edi, 15-new_app_base |
869 | and edi, not 15 |
871 | and edi, not 15 |
870 | add eax, 40 |
872 | add eax, COFF_SECTION_SIZE |
871 | dec ebx |
873 | dec ebx |
872 | jnz @B |
874 | jnz @B |
Line 873... | Line 875... | ||
873 | 875 | ||
874 | mov ebx, [edx+CFH.pSymTable] |
876 | mov ebx, [edx+CFH.pSymTable] |
Line 892... | Line 894... | ||
892 | movzx ebx, [edx+CFH.nSections] |
894 | movzx ebx, [edx+CFH.nSections] |
893 | mov edi, new_app_base |
895 | mov edi, new_app_base |
894 | lea eax, [edx+20] |
896 | lea eax, [edx+20] |
895 | @@: |
897 | @@: |
896 | add [eax+CFS.VirtualAddress], edi ;patch user space offset |
898 | add [eax+CFS.VirtualAddress], edi ;patch user space offset |
897 | add eax, 40 |
899 | add eax, COFF_SECTION_SIZE |
898 | dec ebx |
900 | dec ebx |
899 | jnz @B |
901 | jnz @B |
Line 900... | Line 902... | ||
900 | 902 | ||
901 | add edx, 20 |
903 | add edx, 20 |