Function at 0x40ce58
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
add ecx, esi
mov eax, dword [edi]
sub ecx, 0x40
mov ebx, dword [edi + 4]
mov dword [esp], ecx
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov edi, ecx
xor edi, edx
add eax, 0xd76aa478
and edi, ebx
add eax, dword [esi]
xor edi, edx
add eax, edi
mov edi, ebx
rol eax, 7
add eax, ebx
xor edi, ecx
add edx, 0xe8c7b756
and edi, eax
add edx, dword [esi + 4]
xor edi, ecx
add edx, edi
mov edi, eax
rol edx, 0xc
add edx, eax
xor edi, ebx
add ecx, 0x242070db
and edi, edx
add ecx, dword [esi + 8]
xor edi, ebx
add ecx, edi
mov edi, edx
rol ecx, 0x11
add ecx, edx
xor edi, eax
add ebx, 0xc1bdceee
and edi, ecx
add ebx, dword [esi + 0xc]
xor edi, eax
add ebx, edi
mov edi, ecx
rol ebx, 0x16
add ebx, ecx
xor edi, edx
add eax, 0xf57c0faf
and edi, ebx
add eax, dword [esi + 0x10]
xor edi, edx
add eax, edi
mov edi, ebx
rol eax, 7
add eax, ebx
xor edi, ecx
add edx, 0x4787c62a
and edi, eax
add edx, dword [esi + 0x14]
xor edi, ecx
add edx, edi
mov edi, eax
rol edx, 0xc
add edx, eax
xor edi, ebx
add ecx, 0xa8304613
and edi, edx
add ecx, dword [esi + 0x18]
xor edi, ebx
add ecx, edi
mov edi, edx
rol ecx, 0x11
add ecx, edx
xor edi, eax
add ebx, 0xfd469501
and edi, ecx
add ebx, dword [esi + 0x1c]
xor edi, eax
add ebx, edi
mov edi, ecx
rol ebx, 0x16
add ebx, ecx
xor edi, edx
add eax, 0x698098d8
and edi, ebx
add eax, dword [esi + 0x20]
xor edi, edx
add eax, edi
mov edi, ebx
rol eax, 7
add eax, ebx
xor edi, ecx
add edx, 0x8b44f7af
and edi, eax
add edx, dword [esi + 0x24]
xor edi, ecx
add edx, edi
mov edi, eax
rol edx, 0xc
add edx, eax
xor edi, ebx
add ecx, 0xffff5bb1
and edi, edx
add ecx, dword [esi + 0x28]
xor edi, ebx
add ecx, edi
mov edi, edx
rol ecx, 0x11
add ecx, edx
xor edi, eax
add ebx, 0x895cd7be
and edi, ecx
add ebx, dword [esi + 0x2c]
xor edi, eax
add ebx, edi
mov edi, ecx
rol ebx, 0x16
add ebx, ecx
xor edi, edx
add eax, 0x6b901122
and edi, ebx
add eax, dword [esi + 0x30]
xor edi, edx
add eax, edi
mov edi, ebx
rol eax, 7
add eax, ebx
xor edi, ecx
add edx, 0xfd987193
and edi, eax
add edx, dword [esi + 0x34]
xor edi, ecx
add edx, edi
mov edi, eax
rol edx, 0xc
add edx, eax
xor edi, ebx
add ecx, 0xa679438e
and edi, edx
add ecx, dword [esi + 0x38]
xor edi, ebx
add ecx, edi
mov edi, edx
rol ecx, 0x11
add ecx, edx
xor edi, eax
add ebx, 0x49b40821
and edi, ecx
add ebx, dword [esi + 0x3c]
xor edi, eax
add ebx, edi
mov edi, ecx
rol ebx, 0x16
add ebx, ecx
xor edi, ebx
add eax, 0xf61e2562
and edi, edx
add eax, dword [esi + 4]
xor edi, ecx
add eax, edi
mov edi, ebx
rol eax, 5
add eax, ebx
xor edi, eax
add edx, 0xc040b340
and edi, ecx
add edx, dword [esi + 0x18]
xor edi, ebx
add edx, edi
mov edi, eax
rol edx, 9
add edx, eax
xor edi, edx
add ecx, 0x265e5a51
and edi, ebx
add ecx, dword [esi + 0x2c]
xor edi, eax
add ecx, edi
mov edi, edx
rol ecx, 0xe
add ecx, edx
xor edi, ecx
add ebx, 0xe9b6c7aa
and edi, eax
add ebx, dword [esi]
xor edi, edx
add ebx, edi
mov edi, ecx
rol ebx, 0x14
add ebx, ecx
xor edi, ebx
add eax, 0xd62f105d
and edi, edx
add eax, dword [esi + 0x14]
xor edi, ecx
add eax, edi
mov edi, ebx
rol eax, 5
add eax, ebx
xor edi, eax
add edx, 0x2441453
and edi, ecx
add edx, dword [esi + 0x28]
xor edi, ebx
add edx, edi
mov edi, eax
rol edx, 9
add edx, eax
xor edi, edx
add ecx, 0xd8a1e681
and edi, ebx
add ecx, dword [esi + 0x3c]
xor edi, eax
add ecx, edi
mov edi, edx
rol ecx, 0xe
add ecx, edx
xor edi, ecx
add ebx, 0xe7d3fbc8
and edi, eax
add ebx, dword [esi + 0x10]
xor edi, edx
add ebx, edi
mov edi, ecx
rol ebx, 0x14
add ebx, ecx
xor edi, ebx
add eax, 0x21e1cde6
and edi, edx
add eax, dword [esi + 0x24]
xor edi, ecx
add eax, edi
mov edi, ebx
rol eax, 5
add eax, ebx
xor edi, eax
add edx, 0xc33707d6
and edi, ecx
add edx, dword [esi + 0x38]
xor edi, ebx
add edx, edi
mov edi, eax
rol edx, 9
add edx, eax
xor edi, edx
add ecx, 0xf4d50d87
and edi, ebx
add ecx, dword [esi + 0xc]
xor edi, eax
add ecx, edi
mov edi, edx
rol ecx, 0xe
add ecx, edx
xor edi, ecx
add ebx, 0x455a14ed
and edi, eax
add ebx, dword [esi + 0x20]
xor edi, edx
add ebx, edi
mov edi, ecx
rol ebx, 0x14
add ebx, ecx
xor edi, ebx
add eax, 0xa9e3e905
and edi, edx
add eax, dword [esi + 0x34]
xor edi, ecx
add eax, edi
mov edi, ebx
rol eax, 5
add eax, ebx
xor edi, eax
add edx, 0xfcefa3f8
and edi, ecx
add edx, dword [esi + 8]
xor edi, ebx
add edx, edi
mov edi, eax
rol edx, 9
add edx, eax
xor edi, edx
add ecx, 0x676f02d9
and edi, ebx
add ecx, dword [esi + 0x1c]
xor edi, eax
add ecx, edi
mov edi, edx
rol ecx, 0xe
add ecx, edx
xor edi, ecx
add ebx, 0x8d2a4c8a
and edi, eax
add ebx, dword [esi + 0x30]
xor edi, edx
add ebx, edi
mov edi, ecx
rol ebx, 0x14
add ebx, ecx
add eax, 0xfffa3942
xor edi, edx
add eax, dword [esi + 0x14]
xor edi, ebx
add eax, edi
mov ebp, ebx
rol eax, 4
add eax, ebx
add edx, 0x8771f681
xor ebp, ecx
add edx, dword [esi + 0x20]
xor ebp, eax
add edx, ebp
mov edi, eax
rol edx, 0xb
add edx, eax
add ecx, 0x6d9d6122
xor edi, ebx
add ecx, dword [esi + 0x2c]
xor edi, edx
add ecx, edi
mov ebp, edx
rol ecx, 0x10
add ecx, edx
add ebx, 0xfde5380c
xor ebp, eax
add ebx, dword [esi + 0x38]
xor ebp, ecx
add ebx, ebp
mov edi, ecx
rol ebx, 0x17
add ebx, ecx
add eax, 0xa4beea44
xor edi, edx
add eax, dword [esi + 4]
xor edi, ebx
add eax, edi
mov ebp, ebx
rol eax, 4
add eax, ebx
add edx, 0x4bdecfa9
xor ebp, ecx
add edx, dword [esi + 0x10]
xor ebp, eax
add edx, ebp
mov edi, eax
rol edx, 0xb
add edx, eax
add ecx, 0xf6bb4b60
xor edi, ebx
add ecx, dword [esi + 0x1c]
xor edi, edx
add ecx, edi
mov ebp, edx
rol ecx, 0x10
add ecx, edx
add ebx, 0xbebfbc70
xor ebp, eax
add ebx, dword [esi + 0x28]
xor ebp, ecx
add ebx, ebp
mov edi, ecx
rol ebx, 0x17
add ebx, ecx
add eax, 0x289b7ec6
xor edi, edx
add eax, dword [esi + 0x34]
xor edi, ebx
add eax, edi
mov ebp, ebx
rol eax, 4
add eax, ebx
add edx, 0xeaa127fa
xor ebp, ecx
add edx, dword [esi]
xor ebp, eax
add edx, ebp
mov edi, eax
rol edx, 0xb
add edx, eax
add ecx, 0xd4ef3085
xor edi, ebx
add ecx, dword [esi + 0xc]
xor edi, edx
add ecx, edi
mov ebp, edx
rol ecx, 0x10
add ecx, edx
add ebx, 0x4881d05
xor ebp, eax
add ebx, dword [esi + 0x18]
xor ebp, ecx
add ebx, ebp
mov edi, ecx
rol ebx, 0x17
add ebx, ecx
add eax, 0xd9d4d039
xor edi, edx
add eax, dword [esi + 0x24]
xor edi, ebx
add eax, edi
mov ebp, ebx
rol eax, 4
add eax, ebx
add edx, 0xe6db99e5
xor ebp, ecx
add edx, dword [esi + 0x30]
xor ebp, eax
add edx, ebp
mov edi, eax
rol edx, 0xb
add edx, eax
add ecx, 0x1fa27cf8
xor edi, ebx
add ecx, dword [esi + 0x3c]
xor edi, edx
add ecx, edi
mov ebp, edx
rol ecx, 0x10
add ecx, edx
add ebx, 0xc4ac5665
xor ebp, eax
add ebx, dword [esi + 8]
xor ebp, ecx
add ebx, ebp
mov edi, edx
rol ebx, 0x17
add ebx, ecx
not edi
add eax, 0xf4292244
or edi, ebx
add eax, dword [esi]
xor edi, ecx
add eax, edi
mov edi, ecx
rol eax, 6
not edi
add eax, ebx
add edx, 0x432aff97
or edi, eax
add edx, dword [esi + 0x1c]
xor edi, ebx
add edx, edi
mov edi, ebx
rol edx, 0xa
not edi
add edx, eax
add ecx, 0xab9423a7
or edi, edx
add ecx, dword [esi + 0x38]
xor edi, eax
add ecx, edi
mov edi, eax
rol ecx, 0xf
not edi
add ecx, edx
add ebx, 0xfc93a039
or edi, ecx
add ebx, dword [esi + 0x14]
xor edi, edx
add ebx, edi
mov edi, edx
rol ebx, 0x15
not edi
add ebx, ecx
add eax, 0x655b59c3
or edi, ebx
add eax, dword [esi + 0x30]
xor edi, ecx
add eax, edi
mov edi, ecx
rol eax, 6
not edi
add eax, ebx
add edx, 0x8f0ccc92
or edi, eax
add edx, dword [esi + 0xc]
xor edi, ebx
add edx, edi
mov edi, ebx
rol edx, 0xa
not edi
add edx, eax
add ecx, 0xffeff47d
or edi, edx
add ecx, dword [esi + 0x28]
xor edi, eax
add ecx, edi
mov edi, eax
rol ecx, 0xf
not edi
add ecx, edx
add ebx, 0x85845dd1
or edi, ecx
add ebx, dword [esi + 4]
xor edi, edx
add ebx, edi
mov edi, edx
rol ebx, 0x15
not edi
add ebx, ecx
add eax, 0x6fa87e4f
or edi, ebx
add eax, dword [esi + 0x20]
xor edi, ecx
add eax, edi
mov edi, ecx
rol eax, 6
not edi
add eax, ebx
add edx, 0xfe2ce6e0
or edi, eax
add edx, dword [esi + 0x3c]
xor edi, ebx
add edx, edi
mov edi, ebx
rol edx, 0xa
not edi
add edx, eax
add ecx, 0xa3014314
or edi, edx
add ecx, dword [esi + 0x18]
xor edi, eax
add ecx, edi
mov edi, eax
rol ecx, 0xf
not edi
add ecx, edx
add ebx, 0x4e0811a1
or edi, ecx
add ebx, dword [esi + 0x34]
xor edi, edx
add ebx, edi
mov edi, edx
rol ebx, 0x15
not edi
add ebx, ecx
add eax, 0xf7537e82
or edi, ebx
add eax, dword [esi + 0x10]
xor edi, ecx
add eax, edi
mov edi, ecx
rol eax, 6
not edi
add eax, ebx
add edx, 0xbd3af235
or edi, eax
add edx, dword [esi + 0x2c]
xor edi, ebx
add edx, edi
mov edi, ebx
rol edx, 0xa
not edi
add edx, eax
add ecx, 0x2ad7d2bb
or edi, edx
add ecx, dword [esi + 8]
xor edi, eax
add ecx, edi
mov edi, eax
rol ecx, 0xf
not edi
add ecx, edx
add ebx, 0xeb86d391
or edi, ecx
add ebx, dword [esi + 0x24]
xor edi, edx
mov ebp, dword [esp + 0x18]
add ebx, edi
add esi, 0x40
rol ebx, 0x15
add ebx, ecx
add eax, dword [ebp]
add ebx, dword [ebp + 4]
add ecx, dword [ebp + 8]
add edx, dword [ebp + 0xc]
mov dword [ebp], eax
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
cmp dword [esp], esi
jae 0x40ce8a
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
add esp, 0x14
ret