Function at 0xc2c40f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
mov ebx, eax
mov eax, dword [ebp + 8]
push esi
mov ecx, ebx
shr ecx, 2
push edi
mov edi, dword [ebp + 0xc]
mov edx, dword [edi + 4]
add dword [edi + 0x10], ebx
cmp dword [edi + 0x10], ebx
mov esi, dword [edi + 8]
lea ecx, [eax + ecx*4]
mov dword [ebp - 8], ecx
mov ecx, dword [edi]
mov dword [ebp - 4], edx
mov edx, dword [edi + 0xc]
jae 0xc2c444
inc dword [edi + 0x14]
mov edi, dword [ebp - 8]
cmp dword [ebp + 8], edi
jae 0xc2cc84
mov ebx, dword [eax]
mov edi, dword [ebp - 4]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x58], ebx
mov ebx, edx
xor ebx, esi
and ebx, edi
xor ebx, edx
add ebx, dword [ebp - 0x58]
mov dword [ebp - 0xc], ecx
lea edi, [ecx + ebx - 0x28955b88]
mov ecx, edi
shl edi, 7
shr ecx, 0x19
or ecx, edi
add ecx, dword [ebp - 4]
add eax, 4
mov edi, dword [eax]
mov dword [ebp - 0x54], edi
mov edi, esi
xor edi, dword [ebp - 4]
mov dword [ebp - 0x18], edx
and edi, ecx
xor edi, esi
add edi, dword [ebp - 0x54]
add eax, 4
lea edi, [edx + edi - 0x173848aa]
mov edx, edi
shl edi, 0xc
shr edx, 0x14
or edx, edi
mov edi, dword [eax]
mov dword [ebp - 0x50], edi
mov edi, dword [ebp - 4]
xor edi, ecx
add edx, ecx
and edi, edx
xor edi, dword [ebp - 4]
mov dword [ebp - 0x14], esi
add edi, dword [ebp - 0x50]
mov ebx, edx
lea edi, [esi + edi + 0x242070db]
mov esi, edi
shl edi, 0x11
xor ebx, ecx
shr esi, 0xf
or esi, edi
add esi, edx
and ebx, esi
xor ebx, ecx
add eax, 4
mov edi, dword [eax]
add ebx, edi
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 4]
lea edi, [edi + ebx - 0x3e423112]
mov ebx, edi
shr edi, 0xa
shl ebx, 0x16
or ebx, edi
add eax, 4
mov edi, dword [eax]
mov dword [ebp - 0x48], edi
add ebx, esi
mov edi, edx
xor edi, esi
and edi, ebx
xor edi, edx
add edi, dword [ebp - 0x48]
add eax, 4
lea ecx, [ecx + edi - 0xa83f051]
mov edi, ecx
shl ecx, 7
shr edi, 0x19
or edi, ecx
mov ecx, dword [eax]
mov dword [ebp - 0x44], ecx
mov ecx, esi
add edi, ebx
mov dword [ebp - 4], ebx
xor ecx, ebx
and ecx, edi
xor ecx, esi
add ecx, dword [ebp - 0x44]
add eax, 4
lea edx, [edx + ecx + 0x4787c62a]
mov ecx, edx
shl edx, 0xc
shr ecx, 0x14
or ecx, edx
mov edx, dword [eax]
add ecx, edi
mov dword [ebp - 0x40], edx
mov edx, ebx
xor edx, edi
and edx, ecx
xor edx, ebx
add edx, dword [ebp - 0x40]
mov ebx, ecx
lea esi, [esi + edx - 0x57cfb9ed]
mov edx, esi
shl esi, 0x11
xor ebx, edi
shr edx, 0xf
or edx, esi
add edx, ecx
and ebx, edx
xor ebx, edi
add eax, 4
mov esi, dword [eax]
add ebx, esi
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 4]
lea esi, [esi + ebx - 0x2b96aff]
mov ebx, esi
shr esi, 0xa
add eax, 4
shl ebx, 0x16
or ebx, esi
mov esi, dword [eax]
mov dword [ebp - 0x38], esi
mov esi, ecx
xor esi, edx
add ebx, edx
and esi, ebx
xor esi, ecx
add esi, dword [ebp - 0x38]
add eax, 4
lea edi, [edi + esi + 0x698098d8]
mov esi, edi
shl edi, 7
shr esi, 0x19
or esi, edi
mov edi, dword [eax]
mov dword [ebp - 0x34], edi
mov edi, edx
xor edi, ebx
add esi, ebx
and edi, esi
xor edi, edx
add edi, dword [ebp - 0x34]
add eax, 4
lea ecx, [ecx + edi - 0x74bb0851]
mov edi, ecx
shl ecx, 0xc
shr edi, 0x14
or edi, ecx
mov ecx, dword [eax]
mov dword [ebp - 0x30], ecx
mov ecx, ebx
xor ecx, esi
add edi, esi
and ecx, edi
xor ecx, ebx
add ecx, dword [ebp - 0x30]
add eax, 4
lea edx, [edx + ecx - 0xa44f]
mov ecx, edx
shr ecx, 0xf
shl edx, 0x11
mov dword [ebp - 4], ebx
or ecx, edx
mov edx, dword [eax]
add ecx, edi
mov ebx, edi
xor ebx, esi
and ebx, ecx
xor ebx, esi
add ebx, edx
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 4]
lea edx, [edx + ebx - 0x76a32842]
mov ebx, edx
shr edx, 0xa
shl ebx, 0x16
or ebx, edx
add ebx, ecx
add eax, 4
mov edx, dword [eax]
mov dword [ebp - 0x28], edx
mov edx, edi
xor edx, ecx
and edx, ebx
xor edx, edi
add edx, dword [ebp - 0x28]
add eax, 4
lea esi, [esi + edx + 0x6b901122]
mov edx, esi
shl esi, 7
shr edx, 0x19
or edx, esi
mov esi, dword [eax]
mov dword [ebp - 0x24], esi
mov esi, ecx
xor esi, ebx
add edx, ebx
and esi, edx
xor esi, ecx
add esi, dword [ebp - 0x24]
mov dword [ebp - 4], ebx
lea edi, [edi + esi - 0x2678e6d]
mov ebx, edi
shl edi, 0xc
add eax, 4
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 4]
xor esi, edx
shr ebx, 0x14
or ebx, edi
add ebx, edx
and esi, ebx
xor esi, dword [ebp - 4]
mov edi, ebx
add esi, dword [ebp - 0x20]
xor edi, edx
lea ecx, [ecx + esi - 0x5986bc72]
mov esi, ecx
shl ecx, 0x11
shr esi, 0xf
or esi, ecx
add esi, ebx
and edi, esi
xor edi, edx
add eax, 4
mov ecx, dword [eax]
add edi, ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 4]
lea edi, [ecx + edi + 0x49b40821]
mov ecx, edi
shr edi, 0xa
shl ecx, 0x16
or ecx, edi
add ecx, esi
mov edi, esi
xor edi, ecx
and edi, ebx
xor edi, esi
add eax, 4
add edi, dword [ebp - 0x54]
lea edx, [edx + edi - 0x9e1da9e]
mov edi, edx
shl edx, 5
shr edi, 0x1b
or edi, edx
add edi, ecx
mov edx, ecx
xor edx, edi
and edx, esi
xor edx, ecx
add edx, dword [ebp - 0x40]
lea ebx, [ebx + edx - 0x3fbf4cc0]
mov edx, ebx
shl ebx, 9
shr edx, 0x17
or edx, ebx
add edx, edi
mov ebx, edx
xor ebx, edi
and ebx, ecx
xor ebx, edi
add ebx, dword [ebp - 0x2c]
lea esi, [esi + ebx + 0x265e5a51]
mov ebx, esi
shr ebx, 0x12
shl esi, 0xe
or ebx, esi
add ebx, edx
mov esi, edx
xor esi, ebx
and esi, edi
xor esi, edx
add esi, dword [ebp - 0x58]
lea ecx, [ecx + esi - 0x16493856]
mov esi, ecx
shr ecx, 0xc
shl esi, 0x14
or esi, ecx
add esi, ebx
mov ecx, ebx
xor ecx, esi
and ecx, edx
xor ecx, ebx
add ecx, dword [ebp - 0x44]
lea edi, [edi + ecx - 0x29d0efa3]
mov ecx, edi
shl edi, 5
shr ecx, 0x1b
or ecx, edi
add ecx, esi
mov edi, esi
xor edi, ecx
and edi, ebx
xor edi, esi
add edi, dword [ebp - 0x30]
lea edx, [edx + edi + 0x2441453]
mov edi, edx
shl edx, 9
shr edi, 0x17
or edi, edx
add edi, ecx
mov edx, edi
xor edx, ecx
and edx, esi
xor edx, ecx
add edx, dword [ebp - 0x1c]
lea ebx, [ebx + edx - 0x275e197f]
mov edx, ebx
shl ebx, 0xe
shr edx, 0x12
or edx, ebx
add edx, edi
mov ebx, edi
xor ebx, edx
and ebx, ecx
xor ebx, edi
add ebx, dword [ebp - 0x48]
lea esi, [esi + ebx - 0x182c0438]
mov ebx, esi
shl ebx, 0x14
shr esi, 0xc
or ebx, esi
add ebx, edx
mov esi, edx
xor esi, ebx
and esi, edi
xor esi, edx
add esi, dword [ebp - 0x34]
lea ecx, [ecx + esi + 0x21e1cde6]
mov esi, ecx
shl ecx, 5
shr esi, 0x1b
or esi, ecx
add esi, ebx
mov ecx, ebx
xor ecx, esi
and ecx, edx
xor ecx, ebx
add ecx, dword [ebp - 0x20]
lea edi, [edi + ecx - 0x3cc8f82a]
mov ecx, edi
shl edi, 9
shr ecx, 0x17
or ecx, edi
add ecx, esi
mov edi, ecx
xor edi, esi
and edi, ebx
xor edi, esi
add edi, dword [ebp - 0x4c]
lea edx, [edx + edi - 0xb2af279]
mov edi, edx
shl edx, 0xe
shr edi, 0x12
or edi, edx
add edi, ecx
mov edx, ecx
xor edx, edi
and edx, esi
xor edx, ecx
add edx, dword [ebp - 0x38]
lea ebx, [ebx + edx + 0x455a14ed]
mov edx, ebx
shr ebx, 0xc
shl edx, 0x14
or edx, ebx
add edx, edi
mov ebx, edi
xor ebx, edx
and ebx, ecx
xor ebx, edi
add ebx, dword [ebp - 0x24]
lea esi, [esi + ebx - 0x561c16fb]
mov ebx, esi
shl esi, 5
shr ebx, 0x1b
or ebx, esi
add ebx, edx
mov esi, edx
xor esi, ebx
and esi, edi
xor esi, edx
add esi, dword [ebp - 0x50]
lea ecx, [ecx + esi - 0x3105c08]
mov esi, ecx
shl ecx, 9
shr esi, 0x17
or esi, ecx
add esi, ebx
mov ecx, esi
xor ecx, ebx
and ecx, edx
xor ecx, ebx
add ecx, dword [ebp - 0x3c]
mov dword [ebp + 8], esi
lea ecx, [edi + ecx + 0x676f02d9]
mov edi, ecx
shr edi, 0x12
shl ecx, 0xe
or edi, ecx
add edi, esi
xor dword [ebp + 8], edi
mov ecx, dword [ebp + 8]
and ecx, ebx
xor ecx, esi
add ecx, dword [ebp - 0x28]
lea edx, [edx + ecx - 0x72d5b376]
mov ecx, edx
shr edx, 0xc
shl ecx, 0x14
or ecx, edx
mov edx, dword [ebp + 8]
add ecx, edi
xor edx, ecx
add edx, dword [ebp - 0x44]
lea ebx, [ebx + edx - 0x5c6be]
mov edx, ebx
shl ebx, 4
shr edx, 0x1c
or edx, ebx
mov ebx, edi
xor ebx, ecx
add edx, ecx
xor ebx, edx
add ebx, dword [ebp - 0x38]
lea esi, [esi + ebx - 0x788e097f]
mov ebx, esi
shr ebx, 0x15
shl esi, 0xb
or ebx, esi
add ebx, edx
mov esi, ebx
xor esi, ecx
xor esi, edx
add esi, dword [ebp - 0x2c]
mov dword [ebp + 8], ebx
lea edi, [edi + esi + 0x6d9d6122]
mov esi, edi
shl edi, 0x10
shr esi, 0x10
or esi, edi
add esi, ebx
xor dword [ebp + 8], esi
mov edi, dword [ebp + 8]
xor edi, edx
add edi, dword [ebp - 0x20]
lea edi, [ecx + edi - 0x21ac7f4]
mov ecx, edi
shr edi, 9
shl ecx, 0x17
or ecx, edi
mov edi, dword [ebp + 8]
add ecx, esi
xor edi, ecx
add edi, dword [ebp - 0x54]
lea edi, [edx + edi - 0x5b4115bc]
mov edx, edi
shl edi, 4
shr edx, 0x1c
or edx, edi
mov edi, esi
xor edi, ecx
add edx, ecx
xor edi, edx
add edi, dword [ebp - 0x48]
lea ebx, [ebx + edi + 0x4bdecfa9]
mov edi, ebx
shl ebx, 0xb
shr edi, 0x15
or edi, ebx
add edi, edx
mov ebx, edi
xor ebx, ecx
xor ebx, edx
add ebx, dword [ebp - 0x3c]
mov dword [ebp + 8], edi
lea esi, [esi + ebx - 0x944b4a0]
mov ebx, esi
shr ebx, 0x10
shl esi, 0x10
or ebx, esi
add ebx, edi
xor dword [ebp + 8], ebx
mov esi, dword [ebp + 8]
xor esi, edx
add esi, dword [ebp - 0x30]
lea esi, [ecx + esi - 0x41404390]
mov ecx, esi
shr esi, 9
shl ecx, 0x17
or ecx, esi
add ecx, ebx
mov esi, dword [ebp + 8]
xor esi, ecx
add esi, dword [ebp - 0x24]
lea esi, [edx + esi + 0x289b7ec6]
mov edx, esi
shl esi, 4
shr edx, 0x1c
or edx, esi
mov esi, ebx
xor esi, ecx
add edx, ecx
xor esi, edx
add esi, dword [ebp - 0x58]
lea edi, [edi + esi - 0x155ed806]
mov esi, edi
shl edi, 0xb
shr esi, 0x15
or esi, edi
add esi, edx
mov edi, esi
xor edi, ecx
xor edi, edx
add edi, dword [ebp - 0x4c]
mov dword [ebp + 8], esi
lea ebx, [ebx + edi - 0x2b10cf7b]
mov edi, ebx
shl ebx, 0x10
shr edi, 0x10
or edi, ebx
add edi, esi
xor dword [ebp + 8], edi
mov ebx, dword [ebp + 8]
xor ebx, edx
add ebx, dword [ebp - 0x40]
lea ebx, [ecx + ebx + 0x4881d05]
mov ecx, ebx
shr ebx, 9
shl ecx, 0x17
or ecx, ebx
mov ebx, dword [ebp + 8]
add ecx, edi
xor ebx, ecx
add ebx, dword [ebp - 0x34]
lea ebx, [edx + ebx - 0x262b2fc7]
mov edx, ebx
shl ebx, 4
shr edx, 0x1c
or edx, ebx
mov ebx, edi
xor ebx, ecx
add edx, ecx
xor ebx, edx
add ebx, dword [ebp - 0x28]
lea ebx, [esi + ebx - 0x1924661b]
mov esi, ebx
shl ebx, 0xb
shr esi, 0x15
or esi, ebx
add esi, edx
mov ebx, esi
xor ebx, ecx
xor ebx, edx
add ebx, dword [ebp - 0x1c]
lea ebx, [edi + ebx + 0x1fa27cf8]
mov edi, ebx
shl ebx, 0x10
shr edi, 0x10
or edi, ebx
add edi, esi
mov ebx, esi
xor ebx, edi
xor ebx, edx
add ebx, dword [ebp - 0x50]
lea ecx, [ecx + ebx - 0x3b53a99b]
mov ebx, ecx
shl ebx, 0x17
shr ecx, 9
or ebx, ecx
add ebx, edi
mov ecx, esi
not ecx
or ecx, ebx
xor ecx, edi
add ecx, dword [ebp - 0x58]
lea edx, [edx + ecx - 0xbd6ddbc]
mov ecx, edx
shl edx, 6
shr ecx, 0x1a
or ecx, edx
add ecx, ebx
mov edx, edi
not edx
or edx, ecx
xor edx, ebx
add edx, dword [ebp - 0x3c]
lea esi, [esi + edx + 0x432aff97]
mov edx, esi
shl esi, 0xa
shr edx, 0x16
or edx, esi
mov esi, ebx
add edx, ecx
not esi
or esi, edx
xor esi, ecx
add esi, dword [ebp - 0x20]
lea edi, [edi + esi - 0x546bdc59]
mov esi, edi
shl edi, 0xf
shr esi, 0x11
or esi, edi
add esi, edx
mov edi, ecx
not edi
or edi, esi
xor edi, edx
add edi, dword [ebp - 0x44]
lea ebx, [ebx + edi - 0x36c5fc7]
mov edi, ebx
shr ebx, 0xb
shl edi, 0x15
or edi, ebx
add edi, esi
mov ebx, edx
not ebx
or ebx, edi
xor ebx, esi
add ebx, dword [ebp - 0x28]
lea ebx, [ecx + ebx + 0x655b59c3]
mov ecx, ebx
shl ebx, 6
shr ecx, 0x1a
or ecx, ebx
mov ebx, esi
not ebx
add ecx, edi
or ebx, ecx
xor ebx, edi
add ebx, dword [ebp - 0x4c]
lea ebx, [edx + ebx - 0x70f3336e]
mov edx, ebx
shl ebx, 0xa
shr edx, 0x16
or edx, ebx
mov ebx, edi
not ebx
add edx, ecx
or ebx, edx
xor ebx, ecx
add ebx, dword [ebp - 0x30]
lea ebx, [esi + ebx - 0x100b83]
mov esi, ebx
shr esi, 0x11
shl ebx, 0xf
or esi, ebx
add esi, edx
mov ebx, ecx
not ebx
or ebx, esi
xor ebx, edx
add ebx, dword [ebp - 0x54]
lea ebx, [edi + ebx - 0x7a7ba22f]
mov edi, ebx
shr ebx, 0xb
shl edi, 0x15
or edi, ebx
add edi, esi
mov ebx, edx
not ebx
or ebx, edi
xor ebx, esi
add ebx, dword [ebp - 0x38]
lea ebx, [ecx + ebx + 0x6fa87e4f]
mov ecx, ebx
shl ebx, 6
shr ecx, 0x1a
or ecx, ebx
add ecx, edi
mov ebx, esi
not ebx
or ebx, ecx
xor ebx, edi
add ebx, dword [ebp - 0x1c]
lea ebx, [edx + ebx - 0x1d31920]
mov edx, ebx
shl ebx, 0xa
shr edx, 0x16
or edx, ebx
add edx, ecx
mov ebx, edi
not ebx
or ebx, edx
xor ebx, ecx
add ebx, dword [ebp - 0x40]
lea ebx, [esi + ebx - 0x5cfebcec]
mov esi, ebx
shl ebx, 0xf
shr esi, 0x11
or esi, ebx
add esi, edx
mov ebx, ecx
not ebx
or ebx, esi
xor ebx, edx
add ebx, dword [ebp - 0x24]
lea ebx, [edi + ebx + 0x4e0811a1]
mov edi, ebx
shr ebx, 0xb
shl edi, 0x15
or edi, ebx
mov ebx, edx
not ebx
add edi, esi
or ebx, edi
xor ebx, esi
add ebx, dword [ebp - 0x48]
lea ecx, [ecx + ebx - 0x8ac817e]
mov ebx, ecx
shr ebx, 0x1a
shl ecx, 6
or ebx, ecx
add ebx, edi
mov ecx, ebx
mov ebx, esi
not ebx
or ebx, ecx
xor ebx, edi
add ebx, dword [ebp - 0x2c]
lea edx, [edx + ebx - 0x42c50dcb]
mov ebx, edx
shr ebx, 0x16
shl edx, 0xa
or ebx, edx
add ebx, ecx
mov edx, ebx
mov ebx, edi
not ebx
or ebx, edx
xor ebx, ecx
add ebx, dword [ebp - 0x50]
lea esi, [esi + ebx + 0x2ad7d2bb]
mov ebx, esi
shr ebx, 0x11
shl esi, 0xf
or ebx, esi
add ebx, edx
mov esi, ebx
mov ebx, ecx
add ecx, dword [ebp - 0xc]
not ebx
or ebx, esi
xor ebx, edx
add ebx, dword [ebp - 0x34]
add edx, dword [ebp - 0x18]
lea edi, [edi + ebx - 0x14792c6f]
mov ebx, edi
shl ebx, 0x15
shr edi, 0xb
or ebx, edi
add ebx, dword [ebp - 0x10]
add ebx, esi
add esi, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
mov dword [ebp - 4], ebx
jb 0xc2c450
mov eax, dword [ebp + 0xc]
pop edi
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
mov dword [eax + 8], esi
pop esi
mov dword [eax + 4], ecx
mov dword [eax + 0xc], edx
pop ebx
leave
ret