Function at 0x180022670
Capabilities:
Hash data using sha1

Disassembly:
mov r11, rsp
push rbx
push rsi
push rdi
sub rsp, 0x120
mov rax, qword [0x18010db20]
xor rax, rsp
mov qword [rsp + 0xf0], rax
xor eax, eax
xor ebx, ebx
mov qword [r11 - 0x28], r12
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x160]
mov qword [r11 - 0x30], r13
mov r13, r9
mov rdi, r8
mov rsi, rbx
mov qword [rsp + 0x30], rbx
cmp eax, 1
jne 0x1800226c0
lea r12d, [rbx + 0x14]
jmp 0x1800226f1
cmp eax, 2
jne 0x1800226cb
lea r12d, [rax + 0x1e]
jmp 0x1800226f1
cmp eax, 3
jne 0x1800226d6
lea r12d, [rax + 0x2d]
jmp 0x1800226f1
cmp eax, 4
jne 0x1800226e1
lea r12d, [rax + 0x3c]
jmp 0x1800226f1
mov r12d, ebx
mov r8d, 0x1c
cmp eax, 5
cmove r12d, r8d
xor r8d, r8d
mov qword [rsp + 0x118], rbp
mov byte [rsp + 0xb0], bl
mov qword [rsp + 0xb1], r8
mov qword [rsp + 0xb9], r8
mov qword [rsp + 0xc1], r8
mov qword [rsp + 0xc9], r8
mov qword [rsp + 0xd1], r8
mov qword [rsp + 0xd9], r8
mov qword [rsp + 0xe1], r8
mov dword [rsp + 0xe9], r8d
mov word [rsp + 0xed], r8w
mov byte [rsp + 0xef], r8b
cmp eax, 1
jne 0x180022833
mov r8d, edx
mov rdx, rcx
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x54], ebx
mov dword [rsp + 0x58], ebx
mov word [rsp + 0x5c], bx
mov dword [rsp + 0x40], 0x67452301
mov dword [rsp + 0x44], 0xefcdab89
mov dword [rsp + 0x48], 0x98badcfe
mov dword [rsp + 0x4c], 0x10325476
mov dword [rsp + 0x50], 0xc3d2e1f0
mov dword [rsp + 0xa0], ebx
mov dword [rsp + 0xa4], ebx
call fcn.18001e580
cmp dword [rsp + 0xa4], ebx
jne 0x18002288d
cmp dword [rsp + 0xa0], ebx
jne 0x1800227f3
lea rcx, [rsp + 0x40]
call fcn.18001ae40
xor edx, edx
lea rcx, [rsp + 0x5e]
lea r8d, [rdx + 0x40]
call fcn.180037390
mov dword [rsp + 0x54], ebx
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0xa0], 1
mov r8d, ebx
lea r9, [rsp + 0xb0]
mov r10, rbx
mov eax, r8d
mov ecx, 3
inc r8d
and eax, 3
inc r9
sub ecx, eax
mov rax, r10
inc r10
sar rax, 2
shl ecx, 3
mov edx, dword [rsp + rax*4 + 0x40]
shr edx, cl
cmp r8d, 0x14
mov byte [r9 - 1], dl
jl 0x180022801
jmp 0x18002288d
cmp eax, 2
jne 0x180022849
lea r8, [rsp + 0xb0]
mov edx, edx
call fcn.180020840
jmp 0x18002288d
cmp eax, 3
jne 0x18002285f
lea r8, [rsp + 0xb0]
mov edx, edx
call fcn.18001e990
jmp 0x18002288d
cmp eax, 4
jne 0x180022875
lea r8, [rsp + 0xb0]
mov edx, edx
call fcn.18001eaf0
jmp 0x18002288d
cmp eax, 5
jne 0x180022a00
lea r8, [rsp + 0xb0]
mov edx, edx
call fcn.180020730
mov edx, dword [rdi + 0x14]
mov rcx, qword [rdi + 0x18]
call fcn.18001cb00
mov rsi, rax
test rax, rax
jne 0x1800228ab
mov edi, 0x8007000d
jmp 0x180022a05
mov r10, qword [rax + 8]
mov ecx, ebx
test r10, r10
je 0x1800228dc
mov eax, dword [r10 + 0x10]
test al, al
jns 0x1800228c7
cmp eax, 2
jne 0x1800228cf
inc ecx
jmp 0x1800228cf
and al, 0x1f
cmp al, 2
jne 0x1800228cf
inc ecx
cmp ecx, 1
je 0x1800228e6
mov r10, qword [r10]
test r10, r10
jne 0x1800228b6
mov edi, 0x8007000d
jmp 0x180022a05
test r10, r10
je 0x1800228dc
mov rcx, rsi
call fcn.18001dca0
mov r9, rax
test rax, rax
jne 0x180022905
mov edi, 0x8007000d
jmp 0x180022a05
mov eax, dword [rax + 0x14]
mov r9, qword [r9 + 0x18]
mov r8d, dword [r10 + 0x14]
mov rdx, qword [r10 + 0x18]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x20], eax
call fcn.180020570
test eax, eax
jne 0x180022930
mov edi, 0x8007000d
jmp 0x180022a05
mov r8, qword [rsp + 0x30]
mov eax, dword [r8 + 8]
lea edx, [rax - 1]
test eax, eax
je 0x180022954
mov rax, qword [r8]
movsxd rcx, edx
mov ecx, dword [rax + rcx*4]
call fcn.18001d380
shl edx, 5
lea ebx, [rdx + rax]
lea eax, [rbx + 7]
mov rcx, r13
cdq
and edx, 7
add eax, edx
sar eax, 3
movsxd rbp, eax
mov edx, ebp
call fcn.18001a780
test eax, eax
jne 0x18002297b
mov edi, 0x8007000d
jmp 0x180022a05
mov rcx, rbp
mov rdi, rbp
call fcn.180036df8
mov rbx, rax
test rax, rax
jne 0x180022995
mov edi, 0x8007000e
jmp 0x1800229f1
mov r8, rbp
xor edx, edx
mov rcx, rax
call fcn.180037390
mov edx, dword [r13 + 0x14]
lea r9, [rsp + 0x30]
add rdx, qword [r13 + 0x18]
mov r8, rbx
mov ecx, ebp
sub rdx, rbp
mov dword [rsp + 0x20], 3
call fcn.180021c30
cmp eax, ebp
je 0x1800229cf
mov edi, 0x8007000d
jmp 0x1800229f1
mov r8d, r12d
lea rdx, [rsp + 0xb0]
sub rdi, r8
lea rcx, [rbx + rdi]
call fcn.180037820
mov edi, 0x8007000d
neg eax
sbb ecx, ecx
and edi, ecx
test rbx, rbx
je 0x180022a05
mov rcx, rbx
call fcn.18003747c
jmp 0x180022a05
mov edi, 0x8007000d
lea rcx, [rsp + 0x30]
call fcn.18001db60
mov r13, qword [rsp + 0x108]
mov r12, qword [rsp + 0x110]
mov rbp, qword [rsp + 0x118]
test rsi, rsi
je 0x180022a4c
nop dword [rax]
mov rcx, qword [rsi + 8]
mov rbx, rsi
call fcn.18001cc60
mov rsi, qword [rsi]
mov rcx, rbx
call fcn.180036ed0
test rsi, rsi
jne 0x180022a30
mov eax, edi
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.180037360
add rsp, 0x120
pop rdi
pop rsi
pop rbx
ret