Function at 0x140054300
Capabilities:
Authenticate hmac

Disassembly:
mov qword [rsp + 8], rbx
xchg rsi, r15
mov qword [rsp + 0x10], r15
xchg rsi, r15
mov qword [rsp + 0x18], rdi
push rbp
push r12
nop
sub rsp, 8
mov qword [rsp], r13
nop
sub rsp, 8
mov qword [rsp], r14
push r15
mov rbp, rsp
sub rsp, 0x50
movzx r13d, dl
xchg rdi, rcx
mov r12, rdi
xchg rdi, rcx
lea eax, [r13 - 1]
xor r15d, r15d
cmp al, 1
ja 0x1400549ad
mov edi, r15d
xchg r15, r12
mov qword [rbp - 0x20], r12
xchg r12, r15
mov esi, r15d
xchg r8, r15
mov qword [rbp - 0x18], r8
xchg r8, r15
xchg r15, r11
mov qword [rbp - 0x10], r11
xchg r15, r11
xchg r11, rax
mov r11, qword [rcx]
xchg r11, rax
xchg rdx, r14
mov r14, qword [rax + 8]
xchg rdx, r14
cmp r13b, 2
jne 0x1400545a6
sub rdx, qword [rax]
sar rdx, 3
sar rdx, 1
test rdx, rdx
je 0x1400543fb
movabs rax, 0xfffffff6fbce987
xor rax, 0x1d57a004
sub rax, 0x60f9b4a7
add rax, 0x2ddbabec
add rax, 0x1de43263
sub rax, 0x2e1f88b2
add rax, 0x250eb6bb
xor rax, 0x6de52411
add rax, 0x7fffffff
xor rax, 0x46ba7adb
cmp rdx, rax
ja 0x140054d20
lea rcx, [rbp - 0x20]
call fcn.140053370
mov rsi, qword [rbp - 0x18]
mov rdi, qword [rbp - 0x20]
mov rax, qword [r12]
lea rbx, [rbp - 0x20]
xchg r15, r13
mov r13, qword [rax + 8]
xchg r15, r13
xchg r14, r8
mov r8, qword [rax]
xchg r14, r8
cmp r14, r15
je 0x1400544a1
xor edi, edi
nop
xchg rdx, rcx
mov rcx, qword [rbx + 8]
xchg rcx, rdx
cmp rdx, qword [rbx + 0x10]
je 0x140054470
movzx eax, byte [r14]
mov byte [rdx], al
xchg rdx, rax
mov rdx, qword [r14 + 8]
xchg rdx, rax
xchg r13, rax
mov qword [rdx + 8], r13
xchg r13, rax
mov byte [r14], dil
xchg r11, rdi
mov qword [r14 + 8], r11
xchg rdi, r11
nop
sub qword [rbx + 8], 0x3d0d0e42
add qword [rbx + 8], 0x3d0d0e52
jmp 0x14005447b
mov r8, r14
mov rcx, rbx
call fcn.140033130
nop
sub r14, 0x6c656614
add r14, 0x6c656624
cmp r14, r15
jne 0x140054423
mov rsi, qword [rbp - 0x18]
xchg rdi, r10
mov r10, qword [rbp - 0x20]
xchg rdi, r10
xor r15d, r15d
cmp rdi, rsi
je 0x140054915
nop
movzx eax, byte [rsi - 0x10]
mov byte [rbp - 0x30], al
mov rax, qword [rsi - 8]
mov qword [rbp - 0x28], rax
mov byte [rsi - 0x10], 5
xor byte [rsi - 0x10], 0x23
add byte [rsi - 0x10], 0x42
xor byte [rsi - 0x10], 0x66
add byte [rsi - 0x10], 0x56
xor byte [rsi - 0x10], 0x71
add byte [rsi - 0x10], 0x34
add byte [rsi - 0x10], 0x18
sub byte [rsi - 0x10], 0x61
xchg r15, rbp
mov qword [rsi - 8], rbp
xchg rbp, r15
xchg r14, rax
mov r14, qword [rbp - 0x18]
xchg r14, rax
lea rcx, [rax - 8]
movzx edx, byte [rax - 0x10]
call fcn.140054300
nop
mov rdx, qword [rbp - 0x18]
nop
sub rdx, 0x17eed856
add rdx, 0x17eed846
xchg rsi, rdx
mov qword [rbp - 0x18], rsi
xchg rsi, rdx
cmp byte [rbp - 0x30], 2
jne 0x140054799
lea rbx, [rbp - 0x20]
xchg rsi, rdx
mov rdx, qword [rbp - 0x28]
xchg rsi, rdx
mov r14, qword [rsi + 8]
mov rdi, qword [rsi]
cmp rdi, r14
je 0x140054757
nop word [rax + rax]
xchg rdx, r14
mov r14, qword [rbx + 8]
xchg rdx, r14
cmp rdx, qword [rbx + 0x10]
je 0x140054729
movzx eax, byte [rdi]
mov byte [rdx], al
mov rax, qword [rdi + 8]
xchg r9, rax
mov qword [rdx + 8], r9
xchg r9, rax
mov byte [rdi], 0x59
sub byte [rdi], 0x26
sub byte [rdi], 8
add byte [rdi], 0x3d
sub byte [rdi], 0x30
xor byte [rdi], 0x7b
sub byte [rdi], 0x42
xor byte [rdi], 0x14
xor byte [rdi], 0x15
mov qword [rdi + 8], r15
neg qword [rbx + 8]
add qword [rbx + 8], 0xfffffffffffffff0
neg qword [rbx + 8]
jmp 0x140054740
test rdx, rdx
je 0x140054603
movabs rax, 0xfffffff5b60df8b
xor rax, 0x55bad92f
xor rax, 0x71935599
xor rax, 0x692650e4
add rax, 0x1789abd2
add rax, 0x7fffffff
add rax, 0x52075055
cmp rdx, rax
ja 0x140054d20
lea rcx, [rbp - 0x20]
call fcn.140053370
xchg rsi, rdi
mov rdi, qword [rbp - 0x18]
xchg rdi, rsi
xchg r11, rdi
mov r11, qword [rbp - 0x20]
xchg r11, rdi
mov rax, qword [r12]
mov rbx, qword [rax]
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
jne 0x1400544a4
nop dword [rax]
lea r8, [rbx + 0x40]
cmp rsi, qword [rbp - 0x10]
je 0x140054680
movzx eax, byte [r8]
mov byte [rsi], al
mov rax, qword [r8 + 8]
mov qword [rsi + 8], rax
mov byte [r8], 0x29
xor byte [r8], 0x3e
add byte [r8], 0x37
xor byte [r8], 0x54
add byte [r8], 0x1a
xor byte [r8], 0x51
sub byte [r8], 0x29
xor byte [r8], 0x3c
mov qword [r8 + 8], r15
mov rsi, qword [rbp - 0x18]
nop
sub rsi, 0x29f8229e
add rsi, 0x29f822ae
xchg rsi, r13
mov qword [rbp - 0x18], r13
xchg rsi, r13
jmp 0x140054690
mov rdx, rsi
lea rcx, [rbp - 0x20]
call fcn.140033130
mov rsi, qword [rbp - 0x18]
xchg r10, rax
mov r10, qword [rbx + 0x10]
xchg r10, rax
cmp byte [rax + 0x19], 0
je 0x1400546d9
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x1400546cb
cmp rbx, qword [rax + 0x10]
jne 0x1400546cb
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x1400546b0
xchg rbx, r12
mov r12, rax
xchg rbx, r12
jmp 0x140054716
xchg rbx, rax
mov rax, rbx
xchg rbx, rax
xchg rcx, rsi
mov rsi, qword [rax]
xchg rsi, rcx
cmp byte [rcx + 0x19], 0
jne 0x140054716
nop word [rax + rax]
xchg r10, rbx
mov r10, rcx
xchg rbx, r10
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x1400546fd
cmp byte [rbx + 0x19], 0
je 0x14005461e
mov rdi, qword [rbp - 0x20]
jmp 0x1400544a4
xchg rsi, r8
mov rsi, rdi
xchg r8, rsi
xchg rbx, r11
mov rcx, r11
xchg r11, rbx
call fcn.140033130
neg rdi
add rdi, 0xfffffffffffffff0
neg rdi
cmp rdi, r14
jne 0x140054550
mov rsi, qword [rbp - 0x28]
mov rbx, qword [rsi]
xchg r13, rdi
mov r13, qword [rsi + 8]
xchg rdi, r13
cmp rbx, rdi
je 0x1400548f0
nop
lea rcx, [rbx + 8]
movzx edx, byte [rbx]
call fcn.140054300
nop
add rbx, 0x10
cmp rbx, rdi
jne 0x14005476f
xchg r11, rax
mov r11, qword [rsi]
xchg r11, rax
mov qword [rsi + 8], rax
jmp 0x1400548f0
cmp byte [rbp - 0x30], 1
jne 0x1400548f0
mov rdi, qword [rbp - 0x28]
mov rbx, qword [rdi]
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
jne 0x1400548bd
lea r8, [rbx + 0x40]
cmp rdx, qword [rbp - 0x10]
je 0x140054817
movzx eax, byte [r8]
mov byte [rdx], al
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov byte [r8], 0x65
xor byte [r8], 0x2a
add byte [r8], 1
xor byte [r8], 0x56
xor byte [r8], 5
xor byte [r8], 7
add byte [r8], 0x5c
sub byte [r8], 0x54
xor byte [r8], 0xc
mov qword [r8 + 8], r15
mov rdx, qword [rbp - 0x18]
nop
add rdx, 0x48b44620
sub rdx, 0x48b44610
mov qword [rbp - 0x18], rdx
jmp 0x140054824
lea rcx, [rbp - 0x20]
call fcn.140033130
mov rdx, qword [rbp - 0x18]
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x140054870
xchg r15, rax
mov r15, qword [rbx + 8]
xchg r15, rax
cmp byte [rax + 0x19], 0
jne 0x140054864
nop
cmp rbx, qword [rax + 0x10]
jne 0x140054864
xchg r8, rax
mov rbx, r8
xchg r8, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x140054845
xchg r15, rax
mov rbx, r15
xchg r15, rax
jmp 0x1400548af
mov rbx, rax
xchg rcx, rbp
mov rbp, qword [rax]
xchg rbp, rcx
cmp byte [rcx + 0x19], 0
jne 0x1400548af
nop dword [rax]
nop dword [rax + rax]
xchg rcx, r8
mov rbx, r8
xchg r8, rcx
xchg r14, rax
mov r14, qword [rcx]
xchg r14, rax
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x140054892
cmp byte [rbx + 0x19], 0
je 0x1400547b7
mov rdi, qword [rbp - 0x28]
xchg r8, rbx
mov r8, qword [rdi]
xchg r8, rbx
xchg r8, rsi
mov rsi, qword [rbx + 8]
xchg r8, rsi
mov rdx, rdi
xchg r9, rcx
mov r9, rdi
xchg r9, rcx
call fcn.140033a70
mov qword [rbx + 8], rbx
mov qword [rbx], rbx
mov qword [rbx + 0x10], rbx
mov qword [rdi + 8], r15
movzx edx, byte [rbp - 0x30]
lea rcx, [rbp - 0x28]
call fcn.140054300
nop
xchg r10, rdi
mov r10, qword [rbp - 0x20]
xchg r10, rdi
mov rsi, qword [rbp - 0x18]
cmp rdi, rsi
jne 0x1400544af
test rdi, rdi
je 0x1400549ad
cmp rdi, rsi
je 0x140054954
nop word [rax + rax]
lea rcx, [rdi + 8]
movzx edx, byte [rdi]
call fcn.140054300
nop
neg rdi
add rdi, 0xfffffffffffffff0
neg rdi
cmp rdi, rsi
jne 0x140054930
mov rdi, qword [rbp - 0x20]
xchg rdx, r11
mov r11, qword [rbp - 0x10]
xchg r11, rdx
sub rdx, rdi
and rdx, 0xfffffffffffffff0
xchg rdi, rax
mov rdi, rax
xchg rdi, rax
cmp rdx, 0x1000
jb 0x14005499f
neg rdx
add rdx, 0xffffffffffffffd9
neg rdx
mov rdi, qword [rdi - 8]
sub rax, rdi
sub rax, 8
cmp rax, 0x1f
jbe 0x14005499f
push rcx
call 0x140627557
int3
xchg rcx, r13
mov r13, rdi
xchg rcx, r13
call fcn.1401fcc1c
mov ecx, r13d
sub ecx, 1
je 0x140054c46
sub ecx, 1
je 0x140054b4e
sub ecx, 1
je 0x140054a6a
cmp ecx, 5
jne 0x140054ccb
xchg r11, rbx
mov r11, qword [r12]
xchg r11, rbx
mov rcx, qword [rbx]
test rcx, rcx
je 0x140054a36
xchg r14, rdx
mov r14, qword [rbx + 0x10]
xchg rdx, r14
sub rdx, rcx
cmp rdx, 0x1000
jb 0x140054a20
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054c3f
mov rcx, r8
call fcn.1401fcc1c
xchg r12, r15
mov qword [rbx], r12
xchg r12, r15
mov qword [rbx + 8], r15
mov qword [rbx + 0x10], r15
mov edx, 0x2952ac13
sub edx, 0x1458bf59
add edx, 0x25c11ca5
xor edx, 0x37751d84
xor edx, 0x21f800e6
sub edx, 0x978ee97
xor edx, 0x6ac3c0d7
sub edx, 0x487ee549
jmp 0x140054cc2
mov rbx, qword [r12]
xchg rdx, r12
mov r12, qword [rbx + 0x18]
xchg r12, rdx
cmp rdx, 0x10
jb 0x140054ac2
inc rdx
xchg rbp, rcx
mov rbp, qword [rbx]
xchg rcx, rbp
cmp rdx, 0x1000
jb 0x140054abd
sub rdx, 0xffffffffffffffd9
xchg r13, r8
mov r13, qword [rcx - 8]
xchg r13, r8
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054c3f
mov rcx, r8
call fcn.1401fcc1c
xchg r15, rsi
mov qword [rbx + 0x10], rsi
xchg rsi, r15
mov qword [rbx + 0x18], 0x12ac325c
add qword [rbx + 0x18], 0x5fe24709
xor qword [rbx + 0x18], 0x44f4f2af
xor qword [rbx + 0x18], 0x211475df
xor qword [rbx + 0x18], 0x79e91a1e
sub qword [rbx + 0x18], 0x52413429
add qword [rbx + 0x18], 0x3809680e
xor qword [rbx + 0x18], 0x5a6ae416
sub qword [rbx + 0x18], 0xe3af3d7
mov byte [rbx], 0x18
add byte [rbx], 0x40
sub byte [rbx], 0x36
xor byte [rbx], 0x6c
add byte [rbx], 0x16
xor byte [rbx], 0x64
mov edx, 0x355cfc69
sub edx, 0x21a51d01
add edx, 0x2146349a
xor edx, 0x485b8b90
xor edx, 0x2f8d5abf
xor edx, 0x5328c50d
jmp 0x140054cc2
xchg r10, rdi
mov r10, qword [r12]
xchg rdi, r10
mov rbx, qword [rdi]
test rbx, rbx
je 0x140054c11
xchg rsi, r9
mov r9, qword [rdi + 8]
xchg r9, rsi
cmp rbx, rsi
je 0x140054b9b
nop word [rax + rax]
lea rcx, [rbx + 8]
movzx edx, byte [rbx]
call fcn.140054300
nop
add rbx, 0x10
cmp rbx, rsi
jne 0x140054b81
xchg rsi, rcx
mov rsi, qword [rdi]
xchg rsi, rcx
xchg r14, rdx
mov r14, qword [rdi + 0x10]
xchg r14, rdx
sub rdx, rcx
and rdx, 0xfffffffffffffff0
cmp rdx, 0x1000
jb 0x140054bef
nop
add rdx, 0x8872a41
sub rdx, 0x8872a1a
xchg r8, r12
mov r12, qword [rcx - 8]
xchg r8, r12
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140054c3f
mov rcx, r8
call fcn.1401fcc1c
xchg r15, rcx
mov qword [rdi], rcx
xchg r15, rcx
xchg r15, rbp
mov qword [rdi + 8], rbp
xchg r15, rbp
xchg r14, r15
mov qword [rdi + 0x10], r14
xchg r15, r14
mov edx, 0x5f4e394c
add edx, 0xbd34d62
sub edx, 0x4b6f2d12
sub edx, 0xad5b89
sub edx, 0x1b0971b1
xor edx, 0x37fb5548
sub edx, 0x3400d912
jmp 0x140054cc2
push rdi
call 0x1402b3df4
int3
xchg rbx, r9
mov r9, qword [r12]
xchg r9, rbx
mov r8, qword [rbx]
mov r8, qword [r8 + 8]
xchg r13, rbx
mov rdx, r13
xchg r13, rbx
xchg r10, rbx
mov rcx, r10
xchg rbx, r10
call fcn.140033a70
mov edx, 0x399db3cb
add edx, 0x3a91a2dd
sub edx, 0x71e27933
add edx, 0x59c80869
xor edx, 0x5971eaf6
sub edx, 0x5650ed8
xchg rcx, rdi
mov rdi, qword [rbx]
xchg rcx, rdi
call fcn.1401fcc1c
mov edx, 0x751c1cc5
xor edx, 0x17c3b6d4
sub edx, 0x410069bc
add edx, 0x1254ebec
add edx, 0xf83bf7
sub edx, 0x352c6828
mov rcx, qword [r12]
call fcn.1401fcc1c
lea r11, [rsp + 0x50]
xchg rbp, rbx
mov rbp, qword [r11 + 0x30]
xchg rbx, rbp
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
nop
mov r15, qword [rsp]
add rsp, 8
push rax
push rbx
push rdx
push rdx
push rdx
xchg qword [rsp + 0x28], r14
pop rdx
pop rdx
pop rdx
pop rbx
pop rax
add rsp, 8
push rbx
push rdx
xchg qword [rsp + 0x10], r13
add rsp, 0x18
nop
xchg qword [rsp], r12
add rsp, 8
nop
add rsp, 8
mov rbp, qword [rsp - 8]
ret
call fcn.14002f860
nop
int3