Function at 0x18001e320
Capabilities:
Hash data using sha1

Disassembly:
push rbp
push r12
push r14
sub rsp, 0xd0
mov rax, qword [0x18008b590]
xor rax, rsp
mov qword [rsp + 0xb8], rax
lea rcx, [0x180090f30]
mov ebp, r8d
mov r12, rdx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x18008d3dc], 0
lea r14, [0x18008d3c8]
je 0x18001e36a
mov rcx, r14
call fcn.18001dfb0
test ebp, ebp
je 0x18001e5c5
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 0x18001e3f7
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 0x18001e43a
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov ebx, r13d
call fcn.18001e5f0
inc qword [rsp + 0x48]
test rdi, rdi
jne 0x18001e3e0
lea rcx, [rsp + 0x30]
mov rdx, r14
mov dword [rsp + 0x50], ebx
call fcn.18001ec50
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 0x18001e4a7
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 0x18001e4ea
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov ebx, r13d
call fcn.18001e5f0
inc qword [rsp + 0x48]
test rdi, rdi
jne 0x18001e490
mov dword [rsp + 0x50], ebx
mov edi, 0x14
mov rsi, r14
nop dword [rax + rax]
mov r8d, ebx
dec rdi
and r8d, 3
jne 0x18001e517
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 0x18001e55a
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov ebx, r13d
call fcn.18001e5f0
inc qword [rsp + 0x48]
test rdi, rdi
jne 0x18001e500
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x50], ebx
call fcn.18001ec50
mov r11d, r13d
lea rdx, [rsp + 0xa0]
test ebp, ebp
je 0x18001e5a5
movzx eax, byte [rdx]
inc r11d
inc r12
mov byte [r12 - 1], al
inc rdx
dec ebp
cmp r11d, 0x14
jb 0x18001e580
test ebp, ebp
jne 0x18001e3a0
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0x100]
mov rbx, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xc0]
lea rcx, [0x180090f30]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.180058250
add rsp, 0xd0
pop r14
pop r12
pop rbp
ret