Function at 0xd897ce
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1d0
call 0xd897df
pop ebx
add ebx, 0x7030
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x1d4], ecx
mov ecx, 3
lea eax, [ebx - 0x6c0]
call fcn.00d8d0ab
test eax, eax
jne 0xd89813
add dword [ebp - 0x1ac], 3
mov ecx, 7
lea edx, [ebx - 0x6bc]
mov eax, dword [ebp - 0x1ac]
call fcn.00d8d0ab
test eax, eax
jne 0xd8988a
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x1ac]
add eax, 7
mov ecx, 0xa
call fcn.00d8d32b
mov edx, dword [ebp - 0x10]
cmp byte [edx], 0x24
jne 0xd8988a
inc edx
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x1c4], eax
cmp eax, 0x3b9ac9ff
jbe 0xd8986b
mov dword [ebp - 0x1c4], 0x3b9ac9ff
jmp 0xd89881
cmp dword [ebp - 0x1c4], 0x3e8
jae 0xd89881
mov dword [ebp - 0x1c4], 0x3e8
mov byte [ebp - 0x1d5], 1
jmp 0xd8989b
mov byte [ebp - 0x1d5], 0
mov dword [ebp - 0x1c4], 0x1388
lea edx, [ebx - 0x6c3]
mov eax, dword [ebp - 0x1ac]
call fcn.00d8d319
mov dword [ebp - 0x1b8], eax
cmp eax, 0x10
jbe 0xd898c1
mov dword [ebp - 0x1b8], 0x10
xor eax, eax
or ecx, 0xffffffff
mov edi, dword [ebp - 0x1b4]
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1d0], 0
test byte [ebp - 0x1b4], 3
je 0xd8991a
add ecx, 0x15
and ecx, 0xfffffffc
sub esp, ecx
lea eax, [esp + 0xf]
and eax, 0xfffffff0
add eax, 4
mov edi, eax
mov esi, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1b0]
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], 0
test byte [ebp - 0x1ac], 3
je 0xd89961
mov eax, dword [ebp - 0x1b8]
add eax, 0x16
and eax, 0xfffffffc
sub esp, eax
lea eax, [esp + 0xf]
and eax, 0xfffffff0
add eax, 4
mov edi, eax
mov esi, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x1b8]
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0xfc], 0x6a09e667
mov dword [ebp - 0xf8], 0xbb67ae85
mov dword [ebp - 0xf4], 0x3c6ef372
mov dword [ebp - 0xf0], 0xa54ff53a
mov dword [ebp - 0xec], 0x510e527f
mov dword [ebp - 0xe8], 0x9b05688c
mov dword [ebp - 0xe4], 0x1f83d9ab
mov dword [ebp - 0xe0], 0x5be0cd19
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd4], 0
lea edi, [ebp - 0xfc]
mov ecx, edi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
call fcn.00d89554
mov ecx, edi
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1ac]
call fcn.00d89554
mov dword [ebp - 0x1a8], 0x6a09e667
mov dword [ebp - 0x1a4], 0xbb67ae85
mov dword [ebp - 0x1a0], 0x3c6ef372
mov dword [ebp - 0x19c], 0xa54ff53a
mov dword [ebp - 0x198], 0x510e527f
mov dword [ebp - 0x194], 0x9b05688c
mov dword [ebp - 0x190], 0x1f83d9ab
mov dword [ebp - 0x18c], 0x5be0cd19
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x180], 0
lea esi, [ebp - 0x1a8]
mov ecx, esi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
call fcn.00d89554
mov ecx, esi
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1ac]
call fcn.00d89554
mov ecx, esi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
call fcn.00d89554
lea ecx, [ebp - 0x30]
mov edx, ecx
mov eax, esi
mov dword [ebp - 0x1dc], ecx
call fcn.00d896c3
mov esi, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x1bc], ecx
jmp 0xd89ae3
mov ecx, edi
mov edx, 0x20
mov eax, dword [ebp - 0x1bc]
call fcn.00d89554
sub esi, 0x20
cmp esi, 0x20
ja 0xd89ace
mov ecx, edi
mov edx, esi
mov eax, dword [ebp - 0x1bc]
call fcn.00d89554
mov ecx, dword [ebp - 0x1b0]
lea esi, [ebp - 0xfc]
lea edi, [ebp - 0x30]
mov dword [ebp - 0x1c0], edi
mov edi, esi
mov esi, ecx
jmp 0xd89b3e
test esi, 1
je 0xd89b29
mov ecx, edi
mov edx, 0x20
mov eax, dword [ebp - 0x1c0]
jmp 0xd89b37
mov ecx, edi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
call fcn.00d89554
shr esi, 1
test esi, esi
jne 0xd89b12
mov dword [ebp - 0x1bc], esi
lea edx, [ebp - 0x30]
lea eax, [ebp - 0xfc]
call fcn.00d896c3
mov dword [ebp - 0x1a8], 0x6a09e667
mov dword [ebp - 0x1a4], 0xbb67ae85
mov dword [ebp - 0x1a0], 0x3c6ef372
mov dword [ebp - 0x19c], 0xa54ff53a
mov dword [ebp - 0x198], 0x510e527f
mov dword [ebp - 0x194], 0x9b05688c
mov dword [ebp - 0x190], 0x1f83d9ab
mov dword [ebp - 0x18c], 0x5be0cd19
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x180], 0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1c0], eax
jmp 0xd89bea
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
call fcn.00d89554
inc esi
cmp esi, dword [ebp - 0x1b0]
jb 0xd89bd2
lea edi, [ebp - 0x50]
mov edx, edi
mov eax, dword [ebp - 0x1c0]
call fcn.00d896c3
mov eax, dword [ebp - 0x1b0]
add eax, 0x12
and eax, 0xfffffffc
sub esp, eax
lea ecx, [esp + 0xf]
and ecx, 0xfffffff0
mov dword [ebp - 0x1b4], ecx
mov eax, ecx
mov esi, dword [ebp - 0x1b0]
mov dword [ebp - 0x1c0], edi
jmp 0xd89c40
mov ecx, 0x20
mov edx, dword [ebp - 0x1c0]
call fcn.00d8cd73
sub esi, 0x20
cmp esi, 0x1f
ja 0xd89c2d
mov ecx, dword [ebp - 0x1b0]
and ecx, 0x1f
mov edi, eax
mov esi, dword [ebp - 0x1c0]
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x1a8], 0x6a09e667
mov dword [ebp - 0x1a4], 0xbb67ae85
mov dword [ebp - 0x1a0], 0x3c6ef372
mov dword [ebp - 0x19c], 0xa54ff53a
mov dword [ebp - 0x198], 0x510e527f
mov dword [ebp - 0x194], 0x9b05688c
mov dword [ebp - 0x190], 0x1f83d9ab
mov dword [ebp - 0x18c], 0x5be0cd19
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x180], 0
xor esi, esi
lea edi, [ebp - 0x1a8]
jmp 0xd89ce4
mov ecx, edi
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1ac]
call fcn.00d89554
inc esi
movzx eax, byte [ebp - 0x30]
add eax, 0x10
cmp esi, eax
jb 0xd89cd0
lea ecx, [ebp - 0x50]
mov edx, ecx
mov eax, edi
mov dword [ebp - 0x1dc], ecx
call fcn.00d896c3
mov eax, dword [ebp - 0x1b8]
add eax, 0x12
and eax, 0xfffffffc
sub esp, eax
lea eax, [esp + 0xf]
and eax, 0xfffffff0
mov dword [ebp - 0x1c0], eax
mov esi, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x1c8], ecx
jmp 0xd89d43
mov ecx, 0x20
mov edx, dword [ebp - 0x1c8]
call fcn.00d8cd73
sub esi, 0x20
cmp esi, 0x1f
ja 0xd89d30
mov ecx, dword [ebp - 0x1b8]
and ecx, 0x1f
mov edi, eax
mov esi, dword [ebp - 0x1c8]
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp - 0xfc]
lea edi, [ebp - 0x30]
mov dword [ebp - 0xfc], 0x6a09e667
mov dword [ebp - 0xf8], 0xbb67ae85
mov dword [ebp - 0xf4], 0x3c6ef372
mov dword [ebp - 0xf0], 0xa54ff53a
mov dword [ebp - 0xec], 0x510e527f
mov dword [ebp - 0xe8], 0x9b05688c
mov dword [ebp - 0xe4], 0x1f83d9ab
mov dword [ebp - 0xe0], 0x5be0cd19
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd4], 0
mov ecx, dword [ebp - 0x1bc]
and ecx, 1
mov dword [ebp - 0x1c8], ecx
je 0xd89df3
mov ecx, esi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
jmp 0xd89dfc
mov ecx, esi
mov edx, 0x20
mov eax, edi
call fcn.00d89554
mov eax, dword [ebp - 0x1bc]
mov ecx, 3
xor edx, edx
div ecx
test edx, edx
je 0xd89e27
mov ecx, esi
mov edx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x1c0]
call fcn.00d89554
mov eax, dword [ebp - 0x1bc]
mov ecx, 7
xor edx, edx
div ecx
test edx, edx
je 0xd89e4d
mov ecx, esi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
call fcn.00d89554
cmp dword [ebp - 0x1c8], 0
je 0xd89e61
mov ecx, esi
mov edx, 0x20
mov eax, edi
jmp 0xd89e6f
mov ecx, esi
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
call fcn.00d89554
mov edx, edi
mov eax, esi
call fcn.00d896c3
inc dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1c4]
cmp dword [ebp - 0x1bc], eax
jb 0xd89d64
mov ecx, dword [ebp + 8]
not ecx
sar ecx, 0x1f
and ecx, dword [ebp + 8]
lea edx, [ebx - 0x6c0]
mov eax, dword [ebp - 0x1d4]
call fcn.00d8d0f3
mov edi, eax
mov esi, dword [ebp + 8]
sub esi, 3
cmp byte [ebp - 0x1d5], 0
je 0xd89eed
push dword [ebp - 0x1c4]
lea eax, [ebx - 0x6bc]
push eax
lea eax, [ebx - 0x6c8]
push eax
mov eax, esi
not eax
sar eax, 0x1f
and eax, esi
push eax
push edi
call fcn.00d8cffb
add edi, eax
sub esi, eax
add esp, 0x14
mov dword [ebp - 0x1bc], esi
test esi, esi
jns 0xd89f03
mov dword [ebp - 0x1bc], 0
jmp 0xd89f17
cmp esi, dword [ebp - 0x1b8]
jbe 0xd89f17
mov ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x1bc], ecx
mov ecx, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0x1ac]
mov eax, edi
call fcn.00d8d0f3
sub esi, dword [ebp - 0x1bc]
test esi, esi
jle 0xd89f39
mov byte [eax], 0x24
inc eax
dec esi
movzx edx, byte [ebp - 0x30]
shl edx, 0x10
movzx ecx, byte [ebp - 0x26]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x1c]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd89f6f
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd89f82
test esi, esi
jg 0xd89f5c
movzx edx, byte [ebp - 0x1b]
shl edx, 0x10
movzx ecx, byte [ebp - 0x2f]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x25]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd89fb8
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd89fcb
test esi, esi
jg 0xd89fa5
movzx edx, byte [ebp - 0x24]
shl edx, 0x10
movzx ecx, byte [ebp - 0x1a]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x2e]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a001
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a014
test esi, esi
jg 0xd89fee
movzx edx, byte [ebp - 0x2d]
shl edx, 0x10
movzx ecx, byte [ebp - 0x23]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x19]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a04a
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a05d
test esi, esi
jg 0xd8a037
movzx edx, byte [ebp - 0x18]
shl edx, 0x10
movzx ecx, byte [ebp - 0x2c]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x22]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a093
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a0a6
test esi, esi
jg 0xd8a080
movzx edx, byte [ebp - 0x21]
shl edx, 0x10
movzx ecx, byte [ebp - 0x17]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x2b]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a0dc
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a0ef
test esi, esi
jg 0xd8a0c9
movzx edx, byte [ebp - 0x2a]
shl edx, 0x10
movzx ecx, byte [ebp - 0x20]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x16]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a125
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a138
test esi, esi
jg 0xd8a112
movzx edx, byte [ebp - 0x15]
shl edx, 0x10
movzx ecx, byte [ebp - 0x29]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x1f]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a16e
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a181
test esi, esi
jg 0xd8a15b
movzx edx, byte [ebp - 0x1e]
shl edx, 0x10
movzx ecx, byte [ebp - 0x14]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x28]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a1b7
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a1ca
test esi, esi
jg 0xd8a1a4
movzx edx, byte [ebp - 0x27]
shl edx, 0x10
movzx ecx, byte [ebp - 0x1d]
shl ecx, 8
or edx, ecx
movzx ecx, byte [ebp - 0x13]
or edx, ecx
mov ecx, 4
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a200
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a213
test esi, esi
jg 0xd8a1ed
movzx edx, byte [ebp - 0x11]
shl edx, 8
movzx ecx, byte [ebp - 0x12]
or edx, ecx
mov ecx, 3
mov dword [ebp - 0x1ac], ecx
jmp 0xd8a240
mov edi, edx
and edi, 0x3f
mov cl, byte [ebx + edi - 0x6b4]
mov byte [eax], cl
inc eax
dec esi
shr edx, 6
dec dword [ebp - 0x1ac]
cmp dword [ebp - 0x1ac], 0xffffffff
je 0xd8a255
test esi, esi
jg 0xd8a22d
jmp 0xd8a259
test esi, esi
jg 0xd8a271
mov eax, dword [ebx + 0x20]
mov dword [eax], 0x22
mov dword [ebp - 0x1d4], 0
jmp 0xd8a274
mov byte [eax], 0
mov dword [ebp - 0xfc], 0x6a09e667
mov dword [ebp - 0xf8], 0xbb67ae85
mov dword [ebp - 0xf4], 0x3c6ef372
mov dword [ebp - 0xf0], 0xa54ff53a
mov dword [ebp - 0xec], 0x510e527f
mov dword [ebp - 0xe8], 0x9b05688c
mov dword [ebp - 0xe4], 0x1f83d9ab
mov dword [ebp - 0xe0], 0x5be0cd19
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd4], 0
lea edx, [ebp - 0x30]
lea eax, [ebp - 0xfc]
call fcn.00d896c3
xor eax, eax
mov edi, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1b0]
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1b8]
rep stosb byte es:[edi], al
cmp dword [ebp - 0x1d0], 0
je 0xd8a325
mov edi, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1b0]
rep stosb byte es:[edi], al
cmp dword [ebp - 0x1cc], 0
je 0xd8a33e
xor eax, eax
mov edi, dword [ebp - 0x1cc]
mov ecx, dword [ebp - 0x1b8]
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x1d4]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret