Function at 0x14015e7c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x200]
sub rsp, 0x300
mov rax, qword [0x140264330]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
mov rdi, qword [rbp + 0x268]
mov dword [rsp + 0x38], r9d
mov r9, qword [rbp + 0x258]
mov esi, 1
mov r14, r8
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x34], esi
test r9, r9
jne 0x14015e838
mov edx, 0xa2
lea r9, str.....opensslopensslcryptoevpevp_lib.c
lea ecx, [rsi + 5]
lea r8d, [rdx - 3]
mov dword [rsp + 0x20], 0x10e
call fcn.1400dabf0
xor eax, eax
jmp 0x14015ec24
movsxd r12, dword [r9 + 8]
test r12d, r12d
jns 0x14015e848
xor eax, eax
jmp 0x14015ec24
xor eax, eax
mov qword [rsp + 0x2f0], r13
mov r13d, dword [rbp + 0x260]
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
test rcx, rcx
jne 0x14015e8af
xor edx, edx
jmp 0x14015e8d6
cmp edx, 0xffffffff
jne 0x14015e8d6
xor edx, edx
mov rax, rcx
cmp byte [rcx], dl
je 0x14015e8d2
nop dword [rax]
cmp edx, 0x80000000
jae 0x14015e8d2
inc rax
inc edx
cmp byte [rax], 0
jne 0x14015e8c0
btr edx, 0x1f
mov r8d, edx
mov rdx, rcx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], 0
call fcn.140128260
test eax, eax
jne 0x14015e916
lea rcx, [rbp - 0x78]
call fcn.1400fca40
lea rcx, [rbp - 0x48]
call fcn.1400fca40
lea rcx, [rsp + 0x58]
call fcn.1400fca40
xor eax, eax
jmp 0x14015ec1c
mov qword [rsp + 0x2f8], rbx
mov qword [rsp + 0x2e8], r15
test r13d, r13d
je 0x14015ebeb
mov r15d, dword [rbp + 0x250]
nop word [rax + rax]
mov eax, esi
mov ebx, r13d
cmp r13d, r12d
cmovg ebx, r12d
shr eax, 0x18
lea rdx, [rsp + 0x50]
mov byte [rsp + 0x30], al
mov eax, esi
lea rcx, [rbp + 0x70]
shr eax, 0x10
mov byte [rsp + 0x33], sil
mov byte [rsp + 0x31], al
mov eax, esi
shr eax, 8
mov byte [rsp + 0x32], al
call fcn.140128610
test eax, eax
je 0x14015ebcb
movsxd r8, dword [rsp + 0x38]
lea rcx, [rbp + 0x78]
mov rdx, r14
call qword [rbp + 0xa0]
test eax, eax
je 0x14015eb78
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x78]
mov r8d, 4
call qword [rbp + 0xa0]
test eax, eax
je 0x14015eb78
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x70]
xor r8d, r8d
call fcn.1401284f0
test eax, eax
je 0x14015eb78
lea rcx, [rbp + 0xa8]
call fcn.1400fca40
lea rcx, [rbp + 0xd8]
call fcn.1400fca40
lea rcx, [rbp + 0x78]
call fcn.1400fca40
lea rcx, [rbp + 0x70]
xor edx, edx
mov r8d, 0x120
call sub.MSVCR120.dll_memset
movsxd r14, ebx
lea rdx, [rbp + 0x190]
mov r8, r14
mov rcx, rdi
call sub.MSVCR120.dll_memcpy
mov esi, 1
cmp r15d, esi
jle 0x14015eb5c
nop word [rax + rax]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x70]
call fcn.140128610
test eax, eax
je 0x14015ebcb
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x78]
mov r8, r12
call qword [rbp + 0xa0]
test eax, eax
je 0x14015eb78
lea rdx, [rbp + 0x190]
lea rcx, [rbp + 0x70]
xor r8d, r8d
call fcn.1401284f0
test eax, eax
je 0x14015eb78
lea rcx, [rbp + 0xa8]
call fcn.1400fca40
lea rcx, [rbp + 0xd8]
call fcn.1400fca40
lea rcx, [rbp + 0x78]
call fcn.1400fca40
lea rcx, [rbp + 0x70]
xor edx, edx
mov r8d, 0x120
call sub.MSVCR120.dll_memset
xor r9d, r9d
test ebx, ebx
jle 0x14015eb1b
cmp ebx, 0x10
jb 0x14015eb1b
lea eax, [rbx - 1]
xor edx, edx
movsxd rcx, eax
lea rax, [rbp + 0x190]
add rax, rcx
lea r8, [rcx + rdi]
cmp rdi, rax
ja 0x14015eae2
lea rax, [rbp + 0x190]
cmp r8, rax
jae 0x14015eb1b
mov eax, ebx
and eax, 0x8000000f
jge 0x14015eaf2
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, ebx
sub ecx, eax
movsxd rax, edx
add edx, 0x10
add r9, 0x10
movdqu xmm1, xmmword [rbp + rax + 0x190]
movdqu xmm0, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
cmp edx, ecx
jl 0x14015eaf6
cmp r9, r14
jge 0x14015eb51
lea r8, [rbp + 0x190]
mov rdx, r14
lea rax, [r9 + rdi]
sub r8, rdi
sub rdx, r9
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r8 + rax]
lea rax, [rax + 1]
xor byte [rax - 1], cl
dec rdx
jne 0x14015eb40
inc esi
cmp esi, r15d
jl 0x14015ea30
mov esi, dword [rsp + 0x34]
add rdi, r14
inc esi
mov dword [rsp + 0x34], esi
sub r13d, ebx
je 0x14015ebeb
mov r14, qword [rsp + 0x40]
jmp 0x14015e940
lea rcx, [rbp - 0x78]
call fcn.1400fca40
lea rcx, [rbp - 0x48]
call fcn.1400fca40
lea rcx, [rsp + 0x58]
call fcn.1400fca40
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x120
call sub.MSVCR120.dll_memset
lea rcx, [rbp + 0xa8]
call fcn.1400fca40
lea rcx, [rbp + 0xd8]
call fcn.1400fca40
lea rcx, [rbp + 0x78]
call fcn.1400fca40
xor eax, eax
jmp 0x14015ec0c
lea rcx, [rbp - 0x78]
call fcn.1400fca40
lea rcx, [rbp - 0x48]
call fcn.1400fca40
lea rcx, [rsp + 0x58]
call fcn.1400fca40
xor eax, eax
jmp 0x14015ec0c
lea rcx, [rbp - 0x78]
call fcn.1400fca40
lea rcx, [rbp - 0x48]
call fcn.1400fca40
lea rcx, [rsp + 0x58]
call fcn.1400fca40
mov eax, 1
mov rbx, qword [rsp + 0x2f8]
mov r15, qword [rsp + 0x2e8]
mov r13, qword [rsp + 0x2f0]
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.1401bb2c0
add rsp, 0x300
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret