Function at 0x18001c940
Capabilities:
Generate random numbers via winapi

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd0
mov esi, dword [rsp + 0x120]
mov r15, rdx
mov r14, r9
mov rbp, r8
mov rdx, rcx
lea eax, [rsi + 0x609]
mov dword [rsp + 0x38], eax
cmp esi, eax
jae 0x18001ccb5
mov r12, qword [rsp + 0x20]
lea r8, [0x180000000]
mov r13, qword [rsp + 0x20]
nop word [rax + rax]
cmp esi, 0xf2
ja 0x18001cb76
je 0x18001cb47
lea eax, [rsi - 0x24]
cmp eax, 0xb5
ja case.0x18001c9d0.43
movzx eax, byte [r8 + rax + 0x1ccfc]
mov ecx, dword [r8 + rax*4 + 0x1ccdc]
add rcx, r8
jmp rcx
mov rcx, qword [rdx]
cmp qword [rsp + 0x28], rcx
lea rax, [rcx - 1]
cmovb rax, qword [rsp + 0x28]
mov qword [rsp + 0x28], rax
jmp 0x18001ca30
test r12, r12
je case.0x18001c9d0.43
mov ebx, 0x25
mov eax, ebx
sub eax, 0x25
je 0x18001ca13
sub eax, 1
je 0x18001ca0c
cmp eax, 1
je 0x18001ccb5
jmp 0x18001ca22
mov byte [rsp + 0x20], 1
jmp 0x18001ca22
mov r8, r12
mov edx, 0xd5
xor ecx, ecx
call fcn.180011b90
inc ebx
cmp ebx, 0x28
jb 0x18001c9f5
lea r8, [0x180000000]
mov rdx, qword [rsp + 0x100]
add esi, 0x67
cmp esi, dword [rsp + 0x38]
jb 0x18001c9a0
jmp 0x18001ccb5
mov eax, 0xb4
nop
cmp eax, 0xb4
je 0x18001cca1
add eax, 0x84e4
cmp eax, 0x84e4
jbe 0x18001ca50
mov rcx, qword [r14]
mov rax, qword [r15]
or rcx, 1
mov qword [rax + 8], rcx
jmp case.0x18001c9d0.43
mov r8d, dword [r14]
lea rcx, str._s__i_n
mov rdx, rbp
call fcn.18003efe0
xor ebx, ebx
cmp dword [r14], ebx
jbe 0x18001ca29
movzx edx, byte [rbx + r15]
lea rcx, str._02x
call fcn.18003efe0
inc ebx
cmp ebx, dword [r14]
jb 0x18001ca90
jmp 0x18001ca29
mov eax, dword [r14]
lea r9, [rsp + 0x120]
mov dword [rsp + 0x120], eax
lea rdx, [rsp + 0x40]
mov eax, dword [r15]
lea rcx, [rsp + 0x28]
mov r8d, 0x97
mov dword [rsp + 0x28], eax
call fcn.18000a350
lea r9, [rsp + 0x40]
xor r8d, r8d
xor edx, edx
mov ecx, 0xc6
call fcn.180023ea0
mov qword [rsp + 0x28], rax
jmp 0x18001ca29
mov rax, qword [r15]
mov r13, rax
and r13d, 7
jne 0x18001cb13
xor r13d, r13d
add rax, r13
mov qword [r15], rax
jmp case.0x18001c9d0.43
neg r13
and r13d, 7
add rax, r13
mov qword [r15], rax
jmp case.0x18001c9d0.43
xor edx, edx
mov dword [rsp + 0x30], 2
mov r9, rbp
lea r8, [rsp + 0x30]
lea ecx, [rdx + 0x72]
call fcn.18000df30
mov r12, rax
jmp 0x18001ca29
mov rbx, qword [rsp + 0x28]
lea r8, [rsp + 0x40]
mov r9, rbp
lea rcx, [rsp + 0x20]
mov edx, 0x9a
lea rax, [rbx + 1]
mov qword [rsp + 0x20], rax
call fcn.180014430
mov qword [rsp + 0x20], rbx
jmp 0x18001ca29
cmp esi, 0x16d
ja 0x18001cc48
je 0x18001cc18
mov eax, esi
sub eax, 0x106
je 0x18001cbac
sub eax, 0x24
je 0x18001cba4
cmp eax, 0x2f
je 0x18001ccb5
jmp case.0x18001c9d0.43
sub qword [r14], r13
jmp case.0x18001c9d0.43
xor edx, edx
mov dword [rsp + 0x120], 0
mov r9, rbp
lea r8, [rsp + 0x120]
lea ecx, [rdx + 0x72]
call fcn.18000df30
mov rdi, rax
test rax, rax
je 0x18001ca29
mov ebx, 0xc6
nop dword [rax]
mov ecx, ebx
sub ecx, 0xc5
je 0x18001ccb5
cmp ecx, 1
jne 0x18001cc09
mov r9, rdi
xor r8d, r8d
mov edx, 0xc2
xor ecx, ecx
call fcn.1800129e0
mov byte [rsp + 0x20], al
dec ebx
cmp ebx, 0xc4
ja 0x18001cbe0
jmp 0x18001ca29
mov eax, 4
nop dword [rax]
cmp eax, 4
je 0x18001cc32
cmp eax, 0xad
je 0x18001ccb5
jmp 0x18001cc37
mov byte [rsp + 0x20], 0
add eax, 0xa9
cmp eax, 0x156
jb 0x18001cc20
jmp case.0x18001c9d0.43
mov eax, esi
sub eax, 0x191
je 0x18001cc86
sub eax, 0x67
je 0x18001ca67
cmp eax, 0x67
jne case.0x18001c9d0.43
mov rcx, qword [r15]
mov rax, qword [r14]
mov qword [rcx + rax + 8], 0x48
mov rcx, qword [rbp]
mov rax, qword [0x18007d740]
mov qword [rcx + 0x30], rax
jmp case.0x18001c9d0.43
mov rcx, qword [rbp]
mov rax, qword [r15]
mov qword [rcx + 0x28], rax
mov rcx, qword [rbp]
mov rax, qword [r14]
mov qword [rcx + 0x10], rax
jmp case.0x18001c9d0.43
mov edx, dword [r14]
mov r8, r15
mov rcx, qword [rbp + 8]
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x20]
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret