Function at 0x18003c690
Capabilities:
Authenticate hmac

Disassembly:
jmp 0x18003c690
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [0x18015a118]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov byte [rsp + 0x30], r9b
mov qword [rsp + 0x40], r8
mov rdi, rdx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rdx
xor esi, esi
mov dword [rsp + 0x48], esi
mov rcx, qword [rdx + 0x10]
cmp rcx, 0x40
jbe 0x18003c73d
lea rcx, [rbp - 0x38]
call fcn.180002b17
mov rdx, rax
mov rcx, rdi
call fcn.180002892
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x18003c735
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003c730
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d050
call fcn.180005989
mov rcx, qword [rdi + 0x10]
cmp rcx, 0x40
jae 0x18003c792
mov edx, 0x40
sub rdx, rcx
mov r8, qword [rdi + 0x18]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x18003c77f
mov qword [rdi + 0x10], 0x40
mov rsi, rdi
cmp r8, 0x10
jb 0x18003c76a
mov rsi, qword [rdi]
add rcx, rsi
mov r8, rdx
xor edx, edx
call fcn.180005308
mov byte [rsi + 0x40], 0
xor esi, esi
jmp 0x18003c792
mov byte [rsp + 0x20], 0
mov r9, rdx
xor r8d, r8d
mov rcx, rdi
call fcn.18000490d
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
mov ecx, 0x50
call fcn.1800013cf
mov rbx, rax
mov r12d, 0x4f
mov qword [rbp - 0x60], r12
mov byte [rax], 0
mov qword [rbp - 0x78], rax
mov r14, rsi
mov qword [rbp - 0x68], rsi
lea ecx, [r12 + 1]
call fcn.1800013cf
mov rcx, rax
mov qword [rsp + 0x38], rax
mov r13d, r12d
mov qword [rbp - 0x80], r12
mov byte [rax], 0
mov qword [rsp + 0x68], rax
mov r15, rsi
mov qword [rsp + 0x78], rsi
nop dword [rax + rax]
mov rax, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x18003c81d
mov rax, qword [rdi]
movzx r9d, byte [rax + rsi]
xor r9b, 0x36
cmp r14, r12
jae 0x18003c84b
lea rax, [r14 + 1]
mov qword [rbp - 0x68], rax
lea rax, [rbp - 0x78]
cmp r12, 0x10
cmovae rax, rbx
mov byte [rax + r14], r9b
mov byte [rax + r14 + 1], 0
jmp 0x18003c860
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp - 0x78]
call fcn.180004b42
mov rcx, qword [rsp + 0x38]
mov rax, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x18003c86d
mov rax, qword [rdi]
movzx r9d, byte [rax + rsi]
xor r9b, 0x5c
cmp r15, r13
jae 0x18003c89d
lea rax, [r15 + 1]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x68]
cmp r13, 0x10
cmovae rax, rcx
mov byte [rax + r15], r9b
mov byte [rax + r15 + 1], 0
jmp 0x18003c8ae
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rsp + 0x68]
call fcn.180004b42
inc rsi
cmp rsi, 0x40
jae 0x18003c8db
mov r12, qword [rbp - 0x60]
mov r14, qword [rbp - 0x68]
mov rbx, qword [rbp - 0x78]
mov r13, qword [rbp - 0x80]
mov r15, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x38], rcx
jmp 0x18003c810
mov rdx, qword [rsp + 0x40]
mov r12, qword [rdx + 0x10]
cmp byte [rsp + 0x30], 0
mov rbx, qword [rsp + 0x50]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
je 0x18003cd20
mov r15, qword [rbp - 0x68]
sub rax, r15
cmp rax, r12
jb 0x18003d056
lea r9, [rbp - 0x78]
cmp qword [rbp - 0x60], 0x10
cmovae r9, qword [rbp - 0x78]
mov qword [rsp + 0x38], r9
cmp qword [rdx + 0x18], 0x10
jb 0x18003c933
mov rdx, qword [rdx]
mov qword [rsp + 0x40], rdx
xor r8d, r8d
mov qword [rbp - 0x58], r8
mov qword [rbp - 0x48], r8
mov qword [rbp - 0x40], r8
lea r13, [r12 + r15]
mov esi, 0xf
lea r14, [rbp - 0x58]
cmp r13, rsi
jbe 0x18003c9d3
mov rsi, r13
or rsi, 0xf
cmp rsi, rcx
jbe 0x18003c98e
mov rsi, rcx
movabs rcx, 0x8000000000000027
call fcn.1800013cf
test rax, rax
je 0x18003d06e
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
mov r9, qword [rsp + 0x38]
jmp 0x18003c9cf
mov eax, 0x16
cmp rsi, rax
cmovb rsi, rax
lea rax, [rsi + 1]
cmp rax, 0x1000
jb 0x18003c9b5
lea rcx, [rax + 0x27]
cmp rcx, rax
jbe 0x18003d038
jmp 0x18003c96d
test rax, rax
je 0x18003c9cc
mov rcx, rax
call fcn.1800013cf
mov r14, rax
mov r9, qword [rsp + 0x38]
jmp 0x18003c9cf
mov r14, r8
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x40], rsi
mov r8, r15
mov rdx, r9
mov rcx, r14
call fcn.180003bf7
lea rcx, [r14 + r15]
mov r8, r12
mov rdx, qword [rsp + 0x40]
call fcn.180003bf7
mov byte [r14 + r13], 0
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x18]
call fcn.180002b17
nop
lea r8, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x78]
xor edx, edx
mov rcx, rax
call fcn.180007176
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x28], xmm1
xor esi, esi
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 0xf
mov byte [rax], sil
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 8]
call fcn.180002b17
mov r15, rax
mov r12, qword [str.0123456789abcdef0123456789ABCDEF]
cmp byte [rbp + 0x90], sil
je 0x18003ca70
add r12, 0x10
mov r13, qword [rax + 0x10]
mov qword [rbx], rsi
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
mov dword [rsp + 0x48], 0xe
lea rdx, [r13*2]
mov rcx, rbx
call fcn.1800022f7
mov r14, rsi
test r13, r13
je 0x18003cb59
nop word [rax + rax]
mov rax, r15
cmp qword [r15 + 0x18], 0x10
jb 0x18003cabd
mov rax, qword [r15]
movzx esi, byte [rax + r14]
mov eax, esi
shr rax, 4
movzx r9d, byte [rax + r12]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x18003caf9
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x18003caee
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x18003cb08
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call fcn.180004b42
and esi, 0xf
movzx r9d, byte [rsi + r12]
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
cmp rcx, rdx
jae 0x18003cb3c
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rdx, 0x10
jb 0x18003cb31
mov rax, qword [rbx]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x18003cb4b
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, rbx
call fcn.180004b42
inc r14
cmp r14, r13
jb 0x18003cab0
xor esi, esi
mov rdx, qword [rbp + 0x20]
cmp rdx, 0x10
jb 0x18003cb94
inc rdx
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cb8f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d05c
call fcn.180005989
mov qword [rbp + 0x18], rsi
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x18003cbe0
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cbda
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d062
call fcn.180005989
nop
mov rdx, qword [rbp]
cmp rdx, 0x10
jb 0x18003cc1b
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cc16
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d068
call fcn.180005989
mov qword [rbp - 8], rsi
mov qword [rbp], 0xf
mov byte [rbp - 0x18], 0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x18003cc67
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cc61
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d06e
call fcn.180005989
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x18003cca4
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cc9e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d074
call fcn.180005989
nop
mov rax, qword [rbp - 0x60]
cmp rax, 0x10
jb 0x18003cce1
lea rdx, [rax + 1]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003ccdb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d07a
call fcn.180005989
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x18003cff9
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x18003cff4
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18003d03e
jmp 0x18003cff1
mov r13, qword [rbp - 0x68]
sub rax, r13
cmp rax, r12
jb 0x18003d080
lea r9, [rbp - 0x78]
mov r15, qword [rbp - 0x78]
cmp qword [rbp - 0x60], 0x10
cmovae r9, r15
mov qword [rsp + 0x38], r9
cmp qword [rdx + 0x18], 0x10
jb 0x18003cd55
mov rdx, qword [rdx]
mov qword [rsp + 0x40], rdx
xor r8d, r8d
mov qword [rbp - 0x58], r8
mov qword [rbp - 0x48], r8
mov qword [rbp - 0x40], r8
lea rdx, [r12 + r13]
mov esi, 0xf
lea r14, [rbp - 0x58]
cmp rdx, rsi
jbe 0x18003ce01
mov rsi, rdx
or rsi, 0xf
cmp rsi, rcx
jbe 0x18003cdb8
mov rsi, rcx
movabs rcx, 0x8000000000000027
call fcn.1800013cf
test rax, rax
je 0x18003d092
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
lea rdx, [r12 + r13]
mov r9, qword [rsp + 0x38]
jmp 0x18003cdfd
mov eax, 0x16
cmp rsi, rax
cmovb rsi, rax
lea rax, [rsi + 1]
cmp rax, 0x1000
jb 0x18003cddf
lea rcx, [rax + 0x27]
cmp rcx, rax
jbe 0x18003d044
jmp 0x18003cd93
test rax, rax
je 0x18003cdfa
mov rcx, rax
call fcn.1800013cf
mov r14, rax
lea rdx, [r12 + r13]
mov r9, qword [rsp + 0x38]
jmp 0x18003cdfd
mov r14, r8
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x40], rsi
mov r8, r13
mov rdx, r9
mov rcx, r14
call fcn.180003bf7
lea rcx, [r14 + r13]
mov r8, r12
mov rdx, qword [rsp + 0x40]
call fcn.180003bf7
lea rax, [r12 + r13]
mov byte [r14 + rax], 0
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x18]
call fcn.180002b17
nop
lea r8, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x78]
xor edx, edx
mov rcx, rax
call fcn.180007176
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x28], xmm1
xor esi, esi
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], 0xf
mov byte [rax], sil
lea rdx, [rbp - 0x38]
mov rcx, rbx
call fcn.180002b17
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x18003cec7
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cec1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d086
call fcn.180005989
nop
mov rdx, qword [rbp]
cmp rdx, 0x10
jb 0x18003cf02
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cefd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d08c
call fcn.180005989
mov qword [rbp - 8], rsi
mov qword [rbp], 0xf
mov byte [rbp - 0x18], 0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x18003cf4e
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cf48
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d092
call fcn.180005989
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x18003cf8b
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18003cf85
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d098
call fcn.180005989
nop
mov rax, qword [rbp - 0x60]
cmp rax, 0x10
jb 0x18003cfc3
lea rdx, [rax + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x18003cfba
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18003d032
mov rcx, r15
call fcn.180005989
nop
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x18003cff9
inc rdx
mov rcx, qword [rdi]
cmp rdx, 0x1000
jb 0x18003cff4
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x18003d04a
mov rcx, r8
call fcn.180005989
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], 0xf
mov byte [rdi], 0
mov rax, rbx
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.180003bd4
mov rbx, qword [rsp + 0x188]
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180002db0
nop
call fcn.180005835
nop
call fcn.180002db0
nop
call fcn.180005835
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180003d9b
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180003d9b
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180002db0
nop
call fcn.180002db0
int3