Function at 0x140025ef0
Capabilities:
Authenticate hmac

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rcx]
mov qword [rsp + 0xa8], rdx
mov rbx, rcx
mov ebp, r8d
mov rdx, qword [rax + 0x80]
lea rcx, [method.CryptoPP::HMAC_Base.Restart__]
cmp rdx, rcx
jne 0x140026308
cmp byte [rbx + 0x30], 0
jne 0x1400262d0
mov rcx, rbx
lea rdi, [method.CryptoPP::HashTransformation.BlockSize___const]
call qword [rax + 0xa8]
mov r12, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x50]
cmp rax, rdi
jne 0x140025fb0
mov ecx, 0x30
lea rdi, [rsp + 0x30]
call sym.__cxa_allocate_exception
lea rdx, str.HMAC:_can_only_be_used_with_a_block_based_hash_function
mov rcx, rdi
mov rsi, rax
call fcn.1401b69f0
mov r8, rdi
mov edx, 1
mov rcx, rsi
call fcn.1400b5fd0
lea rax, method.CryptoPP::InvalidArgument.InvalidArgument__
mov rcx, rdi
mov qword [rsi], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea r8, [method.CryptoPP::InvalidArgument.InvalidArgument__]
lea rdx, [0x1401dd050]
mov rcx, rsi
call sym.__cxa_throw
nop word [rax + rax]
mov rcx, r12
call rax
mov esi, eax
test eax, eax
je 0x140025f51
mov rax, qword [rbx]
mov rcx, rbx
xor r15d, r15d
call qword [rax + 0xa8]
mov rcx, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x50]
cmp rax, rdi
jne 0x140026318
mov rax, qword [rbx]
mov rcx, rbx
lea r13, [method.non_virtual_thunk_to_CryptoPP::HMAC_Base.DigestSize___const]
call qword [rax + 0xa8]
mov rcx, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x48]
cmp rax, r13
jne 0x140026023
mov rax, qword [rcx - 8]
lea rdx, [rcx - 8]
mov rcx, rdx
call qword [rax + 0xa8]
mov rcx, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x48]
cmp rax, r13
je 0x1400262c0
call rax
mov r11, qword [rbx + 0x20]
lea r14d, [rax + r15]
mov r9, qword [rbx + 0x28]
mov r15d, ebp
cmp r14, r11
je 0x1400260dd
test r14, r14
je 0x140026188
mov rcx, r14
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r11
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
mov r9, qword [rsp + 0x20]
mov r10, rax
test r9, r9
je 0x1400260da
test rax, rax
mov r11, qword [rsp + 0x28]
je 0x1400263a0
cmp r14, r11
mov r8, r11
mov rdx, r9
mov rcx, rax
cmovbe r8, r14
call sym.memcpy
mov r9, qword [rsp + 0x20]
mov r11, qword [rsp + 0x28]
mov r10, rax
lea rax, [r9 + r11]
test r11, r11
je 0x1400260c8
mov rdx, rax
sub rdx, r9
and edx, 1
je 0x1400260b8
sub rax, 1
mov byte [rax], 0
cmp r9, rax
je 0x1400260c8
nop dword [rax]
mov byte [rax - 1], 0
sub rax, 2
mov byte [rax], 0
cmp r9, rax
jne 0x1400260b8
mov rcx, r9
mov qword [rsp + 0x20], r10
call method.CryptoPP.UnalignedDeallocate_void_
mov r10, qword [rsp + 0x20]
mov r9, r10
mov qword [rbx + 0x28], r9
mov qword [rbx + 0x20], r14
mov qword [rbx + 0x18], 0xffffffffffffffff
cmp esi, ebp
jb 0x1400261b0
test r9, r9
je 0x140026110
cmp qword [rsp + 0xa8], 0
je 0x140026110
test ebp, ebp
jne 0x140026340
nop dword [rax]
mov r8d, esi
lea rcx, [r9 + r15]
xor edx, edx
mov esi, esi
sub r8d, ebp
xor ebp, ebp
call sym.memset
jmp 0x14002614b
mov byte [r12], r13b
mov rax, qword [rbx + 0x28]
add rax, rbp
add rbp, 1
xor byte [rax], 0x36
cmp rsi, rbp
je 0x1400262f0
mov r14, qword [rbx + 0x28]
mov rax, qword [rbx]
mov rcx, rbx
lea r12, [r14 + rbp]
movzx r13d, byte [r12]
call qword [rax + 0xa8]
mov rcx, rax
mov rax, qword [rax]
xor r13d, 0x5c
mov rax, qword [rax + 0x50]
cmp rax, rdi
je 0x140026130
call rax
mov r12d, eax
add r12, rbp
add r12, r14
jmp 0x140026130
xor r10d, r10d
test r9, r9
jne 0x140026095
movdqu xmm0, xmmword [0x1401c3f00]
movups xmmword [rbx + 0x18], xmm0
cmp esi, ebp
jae 0x140026110
nop dword [rax + rax]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0xa8]
lea rdx, [method.CryptoPP::HashTransformation.CalculateDigest_unsigned_char__unsigned_char_const__unsigned_long_long_]
mov rbp, qword [rbx + 0x28]
mov r14, rax
mov rax, qword [rax]
mov r11, qword [rax + 0x68]
cmp r11, rdx
jne 0x140026360
mov rax, qword [rax + 0x28]
lea rdx, [method.non_virtual_thunk_to_CryptoPP::HMAC_Base.Update_unsigned_char_const__unsigned_long_long_]
cmp rax, rdx
jne 0x1400263bc
mov rdx, qword [rsp + 0xa8]
lea rcx, [r14 - 8]
mov r8, r15
call method.CryptoPP::HMAC_Base.Update_unsigned_char_const__unsigned_long_long_
mov rax, qword [r14]
lea rdx, [method.CryptoPP::HashTransformation.Final_unsigned_char_]
mov r8, qword [rax + 0x38]
cmp r8, rdx
jne 0x1400263ae
mov r15, qword [rax + 0x80]
mov rax, qword [rax + 0x48]
cmp rax, r13
jne 0x1400263d1
mov rax, qword [r14 - 8]
lea rcx, [r14 - 8]
call qword [rax + 0xa8]
mov rcx, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x48]
cmp rax, r13
je 0x140026328
call rax
mov r8d, eax
lea rax, [method.non_virtual_thunk_to_CryptoPP::HMAC_Base.TruncatedFinal_unsigned_char__unsigned_long_long_]
cmp r15, rax
jne 0x1400263d9
lea rcx, [r14 - 8]
mov rdx, rbp
call method.CryptoPP::HMAC_Base.TruncatedFinal_unsigned_char__unsigned_long_long_
mov rax, qword [r12]
mov rax, qword [rax + 0x48]
cmp rax, r13
jne 0x140026385
mov rax, qword [r12 - 8]
lea rcx, [r12 - 8]
call qword [rax + 0xa8]
mov rcx, rax
mov rax, qword [rax]
mov rax, qword [rax + 0x48]
cmp rax, r13
jne 0x140026388
sub rcx, 8
call method.CryptoPP::HMAC_Base.DigestSize___const
mov r9, qword [rbx + 0x28]
mov r15d, eax
mov rbp, r15
jmp 0x140026110
sub rcx, 8
call method.CryptoPP::HMAC_Base.DigestSize___const
jmp 0x140026025
mov rcx, rbx
call qword [rax + 0xa8]
mov rcx, rax
mov rax, qword [rax]
call qword [rax + 0x40]
mov byte [rbx + 0x30], 0
mov rax, qword [rbx]
jmp 0x140025f32
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call rdx
mov rax, qword [rbx]
jmp 0x140025f32
call rax
lea r15d, [rax + rax]
jmp 0x140025fdd
sub rcx, 8
call method.CryptoPP::HMAC_Base.DigestSize___const
jmp 0x140026250
mov rdx, qword [rsp + 0xa8]
mov rcx, r9
mov r8, r15
call sym.memcpy
mov r9, qword [rbx + 0x28]
jmp 0x140026110
mov r8, qword [rsp + 0xa8]
mov r9, r15
mov rdx, rbp
mov rcx, r14
call r11
mov rax, qword [r12]
mov rax, qword [rax + 0x48]
cmp rax, r13
je 0x140026280
mov rcx, r12
call rax
mov r9, qword [rbx + 0x28]
mov r15d, eax
mov rbp, r15
jmp 0x140026110
test r9, r9
jne 0x140026095
jmp 0x1400260da
mov rdx, rbp
mov rcx, r14
call r8
jmp 0x14002626f
mov rdx, qword [rsp + 0xa8]
mov r8, r15
mov rcx, r14
call rax
jmp 0x140026202
mov rcx, r14
jmp 0x14002624e
mov rdx, rbp
mov rcx, r14
call r15
jmp 0x14002626f