Function at 0x1401dbfd0
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, 0x238
movdqa xmmword [rsp + 0x220], xmm6
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x38], rdx
mov rax, qword [rdx]
movabs rcx, 0x100000002
cmp rax, rcx
jne 0x1401dc190
movabs rcx, 0x3eb00000002
mov rdx, qword [rsp + 0x38]
cmp qword [rdx + 8], rcx
jne 0x1401dc190
mov rdx, qword [r8 + 0x10]
test rdx, rdx
je 0x1401dc190
mov rcx, qword [r8 + 8]
lea rdx, [rdx + rdx*4]
lea rdx, [rcx + rdx*8]
jmp 0x1401dc059
cmp rcx, rdx
je 0x1401dc190
mov r14, rcx
add rcx, 0x28
movabs r9, 0x600000002
cmp qword [r14], r9
jne 0x1401dc050
movabs r9, 0x3ba00000002
cmp qword [r14 + 8], r9
jne 0x1401dc050
mov r15, qword [r14 + 0x18]
cmp r15, 0xf
je 0x1401dc050
cmp r15, 9
jb 0x1401dc050
test r15b, 1
jne 0x1401dc09a
xor r12d, r12d
jmp 0x1401dc09e
mov r12d, dword [r14 + 0x24]
mov rdi, r15
and rdi, 0xfffffffffffffffe
mov ebx, dword [r14 + 0x20]
cmp rbx, 9
jne 0x1401dc111
add r12, rdi
add r12, 0x10
xor ebp, ebp
nop dword [rax + rax]
cmp rbx, rbp
je 0x1401dc190
mov r13, rbp
inc rbp
movzx r10d, byte [r12 + r13]
lea r9, str.text_htmlapplication_xhtmlxmlDOCTYPE_in_bodyDOCTYPE_in_insertion_mode
movzx esi, byte [r13 + r9]
lea r9d, [r10 - 0x41]
cmp r9b, 0x1a
setb r9b
shl r9b, 5
lea r11d, [rsi - 0x41]
cmp r11b, 0x1a
setb r11b
shl r11b, 5
or r9b, r10b
or r11b, sil
cmp r9b, r11b
je 0x1401dc0c0
cmp r13, rbx
jae 0x1401dc190
test r15b, 1
jne 0x1401dc125
xor r14d, r14d
cmp ebx, 0x15
jne 0x1401dc050
jmp 0x1401dc132
mov r14d, dword [r14 + 0x24]
cmp ebx, 0x15
jne 0x1401dc050
add rdi, 0x10
add rdi, r14
xor r15d, r15d
nop dword [rax]
cmp rbx, r15
je 0x1401dc190
mov r14, r15
inc r15
movzx r9d, byte [rdi + r14]
lea r10, [0x140339681]
movzx r10d, byte [r14 + r10]
lea r11d, [r9 - 0x41]
cmp r11b, 0x1a
setb r11b
shl r11b, 5
lea esi, [r10 - 0x41]
cmp sil, 0x1a
setb sil
shl sil, 5
or r11b, r9b
or sil, r10b
cmp r11b, sil
je 0x1401dc140
cmp r14, rbx
jb 0x1401dc050
movabs rcx, 0x700000002
movabs rdx, 0x3c500000002
mov r9, qword [rsp + 0x38]
xor rdx, qword [r9 + 8]
xor rax, rcx
or rdx, rax
sete byte [rsp + 0x2b]
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x118], rcx
mov rbx, qword [rax + 0x28]
mov rax, qword [r8]
mov rcx, qword [r8 + 8]
mov rdx, qword [r8 + 0x10]
lea rdx, [rdx + rdx*4]
lea rdx, [rcx + rdx*8]
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x110], rdx
mov r14, qword [0x14037f210]
test r14, r14
jne 0x1401dc30c
movzx eax, byte [0x14037f348]
mov rcx, qword [0x14037f2d0]
test rcx, rcx
jne 0x1401dc23e
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401dcb0c
mov rcx, rax
mov qword [0x14037f2d0], rax
mov r12d, 8
mov r8d, 8
xor edx, edx
call fcn.1402699c4
test rax, rax
je 0x1401dcb1a
mov r15, rax
lea rax, [0x140339948]
mov qword [r15], rax
movzx eax, byte [0x14037f348]
mov rcx, qword [0x14037f2d0]
test rcx, rcx
jne 0x1401dc292
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401dcafb
mov rcx, rax
mov qword [0x14037f2d0], rax
mov r8d, 0x10
xor edx, edx
call fcn.1402699c4
test rax, rax
je 0x1401dcafb
mov r14, rax
mov qword [rax], r15
lea rax, [0x140339968]
mov qword [r14 + 8], rax
xor eax, eax
lock cmpxchg qword [0x14037f210], r14
je 0x1401dc30c
mov rsi, rax
mov r15, qword [r14]
mov rdi, qword [r14 + 8]
mov rcx, r15
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x1401dc2f8
cmp qword [rdi + 0x10], 0x11
jb 0x1401dc2e7
mov r15, qword [r15 - 8]
mov rcx, qword [0x14037f2d0]
xor edx, edx
mov r8, r15
call fcn.1402699cc
mov rcx, qword [0x14037f2d0]
xor edx, edx
mov r8, r14
call fcn.1402699cc
mov r14, rsi
mov rsi, qword [r14]
mov rdi, qword [r14 + 8]
mov r14, qword [0x14037f218]
test r14, r14
jne 0x1401dc462
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmmword [rsp + 0xb0], xmm0
lea rdx, [rsp + 0xb0]
xor ecx, ecx
mov r8d, 0x40
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
mov ebp, eax
cmp eax, 0xc0000000
jb 0x1401dc391
lea rcx, [rsp + 0xb0]
mov edx, 0x40
call sub.advapi32.dll_SystemFunction036
test al, al
jne 0x1401dc391
xor ebp, 0x80000000
jne 0x1401dcb29
movdqa xmm0, xmmword [rsp + 0xb0]
movdqa xmm1, xmmword [rsp + 0xc0]
movdqa xmm2, xmmword [rsp + 0xd0]
movaps xmm3, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x70], xmm3
movdqa xmmword [rsp + 0x60], xmm2
movdqa xmmword [rsp + 0x50], xmm1
movdqa xmmword [rsp + 0x40], xmm0
movzx eax, byte [0x14037f348]
mov rcx, qword [0x14037f2d0]
test rcx, rcx
jne 0x1401dc3f6
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x1401dcb14
mov rcx, rax
mov qword [0x14037f2d0], rax
mov r12d, 0x40
mov r8d, 0x40
xor edx, edx
call fcn.1402699c4
test rax, rax
je 0x1401dcb1a
mov r14, rax
movdqa xmm0, xmmword [rsp + 0x40]
movdqa xmm1, xmmword [rsp + 0x50]
movdqa xmm2, xmmword [rsp + 0x60]
movaps xmm3, xmmword [rsp + 0x70]
movups xmmword [rax + 0x30], xmm3
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
xor eax, eax
lock cmpxchg qword [0x14037f218], r14
je 0x1401dc462
mov r15, rax
mov rcx, qword [0x14037f2d0]
xor edx, edx
mov r8, r14
call fcn.1402699cc
mov r14, r15
mov rcx, rsi
call qword [rdi + 0x18]
mov qword [rsp + 0x98], rbx
xor rax, qword [r14 + 8]
movabs rsi, 0x5851f42d4c957f2d
mul rsi
mov r9, rax
xor r9, rdx
mov rdi, qword [r14]
mov rbx, qword [r14 + 0x20]
mov r11, qword [r14 + 0x30]
mov rax, rbx
xor rax, r9
mul rsi
xor rdx, r11
xor rax, rdx
mul rsi
mov rcx, rax
xor rcx, rdx
mov rax, rcx
mul rdi
mov r8, rdx
xor r8, rax
rol r8, cl
mov r15, qword [r14 + 0x28]
mov r14, qword [r14 + 0x38]
mov rax, r15
xor rax, r9
mul rsi
xor rdx, r14
xor rax, rdx
mul rsi
mov rcx, rax
xor rcx, rdx
mov rax, rcx
mul rdi
mov r10, rdx
xor r10, rax
rol r10, cl
xor r11, r9
mov rax, r11
mul rsi
xor r15, rdx
xor rax, r15
mul rsi
mov rcx, rax
xor rcx, rdx
mov rax, rcx
mul rdi
mov r11, rdx
xor r11, rax
rol r11, cl
xor r9, r14
mov rax, r9
mul rsi
xor rbx, rdx
xor rax, rbx
mul rsi
mov rcx, rax
xor rcx, rdx
mov rax, rcx
mul rdi
xor rdx, rax
rol rdx, cl
movups xmm0, xmmword [0x140342300]
movaps xmmword [rsp + 0x50], xmm0
movdqu xmm0, xmmword [0x1403422f0]
movdqa xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x70], r11
mov qword [rsp + 0x78], rdx
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x30], rax
mov rdi, qword [rsp + 0x108]
mov rbx, qword [rsp + 0x110]
mov rax, rbx
sub rax, rdi
movabs rcx, 0xcccccccccccccccd
mul rcx
mov rsi, rdx
shr rsi, 5
lea rdx, [rsi + 1]
shr rdx, 1
cmp qword [rsp + 0x58], 0
cmove rdx, rsi
cmp qword [rsp + 0x50], rdx
jae 0x1401dc5cf
lea rcx, [rsp + 0x40]
lea r8, [rsp + 0x60]
call fcn.1401dcda0
cmp rdi, rbx
je 0x1401dc992
pcmpeqd xmm6, xmm6
mov qword [rsp + 0x88], rbx
jmp 0x1401dc607
mov rcx, qword [0x14037f2d0]
xor edx, edx
call fcn.1402699cc
cmp rdi, rbx
je 0x1401dc975
mov rax, rdi
add rdi, 0x28
mov r13, qword [rax]
test r13, r13
je 0x1401dc978
mov qword [rsp + 0x90], rdi
movups xmm0, xmmword [rax + 8]
movups xmm1, xmmword [rax + 0x18]
movaps xmmword [rsp + 0x130], xmm1
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rax + 8]
movdqu xmm1, xmmword [rax + 0x18]
movdqa xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
mov qword [rsp + 0xb0], r13
movups xmm0, xmmword [rax + 8]
lea rax, [rsp + 0xc8]
movups xmmword [rax - 0x10], xmm0
lea rcx, [rsp + 0x150]
movdqu xmm0, xmmword [rcx]
movdqu xmmword [rax], xmm0
mov r14, qword [rsp + 0xb8]
mov r12, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov ebp, dword [rsp + 0xd0]
mov ebx, dword [rsp + 0xd4]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
lea r8, [rsp + 0xb0]
call fcn.1401be6b0
mov rsi, rax
cmp qword [rsp + 0x50], 0
jne 0x1401dc6d8
mov edx, 1
lea rcx, [rsp + 0x40]
lea r8, [rsp + 0x60]
call fcn.1401dcda0
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov rcx, rsi
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
test r12, r12
mov qword [rsp + 0xa8], rdi
mov dword [rsp + 0x2c], ebx
je 0x1401dc7d0
xor r9d, r9d
xor r10d, r10d
nop word cs:[rax + rax]
and rsi, rdx
movdqu xmm1, xmmword [rax + rsi]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r11d, xmm2
test r11d, r11d
jne 0x1401dc78d
cmp r10, 1
mov r10d, 1
je 0x1401dc760
pmovmskb r8d, xmm1
xor r10d, r10d
test r8d, r8d
setne r10b
tzcnt r8d, r8d
add r8, rsi
and r8, rdx
pcmpeqb xmm1, xmm6
pmovmskb r11d, xmm1
test r11d, r11d
jne 0x1401dc8ed
add rsi, r9
add rsi, 0x10
add r9, 0x10
jmp 0x1401dc720
lea r11d, [r15 - 1]
and r11d, r15d
test r11w, r11w
je 0x1401dc73a
mov r15d, r11d
tzcnt r11d, r15d
add r11, rsi
and r11, rdx
neg r11
lea rbx, [r11 + r11*4]
mov rdi, qword [rax + rbx*8 - 0x18]
test rdi, rdi
je 0x1401dc780
cmp r12, rdi
jne 0x1401dc780
lea rbx, [rax + rbx*8]
cmp r13, qword [rbx - 0x28]
jne 0x1401dc780
cmp r14, qword [rbx - 0x20]
jne 0x1401dc780
jmp 0x1401dc87a
xor r9d, r9d
xor r10d, r10d
nop word cs:[rax + rax]
and rsi, rdx
movdqu xmm1, xmmword [rax + rsi]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r11d, xmm2
test r11d, r11d
jne 0x1401dc84d
cmp r10, 1
mov r10d, 1
je 0x1401dc820
pmovmskb r8d, xmm1
xor r10d, r10d
test r8d, r8d
setne r10b
tzcnt r8d, r8d
add r8, rsi
and r8, rdx
pcmpeqb xmm1, xmm6
pmovmskb r11d, xmm1
test r11d, r11d
jne 0x1401dc8ed
add rsi, r9
add rsi, 0x10
add r9, 0x10
jmp 0x1401dc7e0
lea r11d, [r15 - 1]
and r11d, r15d
test r11w, r11w
je 0x1401dc7fa
mov r15d, r11d
tzcnt r11d, r15d
add r11, rsi
and r11, rdx
neg r11
lea rdi, [r11 + r11*4]
cmp qword [rax + rdi*8 - 0x18], 0
jne 0x1401dc840
lea rbx, [rax + rdi*8]
cmp r13, qword [rbx - 0x28]
jne 0x1401dc840
cmp r14, qword [rbx - 0x20]
jne 0x1401dc840
lea rcx, [r11 + r11*4]
mov rsi, qword [rax + rcx*8 - 0x10]
mov rdx, qword [rsp + 0xa8]
mov qword [rax + rcx*8 - 0x10], rdx
mov dword [rax + rcx*8 - 8], ebp
mov edx, dword [rsp + 0x2c]
mov dword [rax + rcx*8 - 4], edx
lea rcx, [rsp + 0xb0]
call fcn.1401bdd40
cmp rsi, 0x10
mov rdi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
jb 0x1401dc5fe
mov r8, rsi
and r8, 0xfffffffffffffffe
test sil, 1
je 0x1401dc5f0
mov rax, qword [r8]
lea rcx, [rax - 1]
mov qword [r8], rcx
cmp rax, 1
je 0x1401dc5f0
jmp 0x1401dc5fe
movzx r9d, byte [rax + r8]
test r9b, r9b
mov rdi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x88]
js 0x1401dc91a
movdqa xmm0, xmmword [rax]
pmovmskb r8d, xmm0
tzcnt r8d, r8d
movzx r9d, byte [rax + r8]
and r9b, 1
movzx r9d, r9b
sub qword [rsp + 0x50], r9
lea r9, [r8 - 0x10]
and r9, rdx
mov byte [rax + r8], cl
mov byte [r9 + rax + 0x10], cl
inc qword [rsp + 0x58]
neg r8
lea rcx, [r8 + r8*4]
mov qword [rax + rcx*8 - 0x28], r13
movdqa xmm0, xmmword [rsp + 0x120]
movdqu xmmword [rax + rcx*8 - 0x20], xmm0
mov rdx, qword [rsp + 0xa8]
mov qword [rax + rcx*8 - 0x10], rdx
mov dword [rax + rcx*8 - 8], ebp
mov edx, dword [rsp + 0x2c]
mov dword [rax + rcx*8 - 4], edx
jmp 0x1401dc5fe
mov rdi, rbx
sub rbx, rdi
mov rax, rbx
movabs rcx, 0xcccccccccccccccd
mul rcx
mov rsi, rdx
shr rsi, 5
mov rcx, rdi
mov rdx, rsi
call fcn.1401cfc30
movabs rdi, 0x8000000000000001
lea rbx, [rsp + 0x170]
cmp qword [rsp + 0x30], 0
je 0x1401dc9cd
mov rcx, qword [0x14037f2d0]
xor edx, edx
mov r8, qword [rsp + 0x80]
call fcn.1402699cc
mov rdx, qword [rsp + 0xa0]
lea rsi, [rdx + 0x18]
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmm1, xmmword [rsp + 0x50]
movdqa xmm2, xmmword [rsp + 0x60]
movaps xmm3, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x1b8], xmm3
movdqu xmmword [rsp + 0x1a8], xmm2
movdqu xmmword [rsp + 0x198], xmm1
movups xmmword [rsp + 0x188], xmm0
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 0x10]
mov qword [rbx + 0x10], rax
movdqu xmm0, xmmword [rcx]
movdqu xmmword [rbx], xmm0
mov rbx, rdx
mov qword [rsp + 0x1c8], 2
dec rdi
mov qword [rsp + 0x1e0], rdi
mov qword [rsp + 0x168], 5
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x1f8], xmm0
movdqu xmmword [rsp + 0x208], xmm0
mov r14, qword [rsp + 0x98]
mov rdi, r14
cmp r14, qword [rsp + 0x118]
jne 0x1401dca8e
mov rcx, rsi
mov rdx, r14
call fcn.1401dccd0
mov rdi, qword [rbx + 0x28]
mov r14, qword [rsp + 0x98]
imul rcx, rdi, 0xb8
add rcx, qword [rbx + 0x20]
lea rdx, [rsp + 0x168]
mov r8d, 0xb8
call sub.msvcrt.dll_memcpy
inc rdi
mov qword [rbx + 0x28], rdi
inc r14
cmp byte [rsp + 0x2b], 0
je 0x1401dcadc
mov qword [rsp + 0x168], 1
lea r8, [rsp + 0x168]
mov rcx, r14
mov rdx, rsi
call fcn.1401d0480
mov rax, r14
movaps xmm6, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
mov edx, 0x10
call fcn.140054b50
jmp 0x1401dcb56
mov r12d, 8
jmp 0x1401dcb1a
mov r12d, 0x40
mov ecx, 8
mov rdx, r12
call fcn.140054b50
jmp 0x1401dcb56
mov dword [rsp + 0x40], ebp
lea rax, [0x140339930]
mov qword [rsp + 0x20], rax
lea rcx, [0x1403398ac]
lea r9, [0x140339808]
lea r8, [rsp + 0x40]
mov edx, 0x1e
call fcn.1400aced0
ud2