Function at 0x100319e0
Capabilities:
Encode data using xor

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