Function at 0x1400542d0
Capabilities:
Authenticate hmac

Disassembly:
xchg r10, rbx
mov qword [rsp + 8], r10
xchg rbx, r10
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
nop
sub rsp, 8
mov qword [rsp], r12
nop
sub rsp, 8
mov qword [rsp], r13
nop
push 0xbc32fd5
mov qword [rsp], r14
nop
mov qword [rsp - 8], r15
sub rsp, 8
mov rbp, rsp
sub rsp, 0x50
movzx r13d, dl
xchg rcx, r12
mov rcx, r12
xchg rcx, r12
lea eax, [r13 - 1]
xor r15d, r15d
cmp al, 1
ja 0x140054966
mov edi, r15d
mov qword [rbp - 0x20], r15
mov esi, r15d
mov qword [rbp - 0x18], r15
xchg rcx, r15
mov qword [rbp - 0x10], rcx
xchg rcx, r15
mov rax, qword [rcx]
mov rdx, qword [rax + 8]
cmp r13b, 2
jne 0x140054533
sub rdx, qword [rax]
sar rdx, 1
sar rdx, 3
test rdx, rdx
je 0x1400543b9
movabs rax, 0xfffffff04bd53b3
sub rax, 0x3ebac46
add rax, 0x86b1c5f
add rax, 0x254f8abb
xor rax, 0x35d8a55f
add rax, 0x7fffffff
add rax, 0x64ab1428
cmp rdx, rax
ja 0x140054ccb
lea rcx, [rbp - 0x20]
call fcn.1400533e0
mov rsi, qword [rbp - 0x18]
xchg rdi, r11
mov r11, qword [rbp - 0x20]
xchg r11, rdi
xchg rbx, rax
mov rbx, qword [r12]
xchg rbx, rax
lea rbx, [rbp - 0x20]
mov r15, qword [rax + 8]
xchg rbx, r14
mov rbx, qword [rax]
xchg r14, rbx
cmp r14, r15
je 0x140054448
xor edi, edi
nop
xchg r13, rdx
mov r13, qword [rbx + 8]
xchg rdx, r13
cmp rdx, qword [rbx + 0x10]
je 0x140054416
movzx eax, byte [r14]
mov byte [rdx], al
xchg rbp, rax
mov rbp, qword [r14 + 8]
xchg rbp, rax
mov qword [rdx + 8], rax
mov byte [r14], dil
mov qword [r14 + 8], rdi
sub qword [rbx + 8], 0xfffffffffffffff0
jmp 0x140054427
xchg r15, r14
mov r8, r15
xchg r14, r15
mov rcx, rbx
call fcn.1400332f0
add r14, 0x10
cmp r14, r15
jne 0x1400543df
xchg r11, rsi
mov r11, qword [rbp - 0x18]
xchg r11, rsi
xchg r10, rdi
mov r10, qword [rbp - 0x20]
xchg r10, rdi
xor r15d, r15d
cmp rdi, rsi
je 0x1400548c4
nop
movzx eax, byte [rsi - 0x10]
mov byte [rbp - 0x30], al
mov rax, qword [rsi - 8]
xchg r13, rax
mov qword [rbp - 0x28], r13
xchg r13, rax
mov byte [rsi - 0x10], 0x5c
add byte [rsi - 0x10], 0xb
add byte [rsi - 0x10], 0x10
sub byte [rsi - 0x10], 0x36
xor byte [rsi - 0x10], 0x27
sub byte [rsi - 0x10], 0x42
sub byte [rsi - 0x10], 0x24
mov qword [rsi - 8], r15
mov rax, qword [rbp - 0x18]
lea rcx, [rax - 8]
movzx edx, byte [rax - 0x10]
call fcn.1400542d0
nop
mov rdx, qword [rbp - 0x18]
neg rdx
sub rdx, 0xfffffffffffffff0
neg rdx
xchg rdx, rsi
mov qword [rbp - 0x18], rsi
xchg rdx, rsi
cmp byte [rbp - 0x30], 2
jne 0x14005474a
lea rbx, [rbp - 0x20]
xchg rsi, r10
mov r10, qword [rbp - 0x28]
xchg rsi, r10
mov r14, qword [rsi + 8]
mov rdi, qword [rsi]
cmp rdi, r14
je 0x1400546f7
nop word [rax + rax]
mov rdx, qword [rbx + 8]
cmp rdx, qword [rbx + 0x10]
je 0x1400546ca
movzx eax, byte [rdi]
mov byte [rdx], al
mov rax, qword [rdi + 8]
mov qword [rdx + 8], rax
mov byte [rdi], 0x37
xor byte [rdi], 9
sub byte [rdi], 0x12
sub byte [rdi], 0xb
add byte [rdi], 0x19
xor byte [rdi], 0x5e
xor byte [rdi], 0x5c
sub byte [rdi], 0x38
xchg rbx, r15
mov qword [rdi + 8], rbx
xchg rbx, r15
neg qword [rbx + 8]
add qword [rbx + 8], 0xfffffffffffffff0
neg qword [rbx + 8]
jmp 0x1400546db
test rdx, rdx
je 0x140054590
movabs rax, 0xfffffff60427942
sub rax, 0x14ee4bd3
add rax, 0x16d77e69
sub rax, 0x5630c120
sub rax, 0x1a35adc
add rax, 0x151b0a65
add rax, 0x7fffffff
xor rax, 0x608d65bf
cmp rdx, rax
ja 0x140054ccb
lea rcx, [rbp - 0x20]
call fcn.1400533e0
mov rsi, qword [rbp - 0x18]
xchg r12, rdi
mov r12, qword [rbp - 0x20]
xchg r12, rdi
xchg rcx, rax
mov rcx, qword [r12]
xchg rcx, rax
mov rbx, qword [rax]
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
jne 0x14005444b
nop dword [rax]
lea r8, [rbx + 0x40]
cmp rsi, qword [rbp - 0x10]
je 0x140054615
movzx eax, byte [r8]
mov byte [rsi], al
xchg rsi, rax
mov rsi, qword [r8 + 8]
xchg rsi, rax
xchg r15, rax
mov qword [rsi + 8], r15
xchg r15, rax
mov byte [r8], 0x34
sub byte [r8], 0x1e
xor byte [r8], 0xc
add byte [r8], 0x4d
sub byte [r8], 0xc
add byte [r8], 0x15
sub byte [r8], 0x70
mov qword [r8 + 8], r15
xchg r11, rsi
mov r11, qword [rbp - 0x18]
xchg rsi, r11
nop
add rsi, 0x3c55b7ba
sub rsi, 0x3c55b7aa
mov qword [rbp - 0x18], rsi
jmp 0x140054631
xchg r10, rsi
mov rdx, r10
xchg rsi, r10
lea rcx, [rbp - 0x20]
call fcn.1400332f0
xchg rcx, rsi
mov rcx, qword [rbp - 0x18]
xchg rcx, rsi
xchg r15, rax
mov r15, qword [rbx + 0x10]
xchg r15, rax
cmp byte [rax + 0x19], 0
je 0x14005467e
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x140054670
cmp rbx, qword [rax + 0x10]
jne 0x140054670
xchg rdi, rax
mov rbx, rdi
xchg rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x140054651
xchg r11, rbx
mov r11, rax
xchg r11, rbx
jmp 0x1400546b7
xchg rbx, rax
mov rax, rbx
xchg rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x1400546b7
nop word [rax + rax]
mov rbx, rcx
xchg r14, rax
mov r14, qword [rcx]
xchg r14, rax
xchg r13, rax
mov rcx, r13
xchg r13, rax
cmp byte [rax + 0x19], 0
je 0x14005469c
cmp byte [rbx + 0x19], 0
je 0x1400545af
mov rdi, qword [rbp - 0x20]
jmp 0x14005444b
mov r8, rdi
xchg rbx, r10
mov rcx, r10
xchg r10, rbx
call fcn.1400332f0
nop
sub rdi, 0x1ccd619a
add rdi, 0x1ccd61aa
cmp rdi, r14
jne 0x1400544e4
mov rsi, qword [rbp - 0x28]
xchg rcx, rbx
mov rcx, qword [rsi]
xchg rcx, rbx
xchg r15, rdi
mov r15, qword [rsi + 8]
xchg rdi, r15
cmp rbx, rdi
je 0x1400548a5
nop
lea rcx, [rbx + 8]
movzx edx, byte [rbx]
call fcn.1400542d0
nop
nop
sub rbx, 0x4b6aac8b
add rbx, 0x4b6aac9b
cmp rbx, rdi
jne 0x140054715
xchg rdi, rax
mov rdi, qword [rsi]
xchg rdi, rax
mov qword [rsi + 8], rax
jmp 0x1400548a5
cmp byte [rbp - 0x30], 1
jne 0x1400548a5
mov rdi, qword [rbp - 0x28]
mov rbx, qword [rdi]
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
jne 0x140054872
lea r8, [rbx + 0x40]
cmp rdx, qword [rbp - 0x10]
je 0x1400547d0
movzx eax, byte [r8]
mov byte [rdx], al
mov rax, qword [r8 + 8]
xchg r11, rax
mov qword [rdx + 8], r11
xchg r11, rax
mov byte [r8], 0xe
xor byte [r8], 0x46
add byte [r8], 0x1d
xor byte [r8], 0x52
xor byte [r8], 0xa
xor byte [r8], 0x6c
xor byte [r8], 0x51
xchg r15, rbx
mov qword [r8 + 8], rbx
xchg r15, rbx
mov rdx, qword [rbp - 0x18]
nop
add rdx, 0x2d90d9e6
sub rdx, 0x2d90d9d6
xchg rdx, r8
mov qword [rbp - 0x18], r8
xchg r8, rdx
jmp 0x1400547dd
lea rcx, [rbp - 0x20]
call fcn.1400332f0
mov rdx, qword [rbp - 0x18]
xchg r9, rax
mov r9, qword [rbx + 0x10]
xchg r9, rax
cmp byte [rax + 0x19], 0
je 0x140054825
xchg r12, rax
mov r12, qword [rbx + 8]
xchg r12, rax
cmp byte [rax + 0x19], 0
jne 0x14005481d
nop
cmp rbx, qword [rax + 0x10]
jne 0x14005481d
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x140054802
mov rbx, rax
jmp 0x140054864
xchg rbx, rsi
mov rsi, rax
xchg rbx, rsi
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x140054864
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
xchg r8, rax
mov r8, qword [rcx]
xchg r8, rax
xchg rcx, r15
mov r15, rax
xchg rcx, r15
cmp byte [rax + 0x19], 0
je 0x140054847
cmp byte [rbx + 0x19], 0
je 0x140054768
mov rdi, qword [rbp - 0x28]
mov rbx, qword [rdi]
mov r8, qword [rbx + 8]
xchg rdx, rbp
mov rbp, rdi
xchg rbp, rdx
xchg rcx, r15
mov r15, rdi
xchg rcx, r15
call fcn.140033c10
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
xchg r15, rsi
mov qword [rdi + 8], rsi
xchg r15, rsi
movzx edx, byte [rbp - 0x30]
lea rcx, [rbp - 0x28]
call fcn.1400542d0
nop
mov rdi, qword [rbp - 0x20]
mov rsi, qword [rbp - 0x18]
cmp rdi, rsi
jne 0x140054456
test rdi, rdi
je 0x140054966
cmp rdi, rsi
je 0x140054903
nop word [rax + rax]
lea rcx, [rdi + 8]
movzx edx, byte [rdi]
call fcn.1400542d0
nop
neg rdi
add rdi, 0xfffffffffffffff0
neg rdi
cmp rdi, rsi
jne 0x1400548df
mov rdi, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x10]
sub rdx, rdi
and rdx, 0xfffffffffffffff0
xchg rdi, rcx
mov rax, rcx
xchg rdi, rcx
cmp rdx, 0x1000
jb 0x140054958
nop
add rdx, 0x34f6a358
sub rdx, 0x34f6a331
mov rdi, qword [rdi - 8]
sub rax, rdi
nop
sub rax, 0xffffffffd68000f9
add rax, 0xffffffffd68000f1
cmp rax, 0x1f
jbe 0x140054958
call 0x1404d0439
int3
xchg rdi, rcx
mov rdi, rcx
xchg rdi, rcx
call fcn.1401fd0ac
mov ecx, r13d
sub ecx, 1
je 0x140054bdf
sub ecx, 1
je 0x140054b10
sub ecx, 1
je 0x140054a29
cmp ecx, 5
jne 0x140054c7c
xchg rbx, r9
mov r9, qword [r12]
xchg r9, rbx
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400549f5
mov rdx, qword [rbx + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x1400549df
sub rdx, 0xffffffffffffffd9
xchg r11, r8
mov r11, qword [rcx - 8]
xchg r8, r11
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054bd8
xchg r8, rcx
mov r8, rcx
xchg rcx, r8
call fcn.1401fd0ac
mov qword [rbx], r15
xchg r8, r15
mov qword [rbx + 8], r8
xchg r15, r8
mov qword [rbx + 0x10], r15
mov edx, 0x54283837
add edx, 0x250225ff
sub edx, 0x584e3762
xor edx, 0x37f8fc6f
add edx, 0xc774d8c
xor edx, 0x835a5ca
add edx, 0x30297af2
xor edx, 0x5bd30857
jmp 0x140054c73
xchg rbx, rcx
mov rcx, qword [r12]
xchg rcx, rbx
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140054a87
inc rdx
xchg rcx, r14
mov r14, qword [rbx]
xchg rcx, r14
cmp rdx, 0x1000
jb 0x140054a82
add rdx, 0x27
xchg r15, r8
mov r15, qword [rcx - 8]
xchg r15, r8
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054bd8
xchg r8, rdx
mov rcx, rdx
xchg r8, rdx
call fcn.1401fd0ac
mov qword [rbx + 0x10], r15
mov qword [rbx + 0x18], 0x314d7c9a
add qword [rbx + 0x18], 0x21b22f10
sub qword [rbx + 0x18], 0x39fda99f
add qword [rbx + 0x18], 0x37048ae1
sub qword [rbx + 0x18], 0x3f9278e2
add qword [rbx + 0x18], 0x49222aa2
sub qword [rbx + 0x18], 0xecc1a6d
sub qword [rbx + 0x18], 0x595e6cc
sub qword [rbx + 0x18], 0x45343d64
mov byte [rbx], 0x3c
xor byte [rbx], 0x3b
xor byte [rbx], 0x4c
xor byte [rbx], 0x41
add byte [rbx], 0x74
sub byte [rbx], 0x5e
sub byte [rbx], 0x20
mov edx, 0x245098d3
xor edx, 0x4ebc79da
sub edx, 0x3ee2d4a2
sub edx, 0x10e5d590
add edx, 0x1a7221bc
xor edx, 0x359658b3
jmp 0x140054c73
mov rdi, qword [r12]
mov rbx, qword [rdi]
test rbx, rbx
je 0x140054ba4
mov rsi, qword [rdi + 8]
cmp rbx, rsi
je 0x140054b51
nop word [rax + rax]
lea rcx, [rbx + 8]
movzx edx, byte [rbx]
call fcn.1400542d0
nop
sub rbx, 0xfffffffffffffff0
cmp rbx, rsi
jne 0x140054b37
xchg r15, rcx
mov r15, qword [rdi]
xchg rcx, r15
mov rdx, qword [rdi + 0x10]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
cmp rdx, 0x1000
jb 0x140054b94
neg rdx
add rdx, 0xffffffffffffffd9
neg rdx
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054bd8
mov rcx, r8
call fcn.1401fd0ac
mov qword [rdi], r15
mov qword [rdi + 8], r15
mov qword [rdi + 0x10], r15
mov edx, 0x209a2e6d
add edx, 0x387ef344
sub edx, 0x2e12862f
add edx, 0x27658000
xor edx, 0x55716c
add edx, 0x29993cfb
sub edx, 0x49656d11
sub edx, 0x326d3ac0
jmp 0x140054c73
call 0x1409750f0
int3
xchg r8, rbx
mov r8, qword [r12]
xchg rbx, r8
xchg r8, r10
mov r10, qword [rbx]
xchg r8, r10
mov r8, qword [r8 + 8]
xchg r9, rdx
mov r9, rbx
xchg rdx, r9
xchg r10, rcx
mov r10, rbx
xchg r10, rcx
call fcn.140033c10
mov edx, 0x254e89fd
add edx, 0x1b54027d
sub edx, 0xa2f01cf
sub edx, 0x22874871
add edx, 0x513c299e
add edx, 0xfa4e462
sub edx, 0x50784091
xor edx, 0x2daf944d
sub edx, 0x9fa9b94
xchg rdx, rcx
mov rdx, qword [rbx]
xchg rdx, rcx
call fcn.1401fd0ac
mov edx, 0x36393c7d
add edx, 0x9158fd9
add edx, 0xcce6014
add edx, 0x2e0e8e73
sub edx, 0x72f57448
xor edx, 0x7364685
mov rcx, qword [r12]
call fcn.1401fd0ac
lea r11, [rsp + 0x50]
xchg r15, rbx
mov r15, qword [r11 + 0x30]
xchg r15, rbx
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
nop
mov r15, qword [rsp]
add rsp, 8
nop
add rsp, 8
xchg qword [rsp - 8], r14
nop
add rsp, 8
xchg qword [rsp - 8], r13
nop
add rsp, 8
xchg qword [rsp - 8], r12
push rcx
push rbx
xchg qword [rsp + 0x10], rbp
pop rbx
pop rcx
add rsp, 8
ret
call fcn.14002f9c0
nop
int3