Function at 0x10003990
Capabilities:
Encode data using xor

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