Function at 0x63d41000
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [ebp - 0x50], eax
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x64], edx
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
xor edi, 0x71374491
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x48], edi
mov edi, dword [ebp - 0x64]
xor edi, 0x428a2f98
test ecx, ecx
mov dword [ebp - 0x68], edi
je 0x63d41080
mov edi, dword [ecx]
mov esi, dword [ecx + 0x10]
xor edi, 0xe9b5dba5
mov dword [ebp - 0x38], edi
mov edi, dword [ecx + 4]
xor edi, 0xb5c0fbcf
mov dword [ebp - 0x40], edi
mov edi, dword [ecx + 8]
xor edi, 0x59f111f1
mov dword [ebp - 0x58], edi
mov edi, dword [ecx + 0xc]
xor ecx, ecx
xor edi, 0x3956c25b
mov dword [ebp - 0x60], edi
mov edi, esi
xor edi, 0xab1c5ed5
mov dword [ebp - 0x5c], edi
mov edi, 0x923f82a4
jmp 0x63d41101
test esi, esi
je 0x63d41593
mov edi, dword [esi]
mov ecx, dword [esi + 0x18]
xor edi, 0xe9b5dba5
xor ecx, 0x12835b01
mov dword [ebp - 0x38], edi
mov edi, dword [esi + 4]
mov dword [ebp - 0x30], ecx
mov ecx, dword [esi + 0x1c]
xor edi, 0xb5c0fbcf
mov dword [ebp - 0x40], edi
mov edi, dword [esi + 8]
xor ecx, 0xd807aa98
mov dword [ebp - 0x2c], ecx
mov ecx, dword [esi + 0x20]
xor edi, 0x59f111f1
mov dword [ebp - 0x58], edi
mov edi, dword [esi + 0xc]
xor ecx, 0x550c7dc3
mov dword [ebp - 0x28], ecx
mov ecx, dword [esi + 0x24]
xor edi, 0x3956c25b
mov dword [ebp - 0x60], edi
mov edi, dword [esi + 0x10]
xor ecx, 0x243185be
mov dword [ebp - 0x24], ecx
mov ecx, 2
xor edi, 0xab1c5ed5
mov dword [ebp - 0x5c], edi
mov edi, dword [esi + 0x14]
xor edi, 0x923f82a4
test edx, edx
je 0x63d41173
lea ebx, [ecx + 4]
lea esi, [ecx + 5]
mov eax, dword [ebx*8 + 0x63d4a060]
xor eax, dword [edx]
mov dword [ebp + ecx*8 - 0x30], eax
mov eax, dword [ebx*8 + 0x63d4a064]
lea ebx, [ecx + 1]
xor eax, dword [edx + 4]
mov dword [ebp + ecx*8 - 0x2c], eax
mov eax, dword [esi*8 + 0x63d4a060]
xor eax, dword [edx + 8]
mov dword [ebp + ebx*8 - 0x30], eax
mov eax, dword [esi*8 + 0x63d4a064]
xor eax, dword [edx + 0xc]
mov dword [ebp + ebx*8 - 0x2c], eax
lea ebx, [ecx + 2]
mov eax, dword [edx + 0x10]
cmp ebx, 4
je 0x63d4116e
lea esi, [ecx + 6]
add ecx, 3
xor eax, dword [esi*8 + 0x63d4a060]
mov dword [ebp + ebx*8 - 0x30], eax
mov eax, dword [esi*8 + 0x63d4a064]
mov dword [ebp + ebx*8 - 0x2c], eax
jmp 0x63d411cd
xor dword [ebp - 0x40], eax
jmp 0x63d411f0
cmp dword [ebp + 0x18], 0
je 0x63d41188
lea edx, [ecx + 4]
mov ebx, dword [ebp + 0x18]
mov eax, dword [edx*8 + 0x63d4a060]
jmp 0x63d411ba
test eax, eax
je 0x63d411ac
lea ebx, [ecx + 4]
mov edx, dword [ebx*8 + 0x63d4a060]
xor edx, dword [eax]
mov dword [ebp + ecx*8 - 0x30], edx
mov edx, dword [ebx*8 + 0x63d4a064]
xor edx, dword [eax + 4]
mov dword [ebp + ecx*8 - 0x2c], edx
jmp 0x63d411cc
test ebx, ebx
je 0x63d411cd
lea edx, [ecx + 4]
mov eax, dword [edx*8 + 0x63d4a060]
xor eax, dword [ebx]
mov dword [ebp + ecx*8 - 0x30], eax
mov eax, dword [edx*8 + 0x63d4a064]
xor eax, dword [ebx + 4]
jmp 0x63d411ea
inc ecx
cmp ecx, 4
je 0x63d411f0
mov eax, dword [ebp - 0x50]
xor eax, dword [ecx*8 + 0x63d4a080]
mov dword [ebp + ecx*8 - 0x30], eax
mov eax, dword [ebp - 0x64]
xor eax, dword [ecx*8 + 0x63d4a084]
mov dword [ebp + ecx*8 - 0x2c], eax
jmp 0x63d411cc
imul eax, dword [ebp - 0x68], 0x27d4eb4f
imul ecx, dword [ebp - 0x48], 0xc2b2ae3d
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x48]
add edx, ecx
add eax, dword [ebp - 0x30]
adc edx, dword [ebp - 0x2c]
mov ebx, eax
shld eax, edx, 0x1f
shld edx, ebx, 0x1f
mov ebx, 0x85ebca87
imul ecx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ecx, edx
mul ebx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], eax
add dword [ebp - 0x4c], ecx
imul eax, dword [ebp - 0x38], 0xc2b2ae3d
imul ecx, dword [ebp - 0x40], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x38]
add edx, ecx
add eax, dword [ebp - 0x28]
adc edx, dword [ebp - 0x24]
mov ebx, eax
shld eax, edx, 0x1f
shld edx, ebx, 0x1f
mov ebx, 0x85ebca87
imul ecx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ecx, edx
mul ebx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x48], eax
add dword [ebp - 0x44], ecx
imul eax, dword [ebp - 0x58], 0xc2b2ae3d
imul ecx, dword [ebp - 0x60], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x58]
add edx, ecx
add eax, dword [ebp - 0x20]
adc edx, dword [ebp - 0x1c]
mov ebx, eax
shld eax, edx, 0x1f
shld edx, ebx, 0x1f
mov ebx, 0x85ebca87
imul ecx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ecx, edx
mul ebx
mov ebx, 0x85ebca87
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
imul eax, dword [ebp - 0x5c], 0xc2b2ae3d
add dword [ebp - 0x3c], ecx
imul ecx, edi, 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x5c]
add edx, ecx
add eax, dword [ebp - 0x18]
adc edx, dword [ebp - 0x14]
mov edi, eax
shld eax, edx, 0x1f
shld edx, edi, 0x1f
imul ecx, edx, 0x85ebca87
imul edx, eax, 0x9e3779b1
add ecx, edx
mul ebx
mov ebx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], eax
add dword [ebp - 0x34], ecx
imul eax, dword [ebp - 0x50], 0xc2b2ae3d
imul ecx, dword [ebp - 0x4c], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x50]
mov dword [ebp - 0x54], edx
add dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x34]
mov esi, dword [ebp - 0x58]
mov eax, ecx
shld ecx, ebx, 0xc
shld ebx, eax, 0xc
mov eax, dword [ebp - 0x38]
mov edi, eax
shld eax, edx, 0x12
shld edx, edi, 0x12
add ecx, eax
mov eax, dword [ebp - 0x50]
adc ebx, edx
mov edx, dword [ebp - 0x4c]
mov edi, eax
shld eax, edx, 1
shld edx, edi, 1
add eax, ecx
mov ecx, dword [ebp - 0x48]
adc edx, ebx
mov ebx, dword [ebp - 0x44]
mov edi, ecx
shld ecx, ebx, 7
shld ebx, edi, 7
mov edi, dword [ebp - 0x54]
add ecx, eax
mov eax, esi
adc ebx, edx
shld esi, edi, 0x1f
shld edi, eax, 0x1f
mov dword [ebp - 0x50], esi
mov esi, ecx
mov ecx, ebx
imul eax, dword [ebp - 0x50], 0x9e3779b1
mov dword [ebp - 0x4c], edi
imul edi, dword [ebp - 0x4c], 0x85ebca87
add edi, eax
mov eax, 0x85ebca87
mul dword [ebp - 0x50]
add edx, edi
xor esi, eax
xor ecx, edx
imul eax, ecx, 0x85ebca87
imul ecx, esi, 0x9e3779b1
add ecx, eax
mov eax, 0x85ebca87
mul esi
mov edi, edx
mov esi, eax
add edi, ecx
imul eax, dword [ebp - 0x48], 0xc2b2ae3d
imul ecx, dword [ebp - 0x44], 0x27d4eb4f
add ecx, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x48]
add edx, ecx
mov ebx, eax
shld eax, edx, 0x1f
shld edx, ebx, 0x1f
mov dword [ebp - 0x48], eax
mov eax, 0x85ebca87
mov dword [ebp - 0x44], edx
imul edx, dword [ebp - 0x48], 0x9e3779b1
imul ecx, dword [ebp - 0x44], 0x85ebca87
add ecx, edx
mul dword [ebp - 0x48]
add edx, ecx
add esi, 0xc2b2ae63
mov ecx, eax
adc edi, 0x85ebca77
mov eax, edx
xor ecx, esi
xor eax, edi
imul eax, eax, 0x85ebca87
imul esi, ecx, 0x9e3779b1
add esi, eax
mov eax, 0x85ebca87
mul ecx
mov ebx, edx
mov ecx, eax
add ebx, esi
imul eax, dword [ebp - 0x40], 0xc2b2ae3d
imul esi, dword [ebp - 0x3c], 0x27d4eb4f
add esi, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x40]
add edx, esi
mov edi, eax
shld eax, edx, 0x1f
shld edx, edi, 0x1f
mov dword [ebp - 0x40], eax
mov eax, 0x85ebca87
mov dword [ebp - 0x3c], edx
imul edx, dword [ebp - 0x40], 0x9e3779b1
imul esi, dword [ebp - 0x3c], 0x85ebca87
add esi, edx
mul dword [ebp - 0x40]
add edx, esi
add ecx, 0xc2b2ae63
adc ebx, 0x85ebca77
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x3c], ebx
mov esi, dword [ebp - 0x3c]
xor ecx, eax
xor esi, edx
imul eax, esi, 0x85ebca87
imul esi, ecx, 0x9e3779b1
add esi, eax
mov eax, 0x85ebca87
mul ecx
mov ecx, 0x85ebca87
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], eax
add dword [ebp - 0x3c], esi
imul eax, dword [ebp - 0x38], 0xc2b2ae3d
imul esi, dword [ebp - 0x34], 0x27d4eb4f
add esi, eax
mov eax, 0x27d4eb4f
mul dword [ebp - 0x38]
add edx, esi
mov edi, eax
shld eax, edx, 0x1f
shld edx, edi, 0x1f
mov dword [ebp - 0x38], eax
mov eax, ecx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x34], edx
imul edx, dword [ebp - 0x38], 0x9e3779b1
imul esi, dword [ebp - 0x34], 0x85ebca87
lea ebx, [esi + edx]
mul dword [ebp - 0x38]
mov edi, edx
add edi, ebx
mov ebx, dword [ebp - 0x3c]
add ecx, 0xc2b2ae63
adc ebx, 0x85ebca77
xor eax, ecx
xor edi, ebx
mov ebx, 0x85ebca87
imul edx, edi, 0x85ebca87
imul ecx, eax, 0x9e3779b1
add ecx, edx
mul ebx
add edx, ecx
add eax, 0xc2b2ae83
adc edx, 0x85ebca77
mov ecx, edx
shr ecx, 1
xor ecx, eax
imul esi, ecx, 0xc2b2ae3d
imul eax, edx, 0x27d4eb4f
add esi, eax
mov eax, 0x27d4eb4f
mul ecx
mov ebx, edx
mov ecx, eax
add ebx, esi
shrd eax, ebx, 0x1d
mov edx, ebx
mov edi, eax
shr edx, 0x1d
xor edi, ecx
xor edx, ebx
mov ecx, 0x9e3779f9
imul edx, edx, 0x9e3779f9
mov eax, edi
imul esi, edi, 0x165667b1
add esi, edx
mul ecx
mov ecx, eax
lea edx, [esi + edx]
mov eax, ecx
xor eax, edx
jmp 0x63d41597
xor eax, eax
xor edx, edx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret