Function at 0x1400d8720
Capabilities:
Authenticate hmac

Disassembly:
xchg rsp, rax
mov rsp, rax
xchg rsp, rax
mov qword [rax + 0x18], r8
xchg rsi, rdx
mov qword [rax + 0x10], rsi
xchg rsi, rdx
mov qword [rax + 8], rcx
mov dword [rsp - 0x10], esp
push rbp
nop
sub rsp, 8
mov qword [rsp], rbx
nop
mov qword [rsp - 8], rsi
sub rsp, 8
nop
push r9
mov qword [rsp], rdi
push r12
mov dword [rsp - 0x38], 0x4d738770
nop
mov qword [rsp - 8], r13
sub rsp, 8
nop
sub rsp, 8
mov qword [rsp], r14
push r15
lea rbp, [rax - 0xe8]
xchg rbp, rbp
add rsp, 0x2239a953
sub rsp, 0x2239aafb
movzx edi, byte [r9 + 0x80]
mov rbx, rbx
xor r15d, r15d
xchg r15, r9
mov rsi, r15
xchg r9, r15
xchg r8, r14
mov r8, r14
xchg r14, r8
test edi, edi
je 0x1400d9278
xchg rbx, rbx
sub edi, 1
je 0x1400d91e7
sub edi, 1
mov rcx, rcx
je 0x1400d91a5
sub edi, 1
je 0x1400d9186
sub edi, 1
xchg r15, r15
je 0x1400d9157
sub edi, 1
je 0x1400d90e1
cmp edi, 1
mov dword [rsp - 0x40], 0x6f2e548c
jne 0x1400d90c4
mov eax, dword [r8]
cmp eax, 6
jne 0x1400d90d1
mov dword [rsp - 0x24], 0x688af8c5
lea rbx, [r9 + 0x60]
mov byte [rbp + 0x108], dil
xchg rdx, rax
mov rdx, qword [rbx + 0x18]
xchg rdx, rax
lea rcx, [rsp + 0x38]
xchg rdx, rsp
mov rsp, rbx
xchg rdx, rsp
mov qword [rsp + 0x50], rax
mov r13b, dil
mov dword [rsp - 0x1c], edi
xchg r15, r9
mov qword [rsp + 0x38], r9
xchg r9, r15
mov qword [rsp + 0x40], r15
mov dword [rsp - 0x40], ecx
xchg rbp, r15
mov qword [rsp + 0x48], rbp
xchg r15, rbp
call fcn.1400d825c
xchg rdi, rdi
xchg rdi, rcx
mov rdi, qword [rbx]
xchg rdi, rcx
test rcx, rcx
je 0x1400d8889
call fcn.140098be0
xchg rcx, rcx
xchg r12, r15
mov qword [rbx], r12
xchg r15, r12
mov r12, qword [rsp + 0x40]
mov rsp, rsp
mov rcx, r15
mov qword [rbx + 0x10], r15
mov edx, 0x711bb1df
sub edx, 0x478ce33
sub edx, 0x5e67bf62
xor edx, 0x28c1df7d
sub edx, 0x26fafaaf
xchg rbp, r15
mov qword [rbx + 8], rbp
xchg r15, rbp
mov qword [rsp + 0x58], rcx
cmp dword [r14 + 8], r15d
xchg rbp, rbp
jbe 0x1400d8faa
xchg r12, rax
mov r12, qword [r14 + 0x10]
xchg r12, rax
lea rcx, [rcx + rcx*2]
lea r13, [rax + rcx*8]
mov r15, r15
mov eax, dword [r13]
xchg r13, rcx
mov qword [rsp + 0x68], rcx
xchg rcx, r13
cmp eax, 6
jne 0x1400d8b2d
xchg rdi, rbx
mov rbx, qword [rsp + 0x40]
xchg rbx, rdi
test rdi, rdi
mov dword [rsp - 0x44], 0x67002328
je 0x1400d8f8e
mov rcx, rdx
call fcn.140098a70
xchg rsp, rsp
test rax, rax
je 0x1400d894c
mov dl, 0x18
add dl, 0x34
sub dl, 0x1d
sub dl, 0x2a
xchg r9, rax
mov rcx, r9
xchg r9, rax
call fcn.1400d5e20
mov dword [rsp - 0x20], edi
jmp 0x1400d8953
xchg rsp, rax
mov rsp, r15
xchg rsp, rax
lea rdx, [rsp + 0x30]
xchg rbx, rax
mov qword [rsp + 0x30], rbx
xchg rbx, rax
xchg rcx, r11
mov r11, rbx
xchg rcx, r11
call fcn.14009b968
mov dword [rsp - 0x14], 0x2a41a8a7
test rdi, rdi
mov rcx, qword [rax]
xchg r9, rax
mov r9, qword [rsp + 0x38]
xchg r9, rax
cmovne r15, rax
je 0x1400d899c
lea r12, [rax + rdi*8]
xchg r10, r10
jmp 0x1400d89a3
xor r12d, r12d
mov dword [rsp - 0x1c], esp
lea r9, [rcx + 0x60]
xchg r9, r14
mov qword [rsp + 0x30], r14
xchg r9, r14
cmp r15, r12
je 0x1400d8aed
mov r14, qword [rbp + 0xf0]
mov dword [rsp - 0x28], edi
mov rbx, r9
xchg r8, r13
mov r8, qword [r15]
xchg r8, r13
mov ecx, 0x38d21d12
xor ecx, 0x5483ca3
add ecx, 0x3db4b16
sub ecx, 0x2dfcdb90
sub ecx, 0x137890af
call fcn.140098a70
test rax, rax
je 0x1400d8a17
mov rsi, rsi
mov dl, byte [r13 + 0x80]
xchg rcx, rax
mov rax, rcx
xchg rcx, rax
call fcn.1400d5e20
mov dword [rsp - 0x2c], ebp
lea rdx, [rsp + 0x60]
xchg rcx, rax
mov qword [rsp + 0x60], rcx
xchg rcx, rax
xchg rbx, rcx
mov rbx, rcx
xchg rcx, rbx
call fcn.14009b968
mov dword [rsp - 0x18], esi
xchg rdi, r11
mov r11, qword [rax]
xchg r11, rdi
mov al, byte [rdi + 0x80]
xchg r14, r14
sub al, 5
cmp al, 1
ja 0x1400d8ab6
mov r9, r9
lea rdx, [r13 + 0x60]
lea rcx, [rdi + 0x60]
call fcn.1400d825c
mov dword [rsp - 0x20], edx
xor eax, eax
lea rdx, [rdi + 0x60]
mov qword [rsp + 0x70], rax
mov dword [rsp - 0x24], 0x316276a
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x78], rax
xchg r11, rax
mov qword [rbp - 0x80], r11
xchg r11, rax
xchg r14, rax
mov r14, qword [rdi + 0x78]
xchg r14, rax
mov qword [rbp - 0x78], rax
xchg rbx, rbx
call fcn.1400d825c
lea rdx, [rsp + 0x70]
xchg r11, rcx
mov r11, r14
xchg rcx, r11
call fcn.1400d9854
xchg r9, r9
add r15, 8
cmp r15, r12
jne 0x1400d89c9
xchg rcx, r14
mov rcx, qword [rbp + 0x100]
xchg rcx, r14
lea rbx, [rsi + 0x60]
xchg r8, r8
xchg r9, rdx
mov rdx, qword [rsp + 0x30]
xchg r9, rdx
xchg r13, rbp
mov rbp, qword [rsp + 0x68]
xchg r13, rbp
mov rax, qword [rbp + 0x110]
mov dword [rsp - 0xc], edx
mov r8, r13
xchg r15, rdx
mov r15, qword [rbp + 0xf8]
xchg r15, rdx
mov rcx, qword [rbp + 0xf0]
xchg r8, rax
mov qword [rsp + 0x20], r8
xchg r8, rax
call fcn.1400d85b4
xchg r11, r12
mov r11, qword [rsp + 0x40]
xchg r12, r11
jmp 0x1400d8f33
test r12, r12
mov r14, r14
jne 0x1400d8f93
cmp eax, 5
jne 0x1400d8bf1
xchg rcx, r9
mov r9, rdx
xchg rcx, r9
call fcn.140098a70
mov rsi, rsi
test rax, rax
je 0x1400d8b73
xor edx, edx
xchg rcx, r8
mov r8, rax
xchg rcx, r8
call fcn.1400d5e20
xchg r15, rax
mov rax, r15
xchg r15, rax
cmp qword [rbx + 8], 0
xchg rcx, rcx
je 0x1400d8e81
xchg rbp, rcx
mov rbp, qword [rbx + 0x10]
xchg rbp, rcx
cmp qword [rbx + 8], rcx
jb 0x1400d8e79
add rcx, qword [rbx + 0x18]
xchg r14, r14
mov qword [rbx + 0x10], rcx
shl rcx, 3
call fcn.140098eb0
xor edx, edx
mov dword [rsp - 0x14], 0x59e43237
xchg r13, rdi
mov r13, rax
xchg r13, rdi
cmp qword [rbx + 8], rdx
mov dword [rsp - 0x2c], esi
jbe 0x1400d8e51
mov rax, qword [rbx]
xchg rcx, r15
mov r15, qword [rax + rdx*8]
xchg r15, rcx
mov qword [rdi + rdx*8], rcx
inc rdx
mov dword [rsp - 0x28], edi
cmp rdx, qword [rbx + 8]
jb 0x1400d8bca
jmp 0x1400d8e51
cmp eax, 8
mov r11, r11
jne 0x1400d8cbb
xchg rbx, rdx
mov rcx, rbx
xchg rdx, rbx
call fcn.140098a70
test rax, rax
xchg r13, r13
je 0x1400d8c3d
mov dl, 0x1e
xor dl, 0xe
add dl, 0x60
sub dl, 0x6f
xchg r12, rax
mov rcx, r12
xchg r12, rax
call fcn.1400d5e20
mov dword [rsp - 0x14], 0x2d97fecd
xchg r15, rax
mov rax, r15
xchg r15, rax
cmp qword [rbx + 8], 0
je 0x1400d8e81
xchg rcx, rsi
mov rsi, qword [rbx + 0x10]
xchg rsi, rcx
cmp qword [rbx + 8], rcx
xchg r10, r10
jb 0x1400d8e79
add rcx, qword [rbx + 0x18]
xchg r8, rcx
mov qword [rbx + 0x10], r8
xchg r8, rcx
shl rcx, 1
shl rcx, 2
call fcn.140098eb0
mov r13, r13
xor edx, edx
xchg r9, rdi
mov r9, rax
xchg r9, rdi
cmp qword [rbx + 8], rdx
xchg rbp, rbp
jbe 0x1400d8e51
mov rax, qword [rbx]
xchg rcx, r8
mov r8, qword [rax + rdx*8]
xchg rcx, r8
mov qword [rdi + rdx*8], rcx
mov dword [rsp - 0x18], esp
inc rdx
cmp rdx, qword [rbx + 8]
jb 0x1400d8c94
jmp 0x1400d8e51
cmp eax, 1
jne 0x1400d8d82
xchg rdx, rdx
mov rcx, rdx
call fcn.140098a70
test rax, rax
je 0x1400d8d02
mov dword [rsp - 0x24], edx
mov dl, 0x2f
add dl, 0x22
add dl, 0xd
sub dl, 0x5c
xchg rcx, r11
mov r11, rax
xchg rcx, r11
call fcn.1400d5e20
mov dword [rsp - 0x18], ebx
xchg r9, r15
mov r9, rax
xchg r15, r9
cmp qword [rbx + 8], 0
mov dword [rsp - 0x1c], esp
je 0x1400d8e81
mov rcx, qword [rbx + 0x10]
cmp qword [rbx + 8], rcx
mov dword [rsp - 0x1c], 0x53775763
jb 0x1400d8e79
add rcx, qword [rbx + 0x18]
xchg rcx, rdx
mov qword [rbx + 0x10], rdx
xchg rcx, rdx
shl rcx, 3
mov dword [rsp - 0x3c], 0x23e8a54b
call fcn.140098eb0
xor edx, edx
xchg rdi, r12
mov r12, rax
xchg rdi, r12
cmp qword [rbx + 8], rdx
xchg r15, r15
jbe 0x1400d8e51
mov rax, qword [rbx]
mov rcx, qword [rax + rdx*8]
mov dword [rsp - 0x28], edx
mov qword [rdi + rdx*8], rcx
inc rdx
cmp rdx, qword [rbx + 8]
jb 0x1400d8d5e
mov rsp, rsp
jmp 0x1400d8e51
nop
sub eax, 0x9a5dbbf4
add eax, 0x9a5dbbf2
cmp eax, 1
ja 0x1400d8f93
xchg r14, r14
xchg rcx, rdx
mov rdx, rcx
xchg rcx, rdx
call fcn.140098a70
test rax, rax
je 0x1400d8dd9
mov dword [rsp - 0x28], 0x6662299
mov dl, 0x15
add dl, 0x36
xor dl, 0x38
xor dl, 0x77
xchg rdx, rax
mov rcx, rdx
xchg rdx, rax
call fcn.1400d5e20
mov rdx, rdx
xchg r9, rax
mov r15, r9
xchg r9, rax
cmp qword [rbx + 8], 0
je 0x1400d8e81
mov dword [rsp - 0xc], edx
xchg r9, rcx
mov r9, qword [rbx + 0x10]
xchg rcx, r9
cmp qword [rbx + 8], rcx
mov dword [rsp - 0x3c], 0x7a278140
jb 0x1400d8e79
add rcx, qword [rbx + 0x18]
mov qword [rbx + 0x10], rcx
shl rcx, 3
mov dword [rsp - 0x38], ebx
call fcn.140098eb0
xor edx, edx
xchg rcx, rdi
mov rcx, rax
xchg rcx, rdi
cmp qword [rbx + 8], rdx
xchg rsi, rsi
jbe 0x1400d8e51
mov rax, qword [rbx]
mov rcx, qword [rax + rdx*8]
mov dword [rsp - 0x3c], ebp
mov qword [rdi + rdx*8], rcx
inc rdx
cmp rdx, qword [rbx + 8]
mov dword [rsp - 0x2c], ebx
jb 0x1400d8e31
xchg rcx, r12
mov r12, qword [rbx]
xchg rcx, r12
test rcx, rcx
je 0x1400d8e6b
call fcn.140098be0
xchg r11, r11
xchg rcx, rdi
mov qword [rbx], rcx
xchg rcx, rdi
jmp 0x1400d8ec6
mov rdi, qword [rbx]
jmp 0x1400d8ec6
xchg rdi, r10
mov r10, qword [rbx]
xchg rdi, r10
test rdi, rdi
mov dword [rsp - 0x1c], esi
jne 0x1400d8ec6
xchg r10, rcx
mov r10, qword [rbx + 0x18]
xchg rcx, r10
mov qword [rbx + 0x10], rcx
xchg r14, r14
shl rcx, 1
shl rcx, 2
call fcn.140098eb0
mov dword [rsp - 0x14], ebp
xchg rsp, rax
mov rdi, rsp
xchg rsp, rax
xchg r8, rax
mov qword [rbx], r8
xchg r8, rax
xchg rdi, rcx
mov rdi, qword [rbx + 8]
xchg rcx, rdi
lea rax, [rcx + 1]
mov dword [rsp - 0x40], esp
mov qword [rbx + 8], rax
xchg r14, r15
mov qword [rdi + rcx*8], r14
xchg r15, r14
test r15, r15
je 0x1400d8f93
mov dword [rsp - 0x10], 0xbbf0f33
mov rax, qword [rbp + 0x110]
xchg r9, r15
mov r15, r9
xchg r9, r15
mov rdx, qword [rbp + 0xf8]
mov dword [rsp - 0x38], 0x3b52201d
xchg r13, r8
mov r13, r8
xchg r8, r13
mov rcx, qword [rbp + 0xf0]
xchg r11, r11
mov qword [rsp + 0x20], rax
call fcn.1400d8720
xor r15d, r15d
test al, al
mov rbx, rbx
je 0x1400d8f93
mov rcx, qword [rsp + 0x58]
mov eax, dword [r14 + 8]
inc rcx
mov dword [rsp - 0x20], 0x47ce5ecc
xchg r10, rcx
mov qword [rsp + 0x58], r10
xchg r10, rcx
cmp rcx, rax
jae 0x1400d8fa3
xchg rdi, rdi
mov edx, 0x7577c4f4
sub edx, 0x1a74e113
sub edx, 0x560a3ca0
add edx, 0x17e570a7
xor edx, 0x1cde1760
jmp 0x1400d88d1
mov r12, qword [rsp + 0x40]
mov r13b, r15b
mov dword [rsp - 0x24], 0x5bee1713
jmp 0x1400d8faa
mov r13b, byte [rbp + 0x108]
mov rax, qword [rsp + 0x38]
xchg rbx, rbx
test r12, r12
xchg rsi, r15
mov rbx, rsi
xchg rsi, r15
cmovne rbx, rax
je 0x1400d8fd4
mov dword [rsp - 0x24], 0x69e9ff33
lea r15, [rax + r12*8]
cmp rbx, r15
je 0x1400d9057
or rdi, 0xffffffffffffffff
xchg rdx, rdx
mov r14, qword [rbx]
add dword [r14 + 0x84], edi
cmp dword [r14 + 0x84], 0
mov dword [rsp - 0x3c], edx
jg 0x1400d903d
xchg rcx, r14
mov r14, rcx
xchg r14, rcx
call fcn.1400d5fd0
mov dword [rsp - 0x18], 0x4343ce06
mov edx, 0x317c1e2d
add edx, 0x4bd14313
xor edx, 0x367d3b0c
sub edx, 0x4b3059c4
mov rcx, r14
mov dword [rsp - 0x44], 0x44f55d67
call fcn.140098a80
sub rbx, 0xfffffffffffffff8
cmp rbx, r15
jne 0x1400d8fe4
mov dword [rsp - 0x20], 0x31d5a1d9
mov rax, qword [rsp + 0x38]
test r13b, r13b
jne 0x1400d9081
test rax, rax
mov rcx, rcx
je 0x1400d9271
mov rcx, rax
call fcn.140098be0
mov dword [rsp - 0x28], 0x18286872
jmp 0x1400d9271
mov byte [rsi + 0x81], 0x32
xor byte [rsi + 0x81], 0x13
sub byte [rsi + 0x81], 0x1f
xor byte [rsi + 0x81], 2
xor byte [rsi + 0x81], 1
test rax, rax
xchg rsi, rsi
je 0x1400d90c4
xchg rdx, rax
mov rcx, rdx
xchg rdx, rax
call fcn.140098be0
mov dword [rsp - 0x14], 0x1e3e0314
mov al, 0x3f
xor al, 0x1b
xor al, 0x24
add al, 1
jmp 0x1400d9387
test eax, eax
jne 0x1400d9271
mov r13, r13
jmp 0x1400d90c4
cmp dword [r8], 6
jne 0x1400d914f
mov rax, qword [rbp + 0x110]
mov dword [rsp - 0x1c], 0x377e91dc
nop
add r9, 0x5132724
sub r9, 0x51326c4
mov qword [rsp + 0x20], rax
mov dword [rsp - 0x14], esp
call fcn.1400d85b4
test al, al
je 0x1400d9271
mov dword [rsp - 0xc], 0x67ee704b
mov byte [rsi + 0x81], 0x1b
add byte [rsi + 0x81], 0x4c
sub byte [rsi + 0x81], 0x65
add byte [rsi + 0x81], 0x6c
sub byte [rsi + 0x81], 0x6d
jmp 0x1400d90c4
cmp dword [r8], r15d
jmp 0x1400d90d3
mov eax, dword [r8]
mov dword [rsp - 0x3c], edx
neg eax
sub eax, 0xfffffffe
neg eax
cmp eax, 1
mov r10, r10
ja 0x1400d9271
xchg rdx, rax
mov rdx, qword [r8 + 8]
xchg rdx, rax
xchg rdi, rax
mov qword [r9 + 0x58], rdi
xchg rdi, rax
jmp 0x1400d91ba
mov eax, dword [r8]
sub eax, 2
cmp eax, 1
mov r13, r13
ja 0x1400d9271
mov eax, dword [r8 + 8]
mov dword [r9 + 0x54], eax
jmp 0x1400d91ba
cmp dword [r8], 1
mov r13, r13
jne 0x1400d9271
mov al, byte [r8 + 8]
mov byte [r9 + 0x50], al
mov byte [r9 + 0x81], 0x20
sub byte [r9 + 0x81], 8
add byte [r9 + 0x81], 0x39
xor byte [r9 + 0x81], 0x22
sub byte [r9 + 0x81], 0x72
jmp 0x1400d90c4
cmp dword [r8], 8
je 0x1400d9203
mov dword [rsp - 0x40], 0x576804d9
cmp dword [r8], 5
jne 0x1400d9264
mov rcx, qword [r9 + 0x40]
mov dword [rsp - 0x10], esp
mov rbx, qword [r8 + 0x10]
mov edi, dword [r8 + 8]
test rcx, rcx
mov dword [rsp - 0x1c], ebp
je 0x1400d9225
call fcn.140098a80
mov qword [rsi + 0x40], r15
xchg rcx, rdi
mov rdi, rcx
xchg rdi, rcx
mov dword [rsi + 0x48], edi
mov r9, r9
call fcn.140098a70
mov r8, rdi
xchg rdi, rax
mov qword [rsi + 0x40], rdi
xchg rdi, rax
xchg rbx, r12
mov rdx, r12
xchg rbx, r12
xchg rcx, r12
mov r12, rax
xchg rcx, r12
call fcn.1400990c0
jmp 0x1400d9127
cmp dword [r8], r15d
mov dword [rsp - 0x30], esi
je 0x1400d90c4
xor al, al
jmp 0x1400d9387
mov eax, dword [r8]
mov dword [rsp - 0x18], 0x573481e8
cmp eax, 5
jne 0x1400d937f
movsxd rbx, dword [r8 + 8]
lea rax, [rbp - 0x68]
mov r12, r12
mov r14, qword [r8 + 0x10]
lea rcx, [rbp - 0x68]
mov r12d, 0x4b7fdda5
sub r12d, 0x18b037c4
add r12d, 0x383a0a30
sub r12d, 0xddae3f7
sub r12d, 0x5d2ecb1a
mov qword [rbp - 0x70], rax
mov r8d, r12d
xor edx, edx
mov dword [rsp - 0x24], esi
call fcn.1400991f0
or rdi, 0xffffffffffffffff
cmp rbx, rdi
mov rdx, rdx
jne 0x1400d92fb
inc rdi
cmp byte [r14 + rdi], r15b
jne 0x1400d92e3
mov dword [rsp - 0x1c], 0x6f9b2252
mov rbx, rdi
xchg rbx, r8
mov rbx, r8
xchg rbx, r8
lea rcx, [rbp - 0x70]
xchg r10, r14
mov rdx, r10
xchg r14, r10
call fcn.140091060
mov dword [rsp - 0x34], 0x741469b7
mov rdx, qword [rbp - 0x70]
mov rcx, rsi
call fcn.140053b20
mov dword [rsp - 0x44], 0x163a6ace
xchg rsi, rcx
mov rsi, qword [rbp - 0x70]
xchg rcx, rsi
lea rax, [rbp - 0x68]
mov byte [rsi + 0x81], 0
add byte [rsi + 0x81], 0x46
xor byte [rsi + 0x81], 0x5e
sub byte [rsi + 0x81], 0x17
cmp rcx, rax
jne 0x1400d90b7
lea rdi, [rbp - 0x68]
mov dword [rsp - 0x14], esi
xor eax, eax
xchg rcx, r15
mov r15, r12
xchg r15, rcx
rep stosb byte [rdi], al
jmp 0x1400d90c4
test eax, eax
sete al
xchg r13, r13
add rsp, 0x1a8
nop
mov r15, qword [rsp]
add rsp, 8
nop
mov r14, qword [rsp]
add rsp, 8
nop
mov r13, qword [rsp]
add rsp, 8
pop r12
mov dword [rsp - 0x34], 0x7a2aed1a
nop
add rsp, 8
mov rdi, qword [rsp - 8]
pop rsi
mov dword [rsp - 0x3c], 0x3c33aa55
nop
add rsp, 8
mov rbx, qword [rsp - 8]
nop
mov rbp, qword [rsp]
add rsp, 8
ret