|
|
|
OPTION DOTNAME
|
|
|
|
.text$ SEGMENT ALIGN(64) 'CODE'
|
|
|
|
PUBLIC sha1_block_data_order
|
|
|
|
|
|
|
|
ALIGN 16
|
|
|
|
sha1_block_data_order PROC PUBLIC
|
|
|
|
mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
|
|
|
|
mov QWORD PTR[16+rsp],rsi
|
|
|
|
mov rax,rsp
|
|
|
|
$L$SEH_begin_sha1_block_data_order::
|
|
|
|
mov rdi,rcx
|
|
|
|
mov rsi,rdx
|
|
|
|
mov rdx,r8
|
|
|
|
|
|
|
|
|
|
|
|
push rbx
|
|
|
|
push rbp
|
|
|
|
push r12
|
|
|
|
mov r11,rsp
|
|
|
|
mov r8,rdi
|
|
|
|
sub rsp,72
|
|
|
|
mov r9,rsi
|
|
|
|
and rsp,-64
|
|
|
|
mov r10,rdx
|
|
|
|
mov QWORD PTR[64+rsp],r11
|
|
|
|
$L$prologue::
|
|
|
|
|
|
|
|
mov edx,DWORD PTR[r8]
|
|
|
|
mov esi,DWORD PTR[4+r8]
|
|
|
|
mov edi,DWORD PTR[8+r8]
|
|
|
|
mov ebp,DWORD PTR[12+r8]
|
|
|
|
mov r11d,DWORD PTR[16+r8]
|
|
|
|
ALIGN 4
|
|
|
|
$L$loop::
|
|
|
|
mov eax,DWORD PTR[r9]
|
|
|
|
bswap eax
|
|
|
|
mov DWORD PTR[rsp],eax
|
|
|
|
lea r12d,DWORD PTR[05a827999h+r11*1+rax]
|
|
|
|
mov ebx,edi
|
|
|
|
mov eax,DWORD PTR[4+r9]
|
|
|
|
mov r11d,edx
|
|
|
|
xor ebx,ebp
|
|
|
|
bswap eax
|
|
|
|
rol r11d,5
|
|
|
|
and ebx,esi
|
|
|
|
mov DWORD PTR[4+rsp],eax
|
|
|
|
add r12d,r11d
|
|
|
|
xor ebx,ebp
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
|
|
|
|
mov ebx,esi
|
|
|
|
mov eax,DWORD PTR[8+r9]
|
|
|
|
mov ebp,r12d
|
|
|
|
xor ebx,edi
|
|
|
|
bswap eax
|
|
|
|
rol ebp,5
|
|
|
|
and ebx,edx
|
|
|
|
mov DWORD PTR[8+rsp],eax
|
|
|
|
add r11d,ebp
|
|
|
|
xor ebx,edi
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
lea ebp,DWORD PTR[05a827999h+rdi*1+rax]
|
|
|
|
mov ebx,edx
|
|
|
|
mov eax,DWORD PTR[12+r9]
|
|
|
|
mov edi,r11d
|
|
|
|
xor ebx,esi
|
|
|
|
bswap eax
|
|
|
|
rol edi,5
|
|
|
|
and ebx,r12d
|
|
|
|
mov DWORD PTR[12+rsp],eax
|
|
|
|
add ebp,edi
|
|
|
|
xor ebx,esi
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
lea edi,DWORD PTR[05a827999h+rsi*1+rax]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov eax,DWORD PTR[16+r9]
|
|
|
|
mov esi,ebp
|
|
|
|
xor ebx,edx
|
|
|
|
bswap eax
|
|
|
|
rol esi,5
|
|
|
|
and ebx,r11d
|
|
|
|
mov DWORD PTR[16+rsp],eax
|
|
|
|
add edi,esi
|
|
|
|
xor ebx,edx
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
lea esi,DWORD PTR[05a827999h+rdx*1+rax]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov eax,DWORD PTR[20+r9]
|
|
|
|
mov edx,edi
|
|
|
|
xor ebx,r12d
|
|
|
|
bswap eax
|
|
|
|
rol edx,5
|
|
|
|
and ebx,ebp
|
|
|
|
mov DWORD PTR[20+rsp],eax
|
|
|
|
add esi,edx
|
|
|
|
xor ebx,r12d
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
lea edx,DWORD PTR[05a827999h+r12*1+rax]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov eax,DWORD PTR[24+r9]
|
|
|
|
mov r12d,esi
|
|
|
|
xor ebx,r11d
|
|
|
|
bswap eax
|
|
|
|
rol r12d,5
|
|
|
|
and ebx,edi
|
|
|
|
mov DWORD PTR[24+rsp],eax
|
|
|
|
add edx,r12d
|
|
|
|
xor ebx,r11d
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
lea r12d,DWORD PTR[05a827999h+r11*1+rax]
|
|
|
|
mov ebx,edi
|
|
|
|
mov eax,DWORD PTR[28+r9]
|
|
|
|
mov r11d,edx
|
|
|
|
xor ebx,ebp
|
|
|
|
bswap eax
|
|
|
|
rol r11d,5
|
|
|
|
and ebx,esi
|
|
|
|
mov DWORD PTR[28+rsp],eax
|
|
|
|
add r12d,r11d
|
|
|
|
xor ebx,ebp
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
|
|
|
|
mov ebx,esi
|
|
|
|
mov eax,DWORD PTR[32+r9]
|
|
|
|
mov ebp,r12d
|
|
|
|
xor ebx,edi
|
|
|
|
bswap eax
|
|
|
|
rol ebp,5
|
|
|
|
and ebx,edx
|
|
|
|
mov DWORD PTR[32+rsp],eax
|
|
|
|
add r11d,ebp
|
|
|
|
xor ebx,edi
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
lea ebp,DWORD PTR[05a827999h+rdi*1+rax]
|
|
|
|
mov ebx,edx
|
|
|
|
mov eax,DWORD PTR[36+r9]
|
|
|
|
mov edi,r11d
|
|
|
|
xor ebx,esi
|
|
|
|
bswap eax
|
|
|
|
rol edi,5
|
|
|
|
and ebx,r12d
|
|
|
|
mov DWORD PTR[36+rsp],eax
|
|
|
|
add ebp,edi
|
|
|
|
xor ebx,esi
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
lea edi,DWORD PTR[05a827999h+rsi*1+rax]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov eax,DWORD PTR[40+r9]
|
|
|
|
mov esi,ebp
|
|
|
|
xor ebx,edx
|
|
|
|
bswap eax
|
|
|
|
rol esi,5
|
|
|
|
and ebx,r11d
|
|
|
|
mov DWORD PTR[40+rsp],eax
|
|
|
|
add edi,esi
|
|
|
|
xor ebx,edx
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
lea esi,DWORD PTR[05a827999h+rdx*1+rax]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov eax,DWORD PTR[44+r9]
|
|
|
|
mov edx,edi
|
|
|
|
xor ebx,r12d
|
|
|
|
bswap eax
|
|
|
|
rol edx,5
|
|
|
|
and ebx,ebp
|
|
|
|
mov DWORD PTR[44+rsp],eax
|
|
|
|
add esi,edx
|
|
|
|
xor ebx,r12d
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
lea edx,DWORD PTR[05a827999h+r12*1+rax]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov eax,DWORD PTR[48+r9]
|
|
|
|
mov r12d,esi
|
|
|
|
xor ebx,r11d
|
|
|
|
bswap eax
|
|
|
|
rol r12d,5
|
|
|
|
and ebx,edi
|
|
|
|
mov DWORD PTR[48+rsp],eax
|
|
|
|
add edx,r12d
|
|
|
|
xor ebx,r11d
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
lea r12d,DWORD PTR[05a827999h+r11*1+rax]
|
|
|
|
mov ebx,edi
|
|
|
|
mov eax,DWORD PTR[52+r9]
|
|
|
|
mov r11d,edx
|
|
|
|
xor ebx,ebp
|
|
|
|
bswap eax
|
|
|
|
rol r11d,5
|
|
|
|
and ebx,esi
|
|
|
|
mov DWORD PTR[52+rsp],eax
|
|
|
|
add r12d,r11d
|
|
|
|
xor ebx,ebp
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
|
|
|
|
mov ebx,esi
|
|
|
|
mov eax,DWORD PTR[56+r9]
|
|
|
|
mov ebp,r12d
|
|
|
|
xor ebx,edi
|
|
|
|
bswap eax
|
|
|
|
rol ebp,5
|
|
|
|
and ebx,edx
|
|
|
|
mov DWORD PTR[56+rsp],eax
|
|
|
|
add r11d,ebp
|
|
|
|
xor ebx,edi
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
lea ebp,DWORD PTR[05a827999h+rdi*1+rax]
|
|
|
|
mov ebx,edx
|
|
|
|
mov eax,DWORD PTR[60+r9]
|
|
|
|
mov edi,r11d
|
|
|
|
xor ebx,esi
|
|
|
|
bswap eax
|
|
|
|
rol edi,5
|
|
|
|
and ebx,r12d
|
|
|
|
mov DWORD PTR[60+rsp],eax
|
|
|
|
add ebp,edi
|
|
|
|
xor ebx,esi
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
lea edi,DWORD PTR[05a827999h+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
and ebx,r11d
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[rsp],eax
|
|
|
|
lea esi,DWORD PTR[05a827999h+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[4+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov edx,edi
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
and ebx,ebp
|
|
|
|
add esi,edx
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[4+rsp],eax
|
|
|
|
lea edx,DWORD PTR[05a827999h+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[8+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov r12d,esi
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
and ebx,edi
|
|
|
|
add edx,r12d
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[8+rsp],eax
|
|
|
|
lea r12d,DWORD PTR[05a827999h+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[12+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
and ebx,esi
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[12+rsp],eax
|
|
|
|
lea r11d,DWORD PTR[05a827999h+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[16+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
and ebx,edx
|
|
|
|
add r11d,ebp
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[16+rsp],eax
|
|
|
|
lea ebp,DWORD PTR[1859775393+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[20+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov edi,r11d
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
add ebp,edi
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[20+rsp],eax
|
|
|
|
lea edi,DWORD PTR[1859775393+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[24+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[24+rsp],eax
|
|
|
|
lea esi,DWORD PTR[1859775393+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[28+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov edx,edi
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
add esi,edx
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[28+rsp],eax
|
|
|
|
lea edx,DWORD PTR[1859775393+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[32+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov r12d,esi
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[32+rsp],eax
|
|
|
|
lea r12d,DWORD PTR[1859775393+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[36+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[36+rsp],eax
|
|
|
|
lea r11d,DWORD PTR[1859775393+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[40+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[40+rsp],eax
|
|
|
|
lea ebp,DWORD PTR[1859775393+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[44+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov edi,r11d
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
add ebp,edi
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[44+rsp],eax
|
|
|
|
lea edi,DWORD PTR[1859775393+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[48+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[48+rsp],eax
|
|
|
|
lea esi,DWORD PTR[1859775393+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[52+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov edx,edi
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
add esi,edx
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[52+rsp],eax
|
|
|
|
lea edx,DWORD PTR[1859775393+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[56+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov r12d,esi
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[56+rsp],eax
|
|
|
|
lea r12d,DWORD PTR[1859775393+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[60+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[60+rsp],eax
|
|
|
|
lea r11d,DWORD PTR[1859775393+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[rsp],eax
|
|
|
|
lea ebp,DWORD PTR[1859775393+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[4+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov edi,r11d
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
add ebp,edi
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[4+rsp],eax
|
|
|
|
lea edi,DWORD PTR[1859775393+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[8+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[8+rsp],eax
|
|
|
|
lea esi,DWORD PTR[1859775393+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[12+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov edx,edi
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
add esi,edx
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[12+rsp],eax
|
|
|
|
lea edx,DWORD PTR[1859775393+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[16+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov r12d,esi
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[16+rsp],eax
|
|
|
|
lea r12d,DWORD PTR[1859775393+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[20+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[20+rsp],eax
|
|
|
|
lea r11d,DWORD PTR[1859775393+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[24+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[24+rsp],eax
|
|
|
|
lea ebp,DWORD PTR[1859775393+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[28+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov edi,r11d
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
add ebp,edi
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[28+rsp],eax
|
|
|
|
lea edi,DWORD PTR[1859775393+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[32+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[32+rsp],eax
|
|
|
|
lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[36+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov ecx,ebp
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
mov edx,edi
|
|
|
|
and ebx,r11d
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
or ecx,r11d
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
and ecx,r12d
|
|
|
|
add esi,edx
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol ebp,30
|
|
|
|
mov DWORD PTR[36+rsp],eax
|
|
|
|
add esi,ebx
|
|
|
|
lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[40+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov ecx,edi
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
mov r12d,esi
|
|
|
|
and ebx,ebp
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
or ecx,ebp
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
and ecx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol edi,30
|
|
|
|
mov DWORD PTR[40+rsp],eax
|
|
|
|
add edx,ebx
|
|
|
|
lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[44+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ecx,esi
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
mov r11d,edx
|
|
|
|
and ebx,edi
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
or ecx,edi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
and ecx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol esi,30
|
|
|
|
mov DWORD PTR[44+rsp],eax
|
|
|
|
add r12d,ebx
|
|
|
|
lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[48+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov ecx,edx
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
mov ebp,r12d
|
|
|
|
and ebx,esi
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
or ecx,esi
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
and ecx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol edx,30
|
|
|
|
mov DWORD PTR[48+rsp],eax
|
|
|
|
add r11d,ebx
|
|
|
|
lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[52+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov ecx,r12d
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
mov edi,r11d
|
|
|
|
and ebx,edx
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
or ecx,edx
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
and ecx,esi
|
|
|
|
add ebp,edi
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol r12d,30
|
|
|
|
mov DWORD PTR[52+rsp],eax
|
|
|
|
add ebp,ebx
|
|
|
|
lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[56+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov ecx,r11d
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
mov esi,ebp
|
|
|
|
and ebx,r12d
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
or ecx,r12d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
and ecx,edx
|
|
|
|
add edi,esi
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol r11d,30
|
|
|
|
mov DWORD PTR[56+rsp],eax
|
|
|
|
add edi,ebx
|
|
|
|
lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[60+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov ecx,ebp
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
mov edx,edi
|
|
|
|
and ebx,r11d
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
or ecx,r11d
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
and ecx,r12d
|
|
|
|
add esi,edx
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol ebp,30
|
|
|
|
mov DWORD PTR[60+rsp],eax
|
|
|
|
add esi,ebx
|
|
|
|
lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov ecx,edi
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
mov r12d,esi
|
|
|
|
and ebx,ebp
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
or ecx,ebp
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
and ecx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol edi,30
|
|
|
|
mov DWORD PTR[rsp],eax
|
|
|
|
add edx,ebx
|
|
|
|
lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[4+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ecx,esi
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
mov r11d,edx
|
|
|
|
and ebx,edi
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
or ecx,edi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
and ecx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol esi,30
|
|
|
|
mov DWORD PTR[4+rsp],eax
|
|
|
|
add r12d,ebx
|
|
|
|
lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[8+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov ecx,edx
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
mov ebp,r12d
|
|
|
|
and ebx,esi
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
or ecx,esi
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
and ecx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol edx,30
|
|
|
|
mov DWORD PTR[8+rsp],eax
|
|
|
|
add r11d,ebx
|
|
|
|
lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[12+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov ecx,r12d
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
mov edi,r11d
|
|
|
|
and ebx,edx
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
or ecx,edx
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
and ecx,esi
|
|
|
|
add ebp,edi
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol r12d,30
|
|
|
|
mov DWORD PTR[12+rsp],eax
|
|
|
|
add ebp,ebx
|
|
|
|
lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[16+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov ecx,r11d
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
mov esi,ebp
|
|
|
|
and ebx,r12d
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
or ecx,r12d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
and ecx,edx
|
|
|
|
add edi,esi
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol r11d,30
|
|
|
|
mov DWORD PTR[16+rsp],eax
|
|
|
|
add edi,ebx
|
|
|
|
lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[20+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov ecx,ebp
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
mov edx,edi
|
|
|
|
and ebx,r11d
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
or ecx,r11d
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
and ecx,r12d
|
|
|
|
add esi,edx
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol ebp,30
|
|
|
|
mov DWORD PTR[20+rsp],eax
|
|
|
|
add esi,ebx
|
|
|
|
lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[24+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov ecx,edi
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
mov r12d,esi
|
|
|
|
and ebx,ebp
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
or ecx,ebp
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
and ecx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol edi,30
|
|
|
|
mov DWORD PTR[24+rsp],eax
|
|
|
|
add edx,ebx
|
|
|
|
lea r12d,DWORD PTR[08f1bbcdch+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[28+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ecx,esi
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
mov r11d,edx
|
|
|
|
and ebx,edi
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
or ecx,edi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
and ecx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol esi,30
|
|
|
|
mov DWORD PTR[28+rsp],eax
|
|
|
|
add r12d,ebx
|
|
|
|
lea r11d,DWORD PTR[08f1bbcdch+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[32+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov ecx,edx
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
mov ebp,r12d
|
|
|
|
and ebx,esi
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
or ecx,esi
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
and ecx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol edx,30
|
|
|
|
mov DWORD PTR[32+rsp],eax
|
|
|
|
add r11d,ebx
|
|
|
|
lea ebp,DWORD PTR[08f1bbcdch+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[36+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov ecx,r12d
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
mov edi,r11d
|
|
|
|
and ebx,edx
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
or ecx,edx
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
and ecx,esi
|
|
|
|
add ebp,edi
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol r12d,30
|
|
|
|
mov DWORD PTR[36+rsp],eax
|
|
|
|
add ebp,ebx
|
|
|
|
lea edi,DWORD PTR[08f1bbcdch+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[40+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov ecx,r11d
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
mov esi,ebp
|
|
|
|
and ebx,r12d
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
or ecx,r12d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
and ecx,edx
|
|
|
|
add edi,esi
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol r11d,30
|
|
|
|
mov DWORD PTR[40+rsp],eax
|
|
|
|
add edi,ebx
|
|
|
|
lea esi,DWORD PTR[08f1bbcdch+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[44+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov ecx,ebp
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
mov edx,edi
|
|
|
|
and ebx,r11d
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
or ecx,r11d
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
and ecx,r12d
|
|
|
|
add esi,edx
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol ebp,30
|
|
|
|
mov DWORD PTR[44+rsp],eax
|
|
|
|
add esi,ebx
|
|
|
|
lea edx,DWORD PTR[08f1bbcdch+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[48+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov ecx,edi
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
mov r12d,esi
|
|
|
|
and ebx,ebp
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
or ecx,ebp
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
and ecx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
rol eax,1
|
|
|
|
or ebx,ecx
|
|
|
|
rol edi,30
|
|
|
|
mov DWORD PTR[48+rsp],eax
|
|
|
|
add edx,ebx
|
|
|
|
lea r12d,DWORD PTR[3395469782+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[52+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[52+rsp],eax
|
|
|
|
lea r11d,DWORD PTR[3395469782+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[56+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[56+rsp],eax
|
|
|
|
lea ebp,DWORD PTR[3395469782+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[60+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov edi,r11d
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
add ebp,edi
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[60+rsp],eax
|
|
|
|
lea edi,DWORD PTR[3395469782+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[rsp],eax
|
|
|
|
lea esi,DWORD PTR[3395469782+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[4+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov edx,edi
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
add esi,edx
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[4+rsp],eax
|
|
|
|
lea edx,DWORD PTR[3395469782+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[8+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov r12d,esi
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[8+rsp],eax
|
|
|
|
lea r12d,DWORD PTR[3395469782+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[12+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[12+rsp],eax
|
|
|
|
lea r11d,DWORD PTR[3395469782+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[16+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[16+rsp],eax
|
|
|
|
lea ebp,DWORD PTR[3395469782+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[20+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov edi,r11d
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
add ebp,edi
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[20+rsp],eax
|
|
|
|
lea edi,DWORD PTR[3395469782+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[24+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[24+rsp],eax
|
|
|
|
lea esi,DWORD PTR[3395469782+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[28+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov edx,edi
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
add esi,edx
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[28+rsp],eax
|
|
|
|
lea edx,DWORD PTR[3395469782+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[32+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov r12d,esi
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[32+rsp],eax
|
|
|
|
lea r12d,DWORD PTR[3395469782+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[36+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[36+rsp],eax
|
|
|
|
lea r11d,DWORD PTR[3395469782+rbp*1+rax]
|
|
|
|
mov eax,DWORD PTR[40+rsp]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
rol ebp,5
|
|
|
|
xor eax,DWORD PTR[8+rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[40+rsp],eax
|
|
|
|
lea ebp,DWORD PTR[3395469782+rdi*1+rax]
|
|
|
|
mov eax,DWORD PTR[44+rsp]
|
|
|
|
mov ebx,edx
|
|
|
|
mov edi,r11d
|
|
|
|
xor eax,DWORD PTR[52+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
rol edi,5
|
|
|
|
xor eax,DWORD PTR[12+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
add ebp,edi
|
|
|
|
xor eax,DWORD PTR[32+rsp]
|
|
|
|
rol r12d,30
|
|
|
|
add ebp,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[44+rsp],eax
|
|
|
|
lea edi,DWORD PTR[3395469782+rsi*1+rax]
|
|
|
|
mov eax,DWORD PTR[48+rsp]
|
|
|
|
mov ebx,r12d
|
|
|
|
mov esi,ebp
|
|
|
|
xor eax,DWORD PTR[56+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
rol esi,5
|
|
|
|
xor eax,DWORD PTR[16+rsp]
|
|
|
|
xor ebx,edx
|
|
|
|
add edi,esi
|
|
|
|
xor eax,DWORD PTR[36+rsp]
|
|
|
|
rol r11d,30
|
|
|
|
add edi,ebx
|
|
|
|
rol eax,1
|
|
|
|
mov DWORD PTR[48+rsp],eax
|
|
|
|
lea esi,DWORD PTR[3395469782+rdx*1+rax]
|
|
|
|
mov eax,DWORD PTR[52+rsp]
|
|
|
|
mov ebx,r11d
|
|
|
|
mov edx,edi
|
|
|
|
xor eax,DWORD PTR[60+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
rol edx,5
|
|
|
|
xor eax,DWORD PTR[20+rsp]
|
|
|
|
xor ebx,r12d
|
|
|
|
add esi,edx
|
|
|
|
xor eax,DWORD PTR[40+rsp]
|
|
|
|
rol ebp,30
|
|
|
|
add esi,ebx
|
|
|
|
rol eax,1
|
|
|
|
lea edx,DWORD PTR[3395469782+r12*1+rax]
|
|
|
|
mov eax,DWORD PTR[56+rsp]
|
|
|
|
mov ebx,ebp
|
|
|
|
mov r12d,esi
|
|
|
|
xor eax,DWORD PTR[rsp]
|
|
|
|
xor ebx,edi
|
|
|
|
rol r12d,5
|
|
|
|
xor eax,DWORD PTR[24+rsp]
|
|
|
|
xor ebx,r11d
|
|
|
|
add edx,r12d
|
|
|
|
xor eax,DWORD PTR[44+rsp]
|
|
|
|
rol edi,30
|
|
|
|
add edx,ebx
|
|
|
|
rol eax,1
|
|
|
|
lea r12d,DWORD PTR[3395469782+r11*1+rax]
|
|
|
|
mov eax,DWORD PTR[60+rsp]
|
|
|
|
mov ebx,edi
|
|
|
|
mov r11d,edx
|
|
|
|
xor eax,DWORD PTR[4+rsp]
|
|
|
|
xor ebx,esi
|
|
|
|
rol r11d,5
|
|
|
|
xor eax,DWORD PTR[28+rsp]
|
|
|
|
xor ebx,ebp
|
|
|
|
add r12d,r11d
|
|
|
|
xor eax,DWORD PTR[48+rsp]
|
|
|
|
rol esi,30
|
|
|
|
add r12d,ebx
|
|
|
|
rol eax,1
|
|
|
|
lea r11d,DWORD PTR[3395469782+rbp*1+rax]
|
|
|
|
mov ebx,esi
|
|
|
|
mov ebp,r12d
|
|
|
|
xor ebx,edx
|
|
|
|
rol ebp,5
|
|
|
|
xor ebx,edi
|
|
|
|
add r11d,ebp
|
|
|
|
rol edx,30
|
|
|
|
add r11d,ebx
|
|
|
|
add r11d,DWORD PTR[r8]
|
|
|
|
add r12d,DWORD PTR[4+r8]
|
|
|
|
add edx,DWORD PTR[8+r8]
|
|
|
|
add esi,DWORD PTR[12+r8]
|
|
|
|
add edi,DWORD PTR[16+r8]
|
|
|
|
mov DWORD PTR[r8],r11d
|
|
|
|
mov DWORD PTR[4+r8],r12d
|
|
|
|
mov DWORD PTR[8+r8],edx
|
|
|
|
mov DWORD PTR[12+r8],esi
|
|
|
|
mov DWORD PTR[16+r8],edi
|
|
|
|
|
|
|
|
xchg edx,r11d
|
|
|
|
xchg esi,r12d
|
|
|
|
xchg edi,r11d
|
|
|
|
xchg ebp,r12d
|
|
|
|
|
|
|
|
lea r9,QWORD PTR[64+r9]
|
|
|
|
sub r10,1
|
|
|
|
jnz $L$loop
|
|
|
|
mov rsi,QWORD PTR[64+rsp]
|
|
|
|
mov r12,QWORD PTR[rsi]
|
|
|
|
mov rbp,QWORD PTR[8+rsi]
|
|
|
|
mov rbx,QWORD PTR[16+rsi]
|
|
|
|
lea rsp,QWORD PTR[24+rsi]
|
|
|
|
$L$epilogue::
|
|
|
|
mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
|
|
|
|
mov rsi,QWORD PTR[16+rsp]
|
|
|
|
DB 0F3h,0C3h ;repret
|
|
|
|
$L$SEH_end_sha1_block_data_order::
|
|
|
|
sha1_block_data_order ENDP
|
|
|
|
DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
|
|
|
|
DB 102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44
|
|
|
|
DB 32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60
|
|
|
|
DB 97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114
|
|
|
|
DB 103,62,0
|
|
|
|
ALIGN 16
|
|
|
|
EXTERN __imp_RtlVirtualUnwind:NEAR
|
|
|
|
|
|
|
|
ALIGN 16
|
|
|
|
se_handler PROC PRIVATE
|
|
|
|
push rsi
|
|
|
|
push rdi
|
|
|
|
push rbx
|
|
|
|
push rbp
|
|
|
|
push r12
|
|
|
|
push r13
|
|
|
|
push r14
|
|
|
|
push r15
|
|
|
|
pushfq
|
|
|
|
sub rsp,64
|
|
|
|
|
|
|
|
mov rax,QWORD PTR[120+r8]
|
|
|
|
mov rbx,QWORD PTR[248+r8]
|
|
|
|
|
|
|
|
lea r10,QWORD PTR[$L$prologue]
|
|
|
|
cmp rbx,r10
|
|
|
|
jb $L$in_prologue
|
|
|
|
|
|
|
|
mov rax,QWORD PTR[152+r8]
|
|
|
|
|
|
|
|
lea r10,QWORD PTR[$L$epilogue]
|
|
|
|
cmp rbx,r10
|
|
|
|
jae $L$in_prologue
|
|
|
|
|
|
|
|
mov rax,QWORD PTR[64+rax]
|
|
|
|
lea rax,QWORD PTR[24+rax]
|
|
|
|
|
|
|
|
mov rbx,QWORD PTR[((-8))+rax]
|
|
|
|
mov rbp,QWORD PTR[((-16))+rax]
|
|
|
|
mov r12,QWORD PTR[((-24))+rax]
|
|
|
|
mov QWORD PTR[144+r8],rbx
|
|
|
|
mov QWORD PTR[160+r8],rbp
|
|
|
|
mov QWORD PTR[216+r8],r12
|
|
|
|
|
|
|
|
$L$in_prologue::
|
|
|
|
mov rdi,QWORD PTR[8+rax]
|
|
|
|
mov rsi,QWORD PTR[16+rax]
|
|
|
|
mov QWORD PTR[152+r8],rax
|
|
|
|
mov QWORD PTR[168+r8],rsi
|
|
|
|
mov QWORD PTR[176+r8],rdi
|
|
|
|
|
|
|
|
mov rdi,QWORD PTR[40+r9]
|
|
|
|
mov rsi,r8
|
|
|
|
mov ecx,154
|
|
|
|
DD 0a548f3fch
|
|
|
|
|
|
|
|
|
|
|
|
mov rsi,r9
|
|
|
|
xor rcx,rcx
|
|
|
|
mov rdx,QWORD PTR[8+rsi]
|
|
|
|
mov r8,QWORD PTR[rsi]
|
|
|
|
mov r9,QWORD PTR[16+rsi]
|
|
|
|
mov r10,QWORD PTR[40+rsi]
|
|
|
|
lea r11,QWORD PTR[56+rsi]
|
|
|
|
lea r12,QWORD PTR[24+rsi]
|
|
|
|
mov QWORD PTR[32+rsp],r10
|
|
|
|
mov QWORD PTR[40+rsp],r11
|
|
|
|
mov QWORD PTR[48+rsp],r12
|
|
|
|
mov QWORD PTR[56+rsp],rcx
|
|
|
|
call QWORD PTR[__imp_RtlVirtualUnwind]
|
|
|
|
|
|
|
|
mov eax,1
|
|
|
|
add rsp,64
|
|
|
|
popfq
|
|
|
|
pop r15
|
|
|
|
pop r14
|
|
|
|
pop r13
|
|
|
|
pop r12
|
|
|
|
pop rbp
|
|
|
|
pop rbx
|
|
|
|
pop rdi
|
|
|
|
pop rsi
|
|
|
|
DB 0F3h,0C3h ;repret
|
|
|
|
se_handler ENDP
|
|
|
|
|
|
|
|
.text$ ENDS
|
|
|
|
.pdata SEGMENT READONLY ALIGN(4)
|
|
|
|
ALIGN 4
|
|
|
|
DD imagerel $L$SEH_begin_sha1_block_data_order
|
|
|
|
DD imagerel $L$SEH_end_sha1_block_data_order
|
|
|
|
DD imagerel $L$SEH_info_sha1_block_data_order
|
|
|
|
|
|
|
|
.pdata ENDS
|
|
|
|
.xdata SEGMENT READONLY ALIGN(8)
|
|
|
|
ALIGN 8
|
|
|
|
$L$SEH_info_sha1_block_data_order::
|
|
|
|
DB 9,0,0,0
|
|
|
|
DD imagerel se_handler
|
|
|
|
|
|
|
|
.xdata ENDS
|
|
|
|
END
|