Function at 0x18001dc60
Capabilities:
Hash data using sha1

Disassembly:
push rbp
push r12
push r14
sub rsp, 0xd0
mov rax, qword [0x18008c590]
xor rax, rsp
mov qword [rsp + 0xb8], rax
lea rcx, [0x180091f78]
mov ebp, r8d
mov r12, rdx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x18008e424], 0
lea r14, [0x18008e410]
je 0x18001dcaa
mov rcx, r14
call fcn.18001d8f0
test ebp, ebp
je 0x18001df05
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xc0], r13
mov dword [rsp + 0x20], 0xf672abd1
xor r13d, r13d
nop dword [rax]
mov dword [rsp + 0x30], 0x67452301
mov dword [rsp + 0x34], 0xefcdab89
mov dword [rsp + 0x38], 0x98badcfe
mov dword [rsp + 0x3c], 0x10325476
mov dword [rsp + 0x40], 0xc3d2e1f0
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x50], r13d
mov edi, 0x14
mov rsi, r14
mov ebx, r13d
nop dword [rax]
mov r8d, ebx
dec rdi
and r8d, 3
jne 0x18001dd37
mov eax, ebx
shr rax, 2
mov dword [rsp + rax*4 + 0x54], r13d
movzx eax, byte [rsi]
mov edx, ebx
mov ecx, 3
sub ecx, r8d
shr rdx, 2
inc ebx
shl ecx, 3
inc rsi
shl eax, cl
or dword [rsp + rdx*4 + 0x54], eax
cmp ebx, 0x40
jne 0x18001dd7a
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov ebx, r13d
call fcn.18001df30
inc qword [rsp + 0x48]
test rdi, rdi
jne 0x18001dd20
lea rcx, [rsp + 0x30]
mov rdx, r14
mov dword [rsp + 0x50], ebx
call fcn.18001e590
mov dword [rsp + 0x30], 0x67452301
mov dword [rsp + 0x34], 0xefcdab89
mov dword [rsp + 0x38], 0x98badcfe
mov dword [rsp + 0x3c], 0x10325476
mov dword [rsp + 0x40], 0xc3d2e1f0
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x50], r13d
mov edi, 4
lea rsi, [rsp + 0x20]
mov ebx, r13d
nop
mov r8d, ebx
dec rdi
and r8d, 3
jne 0x18001dde7
mov eax, ebx
shr rax, 2
mov dword [rsp + rax*4 + 0x54], r13d
movzx eax, byte [rsi]
mov edx, ebx
mov ecx, 3
sub ecx, r8d
shr rdx, 2
inc ebx
shl ecx, 3
inc rsi
shl eax, cl
or dword [rsp + rdx*4 + 0x54], eax
cmp ebx, 0x40
jne 0x18001de2a
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov ebx, r13d
call fcn.18001df30
inc qword [rsp + 0x48]
test rdi, rdi
jne 0x18001ddd0
mov dword [rsp + 0x50], ebx
mov edi, 0x14
mov rsi, r14
nop dword [rax + rax]
mov r8d, ebx
dec rdi
and r8d, 3
jne 0x18001de57
mov eax, ebx
shr rax, 2
mov dword [rsp + rax*4 + 0x54], r13d
movzx eax, byte [rsi]
mov edx, ebx
mov ecx, 3
sub ecx, r8d
shr rdx, 2
inc ebx
shl ecx, 3
inc rsi
shl eax, cl
or dword [rsp + rdx*4 + 0x54], eax
cmp ebx, 0x40
jne 0x18001de9a
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov ebx, r13d
call fcn.18001df30
inc qword [rsp + 0x48]
test rdi, rdi
jne 0x18001de40
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x50], ebx
call fcn.18001e590
mov r11d, r13d
lea rdx, [rsp + 0xa0]
test ebp, ebp
je 0x18001dee5
movzx eax, byte [rdx]
inc r11d
inc r12
mov byte [r12 - 1], al
inc rdx
dec ebp
cmp r11d, 0x14
jb 0x18001dec0
test ebp, ebp
jne 0x18001dce0
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0x100]
mov rbx, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xc0]
lea rcx, [0x180091f78]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.180057da0
add rsp, 0xd0
pop r14
pop r12
pop rbp
ret