Function at 0x14005f080
Capabilities:
Authenticate hmac

Disassembly:
xchg rbx, r14
mov qword [rsp + 8], r14
xchg rbx, r14
xchg rsi, r14
mov qword [rsp + 0x18], r14
xchg rsi, r14
nop
mov qword [rsp - 8], rbp
sub rsp, 8
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x50]
sub rsp, 0x150
xchg r10, rbx
mov r10, rcx
xchg r10, rbx
xor r12d, r12d
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x58], r12d
xor r8d, r8d
lea rdx, [rsp + 0x50]
call fcn.14005f9e0
test al, al
je 0x14005f4d0
mov r15d, dword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
cmp dword [rbx + 0x24], 5
jne 0x14005f51a
cmp rsi, 0xffffffffffffffff
je 0x14005f51a
bt r15d, 8
jae 0x14005f51a
lea rdx, [rbp - 0x50]
mov rcx, rbx
call fcn.14005c580
nop
xchg rdx, rdi
mov rdx, qword [rbx + 0x28]
xchg rdi, rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], 0x2452b205
add qword [rsp + 0x60], 0x1710dd9d
xor qword [rsp + 0x60], 0x658e2d67
add qword [rsp + 0x60], 0x1b388e98
xor qword [rsp + 0x60], 0x3dd9d8a
sub qword [rsp + 0x60], 0x4f78421e
add qword [rsp + 0x60], 0x3020bce1
sub qword [rsp + 0x60], 0x5aa42794
mov qword [rsp + 0x68], 0x78e55324
xor qword [rsp + 0x68], 0x302f08ce
xor qword [rsp + 0x68], 0x73e83ba9
add qword [rsp + 0x68], 0x2971ee1c
sub qword [rsp + 0x68], 0x3f6aae21
sub qword [rsp + 0x68], 0x2529a02f
mov eax, dword [0x140001780]
mov dword [rsp + 0x50], eax
movzx eax, word [0x140001784]
mov word [rsp + 0x54], ax
mov byte [rsp + 0x56], r12b
movups xmmword [rsp + 0x70], xmm0
lea edx, [r12 + 0x50]
lea rcx, [rsp + 0x70]
call fcn.1400535c0
mov qword [rsp + 0x70], rax
mov qword [rbp - 0x80], 0x485181b6
add qword [rbp - 0x80], 0x23bf6755
sub qword [rbp - 0x80], 0x3ba25bc6
add qword [rbp - 0x80], 0x21f0e43e
xor qword [rbp - 0x80], 0x4babd77e
xor qword [rbp - 0x80], 0x2e9beb73
sub qword [rbp - 0x80], 0x376f4d4e
mov qword [rbp - 0x78], 0x3c4307dc
xor qword [rbp - 0x78], 0x51cbaca8
sub qword [rbp - 0x78], 0x38b7a873
xor qword [rbp - 0x78], 0x276ba20c
add qword [rbp - 0x78], 0x43df071e
sub qword [rbp - 0x78], 0x43e417e8
xor qword [rbp - 0x78], 0x5ac3a6fd
xor qword [rbp - 0x78], 0x497636f1
movaps xmm0, xmmword [0x140001b60]
xchg rbx, rax
movups xmmword [rbx], xmm0
xchg rbx, rax
movaps xmm1, xmmword [0x140001b70]
xchg rdx, rax
movups xmmword [rdx + 0x10], xmm1
xchg rdx, rax
movaps xmm0, xmmword [0x140001b80]
movups xmmword [rax + 0x20], xmm0
movaps xmm1, xmmword [0x140001b90]
xchg r15, rax
movups xmmword [r15 + 0x30], xmm1
xchg r15, rax
mov byte [rax + 0x40], r12b
lea rax, [rsp + 0x50]
xchg rdx, rax
mov qword [rsp + 0x20], rdx
xchg rdx, rax
lea r9, [rsp + 0x70]
mov r8d, dword [rbx + 0x24]
lea rdx, [rbp - 0x70]
xchg rbx, rcx
mov rbx, rcx
xchg rbx, rcx
call fcn.1400553e0
nop
mov qword [rsp + 0x20], r12
xchg rsi, rax
mov r9, rsi
xchg rsi, rax
mov r8, qword [rbx + 0x18]
lea edx, [r12 + 0x70]
lea rcx, [rbp - 0x30]
call fcn.140038cc0
nop
mov byte [rdi + 0x28], 0x41
sub byte [rdi + 0x28], 0x1d
xor byte [rdi + 0x28], 0x17
xor byte [rdi + 0x28], 0x21
add byte [rdi + 0x28], 0x17
add byte [rdi + 0x28], 0x39
xor byte [rdi + 0x28], 0x5f
sub byte [rdi + 0x28], 6
sub byte [rdi + 0x28], 0x36
cmp byte [rdi + 0x29], r12b
jne 0x14005f9b6
lea rbx, [0x140004a88]
xchg rbx, rcx
mov qword [rbp - 0x10], rcx
xchg rcx, rbx
lea rcx, [rbp - 8]
call fcn.1401fdda8
mov qword [rbp - 0x30], rbx
lea rcx, [rbp - 0x28]
call fcn.1401fdda8
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x14005f395
inc rdx
xchg rbx, rcx
mov rbx, qword [rbp - 0x70]
xchg rcx, rbx
xchg rcx, r13
mov rax, r13
xchg rcx, r13
cmp rdx, 0x1000
jb 0x14005f390
nop
add rdx, 0x15b7296f
sub rdx, 0x15b72948
mov rcx, qword [rcx - 8]
sub rax, rcx
nop
add rax, 0xfffffffff8a7c7fe
sub rax, 0xfffffffff8a7c806
cmp rax, 0x1f
jbe 0x14005f390
push rax
call fcn.1408fcfc2
int3
call fcn.1401fcd2c
movdqa xmm0, xmmword [0x140002c80]
xchg rbp, r9
movdqu xmmword [r9 - 0x60], xmm0
xchg r9, rbp
mov byte [rbp - 0x70], 0x43
xor byte [rbp - 0x70], 0x75
sub byte [rbp - 0x70], 0xe
xor byte [rbp - 0x70], 0x3f
add byte [rbp - 0x70], 0x14
xor byte [rbp - 0x70], 0x6b
xor byte [rbp - 0x70], 0x40
xchg rdx, r14
mov r14, qword [rbp - 0x78]
xchg r14, rdx
cmp rdx, 0x10
jb 0x14005f423
inc rdx
mov rcx, qword [rsp + 0x70]
xchg rcx, rsi
mov rax, rsi
xchg rcx, rsi
cmp rdx, 0x1000
jb 0x14005f41d
neg rdx
add rdx, 0xffffffffffffffd9
neg rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
sub rax, 8
cmp rax, 0x1f
jbe 0x14005f41d
call fcn.1404dcf13
int3
call fcn.1401fcd2c
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x14005f47a
inc rdx
mov rcx, qword [rsp + 0x50]
xchg rcx, rax
mov rcx, rax
xchg rcx, rax
cmp rdx, 0x1000
jb 0x14005f474
neg rdx
add rdx, 0xffffffffffffffd9
neg rdx
mov rcx, qword [rcx - 8]
sub rax, rcx
sub rax, 8
cmp rax, 0x1f
jbe 0x14005f474
call fcn.1406dc6b4
int3
call fcn.1401fcd2c
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x14005f4d0
inc rdx
xchg rdi, rcx
mov rdi, qword [rbp - 0x50]
xchg rdi, rcx
xchg rcx, r15
mov rax, r15
xchg rcx, r15
cmp rdx, 0x1000
jb 0x14005f4cb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
sub rax, 8
cmp rax, 0x1f
jbe 0x14005f4cb
push rdi
call fcn.140b1d7e5
int3
call fcn.1401fcd2c
xor al, al
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
nop
add rsp, 8
mov r15, qword [rsp - 8]
push rcx
push rbx
push rcx
push rdx
xchg qword [rsp + 0x20], r14
add rsp, 0x28
nop
add rsp, 8
xchg qword [rsp - 8], r12
nop
mov rdi, qword [rsp]
add rsp, 8
nop
add rsp, 8
mov rbp, qword [rsp - 8]
ret
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xchg rsi, r12
mov qword [rsp + 0x40], rsi
xchg r12, rsi
mov qword [rsp + 0x48], 0x54b2d5a6
add qword [rsp + 0x48], 0x23a7e975
sub qword [rsp + 0x48], 0x5c6c071d
xor qword [rsp + 0x48], 0x7e26f6b7
xor qword [rsp + 0x48], 0x7901c4bb
sub qword [rsp + 0x48], 0x1cc985e3
mov byte [rsp + 0x30], r12b
xchg r9, rdi
mov r9, qword [rbx + 0x28]
xchg rdi, r9
xchg r11, rdi
mov rcx, r11
xchg r11, rdi
cmp rsi, 0xffffffffffffffff
je 0x14005f7f1
xchg rdx, rsi
mov rsi, rdx
xchg rsi, rdx
call fcn.1400704b0
test al, al
je 0x14005f9a2
xchg r12, r15
mov r14, r15
xchg r15, r12
test r15d, r15d
je 0x14005f702
test rsi, rsi
je 0x14005f670
nop
mov r8b, 0x2d
xor r8b, 6
add r8b, 0x10
sub r8b, 0x36
add r8b, 0x43
sub r8b, 0x3d
xor r8b, 4
add r8b, 0x20
xor r8b, 0x2e
lea rdx, [rsp + 0x30]
xchg rcx, rbx
mov rbx, rcx
xchg rbx, rcx
call fcn.1400639d0
test al, al
je 0x14005f9a2
mov rdi, qword [rbx + 0x28]
mov rax, qword [rdi + 0x10]
mov rax, qword [rax - 8]
lea rdx, [rsp + 0x30]
xchg r15, rcx
mov r15, qword [rax + 8]
xchg rcx, r15
call fcn.14004e3b0
mov qword [rdi + 0x20], rax
mov edx, r15d
xchg rcx, r13
mov r13, rbx
xchg r13, rcx
call fcn.140064980
test al, al
je 0x14005f9a2
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], r12
mov byte [rax], 0x60
xor byte [rax], 0x6d
add byte [rax], 0x44
sub byte [rax], 0x22
add byte [rax], 0x3f
xor byte [rax], 2
xor byte [rax], 0x2b
xor byte [rax], 0x1d
sub byte [rax], 0x5a
inc r14
cmp r14, rsi
jb 0x14005f5b8
xchg r15, rax
mov r15, qword [rbx + 0x28]
xchg r15, rax
nop
sub qword [rax + 0x10], 0xffffffffe3b24b6e
add qword [rax + 0x10], 0xffffffffe3b24b66
mov bl, 0x11
add bl, 0x43
sub bl, 0x45
xor bl, 0x7a
sub bl, 0x3b
sub bl, 0x39
xchg rdx, rbp
mov rbp, qword [rsp + 0x48]
xchg rdx, rbp
cmp rdx, 0x10
jb 0x14005f9ae
inc rdx
xchg r8, rcx
mov r8, qword [rsp + 0x30]
xchg rcx, r8
xchg r12, rax
mov r12, rcx
xchg r12, rax
cmp rdx, 0x1000
jb 0x14005f9a9
nop
add rdx, 0x60d18482
sub rdx, 0x60d1845b
mov rcx, qword [rcx - 8]
sub rax, rcx
neg rax
add rax, 8
neg rax
cmp rax, 0x1f
jbe 0x14005f9a9
push rcx
call fcn.1408a6685
nop
test rsi, rsi
je 0x14005f670
nop dword [rax]
nop word [rax + rax]
mov r8b, 0x66
xor r8b, 0x1f
sub r8b, 0x5c
xor r8b, 0x23
xor r8b, 0x53
xor r8b, 0x4e
add r8b, 0x21
xor r8b, 0x45
lea rdx, [rsp + 0x30]
xchg r8, rcx
mov r8, rbx
xchg rcx, r8
call fcn.1400639d0
test al, al
je 0x14005f9a2
mov rdi, qword [rbx + 0x28]
mov rax, qword [rdi + 0x10]
mov rax, qword [rax - 8]
lea rdx, [rsp + 0x30]
xchg rcx, r10
mov r10, qword [rax + 8]
xchg rcx, r10
call fcn.14004e3b0
xchg r15, rax
mov qword [rdi + 0x20], r15
xchg r15, rax
mov dl, 0x43
xor dl, 0x6d
add dl, 7
xor dl, 0x1d
sub dl, 0x18
add dl, 0x64
xor dl, 0x6e
sub dl, 0x19
xchg rbx, rcx
mov rbx, rcx
xchg rcx, rbx
call fcn.14006c130
test al, al
je 0x14005f9a2
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
xchg r12, rsi
mov qword [rsp + 0x40], rsi
xchg rsi, r12
mov byte [rax], 0x32
sub byte [rax], 0x32
add byte [rax], 0x5c
add byte [rax], 8
sub byte [rax], 0x19
sub byte [rax], 0x49
xor byte [rax], 0x20
sub byte [rax], 0x1d
sub byte [rax], 5
inc r14
cmp r14, rsi
jb 0x14005f71a
jmp 0x14005f670
mov byte [rbp + 0x88], 0x4e
xor byte [rbp + 0x88], 0x12
sub byte [rbp + 0x88], 0x44
sub byte [rbp + 0x88], 0x17
xor byte [rbp + 0x88], 0x60
add byte [rbp + 0x88], 3
sub byte [rbp + 0x88], 2
sub byte [rbp + 0x88], 0x13
sub byte [rbp + 0x88], 0x4e
lea rdx, [rbp + 0x88]
call fcn.1400482d0
xchg r10, rax
mov qword [rbp + 0x88], r10
xchg r10, rax
xchg rdx, r12
mov r12, qword [rdi + 0x10]
xchg r12, rdx
cmp rdx, qword [rdi + 0x18]
je 0x14005f870
mov qword [rdx], rax
neg qword [rdi + 0x10]
add qword [rdi + 0x10], 0xfffffffffffffff8
neg qword [rdi + 0x10]
jmp 0x14005f880
lea r8, [rbp + 0x88]
lea rcx, [rdi + 8]
call fcn.140033110
cmp dword [rbx + 0x10], 0x7d
je 0x14005f670
nop word [rax + rax]
xor r8d, r8d
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.1400639d0
test al, al
je 0x14005f9a2
mov rdi, qword [rbx + 0x28]
mov rax, qword [rdi + 0x10]
mov rax, qword [rax - 8]
lea rdx, [rsp + 0x30]
xchg r9, rcx
mov r9, qword [rax + 8]
xchg r9, rcx
call fcn.14004e3b0
mov qword [rdi + 0x20], rax
mov dl, 0x74
xor dl, 0x48
add dl, 0x1c
sub dl, 0x3e
sub dl, 0xb
xor dl, 0x14
add dl, 0x48
sub dl, 0x62
xchg rcx, rdx
mov rdx, rbx
xchg rcx, rdx
call fcn.14006c130
test al, al
je 0x14005f9a2
inc qword [rbx + 0x18]
xchg r15, rax
mov r15, qword [rbx]
xchg r15, rax
cmp rax, qword [rbx + 8]
je 0x14005f92c
movzx ecx, byte [rax]
inc rax
mov qword [rbx], rax
mov dword [rbx + 0x10], ecx
cmp ecx, 0x4e
je 0x14005f8fd
jmp 0x14005f96b
mov dword [rbx + 0x10], 0x62dd3d7b
sub dword [rbx + 0x10], 0x5c27a8e5
xor dword [rbx + 0x10], 0x98fc512
xor dword [rbx + 0x10], 0x3773ce7f
xor dword [rbx + 0x10], 0x4125690e
sub dword [rbx + 0x10], 0xc149b0e
xor dword [rbx + 0x10], 0x5e03616e
xor dword [rbx + 0x10], 0x111bfe54
add dword [rbx + 0x10], 0xddbf3b22
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovae rax, qword [rsp + 0x30]
mov qword [rsp + 0x40], r12
mov byte [rax], 0xf
add byte [rax], 0x1a
add byte [rax], 0x40
add byte [rax], 3
sub byte [rax], 0x2d
sub byte [rax], 0x3f
cmp dword [rbx + 0x10], 0x7d
jne 0x14005f894
jmp 0x14005f670
xor bl, bl
jmp 0x14005f69a
call fcn.1401fcd2c
movzx eax, bl
jmp 0x14005f4d2
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.14004bf60
lea rdx, [0x1402156e0]
lea rcx, [rbp + 0x10]
call fcn.1401fddae
int3