Function at 0x14009e520
Capabilities:
Hash data using sha1

Disassembly:
push rbp
push rbx
push r14
lea rbp, [rsp - 0x4f0]
sub rsp, 0x5f0
mov rax, qword [0x1400bf040]
xor rax, rsp
mov qword [rbp + 0x4d0], rax
mov rdx, qword [rcx + 0x18]
mov r14, rcx
mov qword [rsp + 0x28], rcx
cmp qword [rdx + 8], 0
mov ebx, dword [rdx + 0x10]
jne 0x14009e565
mov eax, 0xffffff53
jmp 0x14009e8d4
mov qword [rsp + 0x618], rsi
lea rcx, [rbp + 0x2b0]
mov qword [rsp + 0x620], rdi
xorps xmm0, xmm0
xor edi, edi
mov qword [rsp + 0x628], r12
xor eax, eax
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x80], rdi
mov r8, rbx
mov dword [rbp - 0x78], edi
mov esi, edi
mov qword [rbp + 0x50], rdi
mov qword [rbp - 0x10], rdi
mov dword [rbp - 8], edi
mov dword [rbp - 0x34], 0x67452301
mov dword [rbp - 0x30], 0xefcdab89
mov dword [rbp - 0x2c], 0x98badcfe
mov dword [rbp - 0x28], 0x10325476
mov dword [rbp + 0x3c], 0x67452301
mov dword [rbp + 0x40], 0xefcdab89
mov dword [rbp + 0x44], 0x98badcfe
mov dword [rbp + 0x48], 0x10325476
mov dword [rbp + 0x4c], 0xc3d2e1f0
mov rdx, qword [rdx + 8]
mov qword [rsp + 0x5e8], r13
mov qword [rsp + 0x5e0], r15
mov r15d, edi
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x38], rax
movups xmmword [rsp + 0x58], xmm0
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x40], rbx
call sub.VCRUNTIME140.dll_memcpy
mov r9d, 0xffffffe0
lea r13d, [rbx + 0x21]
sub r9d, ebx
mov eax, 0xffffffdf
sub eax, ebx
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x20], eax
mov r12d, edi
nop dword [rax]
lea edx, [rax + r13]
lea rcx, [rsp + 0x70]
call fcn.14009cae0
test eax, eax
je 0x14009e89d
lea ebx, [r9 + r13]
movsxd r8, ebx
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x60]
call sub.VCRUNTIME140.dll_memcpy
mov rdi, qword [r14 + 0x18]
lea rcx, [rbp + 0x60]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rcx, rax
mov r8, rbx
mov rdx, qword [rdi + 8]
call sub.VCRUNTIME140.dll_memcpy
lea eax, [r13 - 0x20]
movups xmm0, xmmword [rdi + 0x1c]
movups xmm1, xmmword [rdi + 0x2c]
movups xmmword [rbp + rax + 0x60], xmm0
movups xmm0, xmmword [rdi + 0x3c]
movups xmmword [rbp + rax + 0x70], xmm1
movups xmm1, xmmword [rdi + 0x4c]
movups xmmword [rbp + r13 + 0x60], xmm0
movups xmmword [rbp + r13 + 0x70], xmm1
test esi, esi
jne 0x14009e6fc
lea r8d, [r13 + 0x20]
lea rdx, [rbp + 0x60]
lea rcx, [rbp - 0x10]
call fcn.1400730d0
mov esi, eax
test eax, eax
jne 0x14009e6f8
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x10]
call fcn.140073570
mov r15d, dword [rsp + 0x68]
mov esi, eax
movups xmm0, xmmword [rsp + 0x58]
mov qword [rsp + 0x38], r15
mov r15d, dword [rbp - 0x80]
movups xmmword [rsp + 0x48], xmm0
jmp 0x14009e701
mov r15d, dword [rbp - 0x80]
movups xmm0, xmmword [rsp + 0x48]
mov rax, qword [rsp + 0x38]
movups xmmword [rbp + rbx + 0x2b0], xmm0
mov dword [rbp + rbx + 0x2c0], eax
test esi, esi
jne 0x14009e734
lea r14d, [rbx + 0x14]
lea rbx, [rbp + 0x2b0]
cmp r15d, 0x40
jb 0x14009e77d
mov esi, 0xffffff7c
mov r14, qword [rsp + 0x28]
mov eax, dword [rsp + 0x20]
inc r13d
mov r9d, dword [rsp + 0x34]
add eax, r13d
add r12d, 0x10
cmp eax, 3
mov eax, dword [rsp + 0x20]
jl 0x14009e640
test esi, esi
jne 0x14009e8a2
mov rcx, r14
call fcn.14009df80
mov esi, eax
test eax, eax
jne 0x14009e8a2
mov rcx, r14
call fcn.14009e350
mov esi, eax
jmp 0x14009e8aa
mov ecx, dword [rbp - 0x7c]
lea eax, [r14 + rcx]
mov dword [rbp - 0x7c], eax
cmp eax, ecx
jae 0x14009e78e
inc dword [rbp - 0x78]
test r15d, r15d
je 0x14009e7fe
mov ecx, 0x40
mov eax, r15d
sub ecx, r15d
lea rdx, [rbp + 0x2b0]
cmp r14d, ecx
mov edi, r14d
cmovae edi, ecx
lea rcx, [rbp - 0x74]
add rcx, rax
mov r8d, edi
call sub.VCRUNTIME140.dll_memcpy
mov r15d, dword [rbp - 0x80]
lea rbx, [rbp + 0x2b0]
add r15d, edi
add rbx, rdi
sub r14d, edi
mov dword [rbp - 0x80], r15d
cmp r15d, 0x40
jne 0x14009e7fe
lea rdx, [rbp - 0x74]
lea rcx, [rbp - 0x80]
call fcn.140085f40
mov esi, eax
test eax, eax
je 0x14009e7f7
mov r15d, dword [rbp - 0x80]
jmp 0x14009e72f
xor r15d, r15d
mov dword [rbp - 0x80], r15d
cmp r14d, 0x40
jb 0x14009e850
mov edi, r14d
shr rdi, 6
nop dword [rax + rax]
movups xmm0, xmmword [rbx]
lea rdx, [rbp - 0x74]
add r14d, 0xffffffc0
lea rcx, [rbp - 0x80]
movups xmmword [rbp - 0x74], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x64], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rbp - 0x54], xmm0
movups xmm1, xmmword [rbx + 0x30]
add rbx, 0x40
movups xmmword [rbp - 0x44], xmm1
call fcn.140085f40
mov esi, eax
sub rdi, 1
jne 0x14009e810
mov r15d, dword [rbp - 0x80]
test r14d, r14d
je 0x14009e86b
mov r8d, r14d
lea rcx, [rbp - 0x74]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov r15d, r14d
mov dword [rbp - 0x80], r14d
test esi, esi
jne 0x14009e72f
mov r14, qword [rsp + 0x28]
movsxd rcx, r12d
mov rdx, qword [r14 + 0x18]
add rdx, 0xad
add rdx, rcx
lea rcx, [rbp - 0x80]
call fcn.1400868a0
mov r15d, dword [rbp - 0x80]
mov esi, eax
jmp 0x14009e734
mov esi, 0xfffffed2
mov rcx, r14
call fcn.14009e350
mov r15, qword [rsp + 0x5e0]
mov eax, esi
mov rsi, qword [rsp + 0x618]
mov r13, qword [rsp + 0x5e8]
mov r12, qword [rsp + 0x628]
mov rdi, qword [rsp + 0x620]
mov rcx, qword [rbp + 0x4d0]
xor rcx, rsp
call fcn.14009f800
add rsp, 0x5f0
pop r14
pop rbx
pop rbp
ret