Function at 0x1400021e8
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rsi, rcx
shl edx, 0xb
add edx, 0x1000
mov ecx, edx
not ecx
and edx, 0xbd3ff800
and ecx, 0x42c005a0
or ecx, edx
mov eax, ecx
xor eax, 0xbd3ffa5f
mov edx, ecx
xor edx, 0x42c0125f
and edx, eax
xor ecx, 0x42000080
and ecx, 0x6f2f4080
and eax, 0x90d0bd1a
or eax, ecx
xor eax, 0x6f2f551a
or eax, edx
mov ecx, eax
not ecx
mov edx, ecx
and edx, eax
mov r8d, 0x70fe1017
mov r9d, eax
and r9d, r8d
mov r10d, 0x8f01efe8
and ecx, r10d
or ecx, r9d
mov r12d, edx
and edx, r10d
not r12d
and r8d, r12d
or edx, r8d
xor edx, ecx
or r12d, eax
not r12d
or r12d, edx
mov eax, 0x907f5938
mov r15, qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r13d, 0xaf3a45b3
mov edi, 0x5d1925c
cmp eax, 0xfd02cbc7
jg 0x140002306
cmp eax, 0xcd1b26cb
jg 0x14000240e
cmp eax, 0x907f5937
jle 0x1400025dd
cmp eax, 0xb5a156a8
jle 0x14000272c
cmp eax, 0xb5a156a9
je 0x140002bab
cmp eax, 0xc50d41a1
je 0x14000295c
cmp eax, 0xcbaee566
jne 0x140002295
call r15
mov r8d, 0x18
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
mov eax, 0xfd02cbc8
mov ecx, 0xee70ba9e
cmove eax, ecx
jmp 0x140002295
cmp eax, 0x4086b77c
jle 0x14000244f
cmp eax, 0x622d7e8a
jle 0x140002641
cmp eax, 0x6a5e265f
jle 0x14000274c
cmp eax, 0x6a5e2660
je 0x140002bbd
cmp eax, 0x75c3013f
je 0x140002d12
cmp eax, 0x76ea2c7d
jne 0x140002295
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x10]
mov edx, dword [rsp + 0x3c]
call sub.ADVAPI32.dll_SystemFunction036
call fcn.140010880
movabs r8, 0xc4aa98a71f1289e5
movabs rdx, 0x85477a4717281170
sub rdx, rdx
sub rdx, r8
movabs rcx, 0x94bf14174eb08c8a
sub rdx, rcx
sub rdx, qword [rbx + 8]
add rdx, rcx
movabs rcx, 0x1a4de1696d292008
sub rdx, rcx
add rcx, r8
add rdx, rcx
movabs r9, 0x27be33f713b24aa6
mov rcx, r9
movabs r8, 0xac4fc02bef9df8d7
sub rcx, r8
sub rcx, r9
add rcx, r8
movabs r8, 0xf020f6159a6cfe55
sub rdx, r8
add rcx, r8
movabs r10, 0x128917802a52af4c
mov r8, r10
movabs r9, 0xfa2ff5765371eecd
sub r8, r9
add r8, rcx
add r8, rdx
mov rcx, r10
sub rcx, r8
sub rcx, r9
inc rcx
xor edx, edx
div rcx
mov dword [rbx + 4], edx
mov eax, 0x6a5e2660
jmp 0x140002295
cmp eax, 0xe2c66054
jle 0x1400026d6
cmp eax, 0xee70ba9d
jle 0x140002814
cmp eax, 0xee70ba9e
je 0x140002e1a
cmp eax, 0xf6fbcb7a
je 0x140002e26
cmp eax, 0xfa4dac97
jne 0x140002295
mov eax, 0x8f31fc2a
jmp 0x140002295
cmp eax, 0x1d03db5f
jle 0x140002701
cmp eax, 0x2687e2f3
jg 0x140002921
cmp eax, 0x216e30b9
je 0x140002e37
cmp eax, 0x225b3b83
jne 0x140003022
mov rax, qword [rsp + 0x48]
cmp rax, 0xffffffffffffffff
sete byte [rsp + 0x3b]
mov eax, dword [0x140046978]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xe861c66e
mov r9d, 0x179e3991
and eax, r9d
or eax, ecx
mov edx, eax
xor edx, 0xa020c040
mov r8d, eax
xor r8d, r9d
mov ecx, r8d
mov r9d, 0x4b4d1e2e
and ecx, r9d
mov r10d, 0xb4b2e1d1
and edx, r10d
or edx, ecx
mov ecx, edx
xor ecx, r10d
xor edx, r9d
mov r9d, edx
or r9d, 0x20281002
or r8d, 0x42d087c0
xor eax, 0x800400c
mov r11d, 0x62f897c2
and r9d, r11d
mov r10d, ecx
and r10d, 0x91030821
or r10d, r9d
and r8d, r11d
and eax, 0xc04601c
or eax, r8d
xor eax, r10d
mov r8d, eax
xor r8d, 0x28241018
and edx, 0x44483ab8
and ecx, 0xbbb7c546
or ecx, edx
mov edx, ecx
xor edx, 0xabb70500
xor eax, 0xd3d38fe0
xor ecx, 0x44483ab9
mov r9d, eax
mov r10d, 0x1448ea47
and r9d, r10d
mov r11d, 0xebb715b8
and r8d, r11d
or r8d, r9d
or eax, ecx
and ecx, r10d
and edx, r11d
or edx, ecx
xor edx, r8d
not eax
or eax, edx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x4f9797e2
mov r8d, 0xb068681d
and ecx, r8d
or ecx, edx
xor ecx, r8d
or ecx, eax
xor ecx, 0xffffffff
sete al
setne cl
cmp dword [0x14004697c], 0xa
setge dl
mov r8d, edx
xor r8b, cl
or cl, dl
and r8b, al
or dl, al
xor dl, 1
or dl, r8b
xor dl, 1
mov r8d, ecx
or r8b, dl
xor dl, cl
mov eax, r8d
xor al, dl
test al, 1
mov ecx, 0xcdbbae24
mov eax, 0x823649df
cmovne ecx, eax
test dl, dl
mov eax, ecx
mov edx, 0xcdbbae24
cmovne eax, edx
test r8b, r8b
cmovne eax, ecx
jmp 0x140002295
cmp eax, 0x8b7be1cf
jg 0x140002946
cmp eax, 0x823649df
je 0x140002e41
cmp eax, 0x85c700f1
jne 0x140002295
mov rax, qword [rsp + 0x70]
mov r9, qword [rax + 8]
mov rdx, qword [rbx + 0x10]
mov qword [rsp + 0x20], 0
mov rcx, rsi
lea r8, [rsp + 0x40]
call fcn.1400407f0
call fcn.140010880
mov qword [rsp + 0x78], rax
mov rax, qword [rbx + 8]
mov qword [rsp + 0x80], rax
mov eax, 0x47b0efd5
jmp 0x140002295
cmp eax, 0x51692f06
jg 0x140002966
cmp eax, 0x4086b77d
je 0x140002e50
cmp eax, 0x47b0efd5
jne 0x140002295
mov rax, qword [rsp + 0x80]
movabs r8, 0x52d2b77c81861821
sub rax, r8
movabs rdx, 0x585f62217683cda3
sub rax, rdx
movabs r9, 0xdc7c907314866c2
lea rcx, [r8 + r9]
add rcx, rdx
movabs rdx, 0x3c6f55c28e2ea42e
add rcx, rdx
add rcx, rax
sub rcx, r9
sub rcx, rdx
inc rcx
mov rax, qword [rsp + 0x78]
xor edx, edx
div rcx
mov dword [rbx + 4], edx
mov r14, qword [rsp + 0x40]
call r15
mov rcx, rax
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140002ba1
cmp eax, 0xd3e97c80
jg 0x140002a90
cmp eax, 0xcd1b26cc
je 0x140002e5a
cmp eax, 0xcdbbae24
jne 0x140002295
mov eax, 0x51692f07
jmp 0x140002295
cmp eax, 0x103bff01
jg 0x140002b7d
cmp eax, 0xfd02cbc8
je 0x140002e95
cmp eax, 0x5d1925c
jne 0x140002295
mov eax, 0x622d7e8b
jmp 0x140002295
cmp eax, 0x907f5938
je 0x140002eac
cmp eax, 0xaf3a45b3
jne 0x140002295
mov eax, 0x5329778e
jmp 0x140002295
cmp eax, 0x622d7e8b
je 0x140002eb6
cmp eax, 0x67b05d09
jne 0x140002295
mov eax, dword [0x140046978]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, ecx
not eax
mov edx, eax
and edx, 0xfffffffe
mov r8d, ecx
and r8d, 1
or r8d, edx
mov edx, r8d
not edx
and eax, edx
and r8d, ecx
or r8d, eax
not r8d
or r8d, edx
xor r8d, 0xffffffff
sete dl
setne al
cmp dword [0x14004697c], 0xa
setge r8b
setl r9b
mov r10d, eax
and r10b, r9b
lea ecx, [rax + 1]
and cl, r8b
or cl, r10b
or dl, r9b
xor al, r9b
mov r8d, edx
xor r8b, al
or al, dl
xor al, 1
or al, r8b
mov edx, eax
not dl
and dl, al
xor dl, 1
mov r8d, edx
xor r8b, al
or dl, al
xor dl, 1
or dl, r8b
xor dl, cl
xor cl, 1
or cl, al
mov r8d, ecx
xor r8b, dl
test cl, cl
mov eax, 0x622d7e8b
cmovne eax, edi
test dl, 1
cmove eax, edi
test r8b, 1
mov ecx, 0x622d7e8b
cmove eax, ecx
jmp 0x140002295
cmp eax, 0xe2c66055
je 0x140002fa5
cmp eax, 0xe718cddd
jne 0x140002295
mov eax, dword [0x140046978]
lea r8d, [rax + 1]
imul r8d, eax
mov eax, r8d
not eax
mov ecx, r8d
mov r9d, 0x135f42dd
and ecx, r9d
mov edx, eax
mov r10d, 0xeca0bd22
and edx, r10d
or edx, ecx
mov ecx, edx
xor ecx, r10d
xor edx, r9d
mov r9d, edx
or r9d, 0x64d2c0a9
or r8d, 0x82040202
mov r11d, 0xe6d6c2ab
and r9d, r11d
mov r10d, ecx
and r10d, 0x212900
or r10d, r9d
and r8d, r11d
and eax, 0x19081454
or eax, r8d
xor eax, r10d
xor eax, 0x7ddad4fc
and edx, 0xc7098c69
mov r8d, ecx
and r8d, 0x38f67396
or r8d, edx
xor r8d, 0xc7098c68
and ecx, 1
or ecx, r8d
not ecx
or ecx, eax
not ecx
test ecx, ecx
setne dl
sete al
cmp dword [0x14004697c], 0xa
setl r8b
mov ecx, r8d
or cl, al
xor cl, 1
xor al, r8b
or cl, al
xor cl, 1
or dl, r8b
xor dl, 1
and al, r8b
or al, dl
xor al, cl
mov edx, eax
xor dl, 1
and cl, dl
xor dl, cl
test dl, 1
mov edx, 0x6a5e2660
mov r8d, 0x76ea2c7d
cmovne edx, r8d
test al, al
mov eax, edx
mov r8d, 0x6a5e2660
cmovne eax, r8d
test cl, cl
cmove eax, edx
jmp 0x140002295
cmp eax, 0x2687e2f4
je 0x140002faf
cmp eax, 0x39443595
jne 0x140002295
mov qword [rsp + 0x50], rbx
mov eax, 0xe718cddd
jmp 0x140002295
cmp eax, 0x8b7be1d0
je 0x140002fc1
cmp eax, 0x8f31fc2a
jne 0x140002295
mov eax, 0xe2c66055
jmp 0x140002295
cmp eax, 0x51692f07
je 0x140002fd0
cmp eax, 0x5329778e
jne 0x140002295
mov ecx, dword [0x140046978]
lea eax, [rcx + 1]
imul eax, ecx
mov edx, eax
not edx
mov ecx, edx
and ecx, 0x73c1d636
mov r8d, eax
and r8d, 0x8c3e29c9
or r8d, ecx
mov r9d, r8d
xor r9d, 0x82229c8
xor r8d, 0x13410626
mov ecx, eax
mov r10d, 0x975d0626
or ecx, r10d
and r8d, r10d
and r9d, 0x68a2f9d8
or r9d, r8d
and ecx, 0x975d0627
xor ecx, r9d
mov r8d, ecx
not r8d
mov r9d, 0x31da312c
and edx, r9d
and eax, 0xce25ced3
or eax, edx
mov edx, eax
xor edx, 0x8a00cc91
xor eax, r9d
mov r9d, ecx
mov r10d, 0x75bd134a
and r9d, r10d
mov r11d, 0x8a42ecb5
and r8d, r11d
or r8d, r9d
or ecx, eax
and eax, r10d
and edx, r11d
or edx, eax
xor edx, r8d
not ecx
or ecx, edx
xor ecx, 0x64d53207
xor ecx, 0x9b2acdf8
sete cl
setne al
cmp dword [0x14004697c], 0xa
setl dl
setge r8b
and al, r8b
and dl, cl
or dl, al
mov eax, edx
xor al, r8b
and al, dl
xor cl, r8b
mov edx, ecx
xor dl, 1
xor cl, dl
and cl, al
xor cl, dl
mov r8d, eax
xor r8b, dl
or dl, al
xor dl, 1
or dl, r8b
mov r8d, edx
xor r8b, cl
test dl, 1
mov eax, 0x4086b77d
cmovne eax, r13d
test cl, cl
cmove eax, r13d
test r8b, 1
mov ecx, 0x4086b77d
cmove eax, ecx
jmp 0x140002295
cmp eax, 0xd3e97c81
je 0x140002fe7
cmp eax, 0xd886e7f3
jne 0x140002295
mov eax, dword [0x140046978]
lea r8d, [rax + 1]
imul r8d, eax
mov edx, r8d
not edx
mov ecx, r8d
xor ecx, 0xfffffffe
and ecx, edx
and r8d, 0xb7b11eb5
and edx, 0x484ee14a
or edx, r8d
mov r8d, edx
xor r8d, 0x4806a149
mov eax, ecx
not eax
xor edx, 0xb7b11eb4
mov r9d, eax
mov r10d, 0x90c94286
and r9d, r10d
mov r11d, 0x6f36bd79
and ecx, r11d
or ecx, r9d
or eax, edx
and edx, r10d
and r8d, r11d
or r8d, edx
xor r8d, ecx
not eax
or eax, r8d
mov ecx, eax
not ecx
mov edx, eax
mov r8d, 0x93da60a
and edx, r8d
and ecx, 0xf6c259f5
or ecx, edx
xor ecx, r8d
xor eax, ecx
test eax, ecx
setne al
cmp dword [0x14004697c], 0xa
setl cl
setge dl
or dl, al
xor dl, 1
xor cl, al
xor cl, 1
mov r8d, edx
xor r8b, cl
or cl, dl
xor cl, 1
or cl, r8b
mov edx, ecx
xor dl, r8b
test cl, cl
mov eax, 0x5329778e
cmovne eax, r13d
test r8b, r8b
cmove eax, r13d
test dl, 1
mov ecx, 0x5329778e
cmove eax, ecx
jmp 0x140002295
cmp eax, 0x103bff02
je 0x140002ba1
cmp eax, 0x12abefc3
jne 0x140002295
mov eax, 0xc50d41a1
mov rbp, qword [rsp + 0x88]
jmp 0x140002295
mov eax, 0xd886e7f3
jmp 0x140002295
mov qword [rsp + 0x90], rbp
mov eax, 0x1d03db60
jmp 0x140002295
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax + 0x10]
mov edx, dword [rsp + 0x3c]
call sub.ADVAPI32.dll_SystemFunction036
call fcn.140010880
mov rcx, qword [rbx + 8]
movabs rdx, 0xecf4eb9a2f58d031
add rcx, rdx
movabs r8, 0xbd5043492bc1efc9
add rcx, r8
sub rdx, rcx
add rdx, r8
movabs r8, 0x7cd85be4ee9288c1
movabs r9, 0x1f0372fef8717a4
lea rcx, [r8 + r9]
sub rcx, rdx
sub rcx, r9
sub rcx, r8
inc rcx
xor edx, edx
div rcx
mov dword [rbx + 4], edx
mov eax, dword [0x140046978]
lea ecx, [rax + 1]
imul ecx, eax
mov edx, ecx
not edx
mov eax, edx
and eax, 0xfffffffe
and ecx, 0x377c939a
and edx, 0xc8836c65
or edx, ecx
xor edx, 0xc8836c64
or edx, eax
mov eax, edx
mov ecx, edx
mov r10d, 0x81c3b8c4
xor ecx, r10d
and ecx, edx
not edx
xor eax, 0x48380209
mov r8d, eax
or r8d, 0x1a340733
mov r9d, ecx
not r9d
mov r11d, 0x9bb58f73
and r8d, r11d
and edx, 0x423084
or edx, r8d
or eax, r9d
and r9d, r11d
and ecx, 0x644a708c
or ecx, r9d
xor ecx, edx
not eax
or eax, ecx
not ecx
and ecx, 0x7e3c473b
and eax, r10d
or eax, ecx
mov ecx, 0xb2ce7697
xor eax, ecx
xor eax, ecx
sete al
setne cl
cmp dword [0x14004697c], 0xa
setl dl
setge r8b
mov r9d, edx
or r9b, al
and al, r8b
xor r8b, cl
xor r9b, 1
or r9b, r8b
and dl, cl
or dl, al
xor dl, 1
mov ecx, r9d
or cl, dl
xor dl, r9b
mov r8d, edx
xor r8b, cl
test dl, dl
mov eax, 0x76ea2c7d
mov edx, 0x103bff02
cmovne eax, edx
test cl, cl
mov ecx, 0x76ea2c7d
cmovne eax, ecx
test r8b, r8b
cmove eax, edx
jmp 0x140002295
mov eax, dword [0x140046978]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, ecx
not eax
mov edx, eax
and edx, 0xa0202226
mov r8d, ecx
and r8d, 0x5a085510
or r8d, edx
mov edx, r8d
xor edx, 0x40001100
xor r8d, 0x1a788ee
mov r9d, eax
or r9d, 0x1a284436
mov r10d, 0x1bafccfe
and r8d, r10d
and edx, 0xe0003300
or edx, r8d
and r9d, r10d
mov r8d, ecx
and r8d, 0x4500001
or r8d, r9d
xor r8d, edx
mov edx, r8d
xor edx, 0x520808
xor r8d, 0xfa287737
mov r9d, r8d
mov r10d, 0x4fadf4c4
and r9d, r10d
mov r11d, 0xb0520b3b
and edx, r11d
or edx, r9d
and ecx, r10d
and eax, r11d
or eax, ecx
xor eax, edx
not eax
or eax, r8d
xor eax, 0xffffffff
sete cl
setne dl
cmp dword [0x14004697c], 0xa
setge al
setl r8b
mov r9d, eax
or r9b, dl
xor dl, r8b
xor r8b, cl
xor r9b, 1
or r9b, r8b
xor al, cl
mov ecx, eax
xor cl, r9b
or al, r9b
xor al, 1
or al, cl
mov ecx, edx
or cl, al
xor al, dl
mov edx, ecx
xor dl, al
test dl, 1
mov edx, 0x225b3b83
mov r8d, 0x823649df
cmovne edx, r8d
test al, 1
mov eax, edx
mov r8d, 0x225b3b83
cmovne eax, r8d
test cl, 1
cmovne eax, edx
jmp 0x140002295
mov eax, 0xfa4dac97
xor ebp, ebp
jmp 0x140002295
mov eax, dword [rbx + 8]
mov dword [rsp + 0x3c], eax
mov eax, 0x39443595
jmp 0x140002295
mov eax, 0xcd1b26cc
jmp 0x140002295
mov rax, qword [rsp + 0x48]
mov eax, 0x225b3b83
jmp 0x140002295
mov eax, 0x2687e2f4
jmp 0x140002295
mov r9, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0x1000
xor r8d, r8d
call fcn.140040770
test eax, eax
mov eax, 0x2687e2f4
mov ecx, 0x8b7be1d0
cmovns eax, ecx
jmp 0x140002295
lea rax, [rbx + 8]
mov qword [rbx + 8], r12
mov qword [rsp + 0x58], rax
mov eax, 0x67b05d09
jmp 0x140002295
mov eax, 0xcbaee566
jmp 0x140002295
lea rax, [rbx + 0x10]
mov qword [rsp + 0x60], rax
mov eax, dword [0x140046978]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, ecx
not eax
mov edx, eax
or edx, 0xb0b0065
mov r8d, ecx
or r8d, 0x4140080
mov r10d, 0xf1f00e5
and r8d, r10d
mov r9d, eax
and r9d, 0xe060bf10
or r9d, r8d
and edx, r10d
and ecx, 0x1080400a
or ecx, edx
xor ecx, r9d
xor ecx, 0xeb6bbf74
or ecx, eax
xor ecx, 0x72b856b0
xor ecx, 0x8d47a94f
setne r8b
sete r9b
cmp dword [0x14004697c], 0xa
setge al
setl dl
mov ecx, edx
xor cl, r9b
mov r10d, ecx
and r10b, r9b
and cl, dl
xor r10b, 1
xor cl, 1
mov r11d, r10d
xor r11b, cl
or cl, r10b
xor cl, 1
or cl, r11b
and r8b, dl
or dl, r9b
and al, r9b
or al, r8b
xor al, 1
mov r8d, edx
xor r8b, al
or al, dl
xor al, 1
or al, r8b
mov edx, eax
xor dl, cl
xor cl, 1
or cl, al
mov r8d, edx
xor r8b, cl
test dl, 1
mov eax, 0x216e30b9
cmovne eax, edi
mov qword [rsp + 0x68], rsi
test cl, 1
cmovne eax, edi
not r8b
test r8b, 1
mov ecx, 0x216e30b9
cmove eax, ecx
jmp 0x140002295
mov eax, 0xb5a156a9
jmp 0x140002295
mov qword [rsp + 0x88], rbx
mov eax, 0x12abefc3
jmp 0x140002295
mov qword [rsp + 0x48], rsi
mov eax, 0x75c3013f
jmp 0x140002295
cmp byte [rsp + 0x3b], 0
mov eax, 0xd3e97c81
mov ecx, 0xf6fbcb7a
cmovne eax, ecx
jmp 0x140002295
mov r14, qword [rbx + 8]
call r15
mov rcx, rax
mov edx, 8
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x40]
mov edx, 8
call sub.ADVAPI32.dll_SystemFunction036
mov qword [rsp + 0x70], rbx
mov eax, 0x85c700f1
jmp 0x140002295
cmp eax, 0x1d03db60
jne 0x140002295
mov rax, qword [rsp + 0x90]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret