Based on Nekogram. Key additions: - Rebrand to FoxiGram (app name, APK name, applicationId com.foxigram.app) - Embedded Xray (VLESS+Reality) proxy client via JNI libxray.so - Bundled hidden one-tap proxies (LTE + WiFi), read-only in UI - Auto-restore proxy on restart, rebind to active network (LTE/WiFi) - Server credentials externalized to git-ignored XrayServers.java (+ template) - libxray Go source included; compiled .so, keystore, google-services.json ignored
531 lines
8.4 KiB
ArmAsm
531 lines
8.4 KiB
ArmAsm
// This file is generated from a similarly-named Perl script in the BoringSSL
|
|
// source tree. Do not edit by hand.
|
|
|
|
#include <openssl/asm_base.h>
|
|
|
|
#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__)
|
|
.text
|
|
.globl bn_mul_add_words
|
|
.hidden bn_mul_add_words
|
|
.type bn_mul_add_words,@function
|
|
.align 16
|
|
bn_mul_add_words:
|
|
.L_bn_mul_add_words_begin:
|
|
movl 4(%esp),%eax
|
|
movl 8(%esp),%edx
|
|
movl 12(%esp),%ecx
|
|
movd 16(%esp),%mm0
|
|
pxor %mm1,%mm1
|
|
jmp .L000maw_sse2_entry
|
|
.align 16
|
|
.L001maw_sse2_unrolled:
|
|
movd (%eax),%mm3
|
|
paddq %mm3,%mm1
|
|
movd (%edx),%mm2
|
|
pmuludq %mm0,%mm2
|
|
movd 4(%edx),%mm4
|
|
pmuludq %mm0,%mm4
|
|
movd 8(%edx),%mm6
|
|
pmuludq %mm0,%mm6
|
|
movd 12(%edx),%mm7
|
|
pmuludq %mm0,%mm7
|
|
paddq %mm2,%mm1
|
|
movd 4(%eax),%mm3
|
|
paddq %mm4,%mm3
|
|
movd 8(%eax),%mm5
|
|
paddq %mm6,%mm5
|
|
movd 12(%eax),%mm4
|
|
paddq %mm4,%mm7
|
|
movd %mm1,(%eax)
|
|
movd 16(%edx),%mm2
|
|
pmuludq %mm0,%mm2
|
|
psrlq $32,%mm1
|
|
movd 20(%edx),%mm4
|
|
pmuludq %mm0,%mm4
|
|
paddq %mm3,%mm1
|
|
movd 24(%edx),%mm6
|
|
pmuludq %mm0,%mm6
|
|
movd %mm1,4(%eax)
|
|
psrlq $32,%mm1
|
|
movd 28(%edx),%mm3
|
|
addl $32,%edx
|
|
pmuludq %mm0,%mm3
|
|
paddq %mm5,%mm1
|
|
movd 16(%eax),%mm5
|
|
paddq %mm5,%mm2
|
|
movd %mm1,8(%eax)
|
|
psrlq $32,%mm1
|
|
paddq %mm7,%mm1
|
|
movd 20(%eax),%mm5
|
|
paddq %mm5,%mm4
|
|
movd %mm1,12(%eax)
|
|
psrlq $32,%mm1
|
|
paddq %mm2,%mm1
|
|
movd 24(%eax),%mm5
|
|
paddq %mm5,%mm6
|
|
movd %mm1,16(%eax)
|
|
psrlq $32,%mm1
|
|
paddq %mm4,%mm1
|
|
movd 28(%eax),%mm5
|
|
paddq %mm5,%mm3
|
|
movd %mm1,20(%eax)
|
|
psrlq $32,%mm1
|
|
paddq %mm6,%mm1
|
|
movd %mm1,24(%eax)
|
|
psrlq $32,%mm1
|
|
paddq %mm3,%mm1
|
|
movd %mm1,28(%eax)
|
|
leal 32(%eax),%eax
|
|
psrlq $32,%mm1
|
|
subl $8,%ecx
|
|
jz .L002maw_sse2_exit
|
|
.L000maw_sse2_entry:
|
|
testl $4294967288,%ecx
|
|
jnz .L001maw_sse2_unrolled
|
|
.align 4
|
|
.L003maw_sse2_loop:
|
|
movd (%edx),%mm2
|
|
movd (%eax),%mm3
|
|
pmuludq %mm0,%mm2
|
|
leal 4(%edx),%edx
|
|
paddq %mm3,%mm1
|
|
paddq %mm2,%mm1
|
|
movd %mm1,(%eax)
|
|
subl $1,%ecx
|
|
psrlq $32,%mm1
|
|
leal 4(%eax),%eax
|
|
jnz .L003maw_sse2_loop
|
|
.L002maw_sse2_exit:
|
|
movd %mm1,%eax
|
|
emms
|
|
ret
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size bn_mul_add_words,.-.L_bn_mul_add_words_begin
|
|
.globl bn_mul_words
|
|
.hidden bn_mul_words
|
|
.type bn_mul_words,@function
|
|
.align 16
|
|
bn_mul_words:
|
|
.L_bn_mul_words_begin:
|
|
movl 4(%esp),%eax
|
|
movl 8(%esp),%edx
|
|
movl 12(%esp),%ecx
|
|
movd 16(%esp),%mm0
|
|
pxor %mm1,%mm1
|
|
.align 16
|
|
.L004mw_sse2_loop:
|
|
movd (%edx),%mm2
|
|
pmuludq %mm0,%mm2
|
|
leal 4(%edx),%edx
|
|
paddq %mm2,%mm1
|
|
movd %mm1,(%eax)
|
|
subl $1,%ecx
|
|
psrlq $32,%mm1
|
|
leal 4(%eax),%eax
|
|
jnz .L004mw_sse2_loop
|
|
movd %mm1,%eax
|
|
emms
|
|
ret
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size bn_mul_words,.-.L_bn_mul_words_begin
|
|
.globl bn_sqr_words
|
|
.hidden bn_sqr_words
|
|
.type bn_sqr_words,@function
|
|
.align 16
|
|
bn_sqr_words:
|
|
.L_bn_sqr_words_begin:
|
|
movl 4(%esp),%eax
|
|
movl 8(%esp),%edx
|
|
movl 12(%esp),%ecx
|
|
.align 16
|
|
.L005sqr_sse2_loop:
|
|
movd (%edx),%mm0
|
|
pmuludq %mm0,%mm0
|
|
leal 4(%edx),%edx
|
|
movq %mm0,(%eax)
|
|
subl $1,%ecx
|
|
leal 8(%eax),%eax
|
|
jnz .L005sqr_sse2_loop
|
|
emms
|
|
ret
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size bn_sqr_words,.-.L_bn_sqr_words_begin
|
|
.globl bn_add_words
|
|
.hidden bn_add_words
|
|
.type bn_add_words,@function
|
|
.align 16
|
|
bn_add_words:
|
|
.L_bn_add_words_begin:
|
|
pushl %ebp
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
|
|
movl 20(%esp),%ebx
|
|
movl 24(%esp),%esi
|
|
movl 28(%esp),%edi
|
|
movl 32(%esp),%ebp
|
|
xorl %eax,%eax
|
|
andl $4294967288,%ebp
|
|
jz .L006aw_finish
|
|
.L007aw_loop:
|
|
|
|
movl (%esi),%ecx
|
|
movl (%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,(%ebx)
|
|
|
|
movl 4(%esi),%ecx
|
|
movl 4(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,4(%ebx)
|
|
|
|
movl 8(%esi),%ecx
|
|
movl 8(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,8(%ebx)
|
|
|
|
movl 12(%esi),%ecx
|
|
movl 12(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,12(%ebx)
|
|
|
|
movl 16(%esi),%ecx
|
|
movl 16(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,16(%ebx)
|
|
|
|
movl 20(%esi),%ecx
|
|
movl 20(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,20(%ebx)
|
|
|
|
movl 24(%esi),%ecx
|
|
movl 24(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,24(%ebx)
|
|
|
|
movl 28(%esi),%ecx
|
|
movl 28(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,28(%ebx)
|
|
|
|
addl $32,%esi
|
|
addl $32,%edi
|
|
addl $32,%ebx
|
|
subl $8,%ebp
|
|
jnz .L007aw_loop
|
|
.L006aw_finish:
|
|
movl 32(%esp),%ebp
|
|
andl $7,%ebp
|
|
jz .L008aw_end
|
|
|
|
movl (%esi),%ecx
|
|
movl (%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,(%ebx)
|
|
jz .L008aw_end
|
|
|
|
movl 4(%esi),%ecx
|
|
movl 4(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,4(%ebx)
|
|
jz .L008aw_end
|
|
|
|
movl 8(%esi),%ecx
|
|
movl 8(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,8(%ebx)
|
|
jz .L008aw_end
|
|
|
|
movl 12(%esi),%ecx
|
|
movl 12(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,12(%ebx)
|
|
jz .L008aw_end
|
|
|
|
movl 16(%esi),%ecx
|
|
movl 16(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,16(%ebx)
|
|
jz .L008aw_end
|
|
|
|
movl 20(%esi),%ecx
|
|
movl 20(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,20(%ebx)
|
|
jz .L008aw_end
|
|
|
|
movl 24(%esi),%ecx
|
|
movl 24(%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,24(%ebx)
|
|
.L008aw_end:
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size bn_add_words,.-.L_bn_add_words_begin
|
|
.globl bn_sub_words
|
|
.hidden bn_sub_words
|
|
.type bn_sub_words,@function
|
|
.align 16
|
|
bn_sub_words:
|
|
.L_bn_sub_words_begin:
|
|
pushl %ebp
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
|
|
movl 20(%esp),%ebx
|
|
movl 24(%esp),%esi
|
|
movl 28(%esp),%edi
|
|
movl 32(%esp),%ebp
|
|
xorl %eax,%eax
|
|
andl $4294967288,%ebp
|
|
jz .L009aw_finish
|
|
.L010aw_loop:
|
|
|
|
movl (%esi),%ecx
|
|
movl (%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,(%ebx)
|
|
|
|
movl 4(%esi),%ecx
|
|
movl 4(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,4(%ebx)
|
|
|
|
movl 8(%esi),%ecx
|
|
movl 8(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,8(%ebx)
|
|
|
|
movl 12(%esi),%ecx
|
|
movl 12(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,12(%ebx)
|
|
|
|
movl 16(%esi),%ecx
|
|
movl 16(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,16(%ebx)
|
|
|
|
movl 20(%esi),%ecx
|
|
movl 20(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,20(%ebx)
|
|
|
|
movl 24(%esi),%ecx
|
|
movl 24(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,24(%ebx)
|
|
|
|
movl 28(%esi),%ecx
|
|
movl 28(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,28(%ebx)
|
|
|
|
addl $32,%esi
|
|
addl $32,%edi
|
|
addl $32,%ebx
|
|
subl $8,%ebp
|
|
jnz .L010aw_loop
|
|
.L009aw_finish:
|
|
movl 32(%esp),%ebp
|
|
andl $7,%ebp
|
|
jz .L011aw_end
|
|
|
|
movl (%esi),%ecx
|
|
movl (%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,(%ebx)
|
|
jz .L011aw_end
|
|
|
|
movl 4(%esi),%ecx
|
|
movl 4(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,4(%ebx)
|
|
jz .L011aw_end
|
|
|
|
movl 8(%esi),%ecx
|
|
movl 8(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,8(%ebx)
|
|
jz .L011aw_end
|
|
|
|
movl 12(%esi),%ecx
|
|
movl 12(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,12(%ebx)
|
|
jz .L011aw_end
|
|
|
|
movl 16(%esi),%ecx
|
|
movl 16(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,16(%ebx)
|
|
jz .L011aw_end
|
|
|
|
movl 20(%esi),%ecx
|
|
movl 20(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
decl %ebp
|
|
movl %ecx,20(%ebx)
|
|
jz .L011aw_end
|
|
|
|
movl 24(%esi),%ecx
|
|
movl 24(%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,24(%ebx)
|
|
.L011aw_end:
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size bn_sub_words,.-.L_bn_sub_words_begin
|
|
#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__)
|