Function at 0x433445
Capabilities:
Encode data using xor

Disassembly:
push 0x10
pop ecx
push ebx
push esi
push edi
enter 0x2c8, 0
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 0x48]
cld
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x18]
mov edi, esp
add ecx, 0x10
mov eax, dword [esi]
mov edx, dword [esi + 4]
add esi, 8
bswap eax
bswap edx
mov dword [edi + 4], eax
mov dword [edi], edx
add edi, 8
dec ecx
jne 0x433460
add ecx, 0x40
mov eax, dword [edi - 0x10]
mov edx, dword [edi - 0xc]
push ecx
push edi
mov ecx, eax
mov ebx, edx
mov esi, eax
mov edi, edx
shrd eax, ebx, 0x13
shrd edx, ecx, 0x13
shrd esi, ebx, 0x1d
shrd edi, ecx, 0x1d
xor edx, esi
xor eax, edi
pop edi
shrd ecx, ebx, 6
shr ebx, 6
xor eax, ecx
xor edx, ebx
add eax, dword [edi - 0x38]
adc edx, dword [edi - 0x34]
mov dword [edi], eax
mov dword [edi + 4], edx
mov eax, dword [edi - 0x78]
mov edx, dword [edi - 0x74]
push edi
mov ecx, eax
mov ebx, edx
mov esi, eax
mov edi, edx
shrd eax, ebx, 1
shrd edx, ecx, 1
shrd esi, ebx, 8
shrd edi, ecx, 8
xor eax, esi
xor edx, edi
pop edi
shrd ecx, ebx, 7
shr ebx, 7
xor eax, ecx
xor edx, ebx
pop ecx
add eax, dword [edi - 0x80]
adc edx, dword [edi - 0x7c]
add dword [edi], eax
adc dword [edi + 4], edx
add edi, 8
dec ecx
jne 0x43347a
add ecx, 0x50
mov dword [ebp + 0x18], ecx
lea edi, [ecx - 0x50]
dec ecx
mov esi, 0x43365c
neg edi
and ecx, 7
mov eax, dword [esi + edi*8]
mov edx, dword [esi + edi*8 + 4]
add eax, dword [esp + edi*8]
adc edx, dword [esp + edi*8 + 4]
add eax, dword [ebp + ecx*8 - 0x48]
adc edx, dword [ebp + ecx*8 - 0x44]
lea ebx, [ecx - 3]
lea esi, [ecx - 2]
dec ecx
and ebx, 7
and esi, 7
and ecx, 7
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
mov eax, dword [ebp + esi*8 - 0x48]
mov edx, dword [ebp + esi*8 - 0x44]
xor eax, dword [ebp + ecx*8 - 0x48]
xor edx, dword [ebp + ecx*8 - 0x44]
and eax, dword [ebp + ebx*8 - 0x48]
and edx, dword [ebp + ebx*8 - 0x44]
xor eax, dword [ebp + ecx*8 - 0x48]
xor edx, dword [ebp + ecx*8 - 0x44]
add dword [ebp - 8], eax
adc dword [ebp - 4], edx
mov eax, dword [ebp + ebx*8 - 0x48]
mov edx, dword [ebp + ebx*8 - 0x44]
mov ecx, eax
mov ebx, edx
mov esi, eax
mov edi, edx
shrd eax, ebx, 0xe
shrd edx, ecx, 0xe
shrd esi, ebx, 0x12
shrd edi, ecx, 0x12
xor eax, esi
xor edx, edi
mov esi, ecx
shrd ecx, ebx, 9
shrd ebx, esi, 9
mov edi, dword [ebp + 0x18]
xor edx, ecx
xor eax, ebx
mov ebx, edi
lea esi, [edi + 1]
add edi, 3
add eax, dword [ebp - 8]
adc edx, dword [ebp - 4]
and edi, 7
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
add dword [ebp + edi*8 - 0x48], eax
adc dword [ebp + edi*8 - 0x44], edx
dec edi
and ebx, 7
and esi, 7
and edi, 7
mov eax, dword [ebp + ebx*8 - 0x48]
mov edx, dword [ebp + ebx*8 - 0x44]
or eax, dword [ebp + esi*8 - 0x48]
or edx, dword [ebp + esi*8 - 0x44]
and eax, dword [ebp + edi*8 - 0x48]
and edx, dword [ebp + edi*8 - 0x44]
mov edi, dword [ebp + esi*8 - 0x48]
mov esi, dword [ebp + esi*8 - 0x44]
and edi, dword [ebp + ebx*8 - 0x48]
and esi, dword [ebp + ebx*8 - 0x44]
or eax, edi
or edx, esi
add dword [ebp - 8], eax
adc dword [ebp - 4], edx
mov eax, dword [ebp + ebx*8 - 0x48]
mov edx, dword [ebp + ebx*8 - 0x44]
mov ecx, eax
mov ebx, edx
mov esi, eax
mov edi, edx
shrd eax, ebx, 0x1c
shrd edx, ecx, 0x1c
shrd esi, ebx, 2
shrd edi, ecx, 2
xor edx, esi
xor eax, edi
mov esi, ecx
mov edi, dword [ebp + 0x18]
shrd ecx, ebx, 7
shrd ebx, esi, 7
dec edi
xor edx, ecx
xor eax, ebx
mov ecx, edi
and edi, 7
add eax, dword [ebp - 8]
adc edx, dword [ebp - 4]
test ecx, ecx
mov dword [ebp + edi*8 - 0x48], eax
mov dword [ebp + edi*8 - 0x44], edx
jne 0x4334f9
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + ecx*8 - 0x48]
mov edx, dword [ebp + ecx*8 - 0x44]
add dword [edi + ecx*8], eax
adc dword [edi + ecx*8 + 4], edx
inc ecx
cmp ecx, 8
jb 0x433640
leave
pop edi
pop esi
pop ebx
ret 8