Function at 0x1400d81a8
Capabilities:
Authenticate hmac

Disassembly:
xchg rsp, r8
mov rax, r8
xchg rsp, r8
xchg rbx, r8
mov qword [rax + 0x18], rbx
xchg rbx, r8
xchg r9, rdx
mov qword [rax + 0x10], r9
xchg rdx, r9
mov qword [rax + 8], rcx
nop
mov qword [rsp - 8], rbp
sub rsp, 8
push rbx
nop
mov qword [rsp - 8], rsi
sub rsp, 8
push rdi
nop
sub rsp, 8
mov qword [rsp], r12
push r13
mov r13, r13
push rcx
mov qword [rsp], r14
nop
mov qword [rsp - 8], r15
sub rsp, 8
lea rbp, [rax - 0xe8]
mov rsp, rsp
add rsp, 0xfffffffffffffe58
movzx edi, byte [r9 + 0x80]
xor r15d, r15d
xchg r15, r9
mov rsi, r15
xchg r9, r15
xchg r14, r8
mov r8, r14
xchg r8, r14
test edi, edi
xchg rdx, rdx
je 0x1400d8cbc
sub edi, 1
je 0x1400d8c28
mov dword [rsp - 0x18], 0x2c1bc8ea
sub edi, 1
je 0x1400d8bed
sub edi, 1
mov rsi, rsi
je 0x1400d8bcb
sub edi, 1
je 0x1400d8ba3
mov rbx, rbx
sub edi, 1
je 0x1400d8b39
cmp edi, 1
mov dword [rsp - 0x38], 0x2ccf0761
jne 0x1400d8b1d
mov eax, dword [r8]
cmp eax, 6
xchg rsi, rsi
jne 0x1400d8b2c
lea rbx, [r9 + 0x60]
mov byte [rbp + 0x108], dil
xchg rdx, rdx
xchg r13, rax
mov r13, qword [rbx + 0x18]
xchg r13, rax
lea rcx, [rsp + 0x38]
mov r12, r12
mov rdx, rbx
mov qword [rsp + 0x50], rax
mov r13b, dil
xchg rcx, rcx
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r15
mov dword [rsp - 0x20], edx
call fcn.1400d7d34
xchg r14, rcx
mov r14, qword [rbx]
xchg rcx, r14
test rcx, rcx
je 0x1400d82f2
mov dword [rsp - 0x38], ebx
call fcn.1400992c0
mov qword [rbx], r15
mov r12, qword [rsp + 0x40]
xchg r12, r12
mov rcx, r15
mov qword [rbx + 0x10], r15
mov edx, 0x36687246
xor edx, 0x55ce377b
add edx, 0x19889e18
sub edx, 0x7d2ee2cd
xchg rsi, r15
mov qword [rbx + 8], rsi
xchg r15, rsi
mov qword [rsp + 0x58], rcx
xchg r9, r9
cmp dword [r14 + 8], r15d
jbe 0x1400d8a03
mov rax, qword [r14 + 0x10]
xchg rbx, rbx
lea rcx, [rcx + rcx*2]
lea r13, [rax + rcx*8]
mov eax, dword [r13]
xchg r8, r13
mov qword [rsp + 0x68], r8
xchg r8, r13
cmp eax, 6
mov r15, r15
jne 0x1400d8591
mov rdi, qword [rsp + 0x40]
test rdi, rdi
mov dword [rsp - 0x1c], 0xdf42ec5
je 0x1400d89ec
xchg rbp, rcx
mov rbp, rdx
xchg rcx, rbp
call fcn.140099140
mov rsp, rsp
test rax, rax
je 0x1400d83ad
mov dl, 0x20
add dl, 0x50
sub dl, 0x46
add dl, 5
xor dl, 0x2a
xchg rcx, rax
mov rax, rcx
xchg rcx, rax
call fcn.1400d6050
jmp 0x1400d83b4
xchg r15, rax
mov r15, rax
xchg r15, rax
lea rdx, [rsp + 0x30]
mov dword [rsp - 0x14], ebp
xchg r12, rax
mov qword [rsp + 0x30], r12
xchg r12, rax
xchg rbx, rcx
mov rbx, rcx
xchg rbx, rcx
call fcn.14009c124
test rdi, rdi
mov rcx, qword [rax]
xchg r8, r8
mov rax, qword [rsp + 0x38]
cmovne r15, rax
je 0x1400d83f9
mov dword [rsp - 0x20], ebx
lea r12, [rax + rdi*8]
jmp 0x1400d83ff
xor r12d, r12d
mov r13, r13
lea r9, [rcx + 0x60]
mov qword [rsp + 0x30], r9
cmp r15, r12
je 0x1400d8548
mov dword [rsp - 0x38], ecx
mov r14, qword [rbp + 0xf0]
xchg rbx, r9
mov r9, rbx
xchg rbx, r9
xchg r13, r14
mov r14, qword [r15]
xchg r14, r13
mov ecx, 0x33ffbd7e
add ecx, 0x3dba8621
sub ecx, 0x5121d066
xor ecx, 0x209873b1
call fcn.140099140
xchg r12, r12
test rax, rax
je 0x1400d8469
mov dl, byte [r13 + 0x80]
mov dword [rsp - 0x34], ebx
mov rcx, rax
call fcn.1400d6050
lea rdx, [rsp + 0x60]
mov rdi, rdi
xchg rcx, rax
mov qword [rsp + 0x60], rcx
xchg rcx, rax
xchg rcx, r13
mov r13, rbx
xchg r13, rcx
call fcn.14009c124
xchg rdi, r14
mov r14, qword [rax]
xchg rdi, r14
mov al, byte [rdi + 0x80]
xchg r12, r12
sub al, 5
cmp al, 1
ja 0x1400d850c
lea rdx, [r13 + 0x60]
xchg r10, r10
lea rcx, [rdi + 0x60]
call fcn.1400d7d34
xor eax, eax
lea rdx, [rdi + 0x60]
mov dword [rsp - 0xc], 0x298af11d
xchg r13, rax
mov qword [rsp + 0x70], r13
xchg r13, rax
lea rcx, [rsp + 0x70]
mov r11, r11
xchg rcx, rax
mov qword [rsp + 0x78], rcx
xchg rcx, rax
xchg r8, rax
mov qword [rbp - 0x80], r8
xchg r8, rax
xchg rbp, rax
mov rbp, qword [rdi + 0x78]
xchg rbp, rax
mov qword [rbp - 0x78], rax
mov dword [rsp - 0x18], edi
call fcn.1400d7d34
lea rdx, [rsp + 0x70]
xchg r13, rcx
mov r13, r14
xchg r13, rcx
call fcn.1400d92c8
nop
add r15, 0x3b196433
sub r15, 0x3b19642b
cmp r15, r12
jne 0x1400d8425
mov r14, r14
mov r14, qword [rbp + 0x100]
lea rbx, [rsi + 0x60]
xchg r8, r9
mov r8, qword [rsp + 0x30]
xchg r9, r8
xchg r13, rdi
mov rdi, qword [rsp + 0x68]
xchg r13, rdi
mov rax, qword [rbp + 0x110]
mov dword [rsp - 0x14], ebx
xchg rcx, r8
mov rcx, r13
xchg r8, rcx
xchg rdx, r11
mov r11, qword [rbp + 0xf8]
xchg rdx, r11
xchg rcx, r9
mov r9, qword [rbp + 0xf0]
xchg r9, rcx
xchg rdi, rax
mov qword [rsp + 0x20], rdi
xchg rdi, rax
call fcn.1400d8050
mov r12, qword [rsp + 0x40]
mov r9, r9
jmp 0x1400d8986
test r12, r12
jne 0x1400d89f4
cmp eax, 5
mov dword [rsp - 0x28], 0x5d5cb20a
jne 0x1400d866b
xchg r9, rdx
mov rcx, r9
xchg r9, rdx
call fcn.140099140
test rax, rax
xchg r10, r10
je 0x1400d85dc
xor edx, edx
xchg rdi, rax
mov rcx, rdi
xchg rdi, rax
call fcn.1400d6050
xchg rsi, r15
mov rsi, rax
xchg r15, rsi
cmp qword [rbx + 8], 0
mov dword [rsp - 0x44], 0x349cfd7c
je 0x1400d88e6
xchg rcx, r15
mov r15, qword [rbx + 0x10]
xchg rcx, r15
cmp qword [rbx + 8], rcx
mov dword [rsp - 0x24], esp
jb 0x1400d88d8
add rcx, qword [rbx + 0x18]
xchg rsi, rcx
mov qword [rbx + 0x10], rsi
xchg rsi, rcx
shl rcx, 2
shl rcx, 1
call fcn.1400995f0
xor edx, edx
mov rcx, rcx
mov rdi, rax
cmp qword [rbx + 8], rdx
jbe 0x1400d88b5
mov rdx, rdx
xchg r15, rax
mov r15, qword [rbx]
xchg r15, rax
xchg rcx, r13
mov r13, qword [rax + rdx*8]
xchg r13, rcx
xchg rcx, rsp
mov qword [rdi + rdx*8], rsp
xchg rcx, rsp
inc rdx
cmp rdx, qword [rbx + 8]
mov dword [rsp - 0x3c], 0xa294a77
jb 0x1400d8636
jmp 0x1400d88b5
cmp eax, 8
jne 0x1400d872b
xchg rcx, rdi
mov rdi, rdx
xchg rdi, rcx
call fcn.140099140
test rax, rax
xchg rdx, rdx
je 0x1400d86ac
mov dl, 0x7d
sub dl, 0x7d
add dl, 0x73
sub dl, 0x72
xchg rcx, rax
mov rax, rcx
xchg rcx, rax
call fcn.1400d6050
mov r15, rax
mov dword [rsp - 0x14], esp
cmp qword [rbx + 8], 0
je 0x1400d88e6
mov rcx, qword [rbx + 0x10]
xchg r15, r15
cmp qword [rbx + 8], rcx
jb 0x1400d88d8
add rcx, qword [rbx + 0x18]
xchg rcx, r12
mov qword [rbx + 0x10], r12
xchg r12, rcx
shl rcx, 2
shl rcx, 1
call fcn.1400995f0
xor edx, edx
xchg rdi, rax
mov rax, rdi
xchg rdi, rax
cmp qword [rbx + 8], rdx
jbe 0x1400d88b5
mov r13, r13
xchg r14, rax
mov r14, qword [rbx]
xchg r14, rax
xchg rcx, rdi
mov rdi, qword [rax + rdx*8]
xchg rcx, rdi
mov qword [rdi + rdx*8], rcx
mov dword [rsp - 0x28], esi
inc rdx
cmp rdx, qword [rbx + 8]
jb 0x1400d86f8
mov dword [rsp - 0x28], 0x563c6f69
jmp 0x1400d88b5
cmp eax, 1
jne 0x1400d87ec
mov rcx, rdx
xchg rbp, rbp
call fcn.140099140
test rax, rax
je 0x1400d876d
mov dl, 0x52
xor dl, 0x36
xor dl, 0x25
add dl, 0x3d
sub dl, 0x7c
xchg rcx, rbp
mov rbp, rax
xchg rbp, rcx
call fcn.1400d6050
xchg rcx, r15
mov rcx, rax
xchg rcx, r15
cmp qword [rbx + 8], 0
xchg r8, r8
je 0x1400d88e6
mov rcx, qword [rbx + 0x10]
cmp qword [rbx + 8], rcx
mov r12, r12
jb 0x1400d88d8
add rcx, qword [rbx + 0x18]
xchg rcx, r11
mov qword [rbx + 0x10], r11
xchg rcx, r11
shl rcx, 1
shl rcx, 2
call fcn.1400995f0
xor edx, edx
mov dword [rsp - 0x3c], 0x1ef50dae
xchg rbp, rax
mov rdi, rbp
xchg rbp, rax
cmp qword [rbx + 8], rdx
jbe 0x1400d88b5
xchg rsi, rax
mov rsi, qword [rbx]
xchg rsi, rax
mov rcx, qword [rax + rdx*8]
xchg rcx, r10
mov qword [rdi + rdx*8], r10
xchg rcx, r10
inc rdx
cmp rdx, qword [rbx + 8]
mov dword [rsp - 0x38], ecx
jb 0x1400d87c1
jmp 0x1400d88b5
sub eax, 2
xchg r13, r13
cmp eax, 1
ja 0x1400d89f4
mov rcx, rdx
mov dword [rsp - 0x10], ebx
call fcn.140099140
test rax, rax
je 0x1400d8833
xchg r11, r11
mov dl, 0x20
sub dl, 0x11
add dl, 0x1a
add dl, 0x54
sub dl, 0x79
mov rcx, rax
xchg r15, r15
call fcn.1400d6050
xchg r15, rax
mov rax, r15
xchg r15, rax
cmp qword [rbx + 8], 0
je 0x1400d88e6
mov dword [rsp - 0x40], 0x1af9dbeb
xchg rcx, rbp
mov rbp, qword [rbx + 0x10]
xchg rbp, rcx
cmp qword [rbx + 8], rcx
jb 0x1400d88d8
xchg rdx, rdx
add rcx, qword [rbx + 0x18]
mov qword [rbx + 0x10], rcx
shl rcx, 3
mov dword [rsp - 0x34], 0x7de736aa
call fcn.1400995f0
xor edx, edx
xchg rbx, rax
mov rdi, rbx
xchg rbx, rax
cmp qword [rbx + 8], rdx
mov rdx, rdx
jbe 0x1400d88b5
mov rax, qword [rbx]
xchg rsi, rcx
mov rsi, qword [rax + rdx*8]
xchg rsi, rcx
mov qword [rdi + rdx*8], rcx
mov dword [rsp - 0x40], 0x6550ce79
inc rdx
cmp rdx, qword [rbx + 8]
jb 0x1400d888c
mov rbx, rbx
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400d88ca
call fcn.1400992c0
mov dword [rsp - 0x40], edi
xchg rdi, r13
mov qword [rbx], r13
xchg rdi, r13
jmp 0x1400d8925
xchg rdi, r13
mov r13, qword [rbx]
xchg r13, rdi
jmp 0x1400d8925
xchg rdi, rdx
mov rdx, qword [rbx]
xchg rdx, rdi
test rdi, rdi
jne 0x1400d8925
xchg r14, r14
mov rcx, qword [rbx + 0x18]
xchg rcx, r13
mov qword [rbx + 0x10], r13
xchg r13, rcx
shl rcx, 3
mov r9, r9
call fcn.1400995f0
xchg rcx, rdi
mov rcx, rax
xchg rdi, rcx
xchg r15, rax
mov qword [rbx], r15
xchg r15, rax
xchg rcx, rsi
mov rsi, qword [rbx + 8]
xchg rsi, rcx
lea rax, [rcx + 1]
mov dword [rsp - 0x24], 0x236ba583
mov qword [rbx + 8], rax
mov qword [rdi + rcx*8], r15
test r15, r15
mov dword [rsp - 0x28], 0x40a14ff0
je 0x1400d89f4
xchg r10, rax
mov r10, qword [rbp + 0x110]
xchg r10, rax
xchg r9, rbx
mov rbx, r15
xchg r9, rbx
mov rdx, qword [rbp + 0xf8]
mov r8, r13
mov rcx, qword [rbp + 0xf0]
xchg rdx, rdx
mov qword [rsp + 0x20], rax
call fcn.1400d81a8
xor r15d, r15d
mov dword [rsp - 0xc], 0x64b4d2ae
test al, al
je 0x1400d89f4
xchg r14, rcx
mov r14, qword [rsp + 0x58]
xchg r14, rcx
mov eax, dword [r14 + 8]
inc rcx
mov dword [rsp - 0x14], 0x6ce01436
xchg rcx, r10
mov qword [rsp + 0x58], r10
xchg rcx, r10
cmp rcx, rax
mov rdx, rdx
jae 0x1400d89fc
mov edx, 0x582397ab
add edx, 0x1aee6225
add edx, 0x9d57c29
xor edx, 0x7fe94f1c
sub edx, 0x30e3a5d
jmp 0x1400d8334
mov r12, qword [rsp + 0x40]
mov r9, r9
mov r13b, r15b
jmp 0x1400d8a03
mov r13b, byte [rbp + 0x108]
xchg rbx, rax
mov rbx, qword [rsp + 0x38]
xchg rbx, rax
test r12, r12
mov dword [rsp - 0x18], ecx
xchg r15, rbx
mov r15, rbx
xchg r15, rbx
cmovne rbx, rax
je 0x1400d8a32
mov dword [rsp - 0x10], 0x5e9d696d
lea r15, [rax + r12*8]
cmp rbx, r15
je 0x1400d8ab0
mov dword [rsp - 0x18], 0x7c3da6ea
or rdi, 0xffffffffffffffff
mov r14, qword [rbx]
add dword [r14 + 0x84], edi
cmp dword [r14 + 0x84], 0
mov rsp, rsp
jg 0x1400d8a97
xchg r14, r12
mov rcx, r12
xchg r14, r12
call fcn.1400d6200
mov edx, 0x577433a8
sub edx, 0x1a09a49c
add edx, 0x90fc348
sub edx, 0x467a51cc
mov rcx, r14
mov dword [rsp - 0x1c], 0x2004051
call fcn.140099150
add rbx, 8
cmp rbx, r15
mov r15, r15
jne 0x1400d8a47
xchg rdx, rax
mov rdx, qword [rsp + 0x38]
xchg rdx, rax
test r13b, r13b
mov dword [rsp - 0x44], ecx
jne 0x1400d8ae0
test rax, rax
je 0x1400d8cb5
mov dword [rsp - 0x3c], ecx
xchg r11, rcx
mov r11, rax
xchg rcx, r11
call fcn.1400992c0
xchg rsp, rsp
jmp 0x1400d8cb5
mov byte [rsi + 0x81], 0x64
sub byte [rsi + 0x81], 0x58
xor byte [rsi + 0x81], 0x64
add byte [rsi + 0x81], 0xc
xor byte [rsi + 0x81], 0x75
test rax, rax
je 0x1400d8b1d
xchg r9, rcx
mov r9, rax
xchg rcx, r9
call fcn.1400992c0
xchg rbp, rbp
mov al, 0x47
sub al, 3
xor al, 0x2b
sub al, 0x5c
sub al, 0x12
jmp 0x1400d8dd5
test eax, eax
jne 0x1400d8cb5
jmp 0x1400d8b1d
cmp dword [r8], 6
jne 0x1400d8b9b
mov rax, qword [rbp + 0x110]
mov dword [rsp - 0x18], 0x368b914c
nop
add r9, 0x617c4529
sub r9, 0x617c44c9
mov qword [rsp + 0x20], rax
mov dword [rsp - 0x24], edx
call fcn.1400d8050
test al, al
je 0x1400d8cb5
xchg rcx, rcx
mov byte [rsi + 0x81], 0x26
add byte [rsi + 0x81], 0x10
sub byte [rsi + 0x81], 0x13
sub byte [rsi + 0x81], 0x22
jmp 0x1400d8b1d
cmp dword [r8], r15d
jmp 0x1400d8b2e
mov eax, dword [r8]
neg eax
sub eax, 0xfffffffe
neg eax
cmp eax, 1
ja 0x1400d8cb5
mov dword [rsp - 0x44], 0xe267711
mov rax, qword [r8 + 8]
mov qword [r9 + 0x58], rax
jmp 0x1400d8c03
mov eax, dword [r8]
mov r13, r13
add eax, 0xfffffffe
cmp eax, 1
ja 0x1400d8cb5
mov eax, dword [r8 + 8]
xchg rsp, rsp
mov dword [r9 + 0x54], eax
jmp 0x1400d8c03
cmp dword [r8], 1
mov dword [rsp - 0x34], edx
jne 0x1400d8cb5
mov al, byte [r8 + 8]
mov byte [r9 + 0x50], al
mov byte [r9 + 0x81], 7
add byte [r9 + 0x81], 0x54
sub byte [r9 + 0x81], 0x33
xor byte [r9 + 0x81], 0x29
jmp 0x1400d8b1d
cmp dword [r8], 8
je 0x1400d8c44
mov dword [rsp - 0x44], 0x3d101b85
cmp dword [r8], 5
jne 0x1400d8ca9
mov rcx, qword [r9 + 0x40]
mov r13, r13
mov rbx, qword [r8 + 0x10]
mov edi, dword [r8 + 8]
test rcx, rcx
je 0x1400d8c64
xchg rdx, rdx
call fcn.140099150
xchg r15, r13
mov qword [rsi + 0x40], r13
xchg r15, r13
xchg rcx, rdi
mov rdi, rcx
xchg rdi, rcx
mov dword [rsi + 0x48], edi
xchg rbp, rbp
call fcn.140099140
xchg r10, rdi
mov r8, r10
xchg rdi, r10
mov qword [rsi + 0x40], rax
xchg rdx, r8
mov r8, rbx
xchg r8, rdx
xchg rcx, rax
mov rax, rcx
xchg rcx, rax
call fcn.1400997f0
jmp 0x1400d8b7a
cmp dword [r8], r15d
je 0x1400d8b1d
xchg rdi, rdi
xor al, al
jmp 0x1400d8dd5
mov eax, dword [r8]
cmp eax, 5
mov dword [rsp - 0x18], 0xd58a3a2
jne 0x1400d8dcd
movsxd rbx, dword [r8 + 8]
lea rax, [rbp - 0x68]
xchg r14, r12
mov r12, qword [r8 + 0x10]
xchg r12, r14
lea rcx, [rbp - 0x68]
mov r8, r8
mov r12d, 0x241bf654
add r12d, 0x1fef95a9
add r12d, 0x16d5335e
sub r12d, 0x5ae0be5b
xchg r13, rax
mov qword [rbp - 0x70], r13
xchg r13, rax
mov r8d, r12d
xor edx, edx
mov dword [rsp - 0xc], ebp
call fcn.140099900
or rdi, 0xffffffffffffffff
cmp rbx, rdi
xchg r9, r9
jne 0x1400d8d44
inc rdi
cmp byte [r14 + rdi], r15b
jne 0x1400d8d2a
mov dword [rsp - 0x1c], ecx
xchg rbx, rdi
mov rdi, rbx
xchg rbx, rdi
xchg r8, rcx
mov rcx, rbx
xchg rcx, r8
lea rcx, [rbp - 0x70]
xchg r14, rdx
mov r14, rdx
xchg rdx, r14
call fcn.140091810
mov rdx, qword [rbp - 0x70]
xchg rcx, rbp
mov rbp, rsi
xchg rcx, rbp
call fcn.1400549e0
mov rcx, qword [rbp - 0x70]
lea rax, [rbp - 0x68]
mov dword [rsp - 0x30], 0x4b0148
mov byte [rsi + 0x81], 0x49
add byte [rsi + 0x81], 0x1b
sub byte [rsi + 0x81], 0x23
xor byte [rsi + 0x81], 0x4a
sub byte [rsi + 0x81], 0xa
cmp rcx, rax
jne 0x1400d8b15
mov dword [rsp - 0x14], 0x259a47b7
lea rdi, [rbp - 0x68]
xor eax, eax
mov rcx, r12
rep stosb byte [rdi], al
mov dword [rsp - 0x2c], 0x323daf50
jmp 0x1400d8b1d
test eax, eax
sete al
mov r11, r11
sub rsp, 0x64c7781a
add rsp, 0x64c779c2
pop r15
nop
add rsp, 8
mov r14, qword [rsp - 8]
nop
mov r13, qword [rsp]
add rsp, 8
nop
add rsp, 8
mov r12, qword [rsp - 8]
nop
mov rdi, qword [rsp]
add rsp, 8
nop
mov rsi, qword [rsp]
add rsp, 8
nop
mov rbx, qword [rsp]
add rsp, 8
nop
mov rbp, qword [rsp]
add rsp, 8
ret