Function at 0x140289de0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xc8
call fcn.14029e100
sub rsp, rax
mov rax, qword [0x1403d8618]
xor rax, rsp
mov qword [rsp + 0x70], rax
cmp dword [0x1403ea0dc], 0
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0x90], r15
mov r15d, edx
movaps xmmword [rsp + 0x80], xmm6
movaps xmm6, xmm2
mov qword [rsp + 0x50], rcx
je 0x140289e8a
mov edx, 0x13
lea r8, str..crypto_randmd_rand.c
mov r9d, 0xd8
lea ecx, [rdx - 0xe]
call fcn.140281bf0
call fcn.140281ca0
xor edi, edi
lea r8, str..crypto_randmd_rand.c
cmp dword [0x1403ea0e0], eax
mov r13d, edi
mov r9d, 0xda
sete r13b
lea edx, [rdi + 0x13]
mov dword [rsp + 0x20], r13d
lea ecx, [rdi + 6]
call fcn.140281bf0
test r13d, r13d
jne 0x140289ead
jmp 0x140289e93
xor edi, edi
mov r13d, edi
mov dword [rsp + 0x20], edi
mov edx, 0x12
lea r8, str..crypto_randmd_rand.c
mov r9d, 0xdf
lea ecx, [rdx - 9]
call fcn.140281bf0
movsxd rcx, dword [0x1403ea0c4]
mov rax, qword [0x1403ea0c8]
mov rsi, rcx
movups xmm0, xmmword [0x1403ea0e8]
add ecx, r15d
mov qword [rsp + 0x28], rax
mov eax, dword [0x1403ea0f8]
mov dword [rsp + 0x68], eax
mov dword [0x1403ea0c4], ecx
movups xmmword [rsp + 0x58], xmm0
cmp ecx, 0x3ff
jl 0x140289f17
mov eax, 0x7fdff7fd
mov dword [0x1403ea0c0], 0x3ff
imul ecx
sub edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x3ff
add ecx, eax
mov dword [0x1403ea0c4], ecx
jmp 0x140289f2f
mov eax, dword [0x1403ea0c0]
cmp eax, 0x3ff
jge 0x140289f2f
cmp ecx, eax
cmovg eax, ecx
mov dword [0x1403ea0c0], eax
mov eax, 0x66666667
mov ecx, r15d
imul r15d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
shl eax, 2
sub ecx, eax
mov eax, edi
test ecx, ecx
setg al
add eax, edx
add dword [0x1403ea0cc], eax
test r13d, r13d
jne 0x140289f79
lea edx, [r13 + 0x12]
mov r9d, 0xff
lea ecx, [rdx - 8]
lea r8, str..crypto_randmd_rand.c
call fcn.140281bf0
lea rcx, [rsp + 0x30]
call fcn.140290910
test r15d, r15d
jle 0x14028a0fd
mov r13, qword [rsp + 0x50]
lea ecx, [r15 - 1]
mov qword [rsp + 0xe0], rbx
mov eax, 0xcccccccd
mul ecx
mov qword [rsp + 0xc0], rbp
mov rbx, rsi
mov qword [rsp + 0xa8], r12
shr edx, 4
mov qword [rsp + 0x98], r14
mov r14d, 0x14
lea r12d, [rdx + 1]
nop dword [rax]
cmp r15d, 0x14
mov ebp, r15d
cmovg ebp, r14d
call fcn.140290a90
mov rdx, rax
lea rcx, [rsp + 0x30]
xor r8d, r8d
call fcn.140290710
mov r8, r14
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x30]
call fcn.140290860
lea r14d, [rsi - 0x3ff]
movsxd rdx, esi
add r14d, ebp
lea rcx, [rsp + 0x30]
test r14d, r14d
jle 0x14028a044
mov eax, ebp
sub eax, r14d
movsxd r8, eax
lea rax, [0x1403ea100]
add rdx, rax
call fcn.140290860
movsxd r8, r14d
lea rcx, [rsp + 0x30]
lea r14, [0x1403ea100]
mov rdx, r14
jmp 0x14028a051
lea r14, [0x1403ea100]
movsxd r8, ebp
add rdx, r14
call fcn.140290860
movsxd rbp, ebp
lea rcx, [rsp + 0x30]
mov r8, rbp
mov rdx, r13
call fcn.140290860
mov r8d, 8
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x30]
call fcn.140290860
xor r8d, r8d
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x30]
call fcn.140290670
inc dword [rsp + 0x2c]
add r13, rbp
mov rcx, rdi
test rbp, rbp
jle 0x14028a0c4
nop
movzx eax, byte [rsp + rcx + 0x58]
inc esi
xor byte [rbx + r14], al
inc rbx
cmp rbx, 0x3ff
jl 0x14028a0bc
mov esi, edi
mov rbx, rdi
inc rcx
cmp rcx, rbp
jl 0x14028a0a0
sub r15d, 0x14
mov r14d, 0x14
sub r12, 1
jne 0x140289fd0
mov r13d, dword [rsp + 0x20]
mov r14, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xe0]
lea rcx, [rsp + 0x30]
call fcn.140290880
mov r15, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xb8]
test r13d, r13d
jne 0x14028a135
lea edx, [r13 + 0x12]
mov r9d, 0x12a
lea ecx, [rdx - 9]
lea r8, str..crypto_randmd_rand.c
call fcn.140281bf0
movdqu xmm1, xmmword [0x1403ea0e8]
mov ecx, 4
lea rdx, [0x1403ea0e8]
movdqu xmm0, xmmword [rsp + 0x58]
pxor xmm1, xmm0
movdqu xmmword [0x1403ea0e8], xmm1
nop dword [rax + rax]
movzx eax, byte [rsp + rdi + 0x68]
xor byte [rdi + rdx + 0x10], al
lea rdi, [rdi + 1]
sub rcx, 1
jne 0x14028a160
movsd xmm0, qword [0x1402d34f0]
movsd xmm1, qword [0x1403ea0d0]
comisd xmm0, xmm1
mov rdi, qword [rsp + 0xb0]
jbe 0x14028a19d
addsd xmm1, xmm6
movsd qword [0x1403ea0d0], xmm1
movaps xmm6, xmmword [rsp + 0x80]
test r13d, r13d
mov r13, qword [rsp + 0xa0]
jne 0x14028a1cc
mov edx, 0x12
lea r8, str..crypto_randmd_rand.c
mov r9d, 0x135
lea ecx, [rdx - 8]
call fcn.140281bf0
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14029d460
add rsp, 0xc8
ret