Function at 0x140143660
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rbp, qword [rsp + 0x158]
movsxd rdi, dword [rsp + 0x140]
mov r13, qword [rsp + 0x160]
mov qword [rsp + 0x120], rcx
mov r15, r8
mov ebx, r9d
mov dword [rsp + 0x128], edx
test rbp, rbp
je 0x140143c40
test r13, r13
mov rcx, rbp
cmove r13, rbp
call fcn.1400c5b40
mov esi, eax
mov eax, dword [rsp + 0x128]
test eax, eax
jle 0x1401436f9
test ebx, ebx
jle 0x1401436f9
cmp ebx, edi
jg 0x1401436d5
lea eax, [rsi + rsi + 2]
cmp eax, edi
jle 0x140143720
mov r8d, 0x79
mov edx, 0xa1
mov ecx, 4
mov dword [rsp + 0x20], 0xe9
lea r9, str.rsa_oaep.c
call fcn.1400ba710
mov r15d, 0xffffffff
mov eax, r15d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, edi
mov r8d, 0x97
lea rdx, str.rsa_oaep.c
sub eax, esi
lea r11d, [rax - 1]
mov dword [rsp + 0x44], eax
mov ecx, r11d
mov dword [rsp + 0x38], r11d
call fcn.14006d260
mov r8d, 0x98
lea rdx, str.rsa_oaep.c
mov ecx, edi
mov r12, rax
call fcn.14006d260
mov r14, rax
test r12, r12
je 0x140143c50
test rax, rax
mov r11d, dword [rsp + 0x38]
je 0x140143c50
mov r8, rdi
xor edx, edx
mov rcx, rax
mov dword [rsp + 0x38], r11d
call sub.msvcrt.dll_memset
movsxd r8, ebx
mov rdx, r15
movsxd rbx, esi
sub rdi, r8
lea rcx, [r14 + rdi]
lea rdi, [rbx + 1]
call sub.msvcrt.dll_memcpy
mov r11d, dword [rsp + 0x38]
movzx eax, byte [r14]
mov edx, esi
mov qword [rsp + 0x20], r13
lea r15, [r14 + rdi]
lea rcx, [rsp + 0x50]
mov r9d, r11d
mov r8, r15
mov byte [rsp + 0x4f], al
mov dword [rsp + 0x48], r11d
mov qword [rsp + 0x38], rcx
call fcn.140142f10
test eax, eax
jne 0x140143c18
test esi, esi
mov rcx, qword [rsp + 0x38]
mov r11d, dword [rsp + 0x48]
jle 0x1401439e8
lea rax, [r14 + 0x11]
lea rdx, [r14 + 1]
cmp rcx, rax
lea rax, [rsp + 0x60]
lea r8d, [rsi - 1]
setae r9b
cmp rdx, rax
setae al
or r9b, al
je 0x140143d80
cmp r8d, 0xe
jbe 0x140143d80
movdqu xmm0, xmmword [r14 + 1]
mov eax, esi
pxor xmm0, xmmword [rsp + 0x50]
shr eax, 4
movaps xmmword [rsp + 0x50], xmm0
cmp eax, 1
je 0x14014387d
movdqu xmm0, xmmword [r14 + 0x11]
pxor xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
cmp eax, 2
je 0x14014387d
movdqu xmm0, xmmword [r14 + 0x21]
pxor xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
cmp eax, 3
je 0x14014387d
movdqu xmm0, xmmword [r14 + 0x31]
pxor xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x80], xmm0
mov eax, esi
and eax, 0xfffffff0
test sil, 0xf
je 0x1401439e8
movsxd rdx, eax
mov r8d, eax
movzx r8d, byte [r14 + r8 + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 1]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 2]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 3]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 4]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 5]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 6]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 7]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 8]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 9]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 0xa]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 0xb]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 0xc]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
lea edx, [rax + 0xd]
cmp esi, edx
jle 0x1401439e8
movsxd rdx, edx
add eax, 0xe
movzx r8d, byte [r14 + rdx + 1]
xor byte [rsp + rdx + 0x50], r8b
cmp esi, eax
jle 0x1401439e8
cdqe
movzx edx, byte [r14 + rax + 1]
xor byte [rsp + rax + 0x50], dl
nop dword [rax]
mov qword [rsp + 0x20], r13
mov r8, rcx
mov r9d, esi
mov edx, r11d
mov rcx, r12
mov dword [rsp + 0x38], r11d
call fcn.140142f10
mov r13d, eax
test eax, eax
jne 0x140143c18
mov r11d, dword [rsp + 0x38]
test r11d, r11d
jle 0x140143bd8
mov eax, dword [rsp + 0x44]
lea rdx, [r14 + rbx + 0x11]
sub eax, 2
cmp r12, rdx
lea rdx, [r12 + 0x10]
setae cl
cmp r15, rdx
setae dl
or cl, dl
je 0x140143db0
cmp eax, 0xe
jbe 0x140143db0
mov edx, r11d
xor eax, eax
shr edx, 4
shl rdx, 4
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r15 + rax]
movdqu xmm1, xmmword [r12 + rax]
pxor xmm0, xmm1
movups xmmword [r12 + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x140143a60
mov eax, r11d
and eax, 0xfffffff0
test r11b, 0xf
je 0x140143bd8
movsxd rdx, eax
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 1]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 2]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 3]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 4]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 5]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 6]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 7]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 8]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 9]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xa]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xb]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xc]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
lea edx, [rax + 0xd]
cmp r11d, edx
jle 0x140143bd8
movsxd rdx, edx
add eax, 0xe
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
cmp r11d, eax
jle 0x140143bd8
cdqe
movzx edx, byte [r15 + rax]
xor byte [r12 + rax], dl
nop dword [rax]
mov qword [rsp + 0x20], rbp
lea r15, [rsp + 0x90]
xor r9d, r9d
movsxd rdx, dword [rsp + 0x150]
mov rcx, qword [rsp + 0x148]
mov r8, r15
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x28], 0
call fcn.1400bc350
test eax, eax
jne 0x140143c88
nop word [rax + rax]
mov r15d, 0xffffffff
mov rcx, r12
call fcn.14006d560
test r14, r14
je 0x1401436ff
mov rcx, r14
call fcn.14006d560
jmp 0x1401436ff
call fcn.1400c3ca0
mov rbp, rax
jmp 0x1401436a9
mov r8d, 0x41
mov edx, 0xa1
mov ecx, 4
mov dword [rsp + 0x20], 0x9a
lea r9, str.rsa_oaep.c
call fcn.1400ba710
test r12, r12
jne 0x140143c18
mov r15d, 0xffffffff
jmp 0x140143c26
movzx ebp, byte [rsp + 0x4f]
mov rdx, r15
mov r8, rbx
mov rcx, r12
call fcn.14006cd10
mov r11d, dword [rsp + 0x38]
lea edx, [rbp - 1]
not ebp
and ebp, edx
mov edx, eax
sub eax, 1
not edx
and eax, edx
and eax, ebp
mov edx, eax
sar edx, 0x1f
cmp esi, r11d
jge 0x140143d57
xor ecx, ecx
jmp 0x140143ccc
add rdi, 1
movzx r8d, byte [r12 + rbx]
xor ebx, r13d
mov eax, r8d
xor eax, 1
movzx eax, al
mov r9d, eax
sub eax, 1
not r9d
and eax, r9d
mov r9d, ecx
not r9d
sar eax, 0x1f
and ebx, r9d
or ecx, eax
and ebx, eax
mov eax, r8d
sub r8d, 1
not eax
xor r13d, ebx
mov rbx, rdi
and eax, r8d
sar eax, 0x1f
or eax, ecx
and edx, eax
cmp r11d, edi
jg 0x140143cc8
test ecx, edx
je 0x140143d57
add r13d, 1
sub r11d, r13d
mov r15d, r11d
cmp dword [rsp + 0x128], r11d
jge 0x140143dd2
mov r8d, 0x6d
mov edx, 0xa1
mov ecx, 4
mov dword [rsp + 0x20], 0xdd
lea r9, str.rsa_oaep.c
call fcn.1400ba710
mov r8d, 0x79
mov edx, 0xa1
mov ecx, 4
mov dword [rsp + 0x20], 0xe9
lea r9, str.rsa_oaep.c
call fcn.1400ba710
jmp 0x140143c18
mov rax, rcx
lea r9, [rsp + r8 + 0x51]
nop dword [rax + rax]
movzx r8d, byte [rdx]
xor byte [rax], r8b
add rax, 1
add rdx, 1
cmp rax, r9
jne 0x140143d90
jmp 0x1401439e8
xor edx, edx
nop word [rax + rax]
movzx ecx, byte [r15 + rdx]
xor byte [r12 + rdx], cl
mov rcx, rdx
add rdx, 1
cmp rcx, rax
jne 0x140143db8
jmp 0x140143bd8
movsxd r13, r13d
mov rcx, qword [rsp + 0x120]
movsxd r8, r11d
lea rdx, [r12 + r13]
call sub.msvcrt.dll_memcpy
jmp 0x140143c1e