Function at 0x140161d60
Capabilities:
Authenticate hmac

Disassembly:
lea r12, [rsp - 0xd8]
cmp r12, qword [r14 + 0x10]
jbe 0x140162580
push rbp
mov rbp, rsp
sub rsp, 0x150
mov qword [rsp + 0x1e8], rax
mov byte [rsp + 0x2d], 1
movzx edx, byte [rsp + 0x2d]
mov byte [rsp + 0x2f], dl
mov rbx, qword [0x14053e3c0]
lea rcx, [rsp + 0x2d]
lea rax, [0x1402e5ba0]
call fcn.14000e980
movzx ecx, word [rax]
movzx edx, byte [rsp + 0x2f]
mov byte [rsp + 0x34], dl
mov byte [rsp + 0x35], 0
mov word [rsp + 0x36], cx
movzx eax, byte [rsp + 0x34]
movzx ebx, byte [rsp + 0x35]
call fcn.140142a20
mov qword [rsp + 0xe0], rax
mov rdx, qword [rsp + 0x1e8]
mov rbx, qword [rdx + 8]
mov rcx, qword [rdx + 0x10]
xor eax, eax
call fcn.14004e040
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0xe0]
call fcn.140140de0
test rdi, rdi
jne 0x140161ea6
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0x70], rdi
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
movups xmmword [rsp + 0x140], xmm15
mov rdx, qword [rsp + 0x198]
mov r8, qword [rsp + 0x1a0]
mov r9, qword [rsp + 0x1a8]
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x128], r8
mov qword [rsp + 0x130], r9
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x148], rcx
lea rax, [0x14031fdd8]
mov ebx, 4
lea rcx, [rsp + 0x120]
mov edi, 2
mov rsi, rdi
call fcn.140163180
xor edx, edx
jmp 0x140161f7e
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x150
pop rbp
ret
mov qword [rsp + 0x98], rdx
lea rsi, [rdx + 1]
mov qword [rsp + 0xa8], rsi
nop
lea rax, [0x1402db8e0]
mov ebx, 4
mov rcx, rbx
call fcn.140049c20
nop
mov rdx, qword [rsp + 0x98]
mov dword [rax], edx
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
movups xmmword [rsp + 0x140], xmm15
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], 4
mov qword [rsp + 0x130], 4
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x138], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x140], rdx
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x148], rdx
lea rax, [0x14031fdd8]
mov ebx, 4
lea rcx, [rsp + 0x120]
mov edi, 2
mov rsi, rdi
call fcn.140163180
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0xe8], rax
nop word [rax + rax]
nop
cmp qword [0x1401d11d0], rdx
jg 0x140161eb6
nop
lea rax, [0x1402db8e0]
mov ebx, 4
mov rcx, rbx
nop dword [rax]
call fcn.140049c20
nop
mov dword [rax], 0
movups xmmword [rsp + 0x120], xmm15
movups xmmword [rsp + 0x130], xmm15
movups xmmword [rsp + 0x140], xmm15
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x120], rdx
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x128], rdx
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], 4
mov qword [rsp + 0x148], 4
lea rax, [0x14031fdd8]
mov ebx, 4
lea rcx, [rsp + 0x120]
mov edi, 2
mov rsi, rdi
call fcn.140163180
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0xb8], rax
mov edx, dword [rsp + 0x170]
mov qword [rsp + 0xa8], rdx
mov byte [rsp + 0x2e], 0
mov byte [rsp + 0x2e], 0x36
mov ecx, 1
mov edi, 0x40
lea rax, [rsp + 0x2e]
mov rbx, rcx
call fcn.140074d20
cmp rcx, 0x14
jb 0x140162572
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], rbx
lea rax, [0x1402dda40]
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.140049c20
mov rdx, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x48]
xor ebx, ebx
jmp 0x1401620f8
lea r8, [rax + rbx*2]
lea r9, [rax + rbx*2]
lea r9, [r9 + 1]
movzx r10d, byte [rbx + rdx]
mov byte [r8], dil
mov byte [r9], r10b
inc rbx
cmp rcx, rbx
jle 0x14016210c
movzx edi, byte [rbx + rsi]
cmp rbx, 0x14
jb 0x1401620de
jmp 0x140162565
mov qword [rsp + 0x100], rax
lea rax, [0x1402db8e0]
mov rbx, rcx
nop
call fcn.140049c20
mov rdx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x48]
xor ebx, ebx
jmp 0x140162157
movzx r8d, word [rdx + rbx*2]
mov word [rsp + 0x32], r8w
movzx r8d, byte [rsp + 0x32]
movzx r9d, byte [rsp + 0x33]
xor r9d, r8d
mov byte [rax + rbx], r9b
inc rbx
cmp rcx, rbx
jg 0x140162136
mov rdi, qword [rsp + 0x60]
cmp rdi, 0x14
jb 0x140162555
lea rbx, [rcx + rdi]
lea rbx, [rbx - 0x14]
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffec
neg rdx
sar rdx, 0x3f
and edx, 0x14
add rdi, 0xffffffffffffffec
mov r8, qword [rsp + 0xc8]
add rdx, r8
cmp rcx, rbx
jb 0x14016219f
mov rsi, rcx
jmp 0x1401621d0
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0xf8], rdx
lea rsi, [0x1402db8e0]
call fcn.140049d00
mov rdx, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0xc8], rax
lea r8, [rax + rsi]
mov rax, r8
mov rbx, rdx
mov rcx, rdi
call fcn.1400650a0
mov qword [rsp + 0x108], 0
movups xmmword [rsp + 0x110], xmm15
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x108], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x110], rdx
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x118], rdx
lea rax, [0x14031fdd8]
mov ebx, 4
lea rcx, [rsp + 0x108]
mov edi, 1
mov rsi, rdi
call fcn.140163180
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x38], rbx
mov byte [rsp + 0x2e], 0
mov byte [rsp + 0x2e], 0x5c
mov edi, 0x40
lea rax, [rsp + 0x2e]
mov ebx, 1
mov rcx, rbx
call fcn.140074d20
cmp rcx, 0x14
jb 0x140162548
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x78], rbx
lea rax, [0x1402dda40]
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.140049c20
mov rdx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x48]
xor ebx, ebx
jmp 0x1401622ed
lea r8, [rax + rbx*2]
lea r9, [rax + rbx*2]
lea r9, [r9 + 1]
movzx r10d, byte [rbx + rdx]
mov byte [r8], dil
mov byte [r9], r10b
inc rbx
cmp rcx, rbx
jle 0x140162305
movzx edi, byte [rbx + rsi]
cmp rbx, 0x14
jb 0x1401622d3
nop dword [rax]
jmp 0x14016253b
mov qword [rsp + 0x100], rax
lea rax, [0x1402db8e0]
mov rbx, rcx
call fcn.140049c20
mov rdx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x48]
xor ebx, ebx
jmp 0x14016234e
movzx r8d, word [rdx + rbx*2]
mov word [rsp + 0x30], r8w
movzx r8d, byte [rsp + 0x30]
movzx r9d, byte [rsp + 0x31]
xor r9d, r8d
mov byte [rax + rbx], r9b
inc rbx
cmp rcx, rbx
jg 0x14016232d
mov rdi, qword [rsp + 0x78]
nop dword [rax + rax]
cmp rdi, 0x14
jb 0x14016252e
lea rbx, [rdi + rcx]
lea rbx, [rbx - 0x14]
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffec
neg rdx
sar rdx, 0x3f
and edx, 0x14
add rdi, 0xffffffffffffffec
mov r8, qword [rsp + 0xd8]
add rdx, r8
cmp rcx, rbx
jb 0x1401623a2
mov rsi, rcx
nop
jmp 0x1401623d3
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0xf8], rdx
lea rsi, [0x1402db8e0]
call fcn.140049d00
mov rdx, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0xa0]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x78], rbx
add rsi, rax
mov rax, rsi
mov rbx, rdx
mov rcx, rdi
call fcn.1400650a0
mov qword [rsp + 0x108], 0
movups xmmword [rsp + 0x110], xmm15
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x108], rdx
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x110], rdx
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0x118], rdx
lea rax, [0x14031fdd8]
mov ebx, 4
lea rcx, [rsp + 0x108]
mov edi, 1
mov rsi, rdi
call fcn.140163180
mov rdx, qword [rsp + 0x38]
lea rsi, [rdx + rbx]
mov rcx, qword [rsp + 0x40]
cmp rcx, rsi
jb 0x140162479
mov rsi, qword [rsp + 0xb0]
jmp 0x1401624ba
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xb0]
mov rdi, rbx
mov rbx, rsi
lea rsi, [0x1402db8e0]
nop dword [rax + rax]
call fcn.140049d00
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x58]
mov rsi, rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0xf0], rsi
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
call fcn.1400650a0
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xa8]
nop
cmp rdx, rcx
jb 0x140162529
mov rax, qword [rsp + 0xf0]
mov rbx, rcx
mov rcx, rdx
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rsp + 0xd0]
add rsp, 0x150
pop rbp
ret
call fcn.140064760
mov eax, 0x14
mov rcx, rdi
call fcn.1400647a0
mov rax, rbx
mov ecx, 0x14
call fcn.1400646e0
mov rdx, rcx
mov ecx, 0x14
call fcn.140064760
mov eax, 0x14
mov rcx, rdi
nop dword [rax]
call fcn.1400647a0
mov rax, rbx
mov ecx, 0x14
call fcn.1400646e0
mov rdx, rcx
mov ecx, 0x14
call fcn.140064760
nop
mov qword [rsp + 0x90], rax
call fcn.140062420
mov rax, qword [rsp + 0x90]
jmp fcn.140161d60