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

Disassembly:
push rbp
push r12
push r13
lea rbp, [rsp - 0x12f0]
mov eax, 0x13f0
call fcn.18014d5e0
sub rsp, rax
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x1410], rbx
mov qword [rsp + 0x1418], rsi
mov qword [rsp + 0x1420], rdi
mov rax, qword [0x1802080f0]
xor rax, rsp
mov qword [rbp + 0x12e0], rax
mov rsi, rdx
mov rbx, rcx
mov dil, reloc.OLEAUT32.dll_VariantTimeToSystemTime
mov r12d, 1
cmp rcx, rdx
je 0x180001121
movzx r11d, byte [rbx]
mov r9b, dil
and r9b, 0xf0
mov dl, dil
and dl, 0xf
mov cl, r11b
and cl, 0xf0
mov r10b, r11b
and r10b, 0xf
mov r8b, r10b
and r8b, 0xf
mov al, r9b
shr al, 1
or r8b, al
add dl, dl
and dl, cl
xor r8b, dl
or r10b, r9b
mov al, 7
imul r8b
xor r10b, al
and r10b, 0xaa
shr r8b, 5
xor r10b, r8b
mov ecx, r11d
imul ecx, ecx, 0x8d2
mov eax, 0xf6603d99
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
xor r11b, dil
lea edi, [r11 + rdx]
add dil, r10b
xor dil, 0x2d
add rbx, r12
cmp rbx, rsi
jne 0x1800010a5
mov qword [rsp + 0x38], InitCommonControls
and qword [rsp + 0x30], 0
mov byte [rsp + 0x20], 0
xor r8d, r8d
lea rdx, [0x1801ccf31]
lea rcx, [rsp + 0x20]
call fcn.18000728c
nop
call fcn.180165b60
nop
cmp qword [rsp + 0x38], 0x10
jb 0x180001162
mov rcx, qword [rsp + 0x20]
call fcn.180008034
call fcn.180165b60
or dword [rbp + 0x12d4], 0xffffffff
mov dword [rsp + 0x54], eax
mov r8d, r12d
mov rdx, r12
mov ebx, 0x270
mov ecx, eax
shr ecx, 0x1e
xor eax, ecx
imul eax, eax, 0x6c078965
add eax, r8d
mov dword [rsp + rdx*4 + 0x54], eax
add r8d, r12d
add rdx, r12
cmp rdx, rbx
jl 0x18000117d
mov r9d, ebx
mov dword [rsp + 0x50], ebx
movsd xmm1, qword [0x1801cd190]
subsd xmm1, qword [0x1801cd1a0]
addsd xmm1, qword [0x1801cd198]
mov esi, 0x7fffffff
mov r11d, 6
mov r13d, 0x9908b0df
cmp r9d, ebx
jne 0x180001217
lea r8, [rsp + 0x58]
mov r9, rbx
mov edx, dword [r8 - 4]
xor edx, dword [r8]
and edx, esi
xor edx, dword [r8 - 4]
mov eax, edx
and al, r12b
neg al
sbb ecx, ecx
and ecx, r13d
xor ecx, dword [r8 + 0x630]
shr edx, 1
xor ecx, edx
mov dword [r8 + 0x9bc], ecx
add r8, 4
sub r9, r12
jne 0x1800011d9
mov r9d, dword [rsp + 0x50]
jmp 0x1800012da
cmp r9d, 0x4e0
jb 0x1800012da
lea r9, [rbp + 0x914]
mov r10d, 0xe3
mov edx, dword [r9]
xor edx, dword [r9 + 4]
and edx, esi
xor edx, dword [r9]
mov eax, edx
and al, r12b
neg al
sbb ecx, ecx
and ecx, r13d
xor ecx, dword [r9 + 0x634]
shr edx, 1
xor ecx, edx
mov dword [r9 - 0x9c0], ecx
add r9, 4
sub r10, r12
jne 0x180001231
lea r9, [rbp + 0xca0]
mov r10d, 0x18c
mov edx, dword [r9 + 4]
xor edx, dword [r9]
and edx, esi
xor edx, dword [r9]
mov eax, edx
and al, r12b
neg al
sbb ecx, ecx
and ecx, r13d
xor ecx, dword [r9 - 0xd4c]
shr edx, 1
xor ecx, edx
mov dword [r9 - 0x9c0], ecx
add r9, 4
sub r10, r12
jne 0x180001271
mov edx, dword [rbp + 0x12d0]
xor edx, dword [rsp + 0x54]
and edx, esi
xor edx, dword [rbp + 0x12d0]
mov eax, edx
and al, r12b
neg al
sbb ecx, ecx
and ecx, r13d
shr edx, 1
xor ecx, edx
xor ecx, dword [rbp + 0x584]
mov dword [rbp + 0x910], ecx
xor r9d, r9d
mov dword [rsp + 0x50], r9d
mov eax, r9d
mov ecx, dword [rsp + rax*4 + 0x54]
add r9d, r12d
mov dword [rsp + 0x50], r9d
mov eax, ecx
shr eax, 0xb
and eax, dword [rbp + 0x12d4]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
pxor xmm0, xmm0
cvtsi2sd xmm0, rax
divsd xmm0, xmm1
mulsd xmm0, qword [0x1801cd5d8]
movsd xmm2, qword [0x1801cd5d0]
subsd xmm2, xmm0
comisd xmm2, xmmword [0x1801cd5c8]
jb 0x180001345
mov r10b, 0x56
jmp 0x18000134a
cvttsd2si r10, xmm2
mov cl, dil
and cl, 0xf0
mov r8b, r10b
and r8b, 0xf
mov dl, r8b
and dl, 0xf
mov al, cl
shr al, 1
or dl, al
mov al, dil
and al, 8
add al, al
and al, r10b
xor dl, al
or r8b, cl
mov al, 7
imul dl
xor r8b, al
and r8b, 0xaa
shr dl, 5
xor r8b, dl
xor r10b, dil
lea edi, [r10 + r8]
sub r11, r12
jne 0x1800011cc
movzx eax, dil
mov rcx, qword [rbp + 0x12e0]
xor rcx, rsp
call fcn.180149e90
lea r11, [rsp + 0x13f0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rbp
ret