Function at 0x447c80
Capabilities:
Encode data using xor

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