Function at 0x1401f3e40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x100
call fcn.1401afbb0
sub rsp, rax
mov rax, qword [0x14047b0a0]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov rax, qword [rsp + 0x168]
xor esi, esi
movsxd r12, dword [rsp + 0x160]
mov r13, r8
mov rbx, qword [rsp + 0x180]
mov r14d, esi
mov qword [rsp + 0x58], rax
mov ebp, esi
mov rax, qword [rsp + 0x178]
movsxd r15, r9d
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x30], 0xffffffff
mov qword [rsp + 0x40], rsi
test rax, rax
jne 0x1401f3ed0
call fcn.1401b18f0
mov qword [rsp + 0x50], rax
test rbx, rbx
mov rcx, rax
cmove rbx, rax
mov qword [rsp + 0x48], rbx
call fcn.1401b1320
movsxd rdi, eax
cmp dword [rsp + 0x34], esi
jle 0x1401f436c
test r15d, r15d
jle 0x1401f436c
cmp r12d, r15d
jl 0x1401f42e4
lea ecx, [rdi*2 + 2]
cmp r12d, ecx
jl 0x1401f42e4
mov r14d, r12d
lea rdx, str.crypto_rsa_rsa_oaep.c
sub r14d, edi
mov r8d, ILFree
dec r14d
movsxd rcx, r14d
call fcn.1401b1960
mov rbp, rax
test rax, rax
jne 0x1401f3f60
mov dword [rsp + 0x20], 0x9c
mov edx, ILFree
lea r9, str.crypto_rsa_rsa_oaep.c
mov ecx, 4
lea r8d, [rdx - 0x58]
call fcn.1401b3390
jmp 0x1401f430e
cmp r15d, r12d
je 0x1401f3fa8
mov r8d, SHCreateDirectory
lea rdx, str.crypto_rsa_rsa_oaep.c
mov rcx, r12
mov rbx, r12
call fcn.1401b1ca0
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1401f3f91
mov dword [rsp + 0x20], SHCreateDirectory
jmp 0x1401f3f41
sub rbx, r15
mov r8, r15
mov rdx, r13
lea rcx, [rax + rbx]
call fcn.1402dcfd0
mov r13, qword [rsp + 0x40]
movzx r15d, byte [r13]
lea r12, [r13 + 1]
mov rax, qword [rsp + 0x48]
lea rcx, [rsp + 0x70]
dec r15d
mov qword [rsp + 0x20], rax
inc r13
shr r15d, 0x1f
add r13, rdi
mov r9d, r14d
mov r8, r13
mov edx, edi
neg r15d
mov rbx, rdi
call fcn.1401f3760
test eax, eax
jne 0x1401f430e
mov edx, esi
test edi, edi
jle 0x1401f40b1
cmp edi, 0x40
jb 0x1401f40b1
lea eax, [rdi - 1]
movsxd rcx, eax
lea r8, [rsp + 0x70]
add r8, rcx
lea rax, [rcx + r12]
lea rcx, [rsp + 0x70]
cmp rcx, rax
ja 0x1401f4020
cmp r8, r12
jae 0x1401f40b1
mov ecx, edi
and ecx, 0x8000003f
jge 0x1401f4031
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, edi
mov r8, rsi
sub eax, ecx
mov rcx, r12
movsxd r9, eax
lea rax, [rsp + 0x70]
sub rcx, rax
nop word [rax + rax]
lea rax, [rsp + 0x70]
add edx, 0x40
add rax, r8
add r8, 0x40
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + rcx]
pxor xmm1, xmm0
movdqu xmmword [rax], xmm1
movdqu xmm0, xmmword [rax + 0x10]
movdqu xmm1, xmmword [rax + rcx + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x10], xmm1
movdqu xmm0, xmmword [rax + 0x20]
movdqu xmm1, xmmword [rax + rcx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x20], xmm1
movdqu xmm0, xmmword [rax + 0x30]
movdqu xmm1, xmmword [rax + rcx + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax + 0x30], xmm1
cmp r8, r9
jl 0x1401f4050
movsxd rdx, edx
cmp rdx, rbx
jge 0x1401f40e7
lea rax, [rsp + 0x70]
sub r12, rax
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x70]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r12]
xor byte [rcx], al
cmp rdx, rbx
jl 0x1401f40d0
mov rax, qword [rsp + 0x48]
lea r8, [rsp + 0x70]
mov r9d, edi
mov qword [rsp + 0x20], rax
mov edx, r14d
mov rcx, rbp
call fcn.1401f3760
test eax, eax
jne 0x1401f430e
mov r8d, esi
test r14d, r14d
jle 0x1401f41c2
cmp r14d, 0x40
jb 0x1401f41c2
lea eax, [r14 - 1]
movsxd rcx, eax
lea rax, [rcx + r13]
lea rdx, [rcx + rbp]
cmp rbp, rax
ja 0x1401f413f
cmp rdx, r13
jae 0x1401f41c2
mov ecx, r14d
and ecx, 0x8000003f
jge 0x1401f4151
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, r14d
mov rdx, r13
sub eax, ecx
mov rcx, rbp
movsxd r9, eax
sub rdx, rbp
movdqu xmm0, xmmword [rcx]
add r8d, 0x40
movdqu xmm1, xmmword [rdx + rcx]
pxor xmm1, xmm0
movdqu xmmword [rcx], xmm1
movdqu xmm0, xmmword [rcx + 0x10]
movdqu xmm1, xmmword [rdx + rcx + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm0, xmmword [rcx + 0x20]
movdqu xmm1, xmmword [rdx + rcx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x20], xmm1
movdqu xmm0, xmmword [rcx + 0x30]
movdqu xmm1, xmmword [rdx + rcx + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x30], xmm1
add rcx, 0x40
mov rax, rcx
sub rax, rbp
cmp rax, r9
jl 0x1401f4162
movsxd rax, r8d
movsxd r12, r14d
cmp rax, r12
jge 0x1401f41f1
sub r13, rbp
lea rcx, [rax + rbp]
mov rdx, r12
sub rdx, rax
nop word [rax + rax]
movzx eax, byte [rcx + r13]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401f41e0
mov rax, qword [rsp + 0x50]
lea r8, [rsp + 0xb0]
movsxd rdx, dword [rsp + 0x170]
xor r9d, r9d
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
call fcn.1401b0200
test eax, eax
je 0x1401f430e
mov r8, rbx
lea rdx, [rsp + 0xb0]
mov rcx, rbp
call fcn.1400012a0
mov r9d, esi
lea ecx, [rax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and r15d, ecx
cmp rbx, r12
jge 0x1401f42a7
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [rbx + rbp]
mov ecx, r9d
not ecx
mov eax, r8d
xor eax, 1
inc rbx
lea edx, [rax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
or r9d, edx
mov eax, ecx
and ecx, edi
not eax
inc edi
and esi, eax
lea eax, [r8 - 1]
shr eax, 0x1f
or esi, ecx
neg eax
or eax, r9d
and r15d, eax
cmp rbx, r12
jl 0x1401f4260
test r15d, r9d
je 0x1401f42e4
lea ecx, [rsi + 1]
mov eax, r14d
sub eax, ecx
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x34], eax
jge 0x1401f4357
mov edx, ILFree
mov dword [rsp + 0x20], 0xe8
lea r9, str.crypto_rsa_rsa_oaep.c
mov ecx, 4
lea r8d, [rdx - 0x2c]
call fcn.1401b3390
mov edx, ILFree
mov dword [rsp + 0x20], 0xf5
lea r9, str.crypto_rsa_rsa_oaep.c
mov ecx, 4
lea r8d, [rdx - 0x20]
call fcn.1401b3390
mov dword [rsp + 0x30], 0xffffffff
mov edx, SHGetSetSettings
lea rcx, [rsp + 0x70]
call fcn.140001240
movsxd rdx, r14d
lea r8, str.crypto_rsa_rsa_oaep.c
mov r9d, 0xf8
mov rcx, rbp
call fcn.1401b1ac0
movsxd rdx, dword [rsp + 0x38]
lea r8, str.crypto_rsa_rsa_oaep.c
mov rcx, qword [rsp + 0x40]
mov r9d, 0xf9
call fcn.1401b1ac0
mov eax, dword [rsp + 0x30]
jmp 0x1401f4371
movsxd rdx, ecx
mov rcx, qword [rsp + 0x60]
add rdx, rbp
movsxd r8, eax
call fcn.1402dcfd0
jmp 0x1401f430e
mov eax, 0xffffffff
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1401aed20
mov rbx, qword [rsp + 0x148]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret