Function at 0x1400fcea0
Capabilities:
Authenticate hmac

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov eax, 5
mov qword [rsp + 0x38], rdx
mov rdx, qword [rcx]
mov r15, rcx
mov qword [rsp + 0x28], r8
mov rdi, qword [rdx + 0x20]
test rdi, rdi
je 0x1400fced4
test byte [rdx + 0x18], 8
jne 0x1400fcee5
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rcx + 0x10]
mov qword [rsp + 0x30], rax
nop
mov rax, qword [rdi]
mov edx, dword [rax]
cmp edx, 0x137
je 0x1400fd1b1
jle 0x1400fd190
cmp edx, 0x139
je 0x1400fd1c1
jl 0x1400fd1f1
cmp edx, 0x13a
je 0x1400fd1e1
cmp edx, 0x13b
mov ebx, 0x48
mov r14d, 0x48
jne 0x1400fd1d1
nop dword [rax]
cmp qword [rsp + 0x28], rbx
ja 0x1400fd140
mov rsi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x20], 0
mov rdx, qword [r15]
lea rbp, [rdi + 0x18]
mov rcx, rbp
test byte [rdx + 0x18], 4
setne dl
movzx edx, dl
shl edx, 8
call qword [rax + 0x30]
test rsi, rsi
mov dword [r15 + 8], 0
je 0x1400fd201
mov r12, rbx
lea r13, [rbx + rsi]
xor r8d, r8d
jmp 0x1400fcfb4
lea r8d, [rdx + 1]
add r12, 1
mov dword [r15 + 8], r8d
movzx ecx, byte [r12 - 1]
xor ecx, 0x36
cmp r12, r13
mov byte [r15 + rdx + 0x10], cl
je 0x1400fcfd0
movsxd rdx, r8d
cmp dword [r15 + 0xc], edx
jne 0x1400fcf95
xor edx, edx
xor r8d, r8d
mov rcx, r15
call fcn.1400fbf40
movsxd rdx, dword [r15 + 8]
jmp 0x1400fcf95
cmp r14d, esi
mov r13d, esi
jg 0x1400fcff7
jmp 0x1400fd013
lea r8d, [rdx + 1]
add r13d, 1
cmp r14d, r13d
mov dword [r15 + 8], r8d
mov byte [r15 + rdx + 0x10], 0x36
je 0x1400fd013
movsxd rdx, r8d
cmp dword [r15 + 0xc], edx
jne 0x1400fcfe0
xor edx, edx
xor r8d, r8d
mov rcx, r15
call fcn.1400fbf40
movsxd rdx, dword [r15 + 8]
jmp 0x1400fcfe0
mov rax, qword [rdi]
movsxd r8, r8d
mov rdx, qword [rsp + 0x30]
mov rcx, rbp
call qword [rax + 0x38]
mov rax, qword [rdi]
mov rdx, rbp
mov r8, qword [rax + 0x58]
lea rcx, [rbp + r8]
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15]
mov rax, qword [rdi]
mov rcx, rbp
test byte [rdx + 0x18], 4
setne dl
movzx edx, dl
shl edx, 8
call qword [rax + 0x30]
test rsi, rsi
mov dword [r15 + 8], 0
je 0x1400fd20c
lea r13, [rbx + rsi]
xor r8d, r8d
jmp 0x1400fd08d
lea r8d, [rdx + 1]
add rbx, 1
mov dword [r15 + 8], r8d
movzx ecx, byte [rbx - 1]
xor ecx, 0x5c
cmp r13, rbx
mov byte [r15 + rdx + 0x10], cl
je 0x1400fd0b0
movsxd rdx, r8d
cmp dword [r15 + 0xc], edx
jne 0x1400fd070
xor edx, edx
xor r8d, r8d
mov rcx, r15
call fcn.1400fbf40
movsxd rdx, dword [r15 + 8]
jmp 0x1400fd070
cmp r14d, esi
jg 0x1400fd0d6
jmp 0x1400fd0f2
lea r8d, [rax + 1]
add esi, 1
cmp r14d, esi
mov dword [r15 + 8], r8d
mov byte [r15 + rax + 0x10], 0x5c
je 0x1400fd0f2
movsxd rax, r8d
cmp dword [r15 + 0xc], eax
jne 0x1400fd0c0
xor r8d, r8d
xor edx, edx
mov rcx, r15
call fcn.1400fbf40
movsxd rax, dword [r15 + 8]
jmp 0x1400fd0c0
mov rax, qword [rdi]
movsxd r8, r8d
mov rdx, qword [rsp + 0x30]
mov rcx, rbp
call qword [rax + 0x38]
mov rax, qword [rdi]
mov rdx, rbp
mov r8, qword [rax + 0x58]
lea rcx, [rbp + r8*2]
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x20]
call fcn.1400eba10
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x1400fcef0
mov dword [r15 + 8], 0
xor eax, eax
jmp 0x1400fced4
movsxd rcx, dword [rax + 0x28]
call fcn.1400eb8e0
test rax, rax
mov qword [rsp + 0x20], rax
je 0x1400fd216
mov rax, qword [rdi]
mov r9, qword [rsp + 0x28]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov ecx, dword [rax]
call fcn.1400fcd40
mov rax, qword [rdi]
movsxd rsi, dword [rax + 0x28]
cmp rsi, rbx
ja 0x1400fd233
mov rbx, qword [rsp + 0x20]
jmp 0x1400fcf5e
cmp edx, 9
jl 0x1400fd1d1
cmp edx, 0xa
mov ebx, pe_nt_image_headers64
mov r14d, pe_nt_image_headers64
jle 0x1400fcf40
cmp edx, 0x134
jne 0x1400fd1d1
mov ebx, 0x20
mov r14d, 0x20
jmp 0x1400fcf40
mov ebx, 0x88
mov r14d, 0x88
jmp 0x1400fcf40
mov ebx, 0x40
mov r14d, 0x40
jmp 0x1400fcf40
mov ebx, 0x68
mov r14d, 0x68
jmp 0x1400fcf40
mov ebx, 0x90
mov r14d, 0x90
jmp 0x1400fcf40
xor r8d, r8d
xor r13d, r13d
jmp 0x1400fcff7
xor r8d, r8d
xor esi, esi
jmp 0x1400fd0d6
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14014d470
lea r9, str.prepare_macpads
lea rdx, str.md.c
lea rcx, str.k_len___macpad_Bsize
mov r8d, 0x2d9
call fcn.1400ea260
nop
nop
nop word cs:[rax + rax]