Function at 0x14015f1cd
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x258
movdqa xmmword [rsp + 0x240], xmm8
movdqa xmmword [rsp + 0x230], xmm7
movdqa xmmword [rsp + 0x220], xmm6
mov qword [rsp + 0x38], r8
mov qword [rsp + 0xa0], rcx
movabs al, byte [0x5024548948000000]
mov r13, qword [rdx]
movabs rax, 0x100000002
cmp r13, rax
jne 0x14015f306
movabs rax, 0x3eb00000002
mov rcx, qword [rsp + 0x50]
cmp qword [rcx + 8], rax
jne 0x14015f306
mov rax, qword [rsp + 0x38]
mov rdi, qword [rax + 8]
add rdi, 0x18
imul rbp, qword [rax + 0x10], 0x28
push 0xffffffffbc492810
add al, byte [rax]
add byte [rax], al
invalid
add byte [rax], al
add byte [rcx - 0x41], cl
add al, byte [rax]
add byte [rax], al
mov edx, 0x48000003
lea ebx, [rsp + 0x190]
lea r14, [rsp + 0x60]
lea esi, [rsp + 0x60]
test rbp, rbp
je 0x14015f306
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x190], r15
cmp qword [rdi - 0x18], r12
jne 0x14015f2e9
mov rsi, qword [rdi - 0x10]
mov rcx, rbx
call fcn.1401520c6
mov rcx, r14
call fcn.1401520c6
cmp rsi, r15
jne 0x14015f2f9
mov rcx, rdi
call fcn.1400952f6
mov r9d, 9
mov rcx, rax
lea r8, str.text_htmlapplication_xhtmlxmlDOCTYPE_in_bodyDOCTYPE_in_insertion_mode
call fcn.14015e404
test al, al
jne 0x14015f306
mov rcx, rdi
call fcn.1400952f6
mov r9d, 0x15
mov rcx, rax
lea r8, [0x1402b62d1]
call fcn.14015e404
test al, al
je 0x14015f2f9
jmp 0x14015f306
mov rcx, rbx
call fcn.1401520c6
mov rcx, r14
call fcn.1401520c6
add rdi, 0x28
add rbp, 0xffffffffffffffd8
jmp 0x14015f270
movabs rax, 0x700000002
lea rdi, [rsp + 0x60]
mov qword [rdi], rax
movabs rdx, 0x3c500000002
lea rcx, [rsp + 0x190]
mov qword [rcx], rdx
xor r13, rax
mov rax, qword [rsp + 0x50]
xor rdx, qword [rax + 8]
or rdx, r13
sete byte [rsp + 0x37]
call fcn.1401520c6
mov rcx, rdi
call fcn.1401520c6
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
mov qword [rsp + 0x58], rax
mov rbp, qword [rcx + 8]
mov r15, qword [rcx + 0x10]
mov rdi, qword [0x1402f31d8]
test rdi, rdi
jne 0x14015f3ea
mov ecx, 8
call fcn.140088b88
mov rsi, rax
lea rax, [0x1401a1278]
mov qword [rsi], rax
mov ecx, 0x10
call fcn.140088b88
mov rdi, rax
mov qword [rax], rsi
lea rax, [0x1402b67a8]
mov qword [rdi + 8], rax
xor eax, eax
lock cmpxchg qword [0x1402f31d8], rdi
je 0x14015f3ea
mov rsi, rax
mov rbx, qword [rdi]
mov r14, qword [rdi + 8]
mov rax, qword [r14]
test rax, rax
je 0x14015f3c5
mov rcx, rbx
call rax
mov r8, qword [r14 + 8]
test r8, r8
je 0x14015f3da
mov rdx, qword [r14 + 0x10]
mov rcx, rbx
call fcn.14000631d
mov edx, 8
mov rcx, rdi
call fcn.140027cc0
mov rdi, rsi
mov rcx, qword [rdi]
mov rax, qword [rdi + 8]
mov rdi, qword [0x1402f31d0]
test rdi, rdi
mov qword [rsp + 0x38], r15
jne 0x14015f530
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
xorps xmm0, xmm0
lea r15, [rsp + 0xd0]
movaps xmmword [r15 + 0x30], xmm0
movaps xmmword [r15 + 0x20], xmm0
movaps xmmword [r15 + 0x10], xmm0
movaps xmmword [r15], xmm0
mov r12d, 0x40
mov r13d, 0xffffffff
mov rsi, qword [sym.imp.bcrypt.dll_BCryptGenRandom]
test r12, r12
je 0x14015f491
mov rdi, r15
cmp r12, r13
mov r14d, 0xffffffff
cmovb r14, r12
add r15, r14
sub r12, r14
xor ecx, ecx
mov rdx, rdi
mov r8d, r14d
mov r9d, 2
call rsi
cmp eax, 0xc0000000
jb 0x14015f441
mov ebx, eax
mov rcx, rdi
mov edx, r14d
call qword [sym.imp.ADVAPI32.dll_SystemFunction036]
test al, al
jne 0x14015f441
and ebx, 0x7fffffff
jne 0x14015f98f
movaps xmm0, xmmword [rsp + 0xd0]
movaps xmm1, xmmword [rsp + 0xe0]
movaps xmm2, xmmword [rsp + 0xf0]
movaps xmm3, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x90], xmm3
movaps xmmword [rsp + 0x80], xmm2
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov ecx, 0x40
call fcn.140088b88
mov rdi, rax
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movaps xmm2, xmmword [rsp + 0x80]
movaps xmm3, xmmword [rsp + 0x90]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x30], xmm3
xor eax, eax
lock cmpxchg qword [0x1402f31d0], rdi
je 0x14015f521
mov rbx, rax
mov edx, 8
mov rcx, rdi
call fcn.140027cc0
mov rdi, rbx
mov r15, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x48]
imul r14, r15, 0x28
add qword [rsp + 0xa0], 0x18
add r14, rbp
call qword [rax + 0x18]
mov rcx, qword [rdi]
movups xmm0, xmmword [rdi + 0x10]
xor rax, qword [rdi + 8]
lea r15, [rsp + 0x60]
mov qword [r15 + 0x18], rcx
movups xmmword [r15], xmm0
movabs rcx, 0x5851f42d4c957f2d
mul rcx
xor rdx, rax
mov qword [r15 + 0x10], rdx
mov rsi, qword [rdi + 0x20]
mov rbx, qword [rdi + 0x30]
mov rcx, r15
mov rdx, rsi
mov r8, rbx
call fcn.140027dea
mov qword [rsp + 0x40], rax
mov r13, qword [rdi + 0x28]
mov rdi, qword [rdi + 0x38]
mov rcx, r15
mov rdx, r13
mov r8, rdi
call fcn.140027dea
mov r12, rax
mov rcx, r15
mov ecx, edi
mov rdx, rbx
mov r8, r13
call fcn.140027dea
mov rbx, rax
mov rcx, r15
mov rdx, rdi
mov r8, rsi
call fcn.140027dea
movups xmm0, xmmword [0x1402bdad0]
movaps xmmword [r15 + 0x10], xmm0
movaps xmmword [rdi + 0x10], xmm0
movdqu xmm0, xmmword [0x1402bdac0]
movdqa xmmword [r15], xmm0
lea r8, [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
and al, 0x40
mov qword [r8], rcx
mov qword [r8 + 8], r12
mov qword [r8 + 0x10], rbx
mov qword [r8 + 0x18], rax
mov rax, qword [rsp + 0x38]
lea rdx, [rax + 1]
shr rdx, 1
cmp qword [r8 - 8], 0
cmove rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1401525ae
mov qword [rsp + 0x170], rbp
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x188], r14
lea r15, [rsp + 0xb0]
lea r12, [rsp + 0xd0]
pcmpeqd xmm6, xmm6
lea r8, [rsp + 0x60]
mov dword [r8], ebx
lea rax, str._g_
mov qword [rsp + 0x20], rax
and al, 0x20