Function at 0x140182b50
Capabilities:
Hash data using sha1

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x140
mov qword [rsp + 0xb0], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
movzx r14d, r9b
mov r15, r8
mov rsi, rdx
mov rdi, rcx
test r9b, r9b
jne 0x140182b9a
call fcn.140182220
test al, al
je 0x140182ed4
call fcn.14017a910
mov rbp, rax
xor ebx, ebx
cmp qword [rax + 0x10], rbx
jne 0x140182bcd
lea ecx, [rbx + 0x10]
call fcn.14018ce5c
mov qword [rsp + 0x20], rax
test rax, rax
je 0x140182bc6
mov rcx, rax
call fcn.14017ee10
jmp 0x140182bc9
mov rax, rbx
mov qword [rbp + 0x10], rax
mov r12d, 0x40
mov r8, r12
lea rdx, [rsp + 0x30]
mov rcx, qword [rbp + 0x10]
call fcn.14017f800
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x20]
lea r8, [rsp + 0xc0]
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14017d570
mov r11, qword [rsp + 0x20]
mov byte [rsp + r11 + 0xc0], 0
mov dword [rsp + 0x84], ebx
mov dword [rsp + 0x80], ebx
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], 0
mov rax, qword [rsi + 0x10]
sub rax, 4
or ebp, 0xffffffff
cmp rax, 0x10
jb 0x140182c99
lea r9d, [r12 - 0x3c]
lea r8, [rsp + 0x188]
lea edx, [r12 - 0x30]
mov rcx, rsi
call fcn.14017d190
test al, al
je 0x140182c99
mov r13d, dword [rsp + 0x188]
jmp 0x140182c9c
mov r13d, ebp
mov rax, qword [rsi + 0x10]
sub rax, 4
cmp rax, 0xc
jb 0x140182ccf
mov r9d, 4
lea r8, [rsp + 0x188]
lea edx, [r9 + 8]
mov rcx, rsi
call fcn.14017d190
test al, al
je 0x140182ccf
mov ebp, dword [rsp + 0x188]
mov r9d, r13d
mov r8d, ebp
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.14017d8a0
mov qword [rsp + 0x20], r12
cmp byte [rsp + 0x30], 0
jne 0x140182d79
mov rax, qword [rsp + 0x38]
mov byte [rsp + rax + 0x40], pe_nt_image_headers64
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
cmp rax, 0x38
jbe 0x140182d35
cmp rax, r12
jae 0x140182d26
lea rcx, [rsp + rax + 0x40]
sub r12, rax
mov r8, r12
xor edx, edx
call fcn.140191a30
lea rcx, [rsp + 0x30]
call fcn.14017d9d0
mov rax, qword [rsp + 0x38]
cmp rax, 0x38
jae 0x140182d50
lea rcx, [rsp + rax + 0x40]
mov r8d, 0x38
sub r8, rax
xor edx, edx
call fcn.140191a30
mov eax, dword [rsp + 0x80]
bswap eax
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x84]
bswap eax
mov dword [rsp + 0x7c], eax
lea rcx, [rsp + 0x30]
call fcn.14017d9d0
mov byte [rsp + 0x30], 1
mov rcx, rbx
nop dword [rax]
mov eax, dword [rsp + rcx*4 + 0x88]
bswap eax
mov dword [rsp + rcx*4 + 0x9c], eax
inc rcx
cmp rcx, 5
jb 0x140182d80
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x100]
mov edx, 0x14
lea rcx, [rsp + 0x9c]
call fcn.14017d570
mov r11, qword [rsp + 0x20]
mov byte [rsp + r11 + 0x100], 0
lea rax, [0x14019ca58]
lea rcx, [0x14019ca70]
test r14b, r14b
cmovne rcx, rax
mov rax, rbx
cmp byte [rdi + 8], al
je 0x140182ded
inc rax
cmp byte [rdi + rax + 8], 0
jne 0x140182de3
movzx edx, byte [rcx]
test dl, dl
je 0x140182e0c
cmp rax, 0x800
jae 0x140182e0c
mov byte [rdi + rax + 8], dl
inc rax
inc rcx
mov dl, byte [rcx]
test dl, dl
jne 0x140182df4
mov byte [rax + rdi + 8], 0
mov r8b, 1
mov rdx, r15
mov rcx, rdi
call fcn.140182960
lea r11, [0x14019ca88]
mov rcx, rbx
cmp byte [rdi + 8], cl
je 0x140182e40
nop
inc rcx
cmp byte [rdi + rcx + 8], 0
jne 0x140182e30
nop word [rax + rax]
cmp rcx, 0x800
jae 0x140182e5d
movzx eax, byte [r11]
mov byte [rdi + rcx + 8], al
inc rcx
inc r11
cmp byte [r11], 0
jne 0x140182e40
mov byte [rcx + rdi + 8], 0
mov r8b, 1
lea rdx, [rsp + 0xc0]
mov rcx, rdi
call fcn.140182960
lea r11, [0x14019ca90]
cmp byte [rdi + 8], 0
je 0x140182e90
inc rbx
cmp byte [rdi + rbx + 8], 0
jne 0x140182e82
nop dword [rax]
cmp rbx, 0x800
jae 0x140182ead
movzx eax, byte [r11]
mov byte [rdi + rbx + 8], al
inc rbx
inc r11
cmp byte [r11], 0
jne 0x140182e90
mov byte [rbx + rdi + 8], 0
mov r8b, 1
lea rdx, [rsp + 0x100]
mov rcx, rdi
call fcn.140182960
test r14b, r14b
je 0x140182ed2
mov rcx, rdi
call fcn.140182a90
mov al, 1
lea r11, [rsp + 0x140]
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