Function at 0x465750
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0xc], edi
mov esi, dword [edi + 0x14]
mov ebx, dword [edi + 0x10]
mov dword [ebp - 0x18], esi
test ecx, ecx
jne 0x46578e
cmp eax, 0x20
jae 0x46578e
add ebx, eax
adc esi, ecx
add ebx, 0x165667c5
adc esi, 0x27d4eb2f
jmp 0x4659ce
mov ecx, dword [edi]
mov edx, ecx
mov eax, dword [edi + 4]
shld edx, eax, 1
shld eax, ecx, 1
mov ecx, dword [edi + 0xc]
mov ebx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], edx
mov edx, dword [edi + 8]
mov eax, edx
shld eax, ecx, 7
shld ebx, edx, 7
mov dword [ebp - 0x14], eax
mov edx, esi
mov eax, dword [edi + 0x10]
mov edi, eax
shld edx, eax, 0xc
mov eax, dword [ebp - 0xc]
shld edi, esi, 0xc
mov esi, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
mov eax, esi
shld eax, ecx, 0x12
shld ecx, esi, 0x12
mov esi, dword [ebp - 8]
add esi, dword [ebp - 0x14]
mov dword [ebp - 8], esi
adc dword [ebp - 0x10], ebx
add dword [ebp - 8], edi
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
adc ebx, edx
add dword [ebp - 8], eax
mov edx, 0x27d4eb4f
adc ebx, ecx
mov eax, dword [esi]
imul edi, dword [esi + 4], 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub edi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc edi, edx
mov edx, 0x85ebca87
shld eax, edi, 0x1f
shld edi, ecx, 0x1f
imul ecx, edi, 0x7a143579
imul edi, eax, 0x9e3779b1
mul edx
sub edi, ecx
xor ecx, ecx
add ecx, eax
mov eax, dword [ebp - 8]
adc edi, edx
xor eax, ecx
xor ebx, edi
mov edx, 0x85ebca87
imul ecx, ebx, 0x7a143579
imul ebx, eax, 0x9e3779b1
mul edx
sub ebx, ecx
xor ecx, ecx
add ecx, eax
mov eax, dword [esi + 8]
adc ebx, edx
add ecx, 0xc2b2ae63
mov dword [ebp - 0x14], ecx
mov edx, 0x27d4eb4f
adc ebx, 0x85ebca77
imul edi, dword [esi + 0xc], 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub edi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc edi, edx
shld eax, edi, 0x1f
shld edi, ecx, 0x1f
imul ecx, edi, 0x7a143579
mov esi, 0x85ebca87
imul edi, eax, 0x9e3779b1
mul esi
sub edi, ecx
xor ecx, ecx
add ecx, eax
mov eax, dword [ebp - 0x14]
adc edi, edx
xor eax, ecx
xor ebx, edi
imul edi, eax, 0x9e3779b1
mul esi
imul ecx, ebx, 0x7a143579
xor ebx, ebx
sub edi, ecx
mov ecx, dword [ebp - 0xc]
add ebx, eax
adc edi, edx
add ebx, 0xc2b2ae63
mov eax, dword [ecx + 0x10]
mov edx, 0x27d4eb4f
adc edi, 0x85ebca77
imul esi, dword [ebp - 0x18], 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc esi, edx
mov edx, 0x85ebca87
shld eax, esi, 0x1f
shld esi, ecx, 0x1f
imul ecx, esi, 0x7a143579
imul esi, eax, 0x9e3779b1
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
adc esi, edx
xor ebx, ecx
xor edi, esi
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
imul ecx, edi, 0x7a143579
imul edi, ebx, 0x9e3779b1
xor ebx, ebx
sub edi, ecx
mov ecx, 0x85ebca87
mul ecx
add ebx, eax
adc edi, edx
mov edx, dword [ebp - 0xc]
add ebx, 0xc2b2ae63
adc edi, 0x85ebca77
imul esi, dword [edx + 0x1c], 0x27d4eb4f
mov eax, dword [edx + 0x18]
mov edx, 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc esi, edx
mov edx, 0x85ebca87
shld eax, esi, 0x1f
shld esi, ecx, 0x1f
imul ecx, esi, 0x7a143579
imul esi, eax, 0x9e3779b1
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
adc esi, edx
xor ebx, ecx
xor edi, esi
imul esi, ebx, 0x9e3779b1
imul ecx, edi, 0x7a143579
sub esi, ecx
mov eax, ebx
mov ecx, 0x85ebca87
mul ecx
xor ebx, ebx
add ebx, eax
mov eax, dword [ebp + 8]
adc esi, edx
mov edx, dword [ebp - 4]
add ebx, eax
adc esi, dword [ebp + 0xc]
add ebx, 0xc2b2ae63
adc esi, 0x85ebca77
and eax, 0x1f
mov dword [ebp + 0xc], eax
cmp eax, 8
jb 0x465a82
shr eax, 3
mov dword [ebp - 0x10], eax
jmp 0x4659f3
mov edx, dword [ebp - 4]
imul edi, dword [edx + 4], 0x27d4eb4f
mov eax, dword [edx]
mov edx, 0x27d4eb4f
imul ecx, eax, 0x3d4d51c3
mul edx
sub edi, ecx
xor ecx, ecx
add ecx, eax
mov eax, ecx
adc edi, edx
add dword [ebp - 4], 8
shld eax, edi, 0x1f
shld edi, ecx, 0x1f
mov edx, 0x85ebca87
imul ecx, edi, 0x7a143579
imul edi, eax, 0x9e3779b1
mul edx
sub edi, ecx
xor ecx, ecx
add ecx, eax
adc edi, edx
xor ecx, ebx
xor edi, esi
mov eax, ecx
shld eax, edi, 0x1b
shld edi, ecx, 0x1b
imul esi, eax, 0x9e3779b1
xor ebx, ebx
imul ecx, edi, 0x7a143579
sub esi, ecx
mov ecx, 0x85ebca87
mul ecx
add ebx, eax
mov eax, dword [ebp + 0xc]
adc esi, edx
add ebx, 0xc2b2ae63
adc esi, 0x85ebca77
sub eax, 8
sub dword [ebp - 0x10], 1
mov dword [ebp + 0xc], eax
jne 0x4659f0
cmp eax, 4
jb 0x465ae3
mov ecx, dword [ebp - 4]
mov edx, 0x85ebca87
mov eax, dword [ecx]
add ecx, 4
imul edi, eax, 0x9e3779b1
mul edx
mov dword [ebp - 4], ecx
xor ecx, ecx
add ecx, eax
adc edi, edx
xor ecx, ebx
xor edi, esi
mov eax, ecx
shld eax, edi, 0x17
shld edi, ecx, 0x17
imul ecx, eax, 0x3d4d51c3
xor ebx, ebx
imul esi, edi, 0x27d4eb4f
sub esi, ecx
mov ecx, 0x27d4eb4f
mul ecx
add ebx, eax
mov eax, dword [ebp + 0xc]
adc esi, edx
add ebx, 0x9e3779f9
adc esi, 0x165667b1
sub eax, 4
mov dword [ebp + 0xc], eax
test eax, eax
je 0x465b3c
mov edx, 0x165667c5
nop dword [eax]
mov ecx, dword [ebp - 4]
movzx eax, byte [ecx]
inc ecx
imul edi, eax, 0x27d4eb2f
mul edx
mov dword [ebp - 4], ecx
xor ecx, ecx
add ecx, eax
adc edi, edx
xor ecx, ebx
xor edi, esi
mov eax, ecx
shld eax, edi, 0xb
shld edi, ecx, 0xb
imul esi, eax, 0x9e3779b1
xor ebx, ebx
imul ecx, edi, 0x7a143579
sub esi, ecx
mov ecx, 0x85ebca87
mul ecx
add ebx, eax
adc esi, edx
sub dword [ebp + 0xc], 1
mov edx, 0x165667c5
jne 0x465af0
mov eax, esi
mov ecx, 0x27d4eb4f
shr eax, 1
xor esi, 0
xor ebx, eax
imul esi, esi, 0x27d4eb4f
imul eax, ebx, 0x3d4d51c3
xor edi, edi
sub esi, eax
mov eax, ebx
mul ecx
add edi, eax
mov ecx, edi
adc esi, edx
mov edx, esi
shrd ecx, edx, 0x1d
shr edx, 0x1d
xor edi, ecx
xor esi, edx
mov eax, edi
imul ecx, esi, 0x61c88607
mov edx, 0x9e3779f9
imul esi, edi, 0x165667b1
mul edx
sub esi, ecx
xor ecx, ecx
add ecx, eax
pop edi
adc esi, edx
xor edx, edx
mov eax, esi
xor eax, ecx
xor edx, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret