Function at 0x6a2150
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
mov r14, rcx
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], r8
mov qword [rsp + 0x118], r9
call fcn.005603f0
mov rcx, r14
mov r13, rax
call fcn.00549e50
mov rcx, rax
mov r12, rax
call fcn.0054af70
mov rcx, r14
mov rsi, rax
call fcn.00549f40
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x58], rax
call fcn.00573950
pxor xmm0, xmm0
mov dword [rsp + 0x54], eax
movaps xmmword [rsp + 0xa0], xmm0
test r13, r13
je 0x6a2448
test eax, eax
jle 0x6a2448
mov rcx, r12
call fcn.006a1eb0
mov qword [rsp + 0x60], rax
test rax, rax
je 0x6a2378
mov rcx, r12
call fcn.0054b3a0
mov rcx, r12
mov r15, rax
call fcn.0054b3a0
mov rbx, rax
call fcn.00621d30
test r15, r15
sete dl
test rbx, rbx
mov r14, rax
sete al
or dl, al
jne 0x6a2458
test r14, r14
je 0x6a2458
mov rcx, r14
call fcn.00621f00
mov rcx, r14
call fcn.006220e0
mov rcx, r14
mov qword [rsp + 0x68], rax
call fcn.006220e0
mov rcx, r14
mov qword [rsp + 0x70], rax
call fcn.006220e0
mov rcx, r14
mov qword [rsp + 0x80], rax
call fcn.006220e0
mov rcx, r14
mov qword [rsp + 0x78], rax
call fcn.006220e0
mov rbp, rax
test rax, rax
je 0x6a24b0
mov rax, qword [rsp + 0x60]
mov r8d, 0xab
lea rdx, str.crypto_sm2_sm2_crypt.c
add rax, rax
mov rcx, rax
mov qword [rsp + 0x88], rax
call fcn.005805e0
movsxd rcx, dword [rsp + 0x54]
mov r8d, 0xac
lea rdx, str.crypto_sm2_sm2_crypt.c
mov rdi, rax
call fcn.005805e0
mov qword [rsp + 0x48], rax
test rdi, rdi
je 0x6a2490
test rax, rax
je 0x6a2490
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x120]
xor edx, edx
mov r8, qword [rax]
call sub.msvcrt.dll_memset
mov rcx, qword [rsp + 0x68]
mov rdx, rsi
call fcn.0062a740
mov esi, eax
test eax, eax
je 0x6a2898
mov qword [rsp + 0x28], r14
mov r8, qword [rsp + 0x68]
xor r9d, r9d
mov rdx, r15
mov qword [rsp + 0x20], 0
mov rcx, r12
call fcn.0054d8b0
test eax, eax
je 0x6a2349
mov qword [rsp + 0x20], r14
mov r9, qword [rsp + 0x78]
mov rdx, r15
mov rcx, r12
mov r8, qword [rsp + 0x70]
call fcn.0054cb70
test eax, eax
jne 0x6a24f0
mov dword [rsp + 0x20], 0xbe
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x10
mov edx, 0x67
mov ecx, 0x35
xor ebp, ebp
xor esi, esi
call fcn.0055dd20
jmp 0x6a23b3
mov dword [rsp + 0x20], 0x93
lea r9, str.crypto_sm2_sm2_crypt.c
mov edx, 0x67
xor edi, edi
xor ebp, ebp
mov r8d, 0x44
mov ecx, 0x35
xor ebx, ebx
xor r15d, r15d
call fcn.0055dd20
xor r14d, r14d
xor esi, esi
mov qword [rsp + 0x48], 0
mov rcx, qword [rsp + 0xa8]
call fcn.00521540
mov rcx, qword [rsp + 0xa0]
call fcn.00521540
mov rcx, rbp
mov r8d, 0xfd
lea rdx, str.crypto_sm2_sm2_crypt.c
call fcn.00580410
mov rcx, rdi
mov r8d, 0xfe
lea rdx, str.crypto_sm2_sm2_crypt.c
call fcn.00580410
mov rcx, qword [rsp + 0x48]
mov r8d, 0xff
lea rdx, str.crypto_sm2_sm2_crypt.c
call fcn.00580410
mov rcx, r13
call fcn.00560410
mov rcx, r14
call fcn.00621e40
mov rcx, r15
call fcn.0054c180
mov rcx, rbx
call fcn.0054c180
mov eax, esi
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0x8d
jmp 0x6a2380
lea r9, str.crypto_sm2_sm2_crypt.c
mov edx, 0x67
xor edi, edi
xor ebp, ebp
mov dword [rsp + 0x20], 0x9b
mov r8d, 0x41
mov ecx, 0x35
xor esi, esi
call fcn.0055dd20
mov qword [rsp + 0x48], 0
jmp 0x6a23b3
mov dword [rsp + 0x20], 0xaf
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x41
jmp 0x6a235e
lea r9, str.crypto_sm2_sm2_crypt.c
mov edx, 0x67
xor edi, edi
xor esi, esi
mov dword [rsp + 0x20], 0xa7
mov r8d, 3
mov ecx, 0x35
call fcn.0055dd20
mov qword [rsp + 0x48], 0
jmp 0x6a23b3
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x28], r14
xor r8d, r8d
mov rdx, rbx
mov r9, qword [rsp + 0x58]
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.0054d8b0
test eax, eax
je 0x6a2349
mov qword [rsp + 0x20], r14
mov r9, rbp
mov rdx, rbx
mov rcx, r12
mov rsi, qword [rsp + 0x80]
mov r8, rsi
call fcn.0054cb70
test eax, eax
je 0x6a2349
mov r8d, dword [rsp + 0x60]
mov rdx, rdi
mov rcx, rsi
call fcn.0052da00
test eax, eax
js 0x6a28c3
mov rax, qword [rsp + 0x60]
mov rcx, rbp
lea r12, [rdi + rax]
mov r8d, eax
mov rdx, r12
call fcn.0052da00
test eax, eax
js 0x6a28c3
mov rcx, qword [rsp + 0x118]
mov r8d, 0xc8
lea rdx, str.crypto_sm2_sm2_crypt.c
call fcn.005805e0
mov rbp, rax
test rax, rax
je 0x6a2931
mov rax, qword [rsp + 0x108]
mov r8, rdi
mov rcx, rbp
mov qword [rsp + 0x28], 0
mov r9, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x118]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x30], rax
call fcn.0065b120
mov esi, eax
test eax, eax
je 0x6a2908
cmp qword [rsp + 0x118], 0
je 0x6a2759
mov rax, qword [rsp + 0x118]
lea rcx, [rax - 1]
mov rax, qword [rsp + 0x110]
lea rdx, [rax + 1]
mov rax, rbp
sub rax, rdx
cmp rax, 0xe
jbe 0x6a295c
cmp rcx, 6
jbe 0x6a295c
mov rdx, qword [rsp + 0x118]
cmp rcx, 0xe
jbe 0x6a2984
mov r8, qword [rsp + 0x110]
and rdx, 0xfffffffffffffff0
xor eax, eax
movdqu xmm0, xmmword [rbp + rax]
movdqu xmm2, xmmword [r8 + rax]
pxor xmm0, xmm2
movups xmmword [rbp + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x6a2642
mov rax, qword [rsp + 0x118]
and rax, 0xfffffffffffffff0
test byte [rsp + 0x118], 0xf
je 0x6a2759
mov rdx, qword [rsp + 0x118]
sub rcx, rax
sub rdx, rax
cmp rcx, 6
jbe 0x6a26bf
mov rsi, qword [rsp + 0x110]
lea rcx, [rbp + rax]
movq xmm1, qword [rcx]
movq xmm0, qword [rsi + rax]
pxor xmm0, xmm1
movq qword [rcx], xmm0
mov rcx, rdx
and rcx, 0xfffffffffffffff8
add rax, rcx
cmp rcx, rdx
je 0x6a2759
mov rsi, qword [rsp + 0x110]
movzx edx, byte [rsi + rax]
xor byte [rbp + rax], dl
lea rdx, [rax + 1]
cmp qword [rsp + 0x118], rdx
je 0x6a2759
movzx ecx, byte [rsi + rax + 1]
xor byte [rbp + rdx], cl
lea rdx, [rax + 2]
cmp qword [rsp + 0x118], rdx
je 0x6a2759
movzx ecx, byte [rsi + rax + 2]
xor byte [rbp + rdx], cl
lea rdx, [rax + 3]
cmp qword [rsp + 0x118], rdx
je 0x6a2759
movzx ecx, byte [rsi + rax + 3]
xor byte [rbp + rdx], cl
lea rdx, [rax + 4]
cmp qword [rsp + 0x118], rdx
je 0x6a2759
movzx ecx, byte [rsi + rax + 4]
xor byte [rbp + rdx], cl
lea rdx, [rax + 5]
cmp qword [rsp + 0x118], rdx
je 0x6a2759
movzx ecx, byte [rsi + rax + 5]
xor byte [rbp + rdx], cl
lea rdx, [rax + 6]
cmp qword [rsp + 0x118], rdx
je 0x6a2759
movzx eax, byte [rsi + rax + 6]
xor byte [rbp + rdx], al
mov rdx, qword [rsp + 0x108]
mov rcx, r13
call fcn.005607b0
test eax, eax
je 0x6a28dd
mov rsi, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, r13
mov r8, rsi
call fcn.00560890
test eax, eax
je 0x6a28dd
mov r8, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x110]
mov rcx, r13
call fcn.00560890
test eax, eax
je 0x6a28dd
mov r8, rsi
mov rdx, r12
mov rcx, r13
call fcn.00560890
test eax, eax
je 0x6a28dd
mov rdx, qword [rsp + 0x48]
xor r8d, r8d
mov rcx, r13
call fcn.005608b0
test eax, eax
je 0x6a28dd
movq xmm0, qword [rsp + 0x70]
movhps xmm0, qword [rsp + 0x78]
movaps xmmword [rsp + 0x90], xmm0
call fcn.00521530
mov qword [rsp + 0xa0], rax
call fcn.00521530
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
test rcx, rcx
je 0x6a298b
test rax, rax
je 0x6a298b
mov r8d, dword [rsp + 0x54]
mov rdx, qword [rsp + 0x48]
call fcn.00615970
test eax, eax
je 0x6a29c0
mov r8d, dword [rsp + 0x118]
mov rcx, qword [rsp + 0xa8]
mov rdx, rbp
call fcn.00615970
test eax, eax
je 0x6a29c0
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x90]
lea r8, [0x00942820]
call fcn.0051f770
test eax, eax
js 0x6a2995
mov rsi, qword [rsp + 0x128]
cdqe
mov qword [rsi], rax
mov esi, 1
jmp 0x6a23b3
mov dword [rsp + 0x20], 0xb6
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x44
xor ebp, ebp
mov edx, 0x67
mov ecx, 0x35
call fcn.0055dd20
jmp 0x6a23b3
mov dword [rsp + 0x20], 0xc4
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x44
jmp 0x6a235e
mov dword [rsp + 0x20], 0xdd
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 6
xor esi, esi
mov edx, 0x67
mov ecx, 0x35
call fcn.0055dd20
jmp 0x6a23b3
mov r8d, 6
mov edx, 0x67
mov ecx, 0x35
mov dword [rsp + 0x20], 0xd1
lea r9, str.crypto_sm2_sm2_crypt.c
call fcn.0055dd20
jmp 0x6a23b3
mov dword [rsp + 0x20], 0xca
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x41
mov edx, 0x67
xor esi, esi
mov ecx, 0x35
call fcn.0055dd20
jmp 0x6a23b3
mov rcx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x118]
xor eax, eax
movzx edx, byte [rcx + rax]
xor byte [rbp + rax], dl
add rax, 1
cmp r8, rax
jne 0x6a296e
jmp 0x6a2759
xor eax, eax
jmp 0x6a268e
mov dword [rsp + 0x20], 0xe7
jmp 0x6a2939
mov dword [rsp + 0x20], 0xf3
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x44
mov edx, 0x67
xor esi, esi
mov ecx, 0x35
call fcn.0055dd20
jmp 0x6a23b3
mov dword [rsp + 0x20], 0xec
jmp 0x6a299d