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
521 lines
8.5 KiB
ArmAsm
521 lines
8.5 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(__APPLE__)
|
|
.text
|
|
.globl _bn_mul_add_words
|
|
.private_extern _bn_mul_add_words
|
|
.align 4
|
|
_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 4,0x90
|
|
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 2,0x90
|
|
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
|
|
.globl _bn_mul_words
|
|
.private_extern _bn_mul_words
|
|
.align 4
|
|
_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 4,0x90
|
|
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
|
|
.globl _bn_sqr_words
|
|
.private_extern _bn_sqr_words
|
|
.align 4
|
|
_bn_sqr_words:
|
|
L_bn_sqr_words_begin:
|
|
movl 4(%esp),%eax
|
|
movl 8(%esp),%edx
|
|
movl 12(%esp),%ecx
|
|
.align 4,0x90
|
|
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
|
|
.globl _bn_add_words
|
|
.private_extern _bn_add_words
|
|
.align 4
|
|
_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:
|
|
# Round 0
|
|
movl (%esi),%ecx
|
|
movl (%edi),%edx
|
|
addl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
addl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,(%ebx)
|
|
# Round 1
|
|
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)
|
|
# Round 2
|
|
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)
|
|
# Round 3
|
|
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)
|
|
# Round 4
|
|
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)
|
|
# Round 5
|
|
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)
|
|
# Round 6
|
|
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)
|
|
# Round 7
|
|
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
|
|
# Tail Round 0
|
|
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
|
|
# Tail Round 1
|
|
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
|
|
# Tail Round 2
|
|
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
|
|
# Tail Round 3
|
|
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
|
|
# Tail Round 4
|
|
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
|
|
# Tail Round 5
|
|
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
|
|
# Tail Round 6
|
|
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
|
|
.globl _bn_sub_words
|
|
.private_extern _bn_sub_words
|
|
.align 4
|
|
_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:
|
|
# Round 0
|
|
movl (%esi),%ecx
|
|
movl (%edi),%edx
|
|
subl %eax,%ecx
|
|
movl $0,%eax
|
|
adcl %eax,%eax
|
|
subl %edx,%ecx
|
|
adcl $0,%eax
|
|
movl %ecx,(%ebx)
|
|
# Round 1
|
|
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)
|
|
# Round 2
|
|
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)
|
|
# Round 3
|
|
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)
|
|
# Round 4
|
|
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)
|
|
# Round 5
|
|
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)
|
|
# Round 6
|
|
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)
|
|
# Round 7
|
|
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
|
|
# Tail Round 0
|
|
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
|
|
# Tail Round 1
|
|
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
|
|
# Tail Round 2
|
|
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
|
|
# Tail Round 3
|
|
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
|
|
# Tail Round 4
|
|
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
|
|
# Tail Round 5
|
|
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
|
|
# Tail Round 6
|
|
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
|
|
#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__)
|