Function at 0x1401ee1a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rbp, rdx
mov qword [rsp + 0x100], r8
mov r12, r9
mov rdi, rcx
call fcn.14008dab0
mov rcx, rax
mov rbx, rax
call fcn.1401ed680
mov rcx, rbp
mov rsi, rax
call fcn.1400b8150
mov r15d, eax
test rsi, rsi
je 0x1401ee850
test eax, eax
jle 0x1401ee850
mov rax, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x110]
mov edx, 0xff
mov r8, qword [rax]
call sub.msvcrt.dll_memset
mov r8d, r12d
lea r9, [0x1402d6820]
xor ecx, ecx
lea rdx, [rsp + 0x100]
call fcn.140062a60
mov r12, rax
test rax, rax
je 0x1401ee828
mov rax, qword [rax + 0x10]
cmp dword [rax], r15d
jne 0x1401ee7b8
mov rdx, qword [r12 + 0x18]
mov rax, qword [rax + 8]
mov rcx, qword [rdx + 8]
mov qword [rsp + 0x80], rax
movsxd rax, dword [rdx]
mov rdx, qword [rsp + 0x118]
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x7c], eax
mov qword [rsp + 0x68], rax
cmp qword [rdx], rax
jb 0x1401ee6c0
call fcn.14016c7c0
mov r14, rax
test rax, rax
je 0x1401ee8d0
mov rcx, rax
call fcn.14016c9a0
mov rcx, r14
call fcn.14016cb60
mov rcx, r14
mov qword [rsp + 0x88], rax
call fcn.14016cb60
mov qword [rsp + 0x58], rax
test rax, rax
je 0x1401ee8f0
lea r13, str.crypto_sm2_sm2_crypt.c
mov rcx, qword [rsp + 0x68]
mov r8d, 0x13d
mov rdx, r13
call fcn.1400c49b0
lea rdx, [rsi + rsi]
mov r8d, 0x13e
mov rcx, rdx
mov qword [rsp + 0x90], rdx
mov rdx, r13
mov qword [rsp + 0x48], rax
call fcn.1400c49b0
movsxd rdx, r15d
mov r8d, 0x13f
mov rcx, rdx
mov qword [rsp + 0x98], rdx
mov rdx, r13
mov qword [rsp + 0x40], rax
call fcn.1400c49b0
cmp qword [rsp + 0x48], 0
mov qword [rsp + 0x60], rax
mov rcx, rax
sete al
cmp qword [rsp + 0x40], 0
sete dl
or al, dl
jne 0x1401ee7e8
test rcx, rcx
je 0x1401ee7e8
mov rcx, rbx
call fcn.14008f050
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1401ee948
mov r9, qword [r12 + 8]
mov r8, qword [r12]
mov rdx, rax
mov rcx, rbx
mov qword [rsp + 0x20], r14
call fcn.140090010
test eax, eax
je 0x1401ee890
mov rcx, rdi
call fcn.14008db10
mov rdi, qword [rsp + 0x50]
xor r8d, r8d
mov rcx, rbx
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rax
mov r9, rdi
mov rdx, rdi
call fcn.1400911f0
test eax, eax
je 0x1401ee890
mov qword [rsp + 0x20], r14
mov r9, qword [rsp + 0x58]
mov rdx, rdi
mov rcx, rbx
mov r15, qword [rsp + 0x88]
mov r8, r15
call fcn.1400904c0
test eax, eax
je 0x1401ee890
mov rbx, qword [rsp + 0x40]
mov r8d, esi
mov rcx, r15
mov rdx, rbx
call fcn.1400722a0
test eax, eax
js 0x1401ee97a
lea rdi, [rbx + rsi]
mov rcx, qword [rsp + 0x58]
mov r8d, esi
mov rdx, rdi
call fcn.1400722a0
test eax, eax
js 0x1401ee97a
mov qword [rsp + 0x30], rbp
mov rdx, qword [rsp + 0x68]
mov r8, rbx
mov qword [rsp + 0x28], 0
mov r9, qword [rsp + 0x90]
mov qword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x48]
call fcn.1401a60d0
test eax, eax
je 0x1401ee97a
mov eax, dword [rsp + 0x7c]
test eax, eax
je 0x1401ee5e8
mov ebx, dword [rsp + 0x7c]
lea eax, [rbx - 1]
mov ecx, ebx
cmp eax, 6
jbe 0x1401ee9db
mov r11, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x110]
lea r8, [r11 + 1]
sub rdx, r8
cmp rdx, 0xe
jbe 0x1401ee9db
mov r10, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x110]
lea r8, [r10 + 1]
sub rdx, r8
cmp rdx, 0xe
jbe 0x1401ee9db
cmp eax, 0xe
jbe 0x1401eea2c
shr ebx, 4
xor eax, eax
mov rcx, r11
mov r8, r10
mov edx, ebx
shl rdx, 4
movdqu xmm0, xmmword [r8 + rax]
movdqu xmm2, xmmword [rcx + rax]
mov rbx, qword [rsp + 0x110]
pxor xmm0, xmm2
movups xmmword [rbx + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x1401ee4b3
mov ebx, dword [rsp + 0x7c]
mov eax, ebx
and eax, 0xfffffff0
mov edx, eax
cmp eax, ebx
je 0x1401ee5e8
sub ebx, eax
lea r8d, [rbx - 1]
mov ecx, ebx
cmp r8d, 6
jbe 0x1401ee52d
mov rbx, qword [rsp + 0x70]
movq xmm0, qword [rbx + rdx]
mov rbx, qword [rsp + 0x48]
movq xmm1, qword [rbx + rdx]
mov rbx, qword [rsp + 0x110]
pxor xmm0, xmm1
movq qword [rbx + rdx], xmm0
mov edx, ecx
and edx, 0xfffffff8
add eax, edx
and ecx, 7
je 0x1401ee5e8
mov rbx, qword [rsp + 0x70]
mov r10, qword [rsp + 0x48]
movsxd rdx, eax
mov r11, qword [rsp + 0x110]
movzx ecx, byte [rbx + rdx]
xor cl, byte [r10 + rdx]
mov byte [r11 + rdx], cl
mov r11d, dword [rsp + 0x7c]
lea edx, [rax + 1]
cmp r11d, edx
je 0x1401ee5e8
movsxd rdx, edx
mov r15, qword [rsp + 0x110]
movzx ecx, byte [r10 + rdx]
xor cl, byte [rbx + rdx]
mov byte [r15 + rdx], cl
lea edx, [rax + 2]
cmp r11d, edx
je 0x1401ee5e8
movsxd rdx, edx
movzx ecx, byte [r10 + rdx]
xor cl, byte [rbx + rdx]
mov byte [r15 + rdx], cl
lea edx, [rax + 3]
cmp r11d, edx
je 0x1401ee5e8
movsxd rdx, edx
movzx ecx, byte [r10 + rdx]
xor cl, byte [rbx + rdx]
mov byte [r15 + rdx], cl
lea edx, [rax + 4]
cmp edx, r11d
je 0x1401ee5e8
movsxd rdx, edx
movzx ecx, byte [rbx + rdx]
xor cl, byte [r10 + rdx]
mov byte [r15 + rdx], cl
lea edx, [rax + 5]
cmp r11d, edx
je 0x1401ee5e8
movsxd rdx, edx
add eax, 6
movzx ecx, byte [rbx + rdx]
xor cl, byte [r10 + rdx]
mov byte [r15 + rdx], cl
cmp r11d, eax
je 0x1401ee5e8
cdqe
movzx edx, byte [r10 + rax]
xor dl, byte [rbx + rax]
mov byte [r15 + rax], dl
call fcn.1400a47d0
mov rbx, rax
test rax, rax
je 0x1401eea12
mov rdx, rbp
mov rcx, rax
call fcn.1400a4b40
test eax, eax
je 0x1401ee9a3
mov rdx, qword [rsp + 0x40]
mov r8, rsi
mov rcx, rbx
call fcn.1400a4c10
test eax, eax
je 0x1401ee9a3
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x110]
mov rcx, rbx
call fcn.1400a4c10
test eax, eax
je 0x1401ee9a3
mov r8, rsi
mov rdx, rdi
mov rcx, rbx
call fcn.1400a4c10
test eax, eax
je 0x1401ee9a3
mov rsi, qword [rsp + 0x60]
xor r8d, r8d
mov rcx, rbx
mov rdx, rsi
call fcn.1400a4c30
test eax, eax
je 0x1401ee9a3
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x80]
mov rcx, rsi
call fcn.140142750
test eax, eax
jne 0x1401eea35
mov rax, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x68]
mov qword [rax], rsi
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x50], rbx
mov ebx, 1
mov qword [rsp + 0x58], rax
jmp 0x1401ee737
mov dword [rsp + 0x20], 0x12a
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x6b
mov edx, 0x66
mov ecx, 0x35
call fcn.1400a0f90
mov qword [rsp + 0x50], 0
xor r14d, r14d
lea r13, str.crypto_sm2_sm2_crypt.c
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x58], 0
mov rax, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x110]
xor edx, edx
xor ebx, ebx
mov r8, qword [rax]
call sub.msvcrt.dll_memset
mov rcx, qword [rsp + 0x48]
mov rdx, r13
mov r8d, 0x17b
call fcn.1400c47e0
mov rcx, qword [rsp + 0x40]
mov rdx, r13
mov r8d, 0x17c
call fcn.1400c47e0
mov rcx, qword [rsp + 0x60]
mov r8d, 0x17d
mov rdx, r13
call fcn.1400c47e0
mov rcx, qword [rsp + 0x58]
call fcn.14008fb00
mov rcx, r14
call fcn.14016c8e0
lea rdx, [0x1402d6820]
mov rcx, r12
call fcn.1400644f0
mov rcx, qword [rsp + 0x50]
call fcn.1400a47f0
mov eax, ebx
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 0x68
mov edx, 0x66
mov ecx, 0x35
mov dword [rsp + 0x20], 0x122
lea r9, str.crypto_sm2_sm2_crypt.c
call fcn.1400a0f90
jmp 0x1401ee6e4
mov r8d, 0x41
mov edx, 0x66
mov ecx, 0x35
mov dword [rsp + 0x20], 0x142
lea r9, str.crypto_sm2_sm2_crypt.c
call fcn.1400a0f90
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
jmp 0x1401ee71b
mov r8d, 0x64
mov edx, 0x66
mov ecx, 0x35
mov dword [rsp + 0x20], 0x11d
lea r9, str.crypto_sm2_sm2_crypt.c
call fcn.1400a0f90
nop dword [rax]
mov qword [rsp + 0x50], 0
xor r12d, r12d
xor r14d, r14d
lea r13, str.crypto_sm2_sm2_crypt.c
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x58], 0
jmp 0x1401ee71b
mov r8d, 0x10
mov edx, 0x66
mov ecx, 0x35
mov dword [rsp + 0x20], 0x151
lea r9, str.crypto_sm2_sm2_crypt.c
call fcn.1400a0f90
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
jmp 0x1401ee71b
mov dword [rsp + 0x20], 0x130
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x41
jmp 0x1401ee6d5
mov r8d, 3
mov edx, 0x66
mov ecx, 0x35
mov dword [rsp + 0x20], 0x139
lea r9, str.crypto_sm2_sm2_crypt.c
lea r13, str.crypto_sm2_sm2_crypt.c
call fcn.1400a0f90
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x40], 0
jmp 0x1401ee71b
mov r8d, 0x41
mov edx, 0x66
mov ecx, 0x35
mov dword [rsp + 0x20], 0x148
lea r9, str.crypto_sm2_sm2_crypt.c
call fcn.1400a0f90
mov qword [rsp + 0x58], 0
jmp 0x1401ee71b
mov dword [rsp + 0x20], 0x159
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x44
mov edx, 0x66
mov ecx, 0x35
call fcn.1400a0f90
jmp 0x1401ee8b4
mov dword [rsp + 0x20], 0x16b
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 6
mov edx, 0x66
mov ecx, 0x35
call fcn.1400a0f90
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rax
jmp 0x1401ee71b
mov rcx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
xor eax, eax
mov r9, qword [rsp + 0x48]
nop dword [rax]
mov rbx, qword [rsp + 0x110]
movzx edx, byte [r9 + rax]
xor dl, byte [r8 + rax]
mov byte [rbx + rax], dl
add rax, 1
cmp rcx, rax
jne 0x1401ee9f0
jmp 0x1401ee5e8
mov dword [rsp + 0x20], 0x162
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x41
jmp 0x1401ee98f
xor eax, eax
xor edx, edx
jmp 0x1401ee4f8
mov dword [rsp + 0x20], 0x170
lea r9, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x66
jmp 0x1401ee9b8