Function at 0x4541a0
Capabilities:
Generate random numbers via winapi

Disassembly:
test rcx, rcx
je 0x4544c3
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rbx, rcx
lea r12, [0x0048d8c4]
mov r9, rcx
lea r14, str.SOFTWAREMetaQuotes_Software
xor esi, esi
mov edi, 0x100
mov word [rcx], si
mov r13, 0xffffffff80000002
mov rcx, r13
mov dword [rsp + 0x28], edi
mov r8, r12
mov dword [rsp + 0x20], 0x1fe
mov rdx, r14
call fcn.00404704
lea r15, [r13 - 1]
test al, al
je 0x4542c1
mov rcx, rbx
call fcn.00436f70
cmp rax, 0x2710
jl 0x4542c1
mov dword [rsp + 0x28], edi
lea r9, [rsp + 0x30]
mov r8, r12
mov dword [rsp + 0x20], 0xfe
mov rdx, r14
mov rcx, r15
call fcn.00404704
test al, al
je 0x45426f
lea rax, [rsp + 0x30]
mov r8, rbx
sub r8, rax
movzx ecx, word [rax]
movzx edx, word [rax + r8]
sub ecx, edx
jne 0x45426b
add rax, 2
test edx, edx
jne 0x454257
test ecx, ecx
je 0x4542c4
lea rax, [rbp + 0x78]
mov qword [rbp + 0x78], rsi
mov r9d, 0x20119
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4542a1
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4542ac
mov rdx, r14
mov rcx, r15
call fcn.00404678
mov r8, r12
mov qword [rsp + 0x20], rbx
mov rdx, r14
mov rcx, r15
call fcn.004045c0
jmp 0x4542c4
mov word [rbx], si
cmp word [rbx], si
jne 0x454353
mov dword [rsp + 0x28], edi
mov r9, rbx
mov r8, r12
mov dword [rsp + 0x20], 0x1fe
mov rdx, r14
mov rcx, r15
call fcn.00404704
test al, al
je 0x454350
mov rcx, rbx
call fcn.00436f70
cmp rax, 0x2710
jl 0x454350
lea rax, [rbp + 0x78]
mov qword [rbp + 0x78], rsi
mov r9d, 0x20119
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, r14
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x454330
mov rcx, qword [rbp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x45433b
mov rdx, r14
mov rcx, r13
call fcn.00404678
mov r8, r12
mov qword [rsp + 0x20], rbx
mov rdx, r14
mov rcx, r13
call fcn.004045c0
jmp 0x454353
mov word [rbx], si
or r9, 0xffffffffffffffff
mov rcx, r9
inc rcx
cmp word [rbx + rcx*2], si
jne 0x45435a
mov rdx, rsi
mov r8d, 9
test rcx, rcx
je 0x454387
movzx eax, word [rbx + rdx*2]
sub ax, 0x30
cmp ax, r8w
ja 0x45439c
inc rdx
cmp rdx, rcx
jb 0x454371
mov rax, r9
inc rax
cmp word [rbx + rax*2], si
jne 0x45438a
cmp rax, r8
jae 0x4544a9
xor ecx, ecx
call fcn.004370d4
mov r9d, 2
lea rdx, [rbp + 0x78]
xor ecx, ecx
lea rdi, [rax - 0x54a48e00]
lea r8d, [r9 + 6]
call qword [sym.imp.bcrypt.dll_BCryptGenRandom]
test eax, eax
je 0x4543d0
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov qword [rbp + 0x78], rax
jmp 0x4543d4
mov rax, qword [rbp + 0x78]
and eax, 0x1ffffff
lea r9, str._I64u
shl rax, 0x20
movabs rcx, 0x4400000000000000
or rax, rdi
or r8, 0xffffffffffffffff
or rax, rcx
mov edx, 0xff
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.004020a8
lea rax, [rbp + 0x70]
mov qword [rbp + 0x70], rsi
mov edi, 0x20119
mov qword [rsp + 0x20], rax
mov r9d, edi
xor r8d, r8d
mov rdx, r14
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x45443e
mov rcx, qword [rbp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x454449
mov rdx, r14
mov rcx, r13
call fcn.00404678
mov r8, r12
mov qword [rsp + 0x20], rbx
mov rdx, r14
mov rcx, r13
call fcn.004045c0
lea rax, [rbp + 0x70]
mov qword [rbp + 0x70], rsi
mov r9d, edi
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x45448b
mov rcx, qword [rbp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x454496
mov rdx, r14
mov rcx, r15
call fcn.00404678
mov r8, r12
mov qword [rsp + 0x20], rbx
mov rdx, r14
mov rcx, r15
call fcn.004045c0
mov rbx, qword [rsp + 0x180]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret