Function at 0x6b6e4f20
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x34
mov ebp, dword [esp + 0x48]
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x30], eax
cmp eax, 0x20
mov dword [esp + 0x14], ecx
mov eax, ecx
sbb eax, 0
mov edi, 0x85ebca87
mov eax, 0x27d4eb2f
mov ecx, 0x165667c5
lea esi, [ebp + 0x28]
mov edx, dword [ebp + 0x48]
mov dword [esp + 0x2c], edx
lea edx, [ebp + edx + 0x28]
mov dword [esp + 4], edx
jb 0x6b6e524f
mov ecx, dword [ebp + 8]
mov dword [esp], esi
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x1c], edi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0xc], esi
mov eax, ebx
shld eax, ecx, 1
mov dword [esp + 0x18], ecx
shld ecx, ebx, 1
mov edx, esi
shld edx, edi, 7
mov ebp, edi
shld ebp, esi, 7
add ebp, ecx
adc edx, eax
mov eax, dword [esp + 0x48]
mov esi, dword [eax + 0x18]
mov dword [esp + 0x20], esi
mov edi, dword [eax + 0x1c]
mov eax, edi
mov dword [esp + 0x10], edi
shld eax, esi, 0xc
mov ecx, esi
shld ecx, edi, 0xc
add ecx, ebp
adc eax, edx
mov edx, dword [esp + 0x48]
mov ebp, dword [edx + 0x20]
mov dword [esp + 0x24], ebp
mov edx, dword [edx + 0x24]
mov dword [esp + 0x28], edx
mov esi, edx
shld esi, ebp, 0x12
mov edi, ebp
shld edi, edx, 0x12
add edi, ecx
adc esi, eax
mov dword [esp + 8], esi
mov esi, dword [esp + 0x18]
mov ecx, esi
mov eax, 0xc2b2ae3d
imul ecx, eax
mov eax, esi
mov ebp, 0x27d4eb4f
mul ebp
add edx, ecx
mov ecx, ebx
imul ecx, ebp
add ecx, edx
mov ebp, esi
mov eax, 0x93ea75a7
imul ebp, eax
mov eax, esi
mov esi, 0x80000000
mul esi
add edx, ebp
imul ebx, esi
add ebx, edx
shr ecx, 1
or ecx, eax
mov esi, ecx
mov ebp, 0x9e3779b1
imul esi, ebp
mov eax, ecx
mov ecx, 0x85ebca87
mul ecx
add edx, esi
mov ecx, 0x85ebca87
imul ebx, ecx
add ebx, edx
xor ebx, dword [esp + 8]
xor eax, edi
mov ecx, eax
imul ecx, ebp
mov edx, 0x85ebca87
mul edx
mov esi, eax
add edx, ecx
mov eax, 0x85ebca87
imul ebx, eax
add ebx, edx
mov eax, 0xc2b2ae63
add esi, eax
mov dword [esp + 8], esi
mov eax, 0x85ebca77
adc ebx, eax
mov edi, dword [esp + 0x1c]
mov ecx, edi
mov eax, 0xc2b2ae3d
imul ecx, eax
mov eax, edi
mov ebp, 0x27d4eb4f
mul ebp
add edx, ecx
mov esi, dword [esp + 0xc]
mov ecx, esi
imul ecx, ebp
add ecx, edx
mov ebp, edi
mov eax, 0x93ea75a7
imul ebp, eax
mov eax, edi
mov edx, 0x80000000
mul edx
add edx, ebp
mov edi, esi
mov esi, 0x80000000
imul edi, esi
add edi, edx
shr ecx, 1
or ecx, eax
mov ebp, ecx
mov esi, 0x9e3779b1
imul ebp, esi
mov eax, ecx
mov ecx, 0x85ebca87
mul ecx
add edx, ebp
mov ecx, 0x85ebca87
imul edi, ecx
add edi, edx
xor edi, ebx
xor eax, dword [esp + 8]
mov ecx, eax
imul ecx, esi
mov edx, 0x85ebca87
mul edx
mov esi, eax
mov ebx, edx
add ebx, ecx
mov eax, 0x85ebca87
imul edi, eax
add ebx, edi
mov eax, 0xc2b2ae63
add esi, eax
mov dword [esp + 0xc], esi
mov eax, 0x85ebca77
adc ebx, eax
mov ebp, dword [esp + 0x20]
mov ecx, ebp
mov eax, 0xc2b2ae3d
imul ecx, eax
mov eax, ebp
mov edi, 0x27d4eb4f
mul edi
add edx, ecx
mov esi, dword [esp + 0x10]
mov ecx, esi
imul ecx, edi
add ecx, edx
mov edi, ebp
mov eax, 0x93ea75a7
imul edi, eax
mov eax, ebp
mov ebp, 0x80000000
mul ebp
add edx, edi
imul esi, ebp
add esi, edx
shr ecx, 1
or ecx, eax
mov edi, ecx
mov eax, 0x9e3779b1
imul edi, eax
mov eax, ecx
mov ecx, 0x85ebca87
mul ecx
add edx, edi
mov ecx, 0x85ebca87
imul esi, ecx
add esi, edx
xor esi, ebx
xor eax, dword [esp + 0xc]
mov ecx, 0x85ebca87
imul esi, ecx
mov ebx, esi
mov esi, eax
mov ecx, 0x9e3779b1
imul esi, ecx
mov ecx, 0x85ebca87
mul ecx
mov ecx, eax
mov edi, edx
add edi, esi
add edi, ebx
mov eax, 0xc2b2ae63
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, 0x85ebca77
adc edi, eax
mov ecx, dword [esp + 0x24]
mov esi, ecx
mov ebx, ecx
mov eax, 0xc2b2ae3d
imul ebx, eax
mov eax, ecx
mov edx, 0x27d4eb4f
mul edx
add edx, ebx
mov ebp, dword [esp + 0x28]
mov ebx, ebp
mov eax, 0x27d4eb4f
imul ebx, eax
add ebx, edx
mov eax, 0x93ea75a7
imul esi, eax
mov eax, ecx
mov ecx, 0x80000000
mul ecx
add edx, esi
imul ebp, ecx
add ebp, edx
shr ebx, 1
or ebx, eax
mov esi, ebx
mov eax, 0x9e3779b1
imul esi, eax
mov eax, ebx
mov edx, 0x85ebca87
mul edx
add edx, esi
mov esi, 0x85ebca87
imul ebp, esi
mov esi, dword [esp]
add ebp, edx
xor ebp, edi
mov ebx, ebp
mov edi, 0x85ebca87
xor eax, dword [esp + 0x10]
mov ecx, eax
mov edx, 0x9e3779b1
imul ecx, edx
mul edi
mov ebp, edx
mov edx, dword [esp + 4]
add ebp, ecx
mov ecx, dword [esp + 0x48]
imul ebx, edi
add ebp, ebx
mov ebx, eax
mov eax, 0xc2b2ae63
add ebx, eax
mov eax, 0x85ebca77
jmp 0x6b6e5259
mov ebx, dword [ebp + 0x18]
add ebx, ecx
mov ecx, ebp
mov ebp, dword [ebp + 0x1c]
adc ebp, eax
add ebx, dword [esp + 0x30]
adc ebp, dword [esp + 0x14]
lea eax, [ecx + 0x30]
cmp edx, eax
jae 0x6b6e5280
mov eax, esi
jmp 0x6b6e5328
mov dword [esp + 0x14], ebx
mov dword [esp], esi
mov edi, dword [esi]
mov ecx, dword [esi + 4]
mov ebx, edi
mov eax, 0xc2b2ae3d
imul ebx, eax
mov eax, edi
mov esi, 0x27d4eb4f
mul esi
add edx, ebx
mov ebx, ecx
imul ebx, esi
add ebx, edx
mov esi, edi
mov eax, 0x93ea75a7
imul esi, eax
mov eax, edi
mov edi, 0x80000000
mul edi
add edx, esi
imul ecx, edi
mov edi, 0x85ebca87
add ecx, edx
shr ebx, 1
or ebx, eax
mov esi, ebx
mov eax, 0x9e3779b1
imul esi, eax
mov eax, ebx
mul edi
add edx, esi
imul ecx, edi
add ecx, edx
xor ecx, ebp
xor eax, dword [esp + 0x14]
mov ebp, ecx
shld ebp, eax, 0x1b
shld eax, ecx, 0x1b
mov ecx, eax
mov edx, 0x9e3779b1
imul ecx, edx
mul edi
add edx, ecx
mov ecx, 0x85ebca77
imul ebp, edi
add ebp, edx
mov ebx, eax
mov eax, 0xc2b2ae63
add ebx, eax
adc ebp, ecx
mov ecx, dword [esp]
lea eax, [ecx + 8]
add ecx, 0x10
cmp ecx, dword [esp + 4]
mov esi, eax
jbe 0x6b6e5280
mov edx, 0x9e3779b1
lea ecx, [eax + 4]
cmp ecx, dword [esp + 4]
jbe 0x6b6e5343
mov ecx, eax
cmp ecx, dword [esp + 4]
jb 0x6b6e538a
jmp 0x6b6e53df
mov eax, dword [eax]
mov esi, eax
imul esi, edx
mul edi
add edx, esi
xor edx, ebp
xor eax, ebx
mov ebp, edx
shld ebp, eax, 0x17
shld eax, edx, 0x17
mov esi, eax
mov edx, 0xc2b2ae3d
imul esi, edx
mov edi, 0x27d4eb4f
mul edi
add edx, esi
mov esi, 0x165667b1
imul ebp, edi
add ebp, edx
mov ebx, eax
mov edx, 0x9e3779f9
add ebx, edx
adc ebp, esi
cmp ecx, dword [esp + 4]
jae 0x6b6e53df
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
lea eax, [edx + eax + 0x28]
mov dword [esp], eax
mov edi, 0x85ebca87
nop
nop
movzx eax, byte [ecx]
mov esi, eax
mov edx, 0x27d4eb2f
imul esi, edx
mov edx, 0x165667c5
mul edx
add edx, esi
xor edx, ebp
xor eax, ebx
mov ebp, edx
shld ebp, eax, 0xb
shld eax, edx, 0xb
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mul edi
add edx, esi
imul ebp, edi
add ebp, edx
inc ecx
cmp dword [esp], ecx
mov ebx, eax
jne 0x6b6e53a0
mov eax, ebp
shr eax, 1
xor eax, ebx
mov esi, 0xc2b2ae3d
imul esi, eax
mov ecx, 0x27d4eb4f
mul ecx
add edx, esi
imul ebp, ecx
add ebp, edx
mov edx, ebp
shld edx, eax, 3
mov ecx, ebp
shr ecx, 0x1d
xor ecx, ebp
xor edx, eax
mov edi, 0x9e3779f9
imul ecx, edi
mov esi, 0x165667b1
imul esi, edx
mov eax, edx
mul edi
add edx, esi
add edx, ecx
xor eax, edx
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret