Function at 0x6b6e4100
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
mov eax, 0x27d4eb4f
cmp ebx, 0x20
mov esi, 0x27d4eb2f
mov edi, 0x165667c5
lea ebx, [ebp + ebx]
mov dword [esp + 8], ebx
jb 0x6b6e4600
lea esi, [ebx - 0x20]
mov dword [esp + 0x34], esi
mov edx, dword [esp + 0x58]
mov ebx, 0xc2b2ae3d
mov edi, edx
add edi, 0xadc0b5d6
mov esi, ecx
adc esi, 0x60ea27ee
mov dword [esp + 0x18], esi
mov esi, edx
add esi, eax
mov dword [esp + 0x30], esi
mov eax, ecx
adc eax, ebx
mov dword [esp + 0xc], eax
add edx, 0x7a143579
mov eax, ecx
adc eax, 0x61c8864e
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 4]
mov eax, dword [ebp]
mov esi, eax
mov edx, 0xc2b2ae3d
imul esi, edx
mov ebx, 0x27d4eb4f
mul ebx
add edx, esi
mov esi, dword [ebp + 4]
imul esi, ebx
add esi, edx
add eax, edi
adc esi, dword [esp + 0x18]
mov ebx, esi
shld ebx, eax, 0x1f
shrd esi, eax, 1
mov edi, esi
mov eax, 0x9e3779b1
imul edi, eax
mov eax, esi
mov edx, 0x85ebca87
mul edx
add edx, edi
mov dword [esp + 0x20], ebx
mov edi, 0x85ebca87
imul ebx, edi
add ebx, edx
mov dword [esp + 0x18], ebx
mov dword [esp + 4], ebp
mov edx, dword [ebp + 8]
mov edi, edx
mov ebx, 0xc2b2ae3d
imul edi, ebx
mov dword [esp + 0x38], eax
mov eax, edx
mov ebx, 0x27d4eb4f
mul ebx
add edx, edi
mov ebp, dword [ebp + 0xc]
imul ebp, ebx
add ebp, edx
add eax, dword [esp + 0x30]
adc ebp, dword [esp + 0xc]
mov ebx, ebp
shld ebx, eax, 0x1f
shrd ebp, eax, 1
mov edi, ebp
mov eax, 0x9e3779b1
imul edi, eax
mov eax, ebp
mov edx, 0x85ebca87
mul edx
add edx, edi
mov dword [esp + 0x24], ebx
mov edi, 0x85ebca87
imul ebx, edi
add ebx, edx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 4]
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x10], edi
mov edx, 0xc2b2ae3d
imul edi, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
mov edx, 0x27d4eb4f
mul edx
add edx, edi
mov edi, dword [ebx + 0x14]
mov ebx, 0x27d4eb4f
imul edi, ebx
add edi, edx
add eax, dword [esp]
adc edi, ecx
mov ecx, edi
shld ecx, eax, 0x1f
shrd edi, eax, 1
mov ebx, edi
mov eax, 0x9e3779b1
imul ebx, eax
mov dword [esp + 0x2c], edi
mov eax, edi
mov edi, 0x85ebca87
mul edi
add edx, ebx
mov dword [esp + 0x28], ecx
imul ecx, edi
add ecx, edx
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x18]
mov edi, edx
mov ebx, 0xc2b2ae3d
imul edi, ebx
mov dword [esp], eax
mov eax, edx
mov edx, 0x27d4eb4f
mul edx
mov ebx, eax
add edx, edi
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1c]
mov edi, 0x27d4eb4f
imul eax, edi
add eax, edx
add ebx, dword [esp + 0x14]
adc eax, dword [esp + 0x1c]
mov edi, eax
shld edi, ebx, 0x1f
shrd eax, ebx, 1
mov ebx, eax
mov edx, 0x9e3779b1
imul ebx, edx
mov dword [esp + 0x10], eax
mov edx, 0x85ebca87
mul edx
add edx, ebx
mov dword [esp + 0x14], edi
mov ebx, 0x85ebca87
imul edi, ebx
add edi, edx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 4]
add edx, 0x20
mov dword [esp + 4], edx
cmp edx, dword [esp + 0x34]
mov edx, eax
jbe 0x6b6e4190
mov edx, 0xbd7950e
mov eax, esi
mul edx
imul edi, esi, 0x3c6ef363
add edi, edx
imul edx, dword [esp + 0x20], 0xbd7950e
add edx, edi
mov dword [esp], edx
mov ebx, dword [esp + 0x18]
shr ebx, 0x1f
or ebx, eax
mov edx, 0xf5e54380
mov eax, ebp
mul edx
imul edi, ebp, 0x1bbcd8c2
add edi, edx
imul edx, dword [esp + 0x24], 0xf5e54380
add edx, edi
mov edi, dword [esp + 0xc]
shr edi, 0x19
or edi, eax
add edi, ebx
adc edx, dword [esp]
mov dword [esp], edx
mov edx, 0xbca87000
mov ebx, dword [esp + 0x2c]
mov eax, ebx
mul edx
mov dword [esp + 0xc], eax
imul eax, ebx, 0x779b185e
add eax, edx
imul ebx, dword [esp + 0x28], 0xbca87000
add ebx, eax
shr ecx, 0x14
or ecx, dword [esp + 0xc]
add ecx, edi
adc ebx, dword [esp]
mov edx, 0x2a1c0000
mov edi, dword [esp + 0x10]
mov eax, edi
mul edx
imul edi, edi, 0xe6c617af
add edi, edx
imul edx, dword [esp + 0x14], 0x2a1c0000
add edx, edi
mov edi, dword [esp + 0x1c]
shr edi, 0xe
or edi, eax
add edi, ecx
adc edx, ebx
mov dword [esp], edx
mov ecx, 0xf796ca9
mov eax, esi
mul ecx
imul eax, esi, 0xdef35b01
add eax, edx
mov ebx, dword [esp + 0x20]
imul ecx, ebx, 0xf796ca9
add ecx, eax
mov edx, 0x80000000
mov eax, esi
mul edx
imul esi, esi, 0x87bcb654
add esi, edx
imul ebx, ebx, 0x80000000
add ebx, esi
shr ecx, 1
or ecx, eax
mov esi, ecx
mov eax, 0x9e3779b1
imul esi, eax
mov eax, ecx
mov ecx, 0x85ebca87
mul ecx
add edx, esi
imul ebx, ecx
add ebx, edx
xor ebx, dword [esp]
mov ecx, ebx
xor eax, edi
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mov edi, 0x85ebca87
mul edi
add edx, esi
imul ecx, edi
add ecx, edx
mov edx, 0xc2b2ae63
add eax, edx
mov dword [esp], eax
mov eax, 0x85ebca77
adc ecx, eax
mov eax, ebp
mov edx, 0xf796ca9
mul edx
imul eax, ebp, 0xdef35b01
add eax, edx
mov ebx, dword [esp + 0x24]
imul esi, ebx, 0xf796ca9
add esi, eax
mov eax, ebp
mov edx, 0x80000000
mul edx
imul edi, ebp, 0x87bcb654
add edi, edx
imul ebp, ebx, 0x80000000
add ebp, edi
shr esi, 1
or esi, eax
mov edi, esi
mov eax, 0x9e3779b1
imul edi, eax
mov eax, esi
mov esi, 0x85ebca87
mul esi
add edx, edi
imul ebp, esi
mov ebx, 0x85ebca87
add ebp, edx
xor ebp, ecx
xor eax, dword [esp]
mov edi, eax
mov ecx, 0x9e3779b1
imul edi, ecx
mul ebx
mov ecx, eax
mov esi, edx
add esi, edi
imul ebp, ebx
add esi, ebp
mov eax, 0xc2b2ae63
add ecx, eax
mov eax, 0x85ebca77
adc esi, eax
mov edi, dword [esp + 0x2c]
mov eax, edi
mov edx, 0xf796ca9
mul edx
imul eax, edi, 0xdef35b01
add eax, edx
mov ebx, dword [esp + 0x28]
imul ebp, ebx, 0xf796ca9
add ebp, eax
mov eax, edi
mov edx, 0x80000000
mul edx
imul edi, edi, 0x87bcb654
add edi, edx
imul ebx, ebx, 0x80000000
add ebx, edi
shr ebp, 1
or ebp, eax
mov edi, ebp
mov eax, 0x9e3779b1
imul edi, eax
mov eax, ebp
mov ebp, 0x85ebca87
mul ebp
add edx, edi
imul ebx, ebp
add ebx, edx
xor ebx, esi
xor eax, ecx
mov edi, eax
mov ecx, 0x9e3779b1
imul edi, ecx
mul ebp
mov ecx, eax
mov esi, edx
add esi, edi
imul ebx, ebp
add esi, ebx
mov eax, 0xc2b2ae63
add ecx, eax
mov dword [esp], ecx
mov eax, 0x85ebca77
adc esi, eax
mov edi, dword [esp + 0x10]
mov eax, edi
mov ecx, 0xf796ca9
mul ecx
imul eax, edi, 0xdef35b01
add eax, edx
mov ecx, dword [esp + 0x14]
imul ebx, ecx, 0xf796ca9
add ebx, eax
mov eax, edi
mov edx, 0x80000000
mul edx
imul ebp, edi, 0x87bcb654
add ebp, edx
imul edi, ecx, 0x80000000
add edi, ebp
shr ebx, 1
or ebx, eax
mov ebp, ebx
mov ecx, 0x9e3779b1
imul ebp, ecx
mov eax, ebx
mov ebx, 0x85ebca87
mul ebx
add edx, ebp
imul edi, ebx
mov ebp, 0x85ebca87
add edi, edx
xor edi, esi
xor eax, dword [esp]
mov esi, eax
imul esi, ecx
mul ebp
mov ecx, edx
mov edx, 0xc2b2ae63
mov ebx, 0x85ebca77
add ecx, esi
imul edi, ebp
add ecx, edi
add eax, edx
mov edi, eax
adc ecx, ebx
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 4]
jmp 0x6b6e460a
mov edx, dword [esp + 0x58]
add edx, edi
adc ecx, esi
mov edi, edx
add edi, dword [esp + 0x54]
adc ecx, 0
lea eax, [ebp + 8]
cmp eax, ebx
jbe 0x6b6e4620
mov eax, ebp
jmp 0x6b6e46c0
mov dword [esp], edi
mov esi, dword [ebp]
mov dword [esp + 4], ebp
mov ebp, dword [ebp + 4]
mov edi, esi
mov eax, 0xc2b2ae3d
imul edi, eax
mov eax, esi
mov ebx, 0x27d4eb4f
mul ebx
add edx, edi
mov edi, ebp
imul edi, ebx
add edi, edx
imul ebx, esi, 0x93ea75a7
mov eax, esi
mov edx, 0x80000000
mul edx
add ebx, edx
shl ebp, 0x1f
add ebp, ebx
shr edi, 1
or edi, eax
mov esi, edi
mov ebx, 0x9e3779b1
imul esi, ebx
mov eax, edi
mov edi, 0x85ebca87
mul edi
add edx, esi
imul ebp, edi
add ebp, edx
xor ebp, ecx
xor eax, dword [esp]
mov ecx, ebp
shld ecx, eax, 0x1b
shld eax, ebp, 0x1b
mov esi, eax
imul esi, ebx
mul edi
add edx, esi
imul ecx, edi
add ecx, edx
mov edx, 0x85ebca77
mov edi, eax
mov eax, 0xc2b2ae63
add edi, eax
adc ecx, edx
mov edx, dword [esp + 4]
lea eax, [edx + 8]
add edx, 0x10
cmp edx, dword [esp + 8]
mov ebp, eax
jbe 0x6b6e4620
mov esi, 0x85ebca87
mov edx, 0x9e3779b1
lea ebx, [eax + 4]
cmp ebx, dword [esp + 8]
jbe 0x6b6e46e2
mov ebx, eax
mov edx, edi
cmp ebx, dword [esp + 8]
jb 0x6b6e4729
jmp 0x6b6e4775
mov eax, dword [eax]
mov ebp, eax
imul ebp, edx
mul esi
add edx, ebp
xor edx, ecx
xor eax, edi
mov ecx, edx
shld ecx, eax, 0x17
shld eax, edx, 0x17
mov ebp, eax
mov edx, 0xc2b2ae3d
imul ebp, edx
mov edi, 0x27d4eb4f
mul edi
add edx, ebp
imul ecx, edi
add ecx, edx
mov edx, eax
mov eax, 0x9e3779f9
add edx, eax
mov eax, 0x165667b1
adc ecx, eax
cmp ebx, dword [esp + 8]
jae 0x6b6e4775
mov edi, dword [esp + 8]
nop
nop
nop
movzx eax, byte [ebx]
mov ebp, eax
mov esi, 0x27d4eb2f
imul ebp, esi
mov esi, edx
mov edx, 0x165667c5
mul edx
add edx, ebp
xor edx, ecx
xor eax, esi
mov ecx, edx
shld ecx, eax, 0xb
shld eax, edx, 0xb
mov ebp, eax
mov edx, 0x9e3779b1
imul ebp, edx
mov esi, 0x85ebca87
mul esi
add edx, ebp
imul ecx, esi
add ecx, edx
inc ebx
cmp edi, ebx
mov edx, eax
jne 0x6b6e4730
mov eax, ecx
shr eax, 1
xor eax, edx
mov ebx, 0xc2b2ae3d
imul ebx, eax
mov edi, 0x27d4eb4f
mul edi
add edx, ebx
imul ecx, edi
add ecx, edx
mov edx, ecx
shld edx, eax, 3
mov ebx, ecx
shr ebx, 0x1d
xor ebx, ecx
xor edx, eax
mov esi, 0x9e3779f9
imul ebx, esi
mov ecx, 0x165667b1
imul ecx, edx
mov eax, edx
mul esi
add edx, ecx
add edx, ebx
xor eax, edx
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret