Function at 0x1400d8890
Capabilities:
Encode data using xor
Generate random numbers via winapi

Disassembly:
push r12
push r13
push r14
sub rsp, 0x150
mov rax, qword [0x1409b0280]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov dword [rsp + 0x60], r8d
mov r14, rcx
mov qword [rsp + 0x68], rdx
test rcx, rcx
je 0x1400d8b4a
test rdx, rdx
je 0x1400d8b4a
cmp r8d, 0x10000
ja 0x1400d8b4a
cmp byte [rcx + 0x18], 1
je 0x1400d88eb
mov eax, 0xffffff39
jmp 0x1400d8b4f
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x130], r15
call fcn.1400d7f70
xor r15d, r15d
mov ebx, eax
cmp eax, 2
jne 0x1400d8b14
lea rax, [rsp + 0xa0]
mov ebx, 1
mov qword [rsp + 0x38], rax
lea r9, str.c63w
lea rax, [0x14097aba0]
mov dword [rsp + 0x30], reloc.WLDAP32.dll_Ordinal_32
mov qword [rsp + 0x28], rax
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], Ordinal_50
mov ecx, ebx
call fcn.1400d8c60
test eax, eax
jne 0x1400d8b1d
xorps xmm3, xmm3
lea rcx, [0x14097aaf0]
xorps xmm4, xmm4
mov eax, r15d
nop dword [rax + rax]
movd xmm2, dword [rax + rcx]
xorps xmm0, xmm0
movd xmm1, dword [rsp + rax + 0xa0]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
xorps xmm2, xmm1
movd xmm1, dword [rax + rcx + 4]
orps xmm3, xmm2
punpcklbw xmm1, xmm0
movd xmm2, dword [rsp + rax + 0xa4]
add rax, 8
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklwd xmm1, xmm0
xorps xmm2, xmm1
orps xmm2, xmm4
movdqa xmm4, xmm2
cmp rax, 0x80
jl 0x1400d8970
orps xmm3, xmm2
movdqa xmm0, xmm3
psrldq xmm0, 8
orps xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
orps xmm3, xmm0
movd eax, xmm3
test eax, eax
jne 0x1400d8b1d
mov r9d, ebx
mov qword [rsp + 0x138], rdi
xor r8d, r8d
mov dword [rsp + 0x20], 0xf0000000
xor edx, edx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
mov edi, 0x24
test eax, eax
je 0x1400d8af3
mov rcx, qword [r14]
lea r8, [rsp + 0x70]
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x1400d8af3
mov rcx, qword [r14]
xor edx, edx
mov qword [rsp + 0x148], rbp
mov qword [rsp + 0x140], rsi
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, 4
lea r13d, [rdi - 0x21]
mov r12d, eax
mov ebx, r15d
mov esi, r15d
mov rbp, r15
nop dword [rax]
mov ecx, eax
lea rdx, [rsp + 0x70]
add rcx, rbp
mov r8d, eax
add rdx, rcx
lea rcx, [rsp + 0x70]
add rcx, rbp
call fcn.1400b5540
test eax, eax
mov eax, edi
cmove ebx, r13d
add esi, r12d
sub eax, esi
add rbp, 4
cmp eax, r12d
cmova eax, r12d
cmp esi, 0x20
jb 0x1400d8a70
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
mov r12, qword [rsp + 0x68]
mov r13d, dword [rsp + 0x60]
test ebx, ebx
jne 0x1400d8af3
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x74]
mov r8d, reloc.WLDAP32.dll_Ordinal_32
call fcn.1400d7c40
mov ebx, eax
test eax, eax
jne 0x1400d8af3
mov rcx, qword [r14 + 0x10]
mov r8d, r13d
mov rdx, r12
call fcn.1400d7f70
mov ebx, eax
lea rax, [rsp + 0x70]
nop dword [rax + rax]
mov byte [rax], r15b
lea rax, [rax + 1]
add edi, 0xffffffff
jne 0x1400d8b00
mov rdi, qword [rsp + 0x138]
test ebx, ebx
je 0x1400d8b35
cmp ebx, 3
jne 0x1400d8b2a
mov r15d, 0xffffff2f
mov byte [r14 + 0x18], 3
jmp 0x1400d8b35
mov r15d, 0xffffff39
mov byte [r14 + 0x18], 2
mov rbx, qword [rsp + 0x188]
mov eax, r15d
mov r15, qword [rsp + 0x130]
jmp 0x1400d8b4f
mov eax, 0xffffff53
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.14015a1f0
add rsp, 0x150
pop r14
pop r13
pop r12
ret