Function at 0x140232b50
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 0x140232b9a
call fcn.140232220
test al, al
je 0x140232ed4
call fcn.14022a910
mov rbp, rax
xor ebx, ebx
cmp qword [rax + 0x10], rbx
jne 0x140232bcd
lea ecx, [rbx + 0x10]
call fcn.14023ce5c
mov qword [rsp + 0x20], rax
test rax, rax
je 0x140232bc6
mov rcx, rax
call fcn.14022ee10
jmp 0x140232bc9
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.14022f800
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x20]
lea r8, [rsp + 0xc0]
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14022d570
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 0x140232c99
lea r9d, [r12 - 0x3c]
lea r8, [rsp + 0x188]
lea edx, [r12 - 0x30]
mov rcx, rsi
call fcn.14022d190
test al, al
je 0x140232c99
mov r13d, dword [rsp + 0x188]
jmp 0x140232c9c
mov r13d, ebp
mov rax, qword [rsi + 0x10]
sub rax, 4
cmp rax, 0xc
jb 0x140232ccf
mov r9d, 4
lea r8, [rsp + 0x188]
lea edx, [r9 + 8]
mov rcx, rsi
call fcn.14022d190
test al, al
je 0x140232ccf
mov ebp, dword [rsp + 0x188]
mov r9d, r13d
mov r8d, ebp
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.14022d8a0
mov qword [rsp + 0x20], r12
cmp byte [rsp + 0x30], 0
jne 0x140232d79
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 0x140232d35
cmp rax, r12
jae 0x140232d26
lea rcx, [rsp + rax + 0x40]
sub r12, rax
mov r8, r12
xor edx, edx
call fcn.140241a30
lea rcx, [rsp + 0x30]
call fcn.14022d9d0
mov rax, qword [rsp + 0x38]
cmp rax, 0x38
jae 0x140232d50
lea rcx, [rsp + rax + 0x40]
mov r8d, 0x38
sub r8, rax
xor edx, edx
call fcn.140241a30
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.14022d9d0
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 0x140232d80
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x100]
mov edx, 0x14
lea rcx, [rsp + 0x9c]
call fcn.14022d570
mov r11, qword [rsp + 0x20]
mov byte [rsp + r11 + 0x100], 0
lea rax, [0x14024ca58]
lea rcx, [0x14024ca70]
test r14b, r14b
cmovne rcx, rax
mov rax, rbx
cmp byte [rdi + 8], al
je 0x140232ded
inc rax
cmp byte [rdi + rax + 8], 0
jne 0x140232de3
movzx edx, byte [rcx]
test dl, dl
je 0x140232e0c
cmp rax, 0x800
jae 0x140232e0c
mov byte [rdi + rax + 8], dl
inc rax
inc rcx
mov dl, byte [rcx]
test dl, dl
jne 0x140232df4
mov byte [rax + rdi + 8], 0
mov r8b, 1
mov rdx, r15
mov rcx, rdi
call fcn.140232960
lea r11, [0x14024ca88]
mov rcx, rbx
cmp byte [rdi + 8], cl
je 0x140232e40
nop
inc rcx
cmp byte [rdi + rcx + 8], 0
jne 0x140232e30
nop word [rax + rax]
cmp rcx, 0x800
jae 0x140232e5d
movzx eax, byte [r11]
mov byte [rdi + rcx + 8], al
inc rcx
inc r11
cmp byte [r11], 0
jne 0x140232e40
mov byte [rcx + rdi + 8], 0
mov r8b, 1
lea rdx, [rsp + 0xc0]
mov rcx, rdi
call fcn.140232960
lea r11, [0x14024ca90]
cmp byte [rdi + 8], 0
je 0x140232e90
inc rbx
cmp byte [rdi + rbx + 8], 0
jne 0x140232e82
nop dword [rax]
cmp rbx, 0x800
jae 0x140232ead
movzx eax, byte [r11]
mov byte [rdi + rbx + 8], al
inc rbx
inc r11
cmp byte [r11], 0
jne 0x140232e90
mov byte [rbx + rdi + 8], 0
mov r8b, 1
lea rdx, [rsp + 0x100]
mov rcx, rdi
call fcn.140232960
test r14b, r14b
je 0x140232ed2
mov rcx, rdi
call fcn.140232a90
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