Function at 0x1404c6979
Capabilities:
Authenticate hmac

Disassembly:
push rbp
push rbx
btc eax, ecx
push rsi
sub bpl, sil
sal rsi, cl
push rdi
rcl ax, 0x55
push r12
push r13
and bp, r15w
movsx r13w, sil
push r14
sub r14, rax
push r15
lea rbp, [rsp - 0x88]
neg r12w
sub rsp, 0x188
movsx rbx, r10w
not r14b
rol r12w, cl
mov rax, qword [0x1400b7288]
btr r13d, 0x6f
bts r15d, r15d
shrd bx, dx, 0x53
xor rax, rsp
mov r13b, 0x96
mov qword [rbp + 0x70], rax
movzx r13, r12w
setg sil
xchg sil, r14b
mov r14, qword [rbp + 0xf0]
mov r15, rdx
cmovns esi, ebp
movzx ebx, r11w
jmp 0x1404c69fd
mov r12, qword [rbp + 0x108]
mov bl, 0x80
movzx si, r8b
movsx r13w, r10b
mov rbx, rcx
mov qword [rsp + 0x78], rdx
movzx ecx, bx
cmovno edx, esp
movsx r13, sp
mov rcx, r14
xchg dl, sil
movzx r13d, di
mov rdx, r9
jmp 0x1404c6a34
mov qword [rbp - 0x60], r12
mov rsi, r9
mov r13b, 0x36
bswap r13w
mov byte [rsp + 0x60], 0
xchg r13b, r13b
not r13w
movzx r13, bp
mov r13, r8
jmp 0x1404c6a5a
call fcn.14024b6a8
cmp dword [rsi + 0x48], 0
cmovae edi, ecx
movsxd rdi, ebp
not rdi
mov edi, eax
je 0x1404c6a99
call fcn.1404c23b0
cmp dword [rax + 0x78], 0xfffffffe
jmp 0x1404c6a82
jne 0x1404c72e5
mov edi, dword [rsi + 0x48]
stc
sub edi, 2
jmp 0x1404c6a94
jmp 0x1404c6ac4
call fcn.1404c23b0
cmp dword [rax + 0x78], 0xfffffffe
je 0x1404c6ac4
call fcn.1404c23b0
mov edi, dword [rax + 0x78]
jmp 0x1404c6ab5
call fcn.1404c23b0
mov dword [rax + 0x78], 0xfffffffe
cmp al, spl
cmp edi, 0xffffffff
jmp 0x1404c6acc
jl 0x1404c72e5
cmp dword [r14 + 8], 0
movsx r8w, cl
movzx r8d, r14w
mov r8w, si
lea r8, [0x140000000]
jmp 0x1404c6af0
je 0x1404c6b3f
movsxd rdx, dword [r14 + 8]
movsx ax, cl
add rdx, qword [rsi + 8]
movzx ecx, byte [rdx]
and ecx, 0xf
dec al
movsx rax, byte [rcx + r8 + 0xc1a30]
mov cl, byte [rcx + r8 + 0xc1a40]
cmp r8b, r10b
sub rdx, rax
inc ah
mov rax, 0x3a40298
rol al, cl
mov eax, dword [rdx - 4]
clc
cmp bl, r15b
shr eax, cl
jmp 0x1404c6b3a
jmp 0x1404c6b45
sub eax, eax
test r14b, 0x50
cmp edi, eax
jge 0x1404c72e5
cmp dword [rbx], 0xe06d7363
jmp 0x1404c6b58
jne 0x1404c6c8d
cmp dword [rbx + 0x18], 4
jmp 0x1404c6b67
jne 0x1404c6c8d
mov eax, dword [rbx + 0x20]
sub eax, 0x19930520
cmc
clc
cmp eax, 2
jmp 0x1404c6b7f
ja 0x1404c6c8d
cmp qword [rbx + 0x30], 0
jmp 0x1404c6b8f
jne 0x1404c6c8d
call fcn.1404c23b0
cmp qword [rax + 0x20], 0
jmp 0x1404c6ba4
je 0x1404c7230
call fcn.1404c23b0
mov rbx, qword [rax + 0x20]
call fcn.1404c23b0
mov rcx, qword [rbx + 0x38]
not r13b
movsxd r13, r9d
mov byte [rsp + 0x60], 1
not r13b
cmovne r13d, r9d
movsxd r13, esi
mov r13, qword [rax + 0x28]
jmp 0x1404c6bda
call fcn.1404a1514
cmp dword [rbx], 0xe06d7363
jne 0x1404c6c1f
cmp dword [rbx + 0x18], 4
jne 0x1404c6c1f
mov eax, dword [rbx + 0x20]
clc
stc
sub eax, 0x19930520
cmc
clc
cmp eax, 2
jmp 0x1404c6c09
ja 0x1404c6c1f
cmp qword [rbx + 0x30], 0
jmp 0x1404c6c19
je 0x1404c72e5
call fcn.1404c23b0
cmp qword [rax + 0x38], 0
jmp 0x1404c6c2e
je 0x1404c6c8d
call fcn.1404c23b0
mov r15, qword [rax + 0x38]
jmp 0x1404c6c42
call fcn.1404c23b0
mov rdx, r15
mov rcx, rbx
and qword [rax + 0x38], 0
jmp 0x1404c6c57
call fcn.1404c4278
test al, al
jne 0x1404c6c83
mov rcx, r15
jmp 0x1404c6c6c
call fcn.1404c4456
test al, al
jmp 0x1404c6c78
je 0x1404c72b8
jmp 0x1404c727b
mov r15, qword [rsp + 0x78]
movzx r8w, dl
mov r8, qword [rsi + 8]
cwd
lea rcx, [rbp - 0x10]
movsx edx, r9w
mov rdx, r14
jmp 0x1404c6ca3
call fcn.140267374
cmp dword [rbx], 0xe06d7363
jmp 0x1404c6cb3
jne 0x1404c719e
cmp dword [rbx + 0x18], 4
jmp 0x1404c6cc2
jne 0x1404c719e
mov eax, dword [rbx + 0x20]
test r13b, 0x53
cmp r14b, 0xb0
sub eax, 0x19930520
cmp eax, 2
jmp 0x1404c6ce0
ja 0x1404c719e
cmp dword [rbp - 0x10], 0
jmp 0x1404c6cef
jbe 0x1404c716a
mov eax, dword [rbp + 0x100]
movsxd rcx, esp
bswap edx
lea rdx, [rbp - 0x10]
not r8w
movzx r9d, r9w
xchg r8b, cl
mov dword [rsp + 0x28], eax
bswap r8d
movsx r8, bx
lea rcx, [rbp - 0x58]
movzx r8, r12w
mov r9, rsi
jmp 0x1404c6d30
mov qword [rsp + 0x20], r14
movzx r8w, r12b
mov r8d, edi
call fcn.1404a11e9
movups xmm0, xmmword [rbp - 0x58]
jmp 0x1404c6d4b
movdqu xmmword [rbp - 0x78], xmm0
jmp 0x1404c6d55
psrldq xmm0, 8
movd eax, xmm0
cmp eax, dword [rbp - 0x40]
jmp 0x1404c6d66
jae 0x1404c716a
mov r15, qword [rbp - 0x58]
cmovp eax, r13d
mov eax, dword [rbp - 0x70]
mov qword [rbp - 0x80], r15
jmp 0x1404c6d80
mov dword [rsp + 0x68], eax
jmp 0x1404c6d89
movups xmm0, xmmword [r15 + 0x18]
jmp 0x1404c6d93
movq rax, xmm0
movups xmmword [rbp - 0x78], xmm0
clc
cmp eax, edi
jmp 0x1404c6da4
jg 0x1404c7011
shr rax, 0x20
jmp 0x1404c6db3
cmp edi, eax
jmp 0x1404c6dba
jg 0x1404c7011
mov rax, qword [rsi + 0x10]
lea rdx, [rbp - 0x78]
not r8b
setae cl
mov r8, qword [rsi + 8]
movsx ecx, sp
cmovs cx, sp
lea rcx, [rbp + 0x20]
mov r9d, dword [rax]
jmp 0x1404c6de5
call fcn.1404c2d37
mov eax, dword [rbp + 0x20]
test r11b, 0xb9
xor r12d, r12d
jmp 0x1404c6e03
mov dword [rsp + 0x64], r12d
clc
mov dword [rsp + 0x6c], eax
test eax, eax
jmp 0x1404c6e14
je 0x1404c7011
movups xmm0, xmmword [rbp + 0x38]
jmp 0x1404c6e23
movups xmm1, xmmword [rbp + 0x48]
movups xmmword [rbp - 0x38], xmm0
jmp 0x1404c6e30
movsd xmm0, qword [rbp + 0x58]
jmp 0x1404c6e3a
movsd qword [rbp - 0x18], xmm0
jmp 0x1404c6e44
movups xmmword [rbp - 0x28], xmm1
jmp 0x1404c6e4d
call fcn.1404a14f8
mov rcx, qword [rbx + 0x30]
btr dx, r14w
add rax, 4
movsxd rdx, dword [rcx + 0xc]
clc
add rax, rdx
jmp 0x1404c6e6c
mov qword [rsp + 0x70], rax
jmp 0x1404c6e76
call fcn.1404a14f8
mov rcx, qword [rbx + 0x30]
btc r15w, sp
sub r15w, 0x7707
xor dh, 0x1c
movsxd rdx, dword [rcx + 0xc]
ror r15w, 0xbf
inc r15d
sbb r15b, spl
mov r15d, dword [rax + rdx]
clc
cmp rsi, r12
cmc
test r15d, r15d
jle 0x1404c6f2b
call fcn.1404a14f8
mov r8, qword [rbx + 0x30]
neg cx
dec r12w
mov r12, rax
mov rax, qword [rsp + 0x70]
btr dx, 0xfd
and dx, bx
movsxd rcx, dword [rax]
add r12, rcx
movsx cx, r8b
sete ch
lea rcx, [rbp - 0x38]
bswap dx
movsx rdx, r13w
movsxd rdx, ebp
mov rdx, r12
jmp 0x1404c6ef2
call fcn.1404c48dc
test eax, eax
jmp 0x1404c6efe
jne 0x1404c6f5a
add qword [rsp + 0x70], 4
jmp 0x1404c6f0f
dec r15d
stc
cmp bx, 0x845
test r15d, r15d
jmp 0x1404c6f20
jg 0x1404c6eae
mov r12d, dword [rsp + 0x64]
lea rcx, [rbp + 0x20]
jmp 0x1404c6f34
call fcn.1401167c4
inc r12d
cmp r14b, 0x5c
mov dword [rsp + 0x64], r12d
cmp r12d, dword [rsp + 0x6c]
jmp 0x1404c6f4f
je 0x1404c7001
jmp 0x1404c6e1a
mov al, byte [rbp + 0xf8]
movzx rdx, r10w
mov r9, rsi
not cx
movsx r8w, r14b
movzx rdx, r15w
mov rdx, qword [rsp + 0x78]
mov r8, r13
mov ch, 0x57
bswap ecx
mov byte [rsp + 0x58], al
movsx ecx, bx
mov rcx, rsp
mov rcx, rbx
mov al, byte [rsp + 0x60]
jmp 0x1404c6f96
mov byte [rsp + 0x50], al
movsx ax, r8b
nop
mov rax, qword [rbp - 0x60]
jmp 0x1404c6faa
mov qword [rsp + 0x48], rax
mov eax, dword [rbp + 0x100]
jmp 0x1404c6fba
mov dword [rsp + 0x40], eax
movzx rax, r11w
movsx eax, si
lea rax, [rbp - 0x78]
jmp 0x1404c6fce
mov qword [rsp + 0x38], rax
movsx ax, bh
seta ah
lea rax, [rbp - 0x38]
jmp 0x1404c6fe3
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rax
jmp 0x1404c6ff2
mov qword [rsp + 0x20], r14
jmp 0x1404c6ffc
call fcn.1404c78db
mov r15, qword [rbp - 0x80]
neg al
cmovo ax, r15w
add cx, 0x1e98
mov r8, qword [r15 + 8]
jmp 0x1404c701e
lea rdx, [0x140000000]
shl rcx, cl
mov cl, r15b
movzx ecx, byte [r8]
and ecx, 0xf
sub eax, edi
cmp spl, 0xe7
neg al
movsx rax, byte [rcx + rdx + 0xc1a30]
cmp r13b, 0x73
clc
mov cl, byte [rcx + rdx + 0xc1a40]
test r10w, 0x34ec
stc
sub r8, rax
mov eax, dword [r8 - 4]
cmc
cmp r15w, di
shr eax, cl
shld cx, r9w, 0x2b
mov qword [r15 + 8], r8
mov ecx, 0x17467410
sbb rcx, r11
sal cl, cl
mov dword [r15 + 0x18], eax
movzx ecx, byte [r8]
ror rax, 0x35
and ecx, 0xf
bt rax, r13
movsx rax, byte [rcx + rdx + 0xc1a30]
cmp al, r11b
mov cl, byte [rcx + rdx + 0xc1a40]
sub r8, rax
jmp 0x1404c70b1
mov eax, dword [r8 - 4]
cmc
stc
shr eax, cl
shrd rcx, rsp, 0xa6
bsf ecx, r13d
mov qword [r15 + 8], r8
mov dword [r15 + 0x1c], eax
rcr ax, cl
mov cx, ax
clc
movzx ecx, byte [r8]
cmovg ax, bx
and ecx, 0xf
movsx rax, byte [rcx + rdx + 0xc1a30]
cmp cx, r12w
mov cl, byte [rcx + rdx + 0xc1a40]
sar dx, 0xba
sar edx, cl
sub dx, di
sub r8, rax
sal dx, 0x52
bt rax, r11
mov eax, dword [r8 - 4]
xadd dh, dl
shr eax, cl
movsx edx, si
setg cl
mov ecx, dword [rsp + 0x68]
mov dword [r15 + 0x20], eax
mov rax, rdi
rdtsc
inc ax
inc ecx
movzx rdx, di
jmp 0x1404c712e
mov qword [r15 + 8], r8
sar rax, 0x49
lea rax, [r8 + 4]
bswap dx
adc edx, edi
sbb edx, r10d
mov edx, dword [r8]
test r8b, r11b
mov qword [r15 + 8], rax
clc
mov dword [r15 + 0x24], edx
mov dword [rsp + 0x68], ecx
test r14d, 0x84e2ee5
cmp ecx, dword [rbp - 0x40]
jmp 0x1404c7164
jb 0x1404c6d89
test byte [r14], 0x40
jmp 0x1404c7173
je 0x1404c721b
mov rdx, r14
xchg cx, cx
mov rcx, rsi
jmp 0x1404c7187
call fcn.140238851
test al, al
jmp 0x1404c7193
je 0x1404c72c3
jmp 0x1404c721b
cmp dword [rbp - 0x10], 0
jbe 0x1404c721b
cmp byte [rbp + 0xf8], 0
jmp 0x1404c71b4
jne 0x1404c72e5
mov eax, dword [rbp + 0x100]
cwd
bswap r8w
mov r9, rsi
not r8b
movsx dx, bpl
jmp 0x1404c71d6
mov qword [rsp + 0x38], r12
movsx dx, dl
cdq
cwd
mov r8, r13
cdq
mov dword [rsp + 0x30], eax
movsx edx, bp
not rdx
mov rdx, r15
mov dword [rsp + 0x28], edi
movzx cx, r11b
jmp 0x1404c7204
mov rcx, rbx
jmp 0x1404c720c
mov qword [rsp + 0x20], r14
jmp 0x1404c7216
call fcn.1404c7ad8
call fcn.1404c23b0
cmp qword [rax + 0x38], 0
jmp 0x1404c722a
jne 0x1404c72e5
mov rcx, qword [rbp + 0x70]
cmc
test r15w, 0x31b4
cmp r10w, 0x5a8a
xor rcx, rsp
jmp 0x1404c7249
call fcn.14049e6a7
add rsp, 0x188
pop r15
jmp 0x1404c725c
pop r14
cmovp r13w, r9w
movsxd rsi, ecx
pop r13
pop r12
not di
mov sil, r15b
pop rdi
not ebx
movsx esi, r15w
pop rsi
pop rbx
pop rbp
ret
mov dl, 1
mov cl, r12b
setne cl
movsx cx, r8b
mov rcx, rbx
call fcn.1404a1a51
lea rcx, [rbp - 0x78]
call fcn.140278444
lea rdx, [0x1400d73a8]
cmovno ecx, r8d
movsx cx, r8b
lea rcx, [rbp - 0x78]
call fcn.14049fe97
int3
call fcn.1404c1180
int3
call fcn.1404c23b0
mov qword [rax + 0x20], rbx
jmp 0x1404c72d1
call fcn.1404c23b0
mov qword [rax + 0x28], r13
call fcn.1404c1180
int3
call fcn.1404b6215
int3