Function at 0x1400808e0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov qword [r11 - 0x60], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov rax, qword [0x1402f7010]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov qword [r11 - 0x68], rcx
mov qword [r11 - 0x58], rcx
mov dword [rsp + 0x20], 0
mov edx, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x28], rdx
mov rax, qword gs:[0x58]
mov rdi, qword [rax]
mov esi, reloc.WS2_32.dll_sendto
mov eax, dword [rsi + rdi]
mov ebp, reloc.WLDAP32.dll_Ordinal_32
mov r14d, 0xffffffff
test al, 1
jne 0x1400809ac
or eax, 1
mov dword [rsi + rdi], eax
mov ebx, ebp
add rbx, rdi
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov ecx, eax
mov dword [rbx + 0x1384], r14d
mov dword [rbx + 4], eax
mov edx, 1
lea r8, [rbx + 8]
mov r9d, 0x26f
nop
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [r8], ecx
inc edx
lea r8, [r8 + 4]
sub r9, 1
jne 0x140080980
mov dword [rbx], 0x270
mov eax, dword [rsi + rdi]
mov rdx, qword [rsp + 0x28]
test al, 2
jne 0x1400809d0
or eax, 2
mov dword [rsi + rdi], eax
mov eax, 0x13a8
mov ecx, eax
mov qword [rax + rdi], 0
mov qword [rax + rdi + 8], Ordinal_33
jmp 0x1400809d5
mov ecx, 0x13a8
xor r15d, r15d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x68], r15
mov r12d, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x70], r12
mov byte [rsp + 0x58], r15b
add rcx, rdi
mov qword [rsp + 0x30], rcx
add rbp, rdi
nop dword [rax]
dec rdx
mov qword [rsp + 0x28], rdx
mov rax, qword [rcx + 8]
mov rcx, qword [rcx]
mov rbx, 0xffffffffffffffff
mov r13d, 0x40
nop dword [rax]
dec r13
shr rbx, 1
cmp rbx, r14
ja 0x140080a20
sub rax, rcx
cmp rax, 0xffffffffffffffff
jne 0x140080a6d
xor edi, edi
xor esi, esi
nop dword [rax + rax]
lea rcx, [r13 - 1]
shl rdi, cl
add rdi, rdi
nop word [rax + rax]
mov rcx, rbp
call fcn.140088f80
mov eax, eax
cmp rax, rbx
ja 0x140080a50
or rdi, rax
add rsi, r13
cmp rsi, 0x40
jb 0x140080a40
jmp 0x140080ae9
lea r12, [rax + 1]
lea r15, [r12 - 1]
xor edi, edi
xor esi, esi
test r15, r15
je 0x140080ab4
nop
lea rcx, [r13 - 1]
shl rdi, cl
add rdi, rdi
nop word [rax + rax]
mov rcx, rbp
call fcn.140088f80
mov eax, eax
cmp rax, rbx
ja 0x140080a90
or rdi, rax
lea rcx, [r13 - 1]
shl rsi, cl
add rsi, rsi
or rsi, rbx
cmp rsi, r15
jb 0x140080a80
xor edx, edx
mov rax, rsi
div r12
mov r8, rdx
mov rcx, rax
xor edx, edx
mov rax, rdi
div r12
cmp rax, rcx
jb 0x140080ad4
cmp r8, r15
jne 0x140080a76
xor edx, edx
mov rax, rdi
div r12
mov rdi, rdx
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
add rax, rdi
lea rdx, str.QWERTYUIOPASDFGHJKLZXCVBNM
movzx r9d, byte [rax + rdx]
cmp r15, r12
jae 0x140080b29
lea rax, [r15 + 1]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x58]
cmp r12, 0x10
cmovae rax, qword [rsp + 0x58]
mov byte [rax + r15], r9b
mov byte [rax + r15 + 1], 0
jmp 0x140080b38
lea rcx, [rsp + 0x58]
call fcn.14007cea0
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x140080b5c
mov r15, qword [rsp + 0x68]
mov qword [rsp + 0x38], r15
mov r12, qword [rsp + 0x70]
mov r14d, 0xffffffff
jmp 0x140080a00
mov rsi, qword [rsp + 0x40]
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rsi], 0
mov dword [rsp + 0x20], 2
mov rdi, qword [rsp + 0x68]
lea rax, [rdi + 4]
mov rbx, qword [rsi + 0x10]
cmp rbx, rax
ja 0x140080bc1
mov rcx, qword [rsi + 0x18]
cmp rcx, rax
je 0x140080bc1
jae 0x140080bad
sub rax, rbx
mov rdx, rax
mov rcx, rsi
call fcn.14007e3e0
mov qword [rsi + 0x10], rbx
jmp 0x140080bc1
cmp rax, 0x10
jae 0x140080bc1
cmp rcx, 0x10
jb 0x140080bc1
mov rcx, rsi
call fcn.14007e270
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0x10
cmovae rdx, qword [rsp + 0x58]
mov r8, rdi
mov rcx, rsi
call fcn.14007c620
mov r8d, 4
lea rdx, str..exe
mov rcx, rsi
call fcn.14007c620
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x140080c33
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140080c2e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140080c2e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140089e7c
mov rax, rsi
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140089e50
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret