clarify the purpose of this project
[nyanglibc.git] / crypt / crypt.s
blob266fb9eae2cf71671c88322690259b24cbdf1978
1 .text
2 .p2align 4,,15
3 .globl _ufc_doit_r
4 .type _ufc_doit_r, @function
5 _ufc_doit_r:
6 movq (%rdx), %rcx
7 pushq %rbp
8 subq $1, %rdi
9 pushq %rbx
10 movq 16(%rdx), %r11
11 leaq 128(%rsi), %r9
12 movq 8(%rdx), %rbx
13 leaq 65664(%rsi), %r10
14 salq $32, %rcx
15 salq $32, %r11
16 orq 24(%rdx), %r11
17 orq %rcx, %rbx
18 cmpq $-1, %rdi
19 je .L8
20 .p2align 4,,10
21 .p2align 3
22 .L4:
23 movq %r11, %rax
24 movq %rsi, %r8
25 movq %rbx, %r11
26 movq %rax, %rbx
27 .p2align 4,,10
28 .p2align 3
29 .L3:
30 movq (%r8), %rax
31 addq $16, %r8
32 xorq %rbx, %rax
33 movq %rax, %rbp
34 movzwl %ax, %ecx
35 shrq $48, %rbp
36 movq (%r10,%rcx), %rcx
37 xorq (%r9,%rbp), %rcx
38 movq %rax, %rbp
39 shrq $32, %rax
40 shrq $16, %rbp
41 movzwl %ax, %eax
42 movzwl %bp, %ebp
43 xorq (%r10,%rbp), %rcx
44 xorq (%r9,%rax), %rcx
45 movq -8(%r8), %rax
46 xorq %rcx, %r11
47 xorq %r11, %rax
48 movq %rax, %rbp
49 movzwl %ax, %ecx
50 shrq $48, %rbp
51 movq (%r10,%rcx), %rcx
52 xorq (%r9,%rbp), %rcx
53 xorq %rbx, %rcx
54 movq %rax, %rbx
55 shrq $32, %rax
56 shrq $16, %rbx
57 movzwl %ax, %eax
58 movzwl %bx, %ebx
59 xorq (%r10,%rbx), %rcx
60 movq (%r9,%rax), %rbx
61 xorq %rcx, %rbx
62 cmpq %r9, %r8
63 jne .L3
64 subq $1, %rdi
65 cmpq $-1, %rdi
66 jne .L4
67 .L8:
68 movq %rbx, %rax
69 movl %ebx, %ecx
70 shrq $32, %rax
71 movq %rcx, 8(%rdx)
72 movq %rax, (%rdx)
73 movq %r11, %rax
74 andl $4294967295, %r11d
75 shrq $32, %rax
76 movq %r11, 24(%rdx)
77 popq %rbx
78 movq %rax, 16(%rdx)
79 popq %rbp
80 ret
81 .size _ufc_doit_r, .-_ufc_doit_r