Function at 0x1400fcfb0
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 0x1400fcfe4
test byte [rdx + 0x18], 8
jne 0x1400fcff5
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 0x1400fd2c1
jle 0x1400fd2a0
cmp edx, 0x139
je 0x1400fd2d1
jl 0x1400fd301
cmp edx, 0x13a
je 0x1400fd2f1
cmp edx, 0x13b
mov ebx, 0x48
mov r14d, 0x48
jne 0x1400fd2e1
nop dword [rax]
cmp qword [rsp + 0x28], rbx
ja 0x1400fd250
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 0x1400fd311
mov r12, rbx
lea r13, [rbx + rsi]
xor r8d, r8d
jmp 0x1400fd0c4
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 0x1400fd0e0
movsxd rdx, r8d
cmp dword [r15 + 0xc], edx
jne 0x1400fd0a5
xor edx, edx
xor r8d, r8d
mov rcx, r15
call fcn.1400fc050
movsxd rdx, dword [r15 + 8]
jmp 0x1400fd0a5
cmp r14d, esi
mov r13d, esi
jg 0x1400fd107
jmp 0x1400fd123
lea r8d, [rdx + 1]
add r13d, 1
cmp r14d, r13d
mov dword [r15 + 8], r8d
mov byte [r15 + rdx + 0x10], 0x36
je 0x1400fd123
movsxd rdx, r8d
cmp dword [r15 + 0xc], edx
jne 0x1400fd0f0
xor edx, edx
xor r8d, r8d
mov rcx, r15
call fcn.1400fc050
movsxd rdx, dword [r15 + 8]
jmp 0x1400fd0f0
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 0x1400fd31c
lea r13, [rbx + rsi]
xor r8d, r8d
jmp 0x1400fd19d
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 0x1400fd1c0
movsxd rdx, r8d
cmp dword [r15 + 0xc], edx
jne 0x1400fd180
xor edx, edx
xor r8d, r8d
mov rcx, r15
call fcn.1400fc050
movsxd rdx, dword [r15 + 8]
jmp 0x1400fd180
cmp r14d, esi
jg 0x1400fd1e6
jmp 0x1400fd202
lea r8d, [rax + 1]
add esi, 1
cmp r14d, esi
mov dword [r15 + 8], r8d
mov byte [r15 + rax + 0x10], 0x5c
je 0x1400fd202
movsxd rax, r8d
cmp dword [r15 + 0xc], eax
jne 0x1400fd1d0
xor r8d, r8d
xor edx, edx
mov rcx, r15
call fcn.1400fc050
movsxd rax, dword [r15 + 8]
jmp 0x1400fd1d0
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.1400ebb20
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x1400fd000
mov dword [r15 + 8], 0
xor eax, eax
jmp 0x1400fcfe4
movsxd rcx, dword [rax + 0x28]
call fcn.1400eb9f0
test rax, rax
mov qword [rsp + 0x20], rax
je 0x1400fd326
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.1400fce50
mov rax, qword [rdi]
movsxd rsi, dword [rax + 0x28]
cmp rsi, rbx
ja 0x1400fd343
mov rbx, qword [rsp + 0x20]
jmp 0x1400fd06e
cmp edx, 9
jl 0x1400fd2e1
cmp edx, 0xa
mov ebx, pe_nt_image_headers64
mov r14d, pe_nt_image_headers64
jle 0x1400fd050
cmp edx, 0x134
jne 0x1400fd2e1
mov ebx, 0x20
mov r14d, 0x20
jmp 0x1400fd050
mov ebx, 0x88
mov r14d, 0x88
jmp 0x1400fd050
mov ebx, 0x40
mov r14d, 0x40
jmp 0x1400fd050
mov ebx, 0x68
mov r14d, 0x68
jmp 0x1400fd050
mov ebx, 0x90
mov r14d, 0x90
jmp 0x1400fd050
xor r8d, r8d
xor r13d, r13d
jmp 0x1400fd107
xor r8d, r8d
xor esi, esi
jmp 0x1400fd1e6
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.14014d570
lea r9, str.prepare_macpads
lea rdx, str.md.c
lea rcx, str.k_len___macpad_Bsize
mov r8d, 0x2d9
call fcn.1400ea370
nop
nop
nop word cs:[rax + rax]