Function at 0x70213ca0
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
sub esp, 0x150
push ebx
push ebp
mov ebp, dword [esp + 0x15c]
push esi
push edi
xor ecx, ecx
lea eax, [ebp + 0x15]
movzx edx, byte [eax - 1]
movzx esi, byte [eax]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 2]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 4]
mov dword [esp + ecx*4 + 0x20], edx
movzx edx, byte [eax + 3]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 5]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 6]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 8]
mov dword [esp + ecx*4 + 0x24], edx
movzx edx, byte [eax + 7]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 9]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 0xa]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 0xc]
mov dword [esp + ecx*4 + 0x28], edx
movzx edx, byte [eax + 0xb]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 0xd]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 0xe]
shl edx, 8
or edx, esi
mov dword [esp + ecx*4 + 0x2c], edx
add ecx, 4
add eax, 0x10
cmp ecx, 0x10
jb 0x70213cb6
lea eax, [esp + 0x40]
mov edi, 0x10
lea esp, [esp]
mov ecx, dword [eax - 0x20]
xor ecx, dword [eax + 0x14]
mov edx, dword [eax - 0x18]
xor ecx, edx
xor ecx, dword [eax]
add eax, 0x10
mov esi, ecx
add ecx, ecx
shr esi, 0x1f
xor esi, ecx
mov ecx, dword [eax - 0x2c]
xor ecx, dword [eax + 8]
mov dword [eax + 0x10], esi
xor ecx, dword [eax - 0xc]
mov esi, dword [eax - 0x24]
xor ecx, esi
mov ebx, ecx
add ecx, ecx
shr ebx, 0x1f
xor ebx, ecx
mov ecx, dword [eax + 0xc]
xor ecx, dword [eax - 0x20]
mov dword [eax + 0x14], ebx
xor ecx, dword [eax - 8]
xor ecx, edx
mov edx, ecx
add ecx, ecx
shr edx, 0x1f
xor edx, ecx
mov ecx, dword [eax - 0x1c]
xor ecx, dword [eax - 4]
mov dword [eax + 0x18], edx
xor ecx, esi
xor ecx, dword [eax + 0x10]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
xor edx, ecx
sub edi, 1
mov dword [eax + 0x1c], edx
jne 0x70213d60
mov edi, dword [ebp]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov ebp, dword [ebp + 0x10]
lea ecx, [esp + 0x24]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], ecx
lea esp, [esp]
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffe
cmp ecx, 0x14
jae 0x70213e12
mov esi, edx
not esi
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [esp + 0x10], 0x5a827999
jmp 0x70213e4a
cmp ecx, 0x28
jae 0x70213e21
mov dword [esp + 0x10], 0x6ed9eba1
jmp 0x70213e44
cmp ecx, 0x3c
jae 0x70213e3c
mov esi, eax
or esi, edx
mov ecx, eax
and esi, ebx
and ecx, edx
or esi, ecx
mov dword [esp + 0x10], 0x8f1bbcdc
jmp 0x70213e4a
mov dword [esp + 0x10], 0xca62c1d6
mov esi, ebx
xor esi, eax
xor esi, edx
mov ecx, edi
shr ecx, 0x1b
mov ebp, edi
shl ebp, 5
xor ecx, ebp
mov ebp, dword [esp + 0x1c]
add ecx, dword [ebp - 4]
mov ebp, eax
add ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, esi
add ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ebx
mov ebx, edx
shl ebx, 0x1e
shr edx, 2
dec eax
xor ebx, edx
mov dword [esp + 0x10], ecx
cmp eax, 0x14
jae 0x70213e98
mov edx, edi
not edx
mov eax, ebx
and edx, ebp
and eax, edi
or edx, eax
mov esi, 0x5a827999
jmp 0x70213ec7
cmp eax, 0x28
jae 0x70213ea4
mov esi, 0x6ed9eba1
jmp 0x70213ec1
cmp eax, 0x3c
jae 0x70213ebc
mov edx, ebx
or edx, edi
mov eax, ebx
and edx, ebp
and eax, edi
or edx, eax
mov esi, 0x8f1bbcdc
jmp 0x70213ec7
mov esi, 0xca62c1d6
mov edx, ebp
xor edx, ebx
xor edx, edi
mov eax, ecx
shr eax, 0x1b
shl ecx, 5
xor eax, ecx
mov ecx, dword [esp + 0x1c]
add eax, dword [ecx]
mov ecx, dword [esp + 0x18]
add eax, esi
mov esi, dword [esp + 0x10]
add eax, edx
add eax, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
mov ebp, ebx
mov ebx, edi
shl ebx, 0x1e
shr edi, 2
xor ebx, edi
mov dword [esp + 0x10], eax
cmp ecx, 0x14
jae 0x70213f13
mov edx, esi
not edx
mov ecx, ebx
and edx, ebp
and ecx, esi
or edx, ecx
mov edi, 0x5a827999
jmp 0x70213f42
cmp ecx, 0x28
jae 0x70213f1f
mov edi, 0x6ed9eba1
jmp 0x70213f3c
cmp ecx, 0x3c
jae 0x70213f37
mov edx, ebx
or edx, esi
mov ecx, ebx
and edx, ebp
and ecx, esi
or edx, ecx
mov edi, 0x8f1bbcdc
jmp 0x70213f42
mov edi, 0xca62c1d6
mov edx, ebp
xor edx, ebx
xor edx, esi
mov ecx, eax
shr ecx, 0x1b
shl eax, 5
xor ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
add ecx, edi
mov edi, dword [esp + 0x10]
add ecx, edx
add ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
mov ebp, ebx
mov ebx, esi
shl ebx, 0x1e
shr esi, 2
inc eax
xor ebx, esi
mov dword [esp + 0x10], ecx
cmp eax, 0x14
jae 0x70213f90
mov edx, edi
not edx
mov eax, ebx
and edx, ebp
and eax, edi
or edx, eax
mov esi, 0x5a827999
jmp 0x70213fbf
cmp eax, 0x28
jae 0x70213f9c
mov esi, 0x6ed9eba1
jmp 0x70213fb9
cmp eax, 0x3c
jae 0x70213fb4
mov edx, ebx
or edx, edi
mov eax, ebx
and edx, ebp
and eax, edi
or edx, eax
mov esi, 0x8f1bbcdc
jmp 0x70213fbf
mov esi, 0xca62c1d6
mov edx, ebp
xor edx, ebx
xor edx, edi
mov eax, ecx
shr eax, 0x1b
shl ecx, 5
xor eax, ecx
mov ecx, dword [esp + 0x1c]
add eax, dword [ecx + 8]
mov ecx, dword [esp + 0x18]
add eax, esi
mov esi, dword [esp + 0x10]
add eax, edx
add eax, dword [esp + 0x14]
mov edx, ebx
mov ebx, edi
shl ebx, 0x1e
shr edi, 2
add ecx, 2
xor ebx, edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], eax
cmp ecx, 0x14
jae 0x7021400f
mov edi, esi
not edi
mov ecx, ebx
and edi, edx
and ecx, esi
or edi, ecx
mov ebp, 0x5a827999
jmp 0x7021403e
cmp ecx, 0x28
jae 0x7021401b
mov ebp, 0x6ed9eba1
jmp 0x70214038
cmp ecx, 0x3c
jae 0x70214033
mov edi, ebx
or edi, esi
mov ecx, ebx
and edi, edx
and ecx, esi
or edi, ecx
mov ebp, 0x8f1bbcdc
jmp 0x7021403e
mov ebp, 0xca62c1d6
mov edi, edx
xor edi, ebx
xor edi, esi
mov ecx, eax
shr ecx, 0x1b
shl eax, 5
xor ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, dword [eax + 0xc]
add dword [esp + 0x1c], 0x14
mov eax, esi
shr esi, 2
shl eax, 0x1e
xor eax, esi
mov esi, dword [esp + 0x18]
add ecx, ebp
add esi, 5
add ecx, edi
add ecx, dword [esp + 0x14]
mov dword [esp + 0x18], esi
add esi, 0xfffffffe
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov edi, ecx
cmp esi, 0x50
jb 0x70213df0
mov esi, dword [esp + 0x164]
mov edi, dword [esi]
add edi, ecx
mov ecx, dword [esi + 4]
add ecx, edx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 8]
add ecx, eax
mov eax, dword [esi + 0xc]
add eax, ebx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi], edi
pop edi
add eax, ecx
mov dword [esi + 0x10], eax
pop esi
pop ebp
pop ebx
add esp, 0x150
ret 4