Function at 0x140065380
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r15, r9
movsxd r12, dword [r9 + 8]
mov rax, qword [r9]
lea r10, [rax + r12*8]
add r10, 0xfffffffffffffff8
mov rbp, 0xfffffffffffffff8
xor r13d, r13d
nop dword [rax]
mov r9, r12
add r9, r13
je 0x140065452
mov rdi, qword [r10 + r13*8]
dec r13
add rbp, 8
test rdi, rdi
je 0x1400653b0
mov rbx, r12
add rbx, r13
jne 0x1400653d9
cmp qword [rax], r8
jbe 0x140065452
mov rsi, r8
mov qword [rsp + 0x50], rdx
lea r14, [r12 + r13]
inc r14
mov qword [rsp + 0x30], rcx
mov rdx, r14
call fcn.140053090
test eax, eax
je 0x140065488
mov rax, rdi
shr rax, 1
or rax, rdi
mov rcx, rax
shr rcx, 2
or rcx, rax
mov rax, rcx
shr rax, 4
or rax, rcx
mov rcx, rax
shr rcx, 8
or rcx, rax
mov rax, rcx
shr rax, 0x10
or rax, rcx
mov rdi, rax
shr rdi, 0x20
or rdi, rax
mov rax, rdi
shr rax, 1
test rbx, rbx
jne 0x14006548c
cmp rax, rsi
jae 0x14006548c
mov dword [rsp + 0x20], 0x137
jmp 0x14006545a
mov dword [rsp + 0x20], 0xe2
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_random.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
call fcn.140049240
mov eax, esi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor esi, esi
jmp 0x140065475
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x40], rax
lea r14, [r12*8]
mov rdx, r14
sub rdx, rbp
mov rbp, qword [rsp + 0x30]
mov rcx, qword [rbp]
lea r8, [0x1402f3c50]
call fcn.1400667c0
mov rax, qword [rbp]
mov qword [rsp + 0x38], r14
add rax, r14
and qword [rax + r13*8], rdi
mov rax, qword [rbp]
test rsi, rsi
je 0x1400654ef
test rbx, rbx
mov r11, qword [rsp + 0x28]
je 0x1400654fe
cmp rbx, 4
jae 0x140065506
mov edx, 1
xor r8d, r8d
jmp 0x140065610
mov ecx, 0xffffffff
mov r11, qword [rsp + 0x28]
jmp 0x140065649
xor r8d, r8d
jmp 0x14006561c
lea rcx, [r12 + r13]
add rcx, 0xfffffffffffffffc
mov r8, rcx
shr r8, 2
inc r8
cmp rcx, 0xc
jae 0x14006552a
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
jmp 0x14006559a
mov rdx, r8
and rdx, 0xfffffffffffffffc
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop dword [rax + rax]
movdqu xmm2, xmmword [rax + rcx*8 + 8]
por xmm2, xmm0
movdqu xmm0, xmmword [rax + rcx*8 + 0x18]
por xmm0, xmm1
movdqu xmm1, xmmword [rax + rcx*8 + 0x28]
movdqu xmm3, xmmword [rax + rcx*8 + 0x38]
movdqu xmm4, xmmword [rax + rcx*8 + 0x48]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rax + rcx*8 + 0x58]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rax + rcx*8 + 0x68]
por xmm0, xmm4
movdqu xmm1, xmmword [rax + rcx*8 + 0x78]
por xmm1, xmm2
add rcx, 0x10
add rdx, 0xfffffffffffffffc
jne 0x140065540
mov rdx, rbx
and rdx, 0xfffffffffffffffc
test r8b, 3
je 0x1400655ea
lea r8d, [r12 + r13]
add r8b, 0xfc
shr r8b, 2
inc r8b
movzx r8d, r8b
and r8d, 3
nop
lea r9, [rcx*8]
or r9, 8
movdqu xmm2, xmmword [rax + r9]
por xmm0, xmm2
movdqu xmm2, xmmword [rax + r9 + 0x10]
por xmm1, xmm2
add rcx, 4
dec r8
jne 0x1400655c0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r8, xmm1
cmp rbx, rdx
je 0x14006561c
or rdx, 1
nop word cs:[rax + rax]
or r8, qword [rax + rdx*8]
inc rdx
cmp r11, rdx
jne 0x140065610
mov rcx, r8
not rcx
dec r8
and r8, rcx
mov rdx, qword [rax]
mov r9, rdx
xor r9, rsi
mov rcx, rdx
sub rcx, rsi
xor rcx, rdx
or rcx, r9
xor rcx, rdx
and rcx, r8
sar rcx, 0x3f
not ecx
mov qword [rsp + 0x48], rsi
mov r9, qword [r15]
mov r8d, 0xffffffff
mov rdx, r12
add rdx, r13
je 0x14006575a
and r11, 0xfffffffffffffffe
xor edx, edx
xor r10d, r10d
nop dword [rax]
mov rbx, qword [r9 + r10*8]
mov r15, qword [r9 + r10*8 + 8]
mov rsi, qword [rax + r10*8]
mov rdi, qword [rax + r10*8 + 8]
mov r14, rsi
xor r14, rbx
mov rbp, rsi
sub rbp, rbx
xor rbp, rsi
or rbp, r14
xor rbp, rsi
sar rbp, 0x3f
and ebp, r8d
mov esi, edx
test r14, r14
cmovne rsi, rbp
mov rbx, rdi
xor rbx, r15
mov rdx, rdi
sub rdx, r15
xor rdx, rdi
or rdx, rbx
xor rdx, rdi
sar rdx, 0x3f
and edx, r8d
test rbx, rbx
cmove rdx, rsi
add r10, 2
cmp r11, r10
jne 0x140065670
test byte [rsp + 0x28], 1
je 0x140065705
mov r9, qword [r9 + r10*8]
mov rax, qword [rax + r10*8]
mov r10, rax
xor r10, r9
mov r11, rax
sub r11, r9
xor r11, rax
or r11, r10
xor r11, rax
sar r11, 0x3f
and r8d, r11d
test r10, r10
cmovne rdx, r8
shr edx, 0x1f
and edx, ecx
mov rax, qword [rsp + 0x50]
mov dword [rax], edx
mov rax, rdx
dec rdx
and rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x30]
mov rcx, qword [r8]
or qword [rcx], rdx
neg rax
mov rdx, qword [rsp + 0x38]
add rdx, qword [r8]
mov rcx, qword [rsp + 0x40]
or rcx, rax
and qword [rdx + r13*8], rcx
mov dword [r8 + 0x10], 0
lea eax, [r12 + r13]
inc eax
mov dword [r8 + 8], eax
mov esi, 1
jmp 0x140065475
xor edx, edx
xor r10d, r10d
test byte [rsp + 0x28], 1
jne 0x1400656da
jmp 0x140065705