Function at 0x14015d900
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push r13
push r14
push r15
lea rbp, [rsp - 0x1e8]
sub rsp, 0x2e8
mov rax, qword [0x1402581e0]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
mov rbx, qword [rbp + 0x258]
mov r14d, r9d
mov dword [rsp + 0x34], r9d
mov r9, qword [rbp + 0x248]
mov rsi, r8
mov qword [rsp + 0x38], r8
mov r13d, 1
test r9, r9
jne 0x14015d97b
mov edx, 0xa2
lea r9, str.....opensslopensslcryptoevpevp_lib.c
lea ecx, [r13 + 5]
lea r8d, [rdx - 3]
mov dword [rsp + 0x20], 0x10e
call fcn.1400d9be0
xor eax, eax
jmp 0x14015dd7e
movsxd r15, dword [r9 + 8]
test r15d, r15d
js 0x14015da40
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
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 [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
test rcx, rcx
jne 0x14015d9e2
xor edx, edx
jmp 0x14015da06
cmp edx, 0xffffffff
jne 0x14015da06
xor edx, edx
mov rax, rcx
cmp byte [rcx], dl
je 0x14015da02
cmp edx, 0x80000000
jae 0x14015da02
inc rax
inc edx
cmp byte [rax], 0
jne 0x14015d9f0
btr edx, 0x1f
mov r8d, edx
mov rdx, rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], 0
call fcn.1401272c0
test eax, eax
jne 0x14015da47
lea rcx, [rsp + 0x78]
call fcn.1400fba60
lea rcx, [rbp - 0x58]
call fcn.1400fba60
lea rcx, [rsp + 0x48]
call fcn.1400fba60
xor eax, eax
jmp 0x14015dd7e
mov eax, dword [rbp + 0x250]
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2d8], r12
test eax, eax
je 0x14015dd4c
mov r12d, dword [rbp + 0x240]
nop dword [rax]
mov edi, eax
cmp eax, r15d
mov eax, r13d
cmovg edi, r15d
shr eax, 0x18
lea rdx, [rsp + 0x40]
mov byte [rsp + 0x30], al
mov eax, r13d
lea rcx, [rbp + 0x60]
shr eax, 0x10
mov byte [rsp + 0x33], r13b
mov byte [rsp + 0x31], al
mov eax, r13d
shr eax, 8
mov byte [rsp + 0x32], al
call fcn.140127670
test eax, eax
je 0x14015dd2b
lea rcx, [rbp + 0x68]
movsxd r8, r14d
mov rdx, rsi
call qword [rbp + 0x90]
test eax, eax
je 0x14015dcd7
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x68]
mov r8d, 4
call qword [rbp + 0x90]
test eax, eax
je 0x14015dcd7
lea rdx, [rbp + 0x180]
lea rcx, [rbp + 0x60]
xor r8d, r8d
call fcn.140127550
test eax, eax
je 0x14015dcd7
lea rcx, [rbp + 0x98]
call fcn.1400fba60
lea rcx, [rbp + 0xc8]
call fcn.1400fba60
lea rcx, [rbp + 0x68]
call fcn.1400fba60
lea rcx, [rbp + 0x60]
xor edx, edx
mov r8d, 0x120
call sub.MSVCR120.dll_memset
movsxd r14, edi
lea rdx, [rbp + 0x180]
mov r8, r14
mov rcx, rbx
call sub.MSVCR120.dll_memcpy
mov esi, 1
cmp r12d, esi
jle 0x14015dcac
nop word [rax + rax]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x60]
call fcn.140127670
test eax, eax
je 0x14015dd2b
lea rdx, [rbp + 0x180]
lea rcx, [rbp + 0x68]
mov r8, r15
call qword [rbp + 0x90]
test eax, eax
je 0x14015dcd7
lea rdx, [rbp + 0x180]
lea rcx, [rbp + 0x60]
xor r8d, r8d
call fcn.140127550
test eax, eax
je 0x14015dcd7
lea rcx, [rbp + 0x98]
call fcn.1400fba60
lea rcx, [rbp + 0xc8]
call fcn.1400fba60
lea rcx, [rbp + 0x68]
call fcn.1400fba60
lea rcx, [rbp + 0x60]
xor edx, edx
mov r8d, 0x120
call sub.MSVCR120.dll_memset
xor r9d, r9d
test edi, edi
jle 0x14015dc73
cmp edi, 0x20
jb 0x14015dc73
lea eax, [rdi - 1]
xor edx, edx
movsxd rcx, eax
lea rax, [rbp + 0x180]
add rax, rcx
lea r8, [rcx + rbx]
cmp rbx, rax
ja 0x14015dc1a
lea rax, [rbp + 0x180]
cmp r8, rax
jae 0x14015dc73
mov eax, edi
and eax, 0x8000001f
jge 0x14015dc2a
dec eax
or eax, 0xffffffe0
inc eax
mov r8d, edi
sub r8d, eax
movsxd rax, edx
add r9, 0x20
movdqu xmm0, xmmword [rax + rbx]
movdqu xmm1, xmmword [rbp + rax + 0x180]
pxor xmm1, xmm0
movdqu xmmword [rax + rbx], xmm1
lea eax, [rdx + 0x10]
add edx, 0x20
movsxd rcx, eax
movdqu xmm1, xmmword [rbp + rcx + 0x180]
movdqu xmm0, xmmword [rcx + rbx]
pxor xmm1, xmm0
movdqu xmmword [rcx + rbx], xmm1
cmp edx, r8d
jl 0x14015dc30
cmp r9, r14
jge 0x14015dca1
lea r8, [rbp + 0x180]
mov rdx, r14
lea rax, [r9 + rbx]
sub r8, rbx
sub rdx, r9
nop dword [rax]
movzx ecx, byte [r8 + rax]
lea rax, [rax + 1]
xor byte [rax - 1], cl
dec rdx
jne 0x14015dc90
inc esi
cmp esi, r12d
jl 0x14015db60
mov eax, dword [rbp + 0x250]
inc r13d
add rbx, r14
sub eax, edi
mov dword [rbp + 0x250], eax
test eax, eax
je 0x14015dd4c
mov rsi, qword [rsp + 0x38]
mov r14d, dword [rsp + 0x34]
jmp 0x14015da70
lea rcx, [rsp + 0x78]
call fcn.1400fba60
lea rcx, [rbp - 0x58]
call fcn.1400fba60
lea rcx, [rsp + 0x48]
call fcn.1400fba60
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0x120
call sub.MSVCR120.dll_memset
lea rcx, [rbp + 0x98]
call fcn.1400fba60
lea rcx, [rbp + 0xc8]
call fcn.1400fba60
lea rcx, [rbp + 0x68]
call fcn.1400fba60
xor eax, eax
jmp 0x14015dd6e
lea rcx, [rsp + 0x78]
call fcn.1400fba60
lea rcx, [rbp - 0x58]
call fcn.1400fba60
lea rcx, [rsp + 0x48]
call fcn.1400fba60
xor eax, eax
jmp 0x14015dd6e
lea rcx, [rsp + 0x78]
call fcn.1400fba60
lea rcx, [rbp - 0x58]
call fcn.1400fba60
lea rcx, [rsp + 0x48]
call fcn.1400fba60
mov eax, 1
mov rdi, qword [rsp + 0x2e0]
mov r12, qword [rsp + 0x2d8]
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.1401bddc0
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop rsi
pop rbx
pop rbp
ret