Function at 0x140018cf0
Capabilities:
Hash data using sha256
Hash data using sha384

Disassembly:
push rbx
mov r10, r9
mov r11, r8
mov rbx, rdx
test rcx, rcx
jne 0x140018d07
mov eax, 0xffffaf00
pop rbx
ret
mov ecx, dword [rcx]
sub ecx, 9
je 0x140018d25
cmp ecx, 1
jne 0x140018d00
mov r9d, ecx
mov r8, r10
mov rcx, rbx
mov rdx, r11
pop rbx
jmp 0x140020570
xor r9d, r9d
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x14001f830
push rbp
push rsi
push r14
push r15
lea rbp, [rsp - 0x3f]
sub rsp, 0xa8
mov rax, qword [0x140063040]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov r15, r8
mov rsi, rdx
mov r14, rcx
test r9d, r9d
je 0x14001f869
mov eax, 0xffffff8c
jmp 0x14001fa55
mov qword [rsp + 0xe8], rbx
xorps xmm0, xmm0
mov qword [rsp + 0xa0], rdi
mov qword [rbp - 9], 0
mov dword [rbp - 1], 0x6a09e667
mov dword [rbp + 3], 0xbb67ae85
mov dword [rbp + 7], 0x3c6ef372
mov dword [rbp + 0xb], 0xa54ff53a
mov dword [rbp + 0xf], 0x510e527f
mov dword [rbp + 0x13], 0x9b05688c
mov dword [rbp + 0x17], 0x1f83d9ab
mov dword [rbp + 0x1b], 0x5be0cd19
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm0
movups xmmword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x19], xmm0
test rdx, rdx
je 0x14001f935
mov dword [rbp - 9], edx
cmp rdx, 0x40
jb 0x14001f921
nop word [rax + rax]
mov rdi, rsi
xor ebx, ebx
nop word [rax + rax]
lea rdx, [rbx + r14]
lea rcx, [rbp - 0x49]
call fcn.14001eb90
test eax, eax
jne 0x14001f962
sub rdi, 0x40
add rbx, 0x40
cmp rdi, 0x40
jae 0x14001f8f0
cmp rbx, 0x40
jb 0x14001f962
add r14, rbx
sub rsi, rbx
cmp rsi, 0x40
jae 0x14001f8e0
test rsi, rsi
je 0x14001f935
mov r8, rsi
lea rcx, [rbp - 0x49]
mov rdx, r14
call fcn.140032040
mov edx, dword [rbp - 9]
lea rcx, [rbp - 0x49]
and edx, 0x3f
mov byte [rbp + rdx - 0x49], pe_nt_image_headers64
inc edx
mov eax, edx
add rcx, rax
cmp edx, 0x38
ja 0x14001f96c
mov r8d, 0x38
sub r8d, edx
xor edx, edx
call fcn.1400326f0
jmp 0x14001f9a8
mov ebx, 0xffffffff
jmp 0x14001fa35
mov r8d, 0x40
sub r8d, edx
xor edx, edx
call fcn.1400326f0
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x49]
call fcn.14001eb90
mov ebx, eax
test eax, eax
jne 0x14001fa27
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x49], xmm0
mov qword [rbp - 0x19], rax
movups xmmword [rbp - 0x39], xmm0
movups xmmword [rbp - 0x29], xmm0
mov ecx, dword [rbp - 9]
mov eax, dword [rbp - 5]
lea edx, [rax*8]
mov eax, ecx
lea ecx, [rcx*8]
shr eax, 0x1d
or edx, eax
bswap edx
bswap ecx
mov dword [rbp - 0x11], edx
lea rdx, [rbp - 0x49]
mov dword [rbp - 0xd], ecx
lea rcx, [rbp - 0x49]
call fcn.14001eb90
mov ebx, eax
test eax, eax
jne 0x14001fa27
mov eax, dword [rbp - 1]
bswap eax
mov dword [r15], eax
mov eax, dword [rbp + 3]
bswap eax
mov dword [r15 + 4], eax
mov eax, dword [rbp + 7]
bswap eax
mov dword [r15 + 8], eax
mov eax, dword [rbp + 0xb]
bswap eax
mov dword [r15 + 0xc], eax
mov eax, dword [rbp + 0xf]
bswap eax
mov dword [r15 + 0x10], eax
mov eax, dword [rbp + 0x13]
bswap eax
mov dword [r15 + 0x14], eax
mov eax, dword [rbp + 0x17]
bswap eax
mov dword [r15 + 0x18], eax
mov eax, dword [rbp + 0x1b]
bswap eax
mov dword [r15 + 0x1c], eax
mov edx, 0x68
lea rcx, [rbp - 0x49]
call fcn.140018c90
mov edx, 0x68
lea rcx, [rbp - 0x49]
call fcn.140018c90
mov rdi, qword [rsp + 0xa0]
mov eax, ebx
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1400310d0
add rsp, 0xa8
pop r15
pop r14
pop rsi
pop rbp
ret
push rbp
push r12
push r14
push r15
lea rbp, [rsp - 0x28]
sub rsp, 0x128
mov rax, qword [0x140063040]
xor rax, rsp
mov qword [rbp], rax
mov r12, r8
mov r15, rdx
mov r14, rcx
test r9d, r9d
jne 0x1400205a9
lea eax, [r9 - 0x75]
jmp 0x14002084d
xor eax, eax
mov qword [rsp + 0x120], rbx
mov dword [rbp - 0xc], eax
xorps xmm0, xmm0
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
movabs rax, 0xcbbb9d5dc1059ed8
mov qword [rsp + 0x30], rax
movabs rax, 0x629a292a367cd507
mov qword [rsp + 0x38], rax
movabs rax, 0x9159015a3070dd17
mov qword [rsp + 0x40], rax
movabs rax, 0x152fecd8f70e5939
mov qword [rsp + 0x48], rax
movabs rax, 0x67332667ffc00b31
mov qword [rsp + 0x50], rax
movabs rax, 0x8eb44a8768581511
mov qword [rsp + 0x58], rax
movabs rax, 0xdb0c2e0d64f98fa7
mov qword [rsp + 0x60], rax
movabs rax, 0x47b5481dbefa4fa4
mov qword [rsp + 0x118], rsi
mov qword [rsp + 0x110], rdi
mov edi, pe_nt_image_headers64
mov qword [rsp + 0x68], rax
mov dword [rbp - 0x10], r9d
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
test rdx, rdx
je 0x1400206e2
mov qword [rsp + 0x20], rdx
cmp rdx, rdi
jb 0x1400206cd
nop dword [rax]
nop dword [rax + rax]
mov rsi, r15
xor ebx, ebx
nop word [rax + rax]
lea rdx, [rbx + r14]
lea rcx, [rsp + 0x20]
call fcn.14001fd50
test eax, eax
jne 0x140020711
sub rsi, rdi
add rbx, rdi
cmp rsi, rdi
jae 0x1400206a0
cmp rbx, rdi
jb 0x140020711
add r14, rbx
sub r15, rbx
cmp r15, rdi
jae 0x140020690
test r15, r15
je 0x1400206e2
mov r8, r15
lea rcx, [rsp + 0x70]
mov rdx, r14
call fcn.140032040
mov edx, dword [rsp + 0x20]
lea rcx, [rsp + 0x70]
and edx, 0x7f
mov byte [rsp + rdx + 0x70], dil
inc edx
mov eax, edx
add rcx, rax
cmp edx, 0x70
ja 0x14002071b
mov r8d, WSAStartup
sub r8d, edx
xor edx, edx
call fcn.1400326f0
jmp 0x140020760
mov ebx, 0xffffffff
jmp 0x140020824
sub edi, edx
xor edx, edx
mov r8d, edi
call fcn.1400326f0
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x20]
call fcn.14001fd50
mov ebx, eax
test eax, eax
jne 0x140020815
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
mov rdx, rcx
shr rdx, 0x3d
lea rax, [rax*8]
or rdx, rax
lea rax, [rcx*8]
bswap rdx
mov qword [rbp - 0x20], rdx
lea rcx, [rsp + 0x20]
bswap rax
lea rdx, [rsp + 0x70]
mov qword [rbp - 0x18], rax
call fcn.14001fd50
mov ebx, eax
test eax, eax
jne 0x140020815
mov rax, qword [rsp + 0x30]
bswap rax
mov qword [r12], rax
mov rax, qword [rsp + 0x38]
bswap rax
mov qword [r12 + 8], rax
mov rax, qword [rsp + 0x40]
bswap rax
mov qword [r12 + 0x10], rax
mov rax, qword [rsp + 0x48]
bswap rax
mov qword [r12 + 0x18], rax
mov rax, qword [rsp + 0x50]
bswap rax
mov qword [r12 + 0x20], rax
mov rax, qword [rsp + 0x58]
bswap rax
mov qword [r12 + 0x28], rax
cmp dword [rbp - 0x10], ebx
jne 0x140020813
mov rax, qword [rsp + 0x60]
bswap rax
mov qword [r12 + 0x30], rax
mov rax, qword [rsp + 0x68]
bswap rax
mov qword [r12 + 0x38], rax
xor ebx, ebx
mov edx, 0xd8
lea rcx, [rsp + 0x20]
call fcn.140018c90
mov edx, 0xd8
lea rcx, [rsp + 0x20]
call fcn.140018c90
mov rdi, qword [rsp + 0x110]
mov eax, ebx
mov rbx, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x118]
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.1400310d0
add rsp, 0x128
pop r15
pop r14
pop r12
pop rbp
ret