Function at 0x140014bf0
Capabilities:
Authenticate hmac
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x13c0]
mov eax, 0x14c0
call fcn.140021b00
sub rsp, rax
mov rax, qword [0x14002b010]
xor rax, rsp
mov qword [rbp + 0x13b0], rax
mov rbx, rcx
mov qword [rsp + 0x30], rcx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov dword [rbp + 0x1384], 0xffffffff
mov dword [rbp + 4], eax
mov ecx, 1
nop dword [rax]
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rbp + rcx*4 + 4], edx
inc rcx
cmp rcx, 0x270
jb 0x140014c50
mov dword [rbp], 0x270
xor edx, edx
mov r8, qword [0x14002be70]
cmp qword [0x14002be78], 0x10
jb 0x140014c95
mov rcx, qword [0x14002be60]
movzx eax, byte [rcx]
jmp 0x140014ca3
movzx eax, byte [0x14002be60]
lea rcx, [0x14002be60]
xor al, 0x2e
mov byte [rsp + 0x30], al
mov eax, 1
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x65
mov byte [rsp + 0x31], al
mov eax, 2
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x78
mov byte [rsp + 0x32], al
xor edx, edx
mov eax, 3
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x65
mov byte [rsp + 0x33], al
mov word [rsp + 0x34], 0x100
nop word [rax + rax]
lea rcx, [rbp]
call fcn.1400207c0
mov ecx, eax
mov eax, 0xd1b71759
mul ecx
shr edx, 0xd
cmp edx, 0x68db8
jae 0x140014cf0
mov eax, 0xd1b71759
mul ecx
shr edx, 0xd
imul eax, edx, 0x2710
sub ecx, eax
lea edx, [rcx - 0x7fffffff]
lea eax, [rdx - 0x80000000]
mov r8d, 0x80000000
lea ecx, [rdx + r8]
cmp edx, r8d
cmovae ecx, eax
lea r9, [rbp + 0x13a5]
test ecx, ecx
jns 0x140014d90
neg ecx
nop dword [rax + rax]
dec r9
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dl
shl al, 2
lea r8d, [rax + rdx]
add r8b, r8b
sub cl, r8b
add cl, 0x30
mov byte [r9], cl
mov ecx, edx
test edx, edx
jne 0x140014d50
dec r9
mov byte [r9], 0x2d
jmp 0x140014db9
dec r9
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dl
shl al, 2
lea r8d, [rax + rdx]
add r8b, r8b
sub cl, r8b
add cl, 0x30
mov byte [r9], cl
mov ecx, edx
test edx, edx
jne 0x140014d90
xor edi, edi
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x70], 0xf
mov byte [rsp + 0x78], dil
lea rax, [rbp + 0x13a5]
cmp r9, rax
je 0x140014df5
lea r8, [rbp + 0x13a5]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x78]
call fcn.1400157f0
nop
xor edx, edx
mov r8, qword [0x14002bcf8]
cmp qword [0x14002bd00], 0x10
jb 0x140014e14
mov rcx, qword [0x14002bce8]
movzx eax, byte [rcx]
jmp 0x140014e22
movzx eax, byte [0x14002bce8]
lea rcx, [0x14002bce8]
xor al, 0x43
mov byte [rsp + 0x20], al
mov eax, 1
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x3a
mov byte [rsp + 0x21], al
mov eax, 2
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x5c
mov byte [rsp + 0x22], al
mov eax, 3
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x54
mov byte [rsp + 0x23], al
mov eax, 4
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x52
mov byte [rsp + 0x24], al
mov eax, 5
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x57
mov byte [rsp + 0x25], al
mov eax, 6
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x35
mov byte [rsp + 0x26], al
mov eax, 7
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x36
mov byte [rsp + 0x27], al
mov eax, 8
xor edx, edx
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x36
mov byte [rsp + 0x28], al
xor edx, edx
mov eax, 9
div r8
movzx eax, byte [rdx + rcx]
xor al, 0x43
mov byte [rsp + 0x29], al
mov word [rsp + 0x2a], 0x100
lea rcx, [rsp + 0x20]
call fcn.140019b30
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x58], 0
mov r8d, 0xa
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x58]
call fcn.1400157f0
nop
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x58]
lea rcx, [rbp - 0x48]
call fcn.14001fcb0
nop
lea rdx, [rbp + 0x1390]
lea rcx, [rsp + 0x30]
call fcn.1400151e0
nop
mov r8, rax
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x68]
call fcn.14001dff0
nop
mov rdx, qword [rbp + 0x13a8]
cmp rdx, 0x10
jb 0x140014f94
inc rdx
mov rcx, qword [rbp + 0x1390]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140014f8f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140014f8f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140020c34
mov qword [rbp + 0x13a0], rdi
mov qword [rbp + 0x13a8], 0xf
mov byte [rbp + 0x1390], 0
lea rdx, [rbp - 0x68]
cmp qword [rbp - 0x50], 0x10
cmovae rdx, qword [rbp - 0x68]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], 0xf
mov byte [rsp + 0x38], 0
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140014fe0
lea rcx, [rsp + 0x38]
call fcn.1400157f0
nop
lea r8, [0x14002b048]
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x28]
call fcn.140013130
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x14001504b
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015046
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140015046
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140020c34
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], 0xf
mov byte [rsp + 0x38], 0
mov rdx, qword [rbp - 0x50]
cmp rdx, 0x10
jb 0x14001509d
inc rdx
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015097
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140015097
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140020c34
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 0x10
jb 0x1400150dc
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400150d6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400150d6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140020c34
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x14001511d
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015117
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140015117
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140020c34
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
jb 0x14001515c
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140015157
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140015157
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140020c34
lea r8, [0x14002b048]
lea rdx, [rbp - 0x28]
mov rcx, rbx
call fcn.1400133d0
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x1400151ae
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400151a9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400151a9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140020c34
mov rax, rbx
mov rcx, qword [rbp + 0x13b0]
xor rcx, rsp
call fcn.140020bd0
lea r11, [rsp + 0x14c0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret