Function at 0x140011285
Capabilities:
Generate random numbers via winapi

Disassembly:
jmp 0x140015e40
push rbp
push rdi
sub rsp, 0x1c8
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0x3a
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rax, qword [0x14001e008]
xor rax, rbp
mov qword [rbp + 0x198], rax
lea rcx, [0x1400240a2]
call fcn.140011389
mov qword [rbp + 8], 0
mov dword [rbp + 0x64], 1
lea rcx, str.Enter_the_length_of_the_numerical_passcode:
call fcn.1400111a4
lea rdx, [rbp + 0x44]
lea rcx, [0x14001ae20]
call fcn.14001120d
cmp eax, 1
jne 0x140015eb3
cmp dword [rbp + 0x44], 0
jg 0x140015ec9
lea rcx, str.Invalid_input._Please_enter_a_positive_integer._n
call fcn.1400111a4
mov eax, 0xffffffff
jmp 0x1400160ed
mov eax, dword [rbp + 0x44]
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
je 0x140015eef
mov eax, dword [rbp + 0x44]
inc eax
mov dword [rbp + 0x44], eax
mov edx, dword [rbp + 0x44]
lea rcx, str.Note:_Passcode_length_adjusted_to__d_for_even_grouping._n
call fcn.1400111a4
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x14001ae78]
lea rcx, [rbp + 8]
call fcn.140011168
mov dword [rbp + 0x24], eax
cmp dword [rbp + 0x24], 0
je 0x140015f27
mov edx, dword [rbp + 0x24]
lea rcx, str.Error_in_opening_algorithm_provider:_0x_x_n
call fcn.1400111a4
mov eax, 0xffffffff
jmp 0x1400160ed
mov eax, dword [rbp + 0x44]
add eax, 1
mov eax, eax
mov rcx, 0xffffffffffffffff
cmovb rax, rcx
mov edx, 1
mov rcx, rax
call qword [sym.imp.ucrtbased.dll_calloc]
mov qword [rbp + 0x88], rax
cmp qword [rbp + 0x88], 0
jne 0x140015f7a
lea rcx, str.Memory_allocation_failed._n
call fcn.1400111a4
xor edx, edx
mov rcx, qword [rbp + 8]
call fcn.1400112c1
mov eax, 0xffffffff
jmp 0x1400160ed
lea rcx, str.Generated_Passcode:
call fcn.1400111a4
mov dword [rbp + 0xa4], 0
jmp 0x140015fa0
mov eax, dword [rbp + 0xa4]
inc eax
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0x44]
cmp dword [rbp + 0xa4], eax
jge 0x1400160b4
xor r9d, r9d
mov r8d, dword [rbp + 0x64]
lea rdx, [rbp + 0xc4]
mov rcx, qword [rbp + 8]
call fcn.140011064
mov dword [rbp + 0x24], eax
cmp dword [rbp + 0x24], 0
je 0x140016013
mov edx, dword [rbp + 0x24]
lea rcx, str._nError_in_generating_random_digit:_0x_x_n
call fcn.1400111a4
movsxd rax, dword [rbp + 0x44]
mov rdx, rax
mov rcx, qword [rbp + 0x88]
call fcn.1400113fc
mov rcx, qword [rbp + 0x88]
call qword [sym.imp.ucrtbased.dll_free]
xor edx, edx
mov rcx, qword [rbp + 8]
call fcn.1400112c1
mov eax, 0xffffffff
jmp 0x1400160ed
movzx eax, byte [rbp + 0xc4]
cmp eax, 0xf9
jg 0x140015faf
movzx eax, byte [rbp + 0xc4]
cdq
mov ecx, 0xa
idiv ecx
mov eax, edx
add eax, 0x30
movsxd rcx, dword [rbp + 0xa4]
mov rdx, qword [rbp + 0x88]
mov byte [rdx + rcx], al
mov eax, dword [rbp + 0xa4]
inc eax
cdq
and eax, 1
xor eax, edx
sub eax, edx
test eax, eax
jne 0x14001608c
mov eax, dword [rbp + 0x44]
dec eax
cmp dword [rbp + 0xa4], eax
jge 0x14001608c
movsxd rax, dword [rbp + 0xa4]
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rcx + rax]
movsx eax, al
mov edx, eax
lea rcx, [0x14001af04]
call fcn.1400111a4
jmp 0x1400160af
movsxd rax, dword [rbp + 0xa4]
mov rcx, qword [rbp + 0x88]
movzx eax, byte [rcx + rax]
movsx eax, al
mov edx, eax
lea rcx, [0x14001ac28]
call fcn.1400111a4
jmp 0x140015f92
lea rcx, [0x14001ac2c]
call fcn.1400111a4
movsxd rax, dword [rbp + 0x44]
mov rdx, rax
mov rcx, qword [rbp + 0x88]
call fcn.1400113fc
mov rcx, qword [rbp + 0x88]
call qword [sym.imp.ucrtbased.dll_free]
xor edx, edx
mov rcx, qword [rbp + 8]
call fcn.1400112c1
xor eax, eax
mov rdi, rax
lea rcx, [rbp - 0x20]
lea rdx, [0x14001ada0]
call fcn.140011325
mov rax, rdi
mov rcx, qword [rbp + 0x198]
xor rcx, rbp
call fcn.1400111bd
lea rsp, [rbp + 0x1a8]
pop rdi
pop rbp
ret