Function at 0x1400ec6a0
Capabilities:
Hash data using sha1

Disassembly:
mov rax, rsp
mov byte [rax + 0x20], r9b
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x940
mov qword [rsp + 0xa0], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r14, r8
mov r13, rdx
mov r15, rcx
test r9b, r9b
jne 0x1400ec6ea
call fcn.1400ebf10
test al, al
je 0x1400ecc6f
call fcn.1400e4c40
mov rbx, rax
xor edi, edi
cmp qword [rax + 0x10], rdi
jne 0x1400ec71d
lea ecx, [rdi + 0x10]
call fcn.1400f689c
mov qword [rsp + 0x20], rax
test rax, rax
je 0x1400ec716
mov rcx, rax
call fcn.1400e8fd0
jmp 0x1400ec719
mov rax, rdi
mov qword [rbx + 0x10], rax
mov rbp, qword [rbx + 0x10]
mov esi, dword [rbp]
sub esi, dword [rbp + 4]
mov eax, 0x40
cmp rsi, rax
cmova rsi, rax
mov rbx, rdi
or r12d, 0xffffffff
test rsi, rsi
je 0x1400ec789
nop
mov edx, dword [rbp + 4]
add rdx, rbx
shl rdx, 2
mov rcx, qword [rbp + 8]
mov rax, qword [rcx + 0x10]
sub rax, 4
cmp rdx, rax
ja 0x1400ec775
mov r9d, 4
lea r8, [rsp + 0x20]
call fcn.1400e7470
test al, al
je 0x1400ec775
mov eax, dword [rsp + 0x20]
jmp 0x1400ec778
mov eax, r12d
mov dword [rsp + rbx*4 + 0x30], eax
inc rbx
cmp rbx, rsi
jb 0x1400ec740
mov eax, 0x40
mov qword [rsp + 0x20], rax
lea rdx, [rsi*4]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0xc0]
lea rcx, [rsp + 0x30]
call fcn.1400e77c0
mov rdx, qword [rsp + 0x20]
mov byte [rsp + rdx + 0xc0], 0
mov dword [rsp + 0x84], edi
mov dword [rsp + 0x80], edi
mov rbx, rdi
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x88], 0x67452301
mov dword [rsp + 0x8c], 0xefcdab89
mov dword [rsp + 0x90], 0x98badcfe
mov dword [rsp + 0x94], 0x10325476
mov dword [rsp + 0x98], 0xc3d2e1f0
mov byte [rsp + 0x30], bl
mov rax, qword [r13 + 0x10]
sub rax, 4
cmp rax, 0x10
jb 0x1400ec83a
mov r9d, 4
lea r8, [rsp + 0x20]
lea edx, [r9 + 0xc]
mov rcx, r13
call fcn.1400e7470
test al, al
je 0x1400ec83a
mov esi, dword [rsp + 0x20]
jmp 0x1400ec83d
mov esi, r12d
mov rax, qword [r13 + 0x10]
sub rax, 4
cmp rax, 0xc
jb 0x1400ec86b
mov r9d, 4
lea r8, [rsp + 0x20]
lea edx, [r9 + 8]
mov rcx, r13
call fcn.1400e7470
test al, al
je 0x1400ec86b
mov r12d, dword [rsp + 0x20]
mov ebp, esi
test esi, esi
je 0x1400ec8ee
mov esi, r12d
mov rax, qword [r13 + 0x10]
dec rax
cmp rsi, rax
ja 0x1400ec8a1
mov r9d, 1
lea r8, [rsp + 0x28]
mov rdx, rsi
mov rcx, r13
call fcn.1400e7470
test al, al
je 0x1400ec8a1
movzx eax, byte [rsp + 0x28]
jmp 0x1400ec8a3
mov al, 0xff
mov byte [rsp + rbx + 0x40], al
mov rbx, qword [rsp + 0x38]
inc rbx
mov qword [rsp + 0x38], rbx
add dword [rsp + 0x84], 8
jne 0x1400ec8c5
inc dword [rsp + 0x80]
cmp rbx, 0x40
jne 0x1400ec8da
lea rcx, [rsp + 0x30]
call fcn.1400e7b90
mov rbx, qword [rsp + 0x38]
inc rsi
sub rbp, 1
jne 0x1400ec874
cmp byte [rsp + 0x30], bpl
jne 0x1400ec9ac
mov byte [rsp + rbx + 0x40], 0x80
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
cmp rax, 0x38
jbe 0x1400ec930
cmp rax, 0x40
jae 0x1400ec921
lea rcx, [rsp + rax + 0x40]
mov r8d, 0x40
sub r8, rax
xor edx, edx
call fcn.1400fc560
lea rcx, [rsp + 0x30]
call fcn.1400e7b90
mov rax, qword [rsp + 0x38]
cmp rax, 0x38
jae 0x1400ec94b
lea rcx, [rsp + rax + 0x40]
mov r8d, 0x38
sub r8, rax
xor edx, edx
call fcn.1400fc560
mov eax, dword [rsp + 0x80]
shr eax, 0x10
rol ax, 8
movzx edx, ax
movzx eax, word [rsp + 0x80]
rol ax, 8
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
mov dword [rsp + 0x78], edx
mov eax, dword [rsp + 0x84]
shr eax, 0x10
rol ax, 8
movzx edx, ax
movzx eax, word [rsp + 0x84]
rol ax, 8
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
mov dword [rsp + 0x7c], edx
lea rcx, [rsp + 0x30]
call fcn.1400e7b90
mov byte [rsp + 0x30], 1
mov r8, rdi
nop
mov edx, dword [rsp + r8 + 0x88]
mov eax, edx
shr eax, 0x10
rol ax, 8
movzx ecx, ax
rol dx, 8
movzx eax, dx
shl eax, 0x10
or ecx, eax
mov dword [rsp + r8 + 0xa8], ecx
add r8, 4
cmp r8, 0x14
jb 0x1400ec9b0
mov qword [rsp + 0x20], 0x40
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x100]
mov edx, 0x14
lea rcx, [rsp + 0xa8]
call fcn.1400e77c0
mov rdx, qword [rsp + 0x20]
mov byte [rsp + rdx + 0x100], 0
lea rax, [0x140108a50]
lea rdx, [0x140108a68]
movzx esi, byte [rsp + 0x988]
test sil, sil
cmovne rdx, rax
mov r8, r14
mov rcx, r15
call fcn.1400ec500
lea r11, [0x140108a80]
mov rcx, rdi
cmp byte [r15 + 8], cl
je 0x1400eca60
nop
inc rcx
cmp byte [rcx + r15 + 8], 0
jne 0x1400eca50
nop dword [rax + rax]
cmp rcx, 0x800
jae 0x1400eca7e
movzx eax, byte [r11]
mov byte [rcx + r15 + 8], al
inc rcx
inc r11
cmp byte [r11], 0
jne 0x1400eca60
mov byte [rcx + r15 + 8], 0
lea rcx, [rsp + 0xc0]
mov rax, rdi
cmp byte [r15 + 8], al
je 0x1400ecaa0
inc rax
cmp byte [rax + r15 + 8], 0
jne 0x1400eca95
cmp byte [rsp + 0xc0], 0
je 0x1400ecb27
nop word [rax + rax]
cmp rax, 0x7fc
jae 0x1400ecb27
movzx r8d, byte [rcx]
mov dl, r8b
cmp r8b, 0x2b
je 0x1400ecb09
cmp dl, 0x2f
je 0x1400ecaf1
cmp dl, 0x3d
je 0x1400ecad9
mov byte [rax + r15 + 8], r8b
inc rax
jmp 0x1400ecb1f
mov byte [rax + r15 + 8], 0x25
mov byte [rax + r15 + 9], 0x33
mov byte [rax + r15 + 0xa], 0x44
add rax, 3
jmp 0x1400ecb1f
mov byte [rax + r15 + 8], 0x25
mov byte [rax + r15 + 9], 0x32
mov byte [rax + r15 + 0xa], 0x46
add rax, 3
jmp 0x1400ecb1f
mov byte [rax + r15 + 8], 0x25
mov byte [rax + r15 + 9], 0x32
mov byte [rax + r15 + 0xa], 0x42
add rax, 3
inc rcx
cmp byte [rcx], 0
jne 0x1400ecab0
mov byte [rax + r15 + 8], 0
lea rdx, [0x140108a88]
mov rcx, rdi
cmp byte [r15 + 8], cl
je 0x1400ecb50
nop dword [rax]
inc rcx
cmp byte [rcx + r15 + 8], 0
jne 0x1400ecb40
nop dword [rax + rax]
cmp rcx, 0x800
jae 0x1400ecb6c
movzx eax, byte [rdx]
mov byte [rcx + r15 + 8], al
inc rcx
inc rdx
cmp byte [rdx], 0
jne 0x1400ecb50
mov byte [rcx + r15 + 8], 0
lea rax, [rsp + 0x100]
cmp byte [r15 + 8], 0
je 0x1400ecb8c
inc rdi
cmp byte [rdi + r15 + 8], 0
jne 0x1400ecb81
cmp byte [rsp + 0x100], 0
je 0x1400ecc0b
cmp rdi, 0x7fc
jae 0x1400ecc0b
movzx edx, byte [rax]
mov cl, dl
cmp dl, 0x2b
je 0x1400ecbed
cmp dl, 0x2f
je 0x1400ecbd5
cmp dl, 0x3d
je 0x1400ecbbd
mov byte [rdi + r15 + 8], dl
inc rdi
jmp 0x1400ecc03
mov byte [rdi + r15 + 8], 0x25
mov byte [rdi + r15 + 9], 0x33
mov byte [rdi + r15 + 0xa], 0x44
add rdi, 3
jmp 0x1400ecc03
mov byte [rdi + r15 + 8], 0x25
mov byte [rdi + r15 + 9], 0x32
mov byte [rdi + r15 + 0xa], 0x46
add rdi, 3
jmp 0x1400ecc03
mov byte [rdi + r15 + 8], 0x25
mov byte [rdi + r15 + 9], 0x32
mov byte [rdi + r15 + 0xa], 0x42
add rdi, 3
inc rax
cmp byte [rax], 0
jne 0x1400ecb96
mov byte [rdi + r15 + 8], 0
test sil, sil
je 0x1400ecc6d
lea r8, [r15 + 8]
mov edx, 0x800
lea rcx, [rsp + 0x140]
call fcn.1400f7170
mov qword [rsp + 0x20], 0x800
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x140]
repne scasb al, byte [rdi]
not rcx
lea rdx, [rcx - 1]
lea r9, [rsp + 0x20]
lea r8, [r15 + 8]
lea rcx, [rsp + 0x140]
call fcn.1400e77c0
mov rdx, qword [rsp + 0x20]
mov byte [rdx + r15 + 8], 0
mov al, 1
lea r11, [rsp + 0x940]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret