Function at 0x715133
Capabilities:
Encode data using xor

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