Function at 0x1402821f0
Capabilities:
Authenticate hmac
Encode data using xor
Hash data using sha256

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
mov rdi, r9
mov r14, r8
mov r15, rdx
mov rsi, rcx
mov rax, qword [0x14051d038]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov rax, qword [rcx]
test r9, r9
je 0x140282551
test r15, r15
jne 0x140282238
cmp rdi, rax
je 0x140282479
movaps xmm0, xmmword [0x14047fb40]
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov ebx, dword [rdi + 0x28]
cmp rbx, r14
jb 0x1402824f8
cmp r14, 0x20
jne 0x1402824ba
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
cmp ebx, r14d
je 0x140282300
mov eax, r14d
mov r8, rbx
sub r8, rax
lea rcx, [rsp + rax]
add rcx, 0x20
cmp r8, 0x20
jne 0x1402824ae
xorps xmm0, xmm0
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx], xmm0
test rbx, rbx
je 0x140282327
xor eax, eax
nop word [rax + rax]
movzx ecx, byte [rsp + rax + 0x20]
xor cl, 0x36
mov byte [rsp + rax + 0xa0], cl
inc rax
cmp rbx, rax
jne 0x140282310
cmp qword [rsi + 0x28], rdi
je 0x140282352
mov ecx, dword [rdi + 0x2c]
call fcn.140286340
test rax, rax
je 0x1402824f4
mov r14, rax
mov rcx, qword [rsi + 0x30]
call fcn.140286410
mov qword [rsi + 0x30], r14
mov qword [rsi + 0x28], rdi
lea r14, [rsi + 0x28]
mov rax, qword [rdi + 0x10]
lea r15, [0x1403d0e80]
cmp rax, r15
jne 0x1402824d8
mov rax, qword [rsi + 0x30]
xorps xmm0, xmm0
movups xmmword [rax + 0x5c], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movaps xmm0, xmmword [0x1404eabc0]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [0x1404eabd0]
movups xmmword [rax + 0x10], xmm0
mov dword [rax + 0x6c], 0x20
mov rax, qword [r14]
mov rax, qword [rax + 0x18]
lea rdx, [rsp + 0xa0]
mov rcx, r14
mov r8, rbx
call qword [case.0x14012d181.0]
test ebx, ebx
je 0x1402823e7
xor eax, eax
nop word cs:[rax + rax]
movzx ecx, byte [rsp + rax + 0x20]
xor cl, 0x5c
mov byte [rsp + rax + 0xa0], cl
inc rax
cmp rbx, rax
jne 0x1402823d0
cmp qword [rsi + 0x48], rdi
je 0x140282412
mov ecx, dword [rdi + 0x2c]
call fcn.140286340
test rax, rax
je 0x1402824f4
mov r14, rax
mov rcx, qword [rsi + 0x50]
call fcn.140286410
mov qword [rsi + 0x50], r14
mov qword [rsi + 0x48], rdi
lea r14, [rsi + 0x48]
mov rax, qword [rdi + 0x10]
cmp rax, r15
jne 0x1402824e6
mov rax, qword [rsi + 0x50]
xorps xmm0, xmm0
movups xmmword [rax + 0x5c], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movaps xmm0, xmmword [0x1404eabc0]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [0x1404eabd0]
movups xmmword [rax + 0x10], xmm0
mov dword [rax + 0x6c], 0x20
mov rax, qword [rsi + 0x48]
mov rax, qword [rax + 0x18]
lea rdx, [rsp + 0xa0]
mov rcx, r14
mov r8, rbx
call qword [case.0x14012d181.0]
mov qword [rsi], rdi
lea rdx, [rsi + 0x28]
add rsi, 8
mov rcx, rsi
call fcn.140281ea0
mov esi, eax
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.1402ddd70
mov eax, esi
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
xor edx, edx
call fcn.1402e0d10
jmp 0x140282300
test r14, r14
je 0x1402822d6
lea rcx, [rsp + 0x20]
mov rdx, r15
mov r8, r14
call fcn.1402e0660
jmp 0x1402822d6
mov rcx, r14
call qword [case.0x14012d181.0]
jmp 0x1402823a1
mov rcx, r14
call qword [case.0x14012d181.0]
jmp 0x14028245a
xor esi, esi
jmp 0x14028248b
lea r12, [rsi + 8]
mov rcx, r12
mov rdx, rdi
call fcn.1401895f0
test eax, eax
je 0x1402824f4
mov rax, qword [rsi + 8]
mov rax, qword [rax + 0x18]
mov rcx, r12
mov rdx, r15
mov r8, r14
call qword [case.0x14012d181.0]
mov rax, qword [rsi + 8]
mov rax, qword [rax + 0x20]
lea rdx, [rsp + 0x20]
mov rcx, r12
call qword [case.0x14012d181.0]
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov r14d, dword [rax + 4]
mov edx, dword [rax + 0x2c]
call fcn.140286450
jmp 0x1402822d6
mov rdi, rax
jmp 0x14028222a