Function at 0x51af1a
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1f0
mov dword [esp + 0xac], ecx
mov edi, edx
mov al, byte [0x592055]
cmp al, 1
je 0x51b009
movzx eax, al
cmp eax, 0xff
jne 0x51b020
lea esi, [esp + 0xc8]
mov ecx, esi
call fcn.0051a94c
lea ecx, [esp + 0x130]
call fcn.0051a96d
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov eax, 0xc000000
mov esi, ecx
mov dword [esp + 0x70], ecx
and esi, eax
cmp esi, eax
jne 0x51afae
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x90], edx
call fcn.0051a98e
and eax, 2
shr ebx, 0x1d
shr eax, 1
and ebx, eax
call fcn.0051a98e
mov edx, dword [esp + 0x90]
and eax, 2
shr eax, 1
jmp 0x51afb2
xor ebx, ebx
xor eax, eax
and bl, al
shr edx, 0x1a
and dl, bl
cmp esi, 0xc000000
jne 0x51afd1
mov ebx, edx
call fcn.0051a98e
and eax, 2
mov edx, ebx
shr eax, 1
jmp 0x51afd3
xor eax, eax
mov ebx, dword [esp + 0x70]
mov ecx, ebx
shr ecx, 9
and cl, al
and dl, cl
cmp esi, 0xc000000
jne 0x51aff8
mov esi, edx
call fcn.0051a98e
and eax, 2
mov edx, esi
shr eax, 1
jmp 0x51affa
xor eax, eax
shr ebx, 0x13
and bl, al
and dl, bl
mov byte [0x592055], dl
je 0x51b020
mov ecx, dword [esp + 0xac]
mov edx, edi
push dword [ebp + 8]
call fcn.0051c298
pop eax
jmp 0x51c0ae
mov eax, dword [esp + 0xac]
mov ecx, dword [ebp + 8]
xorps xmm0, xmm0
movups xmmword [esp + 0x160], xmm0
movups xmmword [esp + 0x150], xmm0
movups xmmword [esp + 0x140], xmm0
movups xmmword [esp + 0x130], xmm0
movq xmm0, qword [eax + 0x10]
movq xmm2, qword [eax]
movq xmm1, qword [eax + 8]
mov esi, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
shl ecx, 6
add ecx, edi
mov dword [esp + 0x11c], ecx
movq qword [esp + 0xd8], xmm0
movq qword [esp + 0xd0], xmm1
movq qword [esp + 0xc8], xmm2
cmp edi, dword [esp + 0x11c]
je 0x51c078
push 0xfffffffffffffff0
pop eax
test eax, eax
je 0x51b0ac
mov ecx, dword [edi + eax*4 + 0x40]
bswap ecx
mov dword [esp + eax*4 + 0x170], ecx
inc eax
jmp 0x51b098
movss xmm0, dword [esp + 0xd8]
movss xmm1, dword [esp + 0xdc]
movups xmm2, xmmword [esp + 0xc8]
add edi, 0x40
movups xmm5, xmmword [esp + 0xd0]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x128], edx
mov ebx, dword [esp + 0x138]
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x124], esi
mov dword [esp + 0x12c], edi
mov edi, dword [esp + 0x130]
movlhps xmm1, xmm0
mov dword [esp + 0x50], ecx
shufps xmm2, xmm1, 0x24
movd xmm1, esi
mov esi, dword [esp + 0x144]
movaps xmm4, xmm2
movaps xmmword [esp + 0x1c0], xmm2
movd xmm2, edx
mov edx, dword [esp + 0x13c]
punpcklqdq xmm2, xmm1
movd xmm1, edi
add edi, 0x428a2f98
movups xmmword [esp + 0x20], xmm4
shufps xmm5, xmm2, 0x24
movd xmm2, eax
add eax, 0x71374491
punpckldq xmm2, xmm1
movd xmm1, ebx
add ebx, 0xb5c0fbcf
movups xmmword [esp + 0x10], xmm5
movd xmm3, edx
add edx, 0xe9b5dba5
punpckldq xmm3, xmm1
movd xmm1, ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x170], edx
lea edx, [esp + 0x10]
punpcklqdq xmm3, xmm2
movd xmm2, esi
punpckldq xmm2, xmm1
movdqa xmmword [esp + 0xf0], xmm3
mov dword [esp + 0x190], ecx
movd xmm1, ecx
mov ecx, dword [esp + 0x14c]
movd xmm3, ecx
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x150]
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm2
movdqa xmmword [esp + 0x100], xmm3
mov dword [esp + 0xb0], ecx
movd xmm1, ecx
mov ecx, dword [esp + 0x154]
movd xmm2, ecx
mov dword [esp + 0x1b0], ecx
mov ecx, dword [esp + 0x158]
punpckldq xmm2, xmm1
mov dword [esp + 0x1a0], ecx
movd xmm1, ecx
mov ecx, dword [esp + 0x15c]
movd xmm3, ecx
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0x160]
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm2
movdqa xmmword [esp + 0x40], xmm3
mov dword [esp + 0x90], ecx
movd xmm1, ecx
mov ecx, dword [esp + 0x164]
movd xmm2, ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x168]
punpckldq xmm2, xmm1
mov dword [esp + 0x80], ecx
movd xmm1, ecx
mov ecx, dword [esp + 0x16c]
movd xmm3, ecx
mov dword [esp + 0xe0], ecx
mov ecx, esp
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm2
movdqa xmmword [esp + 0x70], xmm3
push edi
push eax
lea eax, [esp + 0x28]
push eax
mov edi, eax
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmm1, xmmword [esp + 0x1c0]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x1d0], xmm0
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push ebx
push dword [esp + 0x174]
push edi
call fcn.0051c0b6
add esp, 0xc
mov edi, dword [esp + 0x190]
mov eax, dword [esp + 0x50]
movups xmm0, xmmword [esp]
mov ebx, dword [esp + 0x180]
movaps xmm1, xmmword [esp + 0x1d0]
add esi, 0x59f111f1
lea edx, [esp + 0x10]
mov ecx, esp
add edi, 0x923f82a4
add eax, 0x3956c25b
movaps xmmword [esp + 0x170], xmm0
add ebx, 0xab1c5ed5
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push eax
push esi
lea eax, [esp + 0x28]
push eax
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmm1, xmmword [esp + 0x170]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x190], xmm0
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push edi
push ebx
lea eax, [esp + 0x28]
push eax
call fcn.0051c0b6
add esp, 0xc
mov edi, dword [esp + 0x1a0]
mov esi, dword [esp + 0x1b0]
mov eax, dword [esp + 0xb0]
movups xmm0, xmmword [esp]
mov ebx, dword [esp + 0x120]
movaps xmm1, xmmword [esp + 0x190]
lea edx, [esp + 0x10]
mov ecx, esp
add edi, 0x243185be
add esi, 0x12835b01
add eax, 0xd807aa98
movaps xmmword [esp + 0x180], xmm0
add ebx, 0x550c7dc3
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push eax
push esi
lea esi, [esp + 0x28]
push esi
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmm1, xmmword [esp + 0x180]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x1b0], xmm0
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push edi
push ebx
push esi
call fcn.0051c0b6
add esp, 0xc
mov edi, dword [esp + 0xe0]
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x90]
movups xmm0, xmmword [esp]
mov ebx, dword [esp + 0x60]
movaps xmm1, xmmword [esp + 0x1b0]
lea edx, [esp + 0x10]
mov ecx, esp
add edi, 0xc19bf174
add esi, 0x9bdc06a7
add eax, 0x72be5d74
movaps xmmword [esp + 0x1a0], xmm0
add ebx, 0x80deb1fe
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push eax
push ebx
lea eax, [esp + 0x28]
push eax
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmm1, xmmword [esp + 0x1a0]
mov ebx, esp
lea edx, [esp + 0x10]
mov ecx, ebx
movaps xmmword [esp + 0xe0], xmm0
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push esi
push edi
lea esi, [esp + 0x28]
push esi
call fcn.0051c0b6
add esp, 0xc
movaps xmm1, xmmword [esp + 0xf0]
movups xmm0, xmmword [esp]
movaps xmm2, xmmword [esp + 0x40]
mov edx, ebx
lea ecx, [esp + 0x30]
movups xmmword [esp], xmm1
movaps xmm1, xmmword [esp + 0x70]
movaps xmmword [esp + 0x60], xmm0
movups xmmword [esp + 0x10], xmm2
movups xmmword [esp + 0x20], xmm1
push esi
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x58]
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x240ca1cc
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0x50], xmm1
movaps xmm1, xmmword [esp + 0x60]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0xe0]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0x80], xmm3
add edi, 0xfc19dc6
add ebx, 0xe49b69c1
add eax, 0xefbe4786
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x60]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0xe0], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movaps xmm1, xmmword [esp + 0x100]
movups xmm0, xmmword [esp]
movaps xmm2, xmmword [esp + 0x70]
mov edx, esp
lea ecx, [esp + 0x30]
movups xmmword [esp], xmm1
movaps xmm1, xmmword [esp + 0x50]
movaps xmmword [esp + 0x60], xmm0
movups xmmword [esp + 0x10], xmm2
movups xmmword [esp + 0x20], xmm1
push ebx
lea eax, [esp + 0x14]
push eax
push dword [esp + 0xb8]
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x76f988da
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0xb0], xmm1
movaps xmm1, xmmword [esp + 0x60]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0xe0]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0xf0], xmm3
add edi, 0x5cb0a9dc
add ebx, 0x2de92c6f
add eax, 0x4a7484aa
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x60]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0xe0], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movaps xmm1, xmmword [esp + 0x40]
movups xmm0, xmmword [esp]
movaps xmm2, xmmword [esp + 0x50]
mov edx, esp
lea ecx, [esp + 0x30]
movups xmmword [esp], xmm1
movaps xmm1, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x60], xmm0
movups xmmword [esp + 0x10], xmm2
movups xmmword [esp + 0x20], xmm1
push ebx
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x98]
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0xbf597fc7
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0x90], xmm1
movaps xmm1, xmmword [esp + 0x60]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0xe0]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0x100], xmm3
add edi, 0xb00327c8
add ebx, 0x983e5152
add eax, 0xa831c66d
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmm1, xmmword [esp + 0x60]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0xe0], xmm0
movups xmmword [esp + 0x10], xmm1
movups xmmword [esp + 0x20], xmm0
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x70]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x90]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0x8c]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x14292967
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0x70], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0xe0]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0x60], xmm3
add edi, 0x6ca6351
add ebx, 0xc6e00bf3
add eax, 0xd5a79147
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x80], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0x90]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x70]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0xfc]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x53380d13
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0x50], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0x80]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0xf0], xmm3
add edi, 0x4d2c6dfc
add ebx, 0x27b70a85
add eax, 0x2e1b2138
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x80], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0x70]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0x10c]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x92722c85
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0xb0], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0x80]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0x100], xmm3
add edi, 0x81c2c92e
add ebx, 0x650a7354
add eax, 0x766a0abb
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x80], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x90]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0x6c]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0xc76c51a3
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0x90], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0x80]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0x60], xmm3
add edi, 0xc24b8b70
add ebx, 0xa2bfe8a1
add eax, 0xa81a664b
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x80], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x70]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x90]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0xfc]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x106aa070
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0x70], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0x80]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0xf0], xmm3
add edi, 0xf40e3585
add ebx, 0xd192e819
add eax, 0xd6990624
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x80], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0x90]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x70]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0x10c]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x34b0bcb5
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
pshufd xmm3, xmm1, 0xff
add esi, eax
pshufd xmm0, xmm1, 0x55
movdqa xmmword [esp + 0x50], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0x80]
movd edi, xmm0
movd ebx, xmm3
movdqa xmmword [esp + 0x100], xmm3
add edi, 0x2748774c
add ebx, 0x19a4c116
add eax, 0x1e376c08
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x80], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0x70]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0x6c]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x682e6ff3
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
add esi, eax
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movdqa xmmword [esp + 0xb0], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0x80]
movd edi, xmm0
movd ebx, xmm3
add edi, 0x5b9cca4f
add ebx, 0x391c0cb3
add eax, 0x4ed8aa4a
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x60], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x90]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0xfc]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm1, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0x8cc70208
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm2, xmm1, 0xee
add esi, eax
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movdqa xmmword [esp + 0xf0], xmm1
movaps xmm1, xmmword [esp + 0x40]
movd eax, xmm2
movaps xmm2, xmmword [esp + 0x60]
movd edi, xmm0
movd ebx, xmm3
add edi, 0x84c87814
add ebx, 0x748f82ee
add eax, 0x78a5636f
movups xmmword [esp + 0x20], xmm1
movups xmmword [esp + 0x10], xmm2
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
movaps xmm0, xmmword [esp + 0x40]
lea edx, [esp + 0x10]
mov ecx, esp
movaps xmmword [esp + 0x50], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
push esi
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm0, xmmword [esp]
movaps xmmword [esp + 0x90], xmm0
movaps xmm0, xmmword [esp + 0x70]
movups xmmword [esp], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0xf0]
movups xmmword [esp + 0x20], xmm0
sub esp, 0xc
movaps xmm0, xmmword [esp + 0x10c]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0xc]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.0051c19b
add esp, 0xc
movdqu xmm0, xmmword [esp + 0x30]
mov esi, dword [esp + 0x30]
mov eax, 0xc67178f2
movaps xmm2, xmmword [esp + 0x50]
lea edx, [esp + 0x10]
mov ecx, esp
pshufd xmm1, xmm0, 0x55
add esi, eax
movups xmmword [esp + 0x10], xmm2
movd edi, xmm1
pshufd xmm1, xmm0, 0xee
pshufd xmm0, xmm0, 0xff
movd eax, xmm1
movaps xmm1, xmmword [esp + 0x90]
movd ebx, xmm0
add edi, 0xbef9a3f7
add ebx, 0x90befffa
add eax, 0xa4506ceb
movups xmmword [esp + 0x20], xmm1
push ebx
push eax
lea ebx, [esp + 0x28]
push ebx
call fcn.0051c0b6
add esp, 0xc
movups xmm1, xmmword [esp]
mov eax, dword [esp]
movaps xmm0, xmmword [esp + 0x90]
lea edx, [esp + 0x10]
mov ecx, esp
mov dword [esp + 0x70], eax
movaps xmmword [esp + 0x50], xmm1
movups xmmword [esp + 0x10], xmm0
movups xmmword [esp + 0x20], xmm1
push edi
mov edi, dword [esp + 0x130]
push esi
mov esi, dword [esp + 0x12c]
push ebx
call fcn.0051c0b6
mov edx, dword [esp + 0x134]
add esp, 0xc
movdqu xmm0, xmmword [esp]
mov eax, dword [esp]
movdqa xmm2, xmmword [esp + 0x50]
pshufd xmm1, xmm0, 0x55
add dword [esp + 0xc8], eax
movd eax, xmm1
pshufd xmm1, xmm2, 0x55
add dword [esp + 0xcc], eax
mov eax, dword [esp + 0x70]
add dword [esp + 0xd0], eax
movd eax, xmm1
pshufd xmm1, xmm0, 0xee
pshufd xmm0, xmm0, 0xff
add dword [esp + 0xd4], eax
movd eax, xmm1
add dword [esp + 0xd8], eax
movd eax, xmm0
pshufd xmm0, xmm2, 0xee
add dword [esp + 0xdc], eax
movd eax, xmm0
pshufd xmm0, xmm2, 0xff
add esi, eax
movd eax, xmm0
add edx, eax
jmp 0x51b088
movsd xmm0, qword [esp + 0xd8]
mov eax, dword [esp + 0xac]
movsd xmm2, qword [esp + 0xc8]
movsd xmm1, qword [esp + 0xd0]
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm2
mov dword [eax + 0x18], esi
mov dword [eax + 0x1c], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret