Function at 0x140013960
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push r12
sub rsp, 0x60
mov rbp, r8
mov ebx, edx
test rcx, rcx
jne 0x140013997
lea r8d, [rcx + 0x2a]
lea rcx, str.msg___NULL
lea rdx, str.srcpkpkcs1pkcs_1_oaep_encode.c
call fcn.140013660
cmp qword [rsp + 0xc0], 0
jne 0x1400139bb
mov r8d, 0x2b
lea rdx, str.srcpkpkcs1pkcs_1_oaep_encode.c
lea rcx, str.out___NULL
call fcn.140013660
cmp qword [rsp + 0xc8], 0
jne 0x1400139df
mov r8d, 0x2c
lea rdx, str.srcpkpkcs1pkcs_1_oaep_encode.c
lea rcx, str.outlen___NULL
call fcn.140013660
movsxd r12, dword [rsp + 0xb8]
mov ecx, r12d
call fcn.140013730
test eax, eax
jne 0x140013d9f
mov ecx, dword [rsp + 0xb0]
call fcn.140013760
test eax, eax
jne 0x140013d9f
mov qword [rsp + 0x50], r13
lea rcx, [0x140000000]
mov qword [rsp + 0x48], r14
mov rax, r12
shl rax, 7
mov qword [rsp + 0x40], r15
mov r15d, 0
mov r14d, dword [rax + rcx + 0x30a8c]
mov eax, dword [rsp + 0xa0]
test al, 7
setne r15b
shr eax, 3
add r15d, eax
lea ecx, [r14 + r14]
lea eax, [r15 - 2]
cmp ecx, eax
jae 0x140013dd1
mov r13d, r15d
sub r13d, ecx
lea eax, [r13 - 2]
cmp ebx, eax
ja 0x140013dd1
mov qword [rsp + 0x90], rsi
mov ecx, r15d
mov qword [rsp + 0x58], rdi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ecx, r15d
mov rsi, rax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ecx, r14d
mov rbx, rax
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rdi, rax
test rsi, rsi
je 0x140013db0
test rbx, rbx
je 0x140013da8
test rax, rax
je 0x140013da8
mov dword [rsp + 0x30], r15d
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
mov r9, rsi
mov ecx, r12d
test rbp, rbp
je 0x140013adb
mov r8d, dword [rsp + 0x98]
mov rdx, rbp
jmp 0x140013ae1
xor r8d, r8d
mov rdx, rsi
call fcn.14000e140
mov ebp, eax
test eax, eax
jne 0x140013d69
mov ebp, dword [rsp + 0x88]
lea rcx, [rsi + r14]
sub r13d, ebp
mov dword [rsp + 0x30], r14d
sub r13d, 2
xor edx, edx
mov r8d, r13d
call fcn.140021acb
mov eax, dword [rsp + 0x30]
mov r8d, ebp
mov rdx, qword [rsp + 0x80]
add eax, r13d
mov dword [rsp + 0x30], eax
mov byte [rax + rsi], 1
mov eax, dword [rsp + 0x30]
inc eax
mov ecx, eax
add rcx, rsi
mov dword [rsp + 0x30], eax
call sub.VCRUNTIME140.dll_memcpy
movsxd rax, dword [rsp + 0xb0]
mov edx, r14d
mov r8, qword [rsp + 0xa8]
mov rcx, rdi
add dword [rsp + 0x30], ebp
lea r9, [rax + rax*4]
add r9, r9
lea rax, [0x140000000]
call qword [rax + r9*8 + 0x31aa8]
cmp eax, r14d
je 0x140013b7e
mov ebp, 9
jmp 0x140013d69
mov r13d, r15d
mov r9, rbx
sub r13d, r14d
mov r8d, r14d
dec r13d
mov rdx, rdi
mov ecx, r12d
mov dword [rsp + 0x20], r13d
call fcn.140016af0
mov ebp, eax
test eax, eax
jne 0x140013d69
xor r8d, r8d
test r13d, r13d
je 0x140013c41
cmp r13d, 0x20
jb 0x140013c16
lea eax, [r13 - 1]
lea rdx, [rax + rsi]
add rax, rbx
cmp rsi, rax
ja 0x140013bce
cmp rdx, rbx
jae 0x140013c16
mov edx, r13d
and edx, 0xffffffe0
nop dword [rax]
nop dword [rax + rax]
movdqu xmm0, xmmword [r8 + rsi]
lea eax, [r8 + 0x10]
movdqu xmm1, xmmword [r8 + rbx]
pxor xmm1, xmm0
movdqu xmmword [r8 + rsi], xmm1
add r8d, 0x20
movdqu xmm1, xmmword [rax + rbx]
movdqu xmm0, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rax + rsi], xmm1
cmp r8d, edx
jb 0x140013be0
cmp r8d, r13d
jae 0x140013c41
mov edx, r8d
mov r9, rbx
add rdx, rsi
sub r9, rsi
mov eax, r13d
sub eax, r8d
mov r8d, eax
movzx eax, byte [r9 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x140013c30
mov r9, rbx
mov dword [rsp + 0x20], r14d
mov r8d, r13d
mov rdx, rsi
mov ecx, r12d
call fcn.140016af0
mov ebp, eax
test eax, eax
jne 0x140013d69
xor edx, edx
test r14d, r14d
je 0x140013cf1
cmp r14d, 0x20
jb 0x140013cc1
lea eax, [r14 - 1]
lea r8, [rax + rdi]
add rax, rbx
cmp rdi, rax
ja 0x140013c87
cmp r8, rbx
jae 0x140013cc1
mov r8d, r14d
and r8d, 0xffffffe0
nop
movdqu xmm0, xmmword [rdx + rdi]
lea eax, [rdx + 0x10]
movdqu xmm1, xmmword [rdx + rbx]
pxor xmm1, xmm0
movdqu xmmword [rdx + rdi], xmm1
add edx, 0x20
movdqu xmm1, xmmword [rax + rbx]
movdqu xmm0, xmmword [rax + rdi]
pxor xmm1, xmm0
movdqu xmmword [rax + rdi], xmm1
cmp edx, r8d
jb 0x140013c90
cmp edx, r14d
jae 0x140013cf1
mov ecx, edx
mov r8, rbx
add rcx, rdi
sub r8, rdi
mov eax, r14d
sub eax, edx
mov edx, eax
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140013ce0
mov rbp, qword [rsp + 0xc8]
cmp dword [rbp], r15d
jae 0x140013d0a
mov dword [rbp], r15d
mov ebp, 6
jmp 0x140013d69
mov r12, qword [rsp + 0xc0]
mov r8, r14
mov dword [rsp + 0x30], 0
mov rdx, rdi
mov byte [r12], 0
mov eax, dword [rsp + 0x30]
inc eax
mov ecx, eax
add rcx, r12
mov dword [rsp + 0x30], eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsp + 0x30]
mov rdx, rsi
add eax, r14d
mov r8d, r13d
mov ecx, eax
add rcx, r12
mov dword [rsp + 0x30], eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [rsp + 0x30]
sub r15d, r14d
dec ecx
add ecx, r15d
mov dword [rbp], ecx
xor ebp, ebp
mov dword [rsp + 0x30], ecx
mov rcx, rdi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rcx, rbx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov rcx, rsi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov eax, ebp
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x90]
mov r13, qword [rsp + 0x50]
mov r14, qword [rsp + 0x48]
mov r15, qword [rsp + 0x40]
add rsp, 0x60
pop r12
pop rbp
pop rbx
ret
mov rcx, rsi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
test rbx, rbx
je 0x140013dbd
mov rcx, rbx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
test rdi, rdi
je 0x140013dca
mov rcx, rdi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
mov eax, ntohl
jmp 0x140013d83
mov eax, reloc.WS2_32.dll_shutdown
jmp 0x140013d90