Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 667 → Rev 668

/kernel/trunk/core/peload.inc
35,61 → 35,80
push edi
push esi
push ebx
sub esp, 28
sub esp, 44
 
mov edx, [esp+52]
mov ebx, [esp+48]
mov dword [esp+20], 0
add edx, [edx+60]
mov ebp, [esp+68]
mov ebx, [esp+64]
mov edx, ebp
mov esi, ebp
add edx, [ebp+60]
mov edi, ebx
mov [esp+32], edx
 
mov ecx, [edx+84]
shr ecx, 2
rep movsd
 
movzx eax, word [edx+6]
mov [esp+16], edx
mov [esp+12], eax
mov dword [esp+36], 0
mov [esp+28], eax
jmp .L6
.L7:
mov eax, [edx+264]
mov ebp, [edx+260]
mov esi, [esp+52]
test eax, eax
je .L8
 
mov esi, ebp
mov edi, ebx
add esi, [edx+268]
mov ecx, eax
lea edi, [ebx+ebp]
add edi, [edx+260]
 
shr ecx, 2
rep movsd
 
.L8:
mov ecx, [edx+256]
add ecx, 4095
and ecx, -4096
cmp ecx, eax
jbe .L8
jbe .L10
 
sub ecx, eax
add eax, [edx+260]
lea edi, [eax+ebx]
 
xor eax, eax
rep stosb
 
.L8:
inc dword [esp+20]
.L10:
inc dword [esp+36]
add edx, 40
.L6:
mov eax, [esp+12]
cmp [esp+20], eax
mov esi, [esp+28]
cmp [esp+36], esi
jne .L7
 
mov edx, [esp+16]
cmp dword [edx+164], 0
je .L11
mov edi, [esp+32]
cmp dword [edi+164], 0
je .L13
 
mov eax, [esp+32]
mov edi, ebx
mov ecx, ebx
sub edi, [edx+52]
add ecx, [edx+160]
mov eax, edi
shr eax, 16
mov [esp+4], eax
jmp .L13
.L14:
sub edi, [eax+52]
add ecx, [eax+160]
 
mov edx, edi
shr edx, 16
mov [esp+20], edx
jmp .L15
.L16:
lea esi, [eax-8]
xor ebp, ebp
shr esi,1
jmp .L15
.L16:
jmp .L17
.L18:
movzx eax, word [ecx+8+ebp*2]
mov edx, eax
shr eax, 12
96,98 → 115,95
and edx, 4095
add edx, [ecx]
cmp ax, 2
je .L19
je .L21
 
cmp ax, 3
je .L20
je .L22
 
dec ax
jne .L17
jne .L19
 
mov eax, [esp+4]
add word [edx+ebx], ax
mov eax, [esp+20]
add [edx+ebx], ax
.L21:
add [edx+ebx], di
.L22:
add [edx+ebx], edi
.L19:
add word [edx+ebx], di
.L20:
add [edx+ebx], edi
inc ebp
.L17:
inc ebp
.L15:
cmp ebp, esi
jne .L16
jne .L18
 
add ecx, [ecx+4]
.L13:
.L15:
mov eax, [ecx+4]
test eax, eax
jne .L14
.L11:
mov edx, [esp+16]
jne .L16
.L13:
mov edx, [esp+32]
cmp dword [edx+132], 0
je .L22
je .L24
 
mov eax, ebx
add eax, [edx+128]
lea esi, [eax+20]
.L24:
.L26:
cmp dword [esi-16], 0
jne .L25
jne .L27
 
cmp dword [esi-8], 0
je .L22
.L25:
je .L24
.L27:
mov ecx, [esi-20]
mov ebp, ebx
add ebp, [esi-4]
add ecx, ebx
mov [esp+24], ecx
.L27:
mov edx, [esp+24]
mov eax, [edx]
mov [esp+40], ecx
.L29:
mov edi, [esp+40]
mov eax, [edi]
test eax, eax
je .L28
je .L30
 
test eax, eax
js .L28
js .L30
 
lea eax, [eax+2+ebx]
mov edi, kernel_export
mov dword [ebp], -1
mov [esp+8], eax
.L31:
mov [ebp], dword -1
mov [esp+24], eax
.L33:
push ecx
push 16
push dword [edi]
push dword [esp+20]
push dword [esp+36]
call strncmp
pop edx
test eax, eax
jne .L32
 
jne .L34
mov eax, [edi+4]
mov [ebp], eax
jmp .L34
.L32:
jmp .L36
.L34:
add edi, 8
cmp dword [edi], 0
jne .L31
.L34:
add dword [esp+24], 4
jne .L33
.L36:
add dword [esp+40], 4
add ebp, 4
jmp .L27
.L28:
jmp .L29
.L30:
add esi, 20
jmp .L24
.L22:
 
mov ecx, [esp+16]
add ebx, [ecx+40]
 
add esp, 28
jmp .L26
.L24:
mov eax, [esp+32]
add ebx, [eax+40]
add esp, 44
mov eax, ebx
 
pop ebx
pop esi
pop edi
pop ebp
ret 8
 
ret 8