Function at 0x564c00
Capabilities:
Authenticate hmac

Disassembly:
lea r12, [rsp - 0xe0]
cmp r12, qword [r14 + 0x10]
jbe 0x565474
push rbp
mov rbp, rsp
sub rsp, 0x158
mov qword [rsp + 0x1f0], rax
mov byte [rsp + 0x30], 1
mov rbx, qword [0x0086a798]
lea rcx, [rsp + 0x30]
lea rax, [0x005e6dc0]
nop dword [rax]
call fcn.0040f600
movzx edx, word [rax]
mov byte [rsp + 0x34], 1
mov byte [rsp + 0x35], 0
mov word [rsp + 0x36], dx
movzx edx, byte [rsp + 0x35]
mov byte [rsp + 0x33], dl
movzx esi, byte [rsp + 0x34]
mov byte [rsp + 0x32], sil
lea rax, [0x005fda20]
call fcn.0040e720
mov qword [rsp + 0x150], rax
movzx edx, byte [rsp + 0x32]
mov byte [rax], dl
movzx edx, byte [rsp + 0x33]
mov byte [rax + 1], dl
mov byte [rax + 2], dl
lea rax, [0x006001e0]
call fcn.0040e720
lea rdx, [0x00673e48]
mov qword [rax], rdx
cmp dword [0x008f2de0], 0
jne 0x564cb9
mov rdx, qword [rsp + 0x150]
jmp 0x564cd1
call fcn.00468100
mov rdx, qword [rsp + 0x150]
mov qword [r11], rdx
mov rsi, qword [rax + 8]
mov qword [r11 + 8], rsi
mov qword [rsp + 0xb0], rax
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x1f0]
mov rbx, qword [rdx + 8]
mov rcx, qword [rdx + 0x10]
xor eax, eax
call fcn.00450ee0
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0xb0]
call fcn.00538780
test rdi, rdi
jne 0x564dac
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0xe0], rsi
movups xmmword [rsp + 0x110], xmm15
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
mov rdx, qword [rsp + 0x1a0]
mov r8, qword [rsp + 0x1a8]
mov r9, qword [rsp + 0x1b0]
mov qword [rsp + 0x118], r8
mov qword [rsp + 0x120], r9
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x128], rax
lea rax, [0x00622298]
mov ebx, 4
lea rcx, [rsp + 0x110]
mov edi, 2
mov rsi, rdi
nop
call fcn.00565e60
xor edx, edx
jmp 0x564e7b
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x158
pop rbp
ret
mov qword [rsp + 0x68], rdx
lea rsi, [rdx + 1]
mov qword [rsp + 0xa8], rsi
nop
lea rax, [0x005dcfa0]
mov ebx, 4
mov rcx, rbx
nop dword [rax]
call fcn.0044cb20
nop
mov rdx, qword [rsp + 0x68]
mov dword [rax], edx
movups xmmword [rsp + 0x110], xmm15
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
mov qword [rsp + 0x118], 4
mov qword [rsp + 0x120], 4
mov qword [rsp + 0x110], rax
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x130], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x138], rdx
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x128], rdx
lea rax, [0x00622298]
mov ebx, 4
lea rcx, [rsp + 0x110]
mov edi, 2
mov rsi, rdi
call fcn.00565e60
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0xd0], rax
cmp qword [0x007796d0], rdx
jg 0x564dbc
lea rax, [0x005dcfa0]
mov ebx, 4
mov rcx, rbx
call fcn.0044cb20
nop
mov dword [rax], 0
movups xmmword [rsp + 0x110], xmm15
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x118], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x120], rdx
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x130], 4
mov qword [rsp + 0x138], 4
mov qword [rsp + 0x128], rax
lea rax, [0x00622298]
mov ebx, 4
lea rcx, [rsp + 0x110]
mov edi, 2
mov rsi, rdi
call fcn.00565e60
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x70], rbx
mov edx, dword [rsp + 0x178]
mov qword [rsp + 0xa8], rdx
mov byte [rsp + 0x31], 0
mov byte [rsp + 0x31], 0x36
mov ecx, 1
mov edi, 0x40
lea rax, [rsp + 0x31]
mov rbx, rcx
call fcn.004bdea0
nop dword [rax + rax]
cmp rcx, 0x14
jb 0x565466
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0xf0], rax
lea rax, [0x005df420]
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.0044cb20
mov rdx, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x70]
xor ebx, ebx
jmp 0x564fe6
lea r8, [rax + rbx*2]
lea r9, [rax + rbx*2]
movzx r10d, byte [rdx + rbx]
mov byte [r9], dil
mov byte [r8 + 1], r10b
inc rbx
cmp rcx, rbx
jle 0x564ffa
movzx edi, byte [rsi + rbx]
cmp rbx, 0x14
jb 0x564fcf
jmp 0x565459
mov qword [rsp + 0x148], rax
lea rax, [0x005dcfa0]
mov rbx, rcx
call fcn.0044cb20
mov rdx, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x70]
xor ebx, ebx
jmp 0x565043
movzx r8d, word [rdx + rbx*2]
mov word [rsp + 0x2e], r8w
movzx r8d, byte [rsp + 0x2e]
movzx r9d, byte [rsp + 0x2f]
xor r9d, r8d
mov byte [rax + rbx], r9b
inc rbx
cmp rcx, rbx
jg 0x565022
mov rdi, qword [rsp + 0x90]
cmp rdi, 0x14
jb 0x56544c
lea rbx, [rcx + rdi]
lea rbx, [rbx - 0x14]
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffec
neg rdx
sar rdx, 0x3f
and edx, 0x14
mov r8, qword [rsp + 0xf0]
add rdx, r8
add rdi, 0xffffffffffffffec
cmp rcx, rbx
jb 0x565091
mov rsi, rcx
jmp 0x5650c2
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x140], rdx
lea rsi, [0x005dcfa0]
call fcn.0044cc00
mov rdx, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xf0], rax
lea r8, [rax + rsi]
mov rax, r8
mov rbx, rdx
mov rcx, rdi
call fcn.00468e40
mov qword [rsp + 0xf8], 0
movups xmmword [rsp + 0x100], xmm15
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x100], rdx
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x108], rdx
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0xf8], rdx
lea rax, [0x00622298]
mov ebx, 4
lea rcx, [rsp + 0xf8]
mov edi, 1
mov rsi, rdi
call fcn.00565e60
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x31], 0
mov byte [rsp + 0x31], 0x5c
mov edi, 0x40
lea rax, [rsp + 0x31]
mov ebx, 1
mov rcx, rbx
call fcn.004bdea0
cmp rcx, 0x14
jb 0x56543f
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0xe8], rax
lea rax, [0x005df420]
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.0044cb20
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x70]
xor ebx, ebx
jmp 0x5651e7
lea r8, [rax + rbx*2]
movzx r9d, byte [rbx + rdx]
mov byte [r8], dil
mov byte [r8 + 1], r9b
inc rbx
cmp rcx, rbx
jle 0x5651fb
movzx edi, byte [rsi + rbx]
cmp rbx, 0x14
jb 0x5651d4
jmp 0x565432
mov qword [rsp + 0x148], rax
lea rax, [0x005dcfa0]
mov rbx, rcx
call fcn.0044cb20
mov rdx, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x70]
xor ebx, ebx
jmp 0x565244
movzx r8d, word [rdx + rbx*2]
mov word [rsp + 0x2c], r8w
movzx r8d, byte [rsp + 0x2c]
movzx r9d, byte [rsp + 0x2d]
xor r9d, r8d
mov byte [rax + rbx], r9b
inc rbx
cmp rcx, rbx
jg 0x565223
mov rdi, qword [rsp + 0x80]
cmp rdi, 0x14
jb 0x565425
lea rbx, [rcx + rdi]
lea rbx, [rbx - 0x14]
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffec
neg rdx
sar rdx, 0x3f
and edx, 0x14
mov r8, qword [rsp + 0xe8]
add rdx, r8
add rdi, 0xffffffffffffffec
cmp rcx, rbx
jb 0x565292
mov rsi, rcx
jmp 0x5652c3
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x140], rdx
lea rsi, [0x005dcfa0]
call fcn.0044cc00
mov rdx, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0xe8], rax
add rsi, rax
mov rax, rsi
mov rbx, rdx
mov rcx, rdi
call fcn.00468e40
mov qword [rsp + 0xf8], 0
movups xmmword [rsp + 0x100], xmm15
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0x100], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x108], rdx
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0xf8], rdx
lea rax, [0x00622298]
mov ebx, 4
lea rcx, [rsp + 0xf8]
mov edi, 1
mov rsi, rdi
call fcn.00565e60
mov rdx, qword [rsp + 0x48]
lea rsi, [rdx + rbx]
mov rcx, qword [rsp + 0x50]
cmp rcx, rsi
jb 0x56536f
mov rsi, qword [rsp + 0xc8]
jmp 0x5653ab
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xc8]
mov rdi, rbx
mov rbx, rsi
lea rsi, [0x005dcfa0]
call fcn.0044cc00
mov rdx, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
mov rsi, rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0x38], rcx
mov rdi, qword [rsp + 0xa8]
shr rdi, 3
mov qword [rsp + 0xa8], rdi
add rdx, rsi
mov r8, rax
mov rax, rdx
mov r9, rbx
mov rbx, r8
mov rcx, r9
nop
call fcn.00468e40
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0xa8]
cmp rdx, rcx
jb 0x56541b
mov rax, qword [rsp + 0xb8]
mov rbx, rcx
mov rcx, rdx
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xe0]
add rsp, 0x158
pop rbp
ret
nop dword [rax + rax]
call fcn.00468520
mov eax, 0x14
mov rcx, rdi
call fcn.00468560
mov rax, rbx
mov ecx, 0x14
call fcn.004684a0
mov rdx, rcx
mov ecx, 0x14
call fcn.00468520
mov eax, 0x14
mov rcx, rdi
call fcn.00468560
mov rax, rbx
mov ecx, 0x14
call fcn.004684a0
mov rdx, rcx
mov ecx, 0x14
call fcn.00468520
nop
mov qword [rsp + 0x90], rax
nop dword [rax]
call fcn.004661c0
mov rax, qword [rsp + 0x90]
jmp fcn.00564c00