Function at 0x140230b50
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 0x140230b9a
call fcn.140230220
test al, al
je 0x140230ed4
call fcn.140228910
mov rbp, rax
xor ebx, ebx
cmp qword [rax + 0x10], rbx
jne 0x140230bcd
lea ecx, [rbx + 0x10]
call fcn.14023ae5c
mov qword [rsp + 0x20], rax
test rax, rax
je 0x140230bc6
mov rcx, rax
call fcn.14022ce10
jmp 0x140230bc9
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.14022d800
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x20]
lea r8, [rsp + 0xc0]
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14022b570
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 0x140230c99
lea r9d, [r12 - 0x3c]
lea r8, [rsp + 0x188]
lea edx, [r12 - 0x30]
mov rcx, rsi
call fcn.14022b190
test al, al
je 0x140230c99
mov r13d, dword [rsp + 0x188]
jmp 0x140230c9c
mov r13d, ebp
mov rax, qword [rsi + 0x10]
sub rax, 4
cmp rax, 0xc
jb 0x140230ccf
mov r9d, 4
lea r8, [rsp + 0x188]
lea edx, [r9 + 8]
mov rcx, rsi
call fcn.14022b190
test al, al
je 0x140230ccf
mov ebp, dword [rsp + 0x188]
mov r9d, r13d
mov r8d, ebp
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.14022b8a0
mov qword [rsp + 0x20], r12
cmp byte [rsp + 0x30], 0
jne 0x140230d79
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 0x140230d35
cmp rax, r12
jae 0x140230d26
lea rcx, [rsp + rax + 0x40]
sub r12, rax
mov r8, r12
xor edx, edx
call fcn.14023fa30
lea rcx, [rsp + 0x30]
call fcn.14022b9d0
mov rax, qword [rsp + 0x38]
cmp rax, 0x38
jae 0x140230d50
lea rcx, [rsp + rax + 0x40]
mov r8d, 0x38
sub r8, rax
xor edx, edx
call fcn.14023fa30
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.14022b9d0
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 0x140230d80
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x100]
mov edx, 0x14
lea rcx, [rsp + 0x9c]
call fcn.14022b570
mov r11, qword [rsp + 0x20]
mov byte [rsp + r11 + 0x100], 0
lea rax, [0x14024aa58]
lea rcx, [0x14024aa70]
test r14b, r14b
cmovne rcx, rax
mov rax, rbx
cmp byte [rdi + 8], al
je 0x140230ded
inc rax
cmp byte [rdi + rax + 8], 0
jne 0x140230de3
movzx edx, byte [rcx]
test dl, dl
je 0x140230e0c
cmp rax, 0x800
jae 0x140230e0c
mov byte [rdi + rax + 8], dl
inc rax
inc rcx
mov dl, byte [rcx]
test dl, dl
jne 0x140230df4
mov byte [rax + rdi + 8], 0
mov r8b, 1
mov rdx, r15
mov rcx, rdi
call fcn.140230960
lea r11, [0x14024aa88]
mov rcx, rbx
cmp byte [rdi + 8], cl
je 0x140230e40
nop
inc rcx
cmp byte [rdi + rcx + 8], 0
jne 0x140230e30
nop word [rax + rax]
cmp rcx, 0x800
jae 0x140230e5d
movzx eax, byte [r11]
mov byte [rdi + rcx + 8], al
inc rcx
inc r11
cmp byte [r11], 0
jne 0x140230e40
mov byte [rcx + rdi + 8], 0
mov r8b, 1
lea rdx, [rsp + 0xc0]
mov rcx, rdi
call fcn.140230960
lea r11, [0x14024aa90]
cmp byte [rdi + 8], 0
je 0x140230e90
inc rbx
cmp byte [rdi + rbx + 8], 0
jne 0x140230e82
nop dword [rax]
cmp rbx, 0x800
jae 0x140230ead
movzx eax, byte [r11]
mov byte [rdi + rbx + 8], al
inc rbx
inc r11
cmp byte [r11], 0
jne 0x140230e90
mov byte [rbx + rdi + 8], 0
mov r8b, 1
lea rdx, [rsp + 0x100]
mov rcx, rdi
call fcn.140230960
test r14b, r14b
je 0x140230ed2
mov rcx, rdi
call fcn.140230a90
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