Function at 0x4520d0
Capabilities:
Hash data using sha512

Disassembly:
movabs rax, 0x6a09e667f3bcc908
vpbroadcastq zmm0, rax
movabs rax, 0xbb67ae8584caa73b
vmovdqu64 zmmword [rcx + 0x400], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x3c6ef372fe94f82b
vmovdqu64 zmmword [rcx + 0x440], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0xa54ff53a5f1d36f1
vmovdqu64 zmmword [rcx + 0x480], zmm0
vpbroadcastq zmm0, rax
movabs rax, 0x510e527fade682d1
vpbroadcastq zmm3, rax
movabs rax, 0x9b05688c2b3e6c1f
vpbroadcastq zmm2, rax
movabs rax, 0x1f83d9abfb41bd6b
vpbroadcastq zmm19, rax
movabs rax, 0x5be0cd19137e2179
vmovdqu64 zmmword [rcx + 0x4c0], zmm0
vpbroadcastq zmm0, rax
vmovdqu64 zmmword [rcx + 0x500], zmm3
vmovdqu64 zmmword [rcx + 0x540], zmm2
vmovdqu64 zmmword [rcx + 0x580], zmm19
vmovdqu64 zmmword [rcx + 0x5c0], zmm0
vmovdqu64 zmm5, zmmword [r8]
movabs rax, 0x8000000000000000
vmovdqu64 zmmword [rcx], zmm5
vmovdqu64 zmm4, zmmword [r8 + 0x40]
vpbroadcastq zmm30, rax
vmovdqu64 zmmword [rcx + 0x40], zmm4
vmovdqu64 zmm1, zmmword [r8 + 0x80]
mov eax, 1
vmovdqu64 zmmword [rcx + 0x80], zmm1
vmovdqu64 zmm5, zmmword [r8 + 0xc0]
vpbroadcastq zmm18, rax
vmovdqu64 zmmword [rcx + 0xc0], zmm5
vmovdqu64 zmm4, zmmword [r8 + 0x100]
mov eax, 0x280
vmovdqu64 zmmword [rcx + 0x100], zmm4
vmovdqu64 zmm1, zmmword [r8 + 0x140]
vpbroadcastq zmm21, rax
vmovdqu64 zmmword [rcx + 0x140], zmm1
vmovdqu64 zmm5, zmmword [r8 + 0x180]
movabs rax, 0x243f6a8885a308d3
vmovdqu64 zmmword [rcx + 0x180], zmm5
vmovdqu64 zmm4, zmmword [r8 + 0x1c0]
vpbroadcastq zmm16, rax
vmovdqu64 zmmword [rcx + 0x1c0], zmm4
vmovdqu64 zmm1, zmmword [r8 + 0x200]
movabs rax, 0x13198a2e03707344
vmovdqu64 zmmword [rcx + 0x200], zmm1
vmovdqu64 zmm1, zmmword [r8 + 0x240]
vpbroadcastq zmm24, rax
movabs rax, 0xa4093822299f31d0
vpbroadcastq zmm26, rax
movabs rax, 0x82efa98ec4e6c89
vpbroadcastq zmm4, rax
vmovdqu64 zmmword [rcx + 0x240], zmm1
movabs rax, 0xc0ac29b7c97c50dd
vpxor xmm1, xmm1, xmm1
vpbroadcastq zmm20, rax
vmovdqu64 zmmword [rcx + 0x280], zmm30
vmovdqu64 zmmword [rcx + 0x300], zmm1
vmovdqu64 zmmword [rcx + 0x2c0], zmm1
vmovdqu64 zmmword [rcx + 0x340], zmm18
movabs rax, 0x3f84d5b5b5470917
vmovdqu64 zmmword [rcx + 0x380], zmm1
vpaddq zmm25, zmm3, zmmword [rcx + 0x400]
vpxord zmm17, zmm24, zmmword [rcx]
vpbroadcastq zmm1, rax
movabs rax, 0x452821e638d011f7
vpaddq zmm17, zmm25, zmm17
vpbroadcastq zmm5, rax
vpxord zmm5, zmm5, zmm17
vpshufd zmm5, zmm5, 0xb1
vpaddq zmm27, zmm16, zmm5
vpxord zmm3, zmm3, zmm27
vprorq zmm3, zmm3, 0x19
vpxord zmm25, zmm16, zmmword [rcx + 0x40]
vpaddq zmm31, zmm2, zmmword [rcx + 0x440]
vpxord zmm16, zmm4, zmmword [rcx + 0x80]
movabs rax, 0xbe5466cf34e90eec
vpaddq zmm16, zmm31, zmm16
vpaddq zmm25, zmm3, zmm25
vpaddq zmm25, zmm25, zmm17
vpxord zmm5, zmm5, zmm25
vprorq zmm5, zmm5, 0x10
vpxord zmm31, zmm26, zmmword [rcx + 0xc0]
vmovdqu64 zmm22, zmmword [rcx + 0x100]
vpaddq zmm28, zmm19, zmmword [rcx + 0x480]
vpaddq zmm29, zmm0, zmmword [rcx + 0x4c0]
vmovdqu64 zmmword [rcx + 0x3c0], zmm21
vpaddq zmm27, zmm5, zmm27
invalid
invalid
invalid
vpxord zmm3, zmm3, zmm27
vprorq zmm17, zmm3, 0xb
int1
cmc
jb 0x452338
or esp, dword [rdx - 0xe]
std
jl 0x452354
vpxord zmm3, zmm3, zmm16
vpshufd zmm3, zmm3, 0xb1
vpaddq zmm24, zmm24, zmm3
invalid
invalid
ret
vpxord zmm23, zmm2, zmm24
vprorq zmm23, zmm23, 0x19
invalid
sbb dword [rax + 0x2d], ecx
add byte [rdx], 0
add byte [rdx - 0xe], ah
std
jl 0x452378
vpxord zmm2, zmm22, zmm2
movabs rax, 0x452821e638d01377
out 0x21, al
sub byte [rbp + 0x62], al
add ebp, eax
invalid
invalid
invalid
vpaddq zmm31, zmm31, zmm16
vpaddq zmm16, zmm28, zmm2
invalid
ret 0xb162
pop rbp
out dx, eax
invalid
vpshufd zmm2, zmm2, 0xb1
vpaddq zmm26, zmm26, zmm2
vpxord zmm19, zmm19, zmm26
out dx, eax
fisub dword [rdx - 0x4f]
in eax, 0x40
jb 0x4523ac
invalid
vpbroadcastq zmm28, rax
vpxord zmm28, zmm28, zmmword [rcx + 0x140]
vpxord zmm3, zmm3, zmm31
out dx, eax
fbld tbyte [rdx - 0xf]
in eax, 0x48
jb 0x4523c6
invalid
movabs rax, 0xd1310ba698dfb5ac
vpaddq zmm28, zmm19, zmm28
vpaddq zmm28, zmm28, zmm16
vpxord zmm2, zmm2, zmm28
vprorq zmm2, zmm2, 0x10
jb _stricmp
adc byte [rdx + 1], ah
in eax, 0x48
invalid
shl byte [rdx - 0x7f], 0x45
out dx, eax
clc
vprorq zmm23, zmm23, 0xb
vpaddq zmm26, zmm2, zmm26
in eax, dx
invalid
invalid
shl byte [rdx - 0x7f], cl
out dx, eax
invalid
vpxord zmm19, zmm1, zmmword [rcx + 0x180]
vprorq zmm16, zmm16, 0xb
vpaddq zmm29, zmm29, zmm19
vpxord zmm1, zmm1, zmm29
vpshufd zmm1, zmm1, 0xb1
jge _wfopen
jo _strnicmp
mov cl, 0x62
loope 0x452447
invalid
invalid
fldenv [rdx - 0x4f]
jge fprintf
out dx, eax
jrcxz 0x4524d6
int1
fisttp qword [rax + 0x72]
invalid
sbb dword [rdx - 0xf], esp
pop rbp
out dx, eax
invalid
invalid
vpaddq zmm0, zmm4, zmm0
invalid
invalid
shl byte [rdx + 1], 0xfd
invalid
invalid
in eax, dx
vpxord zmm1, zmm1, zmm29
xchg ecx, eax
jne 0x4524d9
out dx, eax
int 0x62
int1
cmc
jb fclose
adc byte [rdx - 0x4f], ah
cmc
invalid
invalid
ret
vpbroadcastq zmm19, rax
vpxord zmm19, zmm19, zmmword [rcx + 0x200]
movabs rax, 0xb8e1afed6a267e96
push fopen
scasd eax, dword [rdi]
loope 0x45246f
vpaddq zmm19, zmm23, zmm19
vpaddq zmm25, zmm19, zmm25
vpbroadcastq zmm19, rax
vpxord zmm19, zmm19, zmm30
vpaddq zmm19, zmm16, zmm19
invalid
vpaddq zmm19, zmm19, zmm31
vpxord zmm5, zmm5, zmm19
mov cl, 0x55
out dx, eax
jmp 0x452544
int1
jge fseek
jo reloc.msvcrt.dll_fread
mov cl, 0x62
int1
pop rbp
out dx, eax
out dx, eax
loopne 0x452551
int1
std
invalid
invalid
invalid
vpxord zmm16, zmm16, zmm0
vprorq zmm16, zmm16, 0x19
jb getenv
sbb dword [rax - 0x48], ecx
mov bh, 0xdf
sbb dl, al
invalid
jb isalpha
invalid
vpbroadcastq zmm30, rax
vprorq zmm4, zmm4, 0xb
int1
fisttp qword [rax + 0x72]
invalid
or ecx, dword [rax - 0x48]
imul dword [rcx + rdx*4 - 0x4d]
xchg ecx, eax
mov bl, 0x47
cdq
invalid
and al, 0x62
xchg ecx, eax
jne 0x45256e
out dx, eax
leave
vpaddq zmm30, zmm30, zmm16
vpaddq zmm19, zmm30, zmm19
lea eax, [rax - 0x2c]
invalid
vpxord zmm5, zmm5, zmm19
vprorq zmm30, zmm5, 0x10
jb malloc
adc byte [rdx - 0xf], ah
jge 0x45258d
jo 0x452510
invalid
vpaddq zmm26, zmm26, zmm1
vpxord zmm23, zmm23, zmm26
vprorq zmm23, zmm23, 0x19
vmovdqu64 zmmword [rdx + 0x280], zmm26
jg memcmp
or ah, byte [rdx - 0xf]
lea eax, [rax - 0x2c]
invalid
vpxord zmm16, zmm0, zmm16
vprorq zmm5, zmm16, 0xb
vpbroadcastq zmm16, rax
vpaddq zmm16, zmm4, zmm16
vpaddq zmm28, zmm16, zmm28
in al, 0x62
int1
invalid
out dx, eax
invalid
vpshufd zmm3, zmm3, 0xb1
vpaddq zmm27, zmm27, zmm3
invalid
invalid
vpxord zmm4, zmm27, zmm4
vprorq zmm4, zmm4, 0x19
movabs rax, 0xba7c9045f12c7f99
mov eax, 0xf12c7f99
xchg r8d, eax
jl 0x45256b
vpbroadcastq zmm16, rax
vpxord zmm16, zmm18, zmm16
movabs rax, 0x636920d871574e69
mov eax, 0x71574e69
fsub dword [rax]
imul esp, dword [rbx + 0x62], 0xef406da1
movabs eax, dword [0x48dda162d4ef406d]
invalid
shl byte [rdx - 0x7f], 0xfd
invalid
invalid
invalid
vpbroadcastq zmm28, rax
vpaddq zmm28, zmm17, zmm28
vpaddq zmm28, zmm28, zmm29
add dword [rbp + 0x62e5d440], ebx
int1
sbb eax, 0x62d2ef40
shl byte [rdx - 0xf], cl
jge 0x45263d
jo 0x4525c9
mov cl, 0x62
invalid
mov ebp, 0x62c2d440
invalid
invalid
out dx, eax
leave
vprorq zmm17, zmm17, 0x19
movabs rax, 0x801f2e2858efc16
test edx, esp
add dword [rax], ecx
vpbroadcastq zmm29, rax
vpxord zmm29, zmm21, zmm29
vpxord zmm3, zmm3, zmm16
vprorq zmm3, zmm3, 0x10
vpaddq zmm29, zmm17, zmm29
vpaddq zmm29, zmm29, zmm28
invalid
in al, dx
vpxord zmm2, zmm2, zmm29
vprorq zmm2, zmm2, 0x10
in eax, dx
jb 0x452608
adc byte [rax - 0x48], cl
sbb edi, ebx
jns strstr
mov ecx, ebx
invalid
invalid
xchg edx, eax
vpaddq zmm27, zmm3, zmm27
invalid
vpxord zmm4, zmm27, zmm4
vprorq zmm4, zmm4, 0xb
jb strtol
or esp, dword [rdx - 0x1e]
std
jl 0x452652
vpaddq zmm24, zmm2, zmm24
vpxord zmm17, zmm24, zmm17
out dx, eax
leave
vprorq zmm17, zmm17, 0xb
vpxord zmm22, zmm22, zmm21
movabs eax, dword [0x48dda162f5ef404d]
invalid
shl byte [rdx + 1], cl
add ebp, eax
invalid
invalid
leave
vpaddq zmm19, zmm19, zmm22
vpaddq zmm16, zmm5, zmm16
movabs eax, dword [0x40ed8162c0d448d5]
invalid
invalid
vmovdqu64 zmmword [rdx], zmm25
vmovdqu64 zmmword [rdx + 0x40], zmm19
vmovdqu64 zmmword [rdx + 0x80], zmm16
vmovdqu64 zmmword [rdx + 0xc0], zmm18
vmovdqu64 zmmword [rdx + 0x100], zmm17
vmovdqu64 zmmword [rdx + 0x140], zmm23
vmovdqu64 zmmword [rdx + 0x180], zmm5
vmovdqu64 zmmword [rdx + 0x1c0], zmm4
vmovdqu64 zmmword [rdx + 0x200], zmm27
vmovdqu64 zmmword [rdx + 0x240], zmm24
vmovdqu64 zmmword [rdx + 0x2c0], zmm0
vmovdqu64 zmmword [rdx + 0x300], zmm30
vmovdqu64 zmmword [rdx + 0x340], zmm3
vmovdqu64 zmmword [rdx + 0x380], zmm2
vmovdqu64 zmmword [rdx + 0x3c0], zmm1
vzeroupper
ret