Function at 0x4e8380
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov edx, 0xc2b2ae3d
mov ebp, 0x27d4eb4f
mov esi, 0x27d4eb2f
mov edi, 0x165667c5
cmp ebx, 0x20
jb 0x4e8816
mov esi, eax
add esi, 0xadc0b5d6
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x5c]
mov edi, esi
adc edi, 0x60ea27ee
mov dword [esp + 0x1c], edi
mov edi, eax
add edi, ebp
mov dword [esp + 0x20], edi
mov edi, esi
adc edi, edx
mov dword [esp + 0x10], edi
lea edx, [ecx + ebx]
add edx, 0xffffffe1
mov dword [esp + 0x14], edx
mov edx, eax
add edx, 0x7a143579
mov dword [esp + 0xc], edx
adc esi, 0x61c8864e
mov dword [esp + 0x24], esi
mov dword [esp + 8], eax
mov ebx, ecx
nop dword [eax]
mov dword [esp + 4], ebx
mov eax, dword [ebx]
mov esi, eax
mov ecx, 0xc2b2ae3d
imul esi, ecx
mov edi, 0x27d4eb4f
mul edi
add edx, esi
mov ecx, dword [esp + 4]
mov esi, dword [ecx + 4]
imul esi, edi
mov ebp, 0x27d4eb4f
add esi, edx
add eax, dword [esp + 0x18]
adc esi, dword [esp + 0x1c]
mov edi, esi
shld edi, eax, 0x1f
shrd esi, eax, 1
mov ecx, esi
mov eax, 0x9e3779b1
imul ecx, eax
mov eax, esi
mov ebx, 0x85ebca87
mul ebx
add edx, ecx
mov dword [esp + 0x2c], edi
mov ecx, edi
imul ecx, ebx
add ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 8]
mov edi, edx
mov ecx, 0xc2b2ae3d
imul edi, ecx
mov dword [esp + 0x18], eax
mov eax, edx
mul ebp
add edx, edi
mov ecx, dword [esp + 4]
mov edi, dword [ecx + 0xc]
imul edi, ebp
add edi, edx
add eax, dword [esp + 0x20]
adc edi, dword [esp + 0x10]
mov ecx, edi
shld ecx, eax, 0x1f
shrd edi, eax, 1
mov ebx, edi
mov eax, 0x9e3779b1
imul ebx, eax
mov eax, edi
mov edx, 0x85ebca87
mul edx
mov ebp, 0x85ebca87
add edx, ebx
mov dword [esp + 0x30], ecx
imul ecx, ebp
add ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x10]
mov ebx, edx
mov ecx, 0xc2b2ae3d
imul ebx, ecx
mov dword [esp + 0x20], eax
mov eax, edx
mov ecx, 0x27d4eb4f
mul ecx
add edx, ebx
mov ecx, dword [esp + 4]
mov ebp, dword [ecx + 0x14]
mov ecx, 0x27d4eb4f
imul ebp, ecx
add ebp, edx
add eax, dword [esp + 8]
adc ebp, dword [esp]
mov ecx, ebp
shld ecx, eax, 0x1f
shrd ebp, eax, 1
mov ebx, ebp
mov eax, 0x9e3779b1
imul ebx, eax
mov eax, ebp
mov edx, 0x85ebca87
mul edx
add edx, ebx
mov dword [esp + 0x34], ecx
mov ebx, 0x85ebca87
imul ecx, ebx
add ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x18]
mov ebx, edx
mov ecx, 0xc2b2ae3d
imul ebx, ecx
mov dword [esp + 8], eax
mov eax, edx
mov ecx, 0x27d4eb4f
mul ecx
add edx, ebx
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x1c]
mov ebx, 0x27d4eb4f
imul ecx, ebx
add ecx, edx
add eax, dword [esp + 0xc]
adc ecx, dword [esp + 0x24]
mov ebx, ecx
shld ebx, eax, 0x1f
shrd ecx, eax, 1
mov edx, ecx
mov eax, 0x9e3779b1
imul edx, eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x28], ecx
mov eax, ecx
mov ecx, 0x85ebca87
mul ecx
add edx, dword [esp + 0xc]
mov dword [esp + 0x38], ebx
mov ecx, 0x85ebca87
imul ebx, ecx
add ebx, edx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 4]
add ebx, 0x20
mov dword [esp + 0xc], eax
cmp ebx, dword [esp + 0x14]
jb 0x4e8410
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov edx, dword [esp + 0x18]
shld ecx, edx, 1
mov dword [esp + 0x14], ecx
shld edx, eax, 1
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
shld ebx, eax, 7
mov ecx, dword [esp + 0x10]
shld eax, ecx, 7
add eax, edx
adc ebx, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
mov ecx, dword [esp]
mov edx, dword [esp + 8]
shld ecx, edx, 0xc
mov ebx, dword [esp]
shld edx, ebx, 0xc
add edx, eax
adc ecx, dword [esp + 0x10]
mov dword [esp], ecx
mov eax, dword [esp + 0x24]
mov ecx, eax
mov ebx, dword [esp + 0xc]
shld ecx, ebx, 0x12
shld ebx, eax, 0x12
add ebx, edx
mov dword [esp + 0xc], ebx
adc ecx, dword [esp]
mov dword [esp], ecx
mov edx, 0xf796ca9
mov eax, esi
mul edx
imul esi, esi, 0xdef35b01
add esi, edx
imul edx, dword [esp + 0x2c], 0xf796ca9
add edx, esi
mov ebx, edx
shld ebx, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mov ecx, 0x85ebca87
mul ecx
mov ecx, eax
mov eax, 0x9e3779b1
imul esi, eax
add edx, esi
mov eax, 0x85ebca87
imul ebx, eax
add ebx, edx
xor ecx, dword [esp + 0xc]
mov eax, ecx
mov esi, ecx
mov ecx, 0x85ebca87
mul ecx
xor ebx, dword [esp]
mov ecx, 0x9e3779b1
imul esi, ecx
add edx, esi
mov ecx, 0x85ebca87
imul ebx, ecx
mov ecx, 0x85ebca87
add ebx, edx
mov edx, 0xc2b2ae63
add eax, edx
mov dword [esp], eax
mov eax, 0x85ebca77
adc ebx, eax
mov eax, edi
mov edx, 0xf796ca9
mul edx
imul esi, edi, 0xdef35b01
add esi, edx
imul edx, dword [esp + 0x30], 0xf796ca9
add edx, esi
mov edi, edx
shld edi, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mul ecx
mov ecx, eax
mov eax, 0x9e3779b1
imul esi, eax
add edx, esi
mov esi, 0x85ebca87
imul edi, esi
add edi, edx
xor ecx, dword [esp]
mov eax, ecx
mul esi
mov esi, eax
xor edi, ebx
mov eax, ecx
mov ecx, 0x9e3779b1
imul eax, ecx
add edx, eax
mov eax, 0x85ebca87
imul edi, eax
add edx, edi
mov eax, 0xc2b2ae63
add esi, eax
mov ecx, esi
mov eax, 0x85ebca77
adc edx, eax
mov dword [esp], edx
mov eax, ebp
mov edx, 0xf796ca9
mul edx
imul esi, ebp, 0xdef35b01
add esi, edx
imul edx, dword [esp + 0x34], 0xf796ca9
add edx, esi
mov ebx, edx
shld ebx, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mov edi, 0x85ebca87
mul edi
mov ebp, eax
mov eax, 0x9e3779b1
imul esi, eax
add edx, esi
imul ebx, edi
mov esi, 0x85ebca87
add ebx, edx
xor ebp, ecx
mov eax, ebp
mul esi
mov ecx, 0x85ebca87
mov edi, eax
mov esi, edx
xor ebx, dword [esp]
mov eax, 0x9e3779b1
imul ebp, eax
add esi, ebp
imul ebx, ecx
add esi, ebx
mov eax, 0xc2b2ae63
add edi, eax
mov eax, 0x85ebca77
adc esi, eax
mov ecx, dword [esp + 0x28]
mov eax, ecx
mov edx, 0xf796ca9
mul edx
imul ecx, ecx, 0xdef35b01
add ecx, edx
imul edx, dword [esp + 0x38], 0xf796ca9
add edx, ecx
mov ebx, edx
shld ebx, eax, 0x1f
shld eax, edx, 0x1f
mov ebp, eax
mov ecx, 0x85ebca87
mul ecx
mov ecx, eax
mov eax, 0x9e3779b1
imul ebp, eax
add edx, ebp
mov ebp, 0x85ebca87
imul ebx, ebp
add ebx, edx
xor ecx, edi
mov eax, ecx
mul ebp
mov edi, 0x85ebca87
xor ebx, esi
mov esi, ecx
mov ecx, 0x9e3779b1
imul esi, ecx
mov ecx, dword [esp + 4]
add edx, esi
imul ebx, edi
add edx, ebx
mov esi, 0xc2b2ae63
mov edi, 0x85ebca77
add eax, esi
adc edx, edi
mov ebx, dword [esp + 0x54]
jmp 0x4e881e
add eax, edi
mov edx, dword [esp + 0x5c]
adc edx, esi
add eax, ebx
adc edx, 0
mov dword [esp], edx
and ebx, 0x1f
cmp ebx, 8
mov dword [esp + 8], eax
jb 0x4e8a20
mov ebp, ebx
add ebx, 0xfffffff8
test bl, 8
jne 0x4e88d6
mov esi, dword [ecx]
mov eax, esi
mov edi, ecx
mov ecx, 0x27d4eb4f
mul ecx
mov ebp, 0xc2b2ae3d
imul esi, ebp
add esi, edx
mov edx, dword [edi + 4]
imul edx, ecx
add edx, esi
mov ecx, edx
shld ecx, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mov edx, 0x85ebca87
mul edx
add esi, edx
mov edx, 0x85ebca87
imul ecx, edx
add ecx, esi
mov edx, 0x85ebca87
xor ecx, dword [esp]
xor eax, dword [esp + 8]
mov ebp, ecx
shld ebp, eax, 0x1b
shld eax, ecx, 0x1b
mov ecx, eax
mul edx
mov esi, 0x9e3779b1
imul ecx, esi
add edx, ecx
add edi, 8
mov ecx, 0x85ebca87
imul ebp, ecx
add ebp, edx
mov edx, eax
mov eax, 0xc2b2ae63
add edx, eax
mov dword [esp + 8], edx
mov ecx, edi
mov eax, 0x85ebca77
adc ebp, eax
mov dword [esp], ebp
mov ebp, ebx
cmp ebx, 8
jb 0x4e8a20
mov esi, dword [esp]
mov ebx, dword [esp + 8]
nop word cs:[eax + eax]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov ecx, dword [ecx]
mov eax, ecx
mov ebp, 0x27d4eb4f
mul ebp
mov edi, ecx
mov ecx, 0xc2b2ae3d
imul edi, ecx
add edi, edx
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 4]
imul edx, ebp
add edx, edi
mov ecx, edx
shld ecx, eax, 0x1f
shld eax, edx, 0x1f
mov edi, eax
mov edx, 0x9e3779b1
imul edi, edx
mov edx, 0x85ebca87
mul edx
mov ebp, eax
add edi, edx
mov eax, 0x85ebca87
imul ecx, eax
add ecx, edi
xor ecx, esi
xor ebp, ebx
mov edi, ecx
shld edi, ebp, 0x1b
shld ebp, ecx, 0x1b
mov eax, ebp
mov ecx, 0x85ebca87
mul ecx
mov ecx, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
mov ebx, 0x9e3779b1
imul ebp, ebx
add ebp, edx
mov edx, 0x85ebca87
imul edi, edx
add edi, ebp
mov edx, 0xc2b2ae63
add ecx, edx
mov edx, 0x85ebca77
adc edi, edx
mov esi, eax
mov edx, 0xc2b2ae3d
imul esi, edx
mov ebx, 0x27d4eb4f
mul ebx
add esi, edx
mov edx, dword [esp + 4]
mov edx, dword [edx + 0xc]
imul edx, ebx
add edx, esi
mov ebp, edx
shld ebp, eax, 0x1f
shld eax, edx, 0x1f
mov ebx, eax
mov edx, 0x85ebca87
mul edx
mov esi, 0x9e3779b1
imul ebx, esi
add ebx, edx
mov edx, 0x85ebca87
imul ebp, edx
add ebp, ebx
xor ebp, edi
xor eax, ecx
mov esi, ebp
shld esi, eax, 0x1b
shld eax, ebp, 0x1b
mov ebp, dword [esp]
mov edi, 0x85ebca87
mov ecx, eax
mov edx, 0x9e3779b1
imul ecx, edx
mul edi
add edx, ecx
imul esi, edi
add esi, edx
mov ecx, dword [esp + 4]
add ecx, 0x10
mov ebx, eax
mov eax, 0xc2b2ae63
add ebx, eax
mov eax, 0x85ebca77
adc esi, eax
add ebp, 0xfffffff0
cmp ebp, 7
ja 0x4e88f0
mov dword [esp + 8], ebx
mov dword [esp], esi
mov ebx, ebp
cmp ebx, 4
jb 0x4e8a82
mov edi, ecx
mov edx, 0x85ebca87
mov eax, dword [ecx]
mov esi, eax
mul edx
mov ebp, 0x9e3779b1
imul esi, ebp
add esi, edx
xor esi, dword [esp]
xor eax, dword [esp + 8]
mov ebp, esi
shld ebp, eax, 0x17
shld eax, esi, 0x17
mov ecx, eax
mov edx, 0xc2b2ae3d
imul ecx, edx
mov esi, 0x27d4eb4f
mul esi
add edx, ecx
imul ebp, esi
add ebp, edx
mov ecx, edi
add ecx, 4
mov edx, 0x9e3779f9
add eax, edx
mov dword [esp + 8], eax
mov eax, 0x165667b1
adc ebp, eax
mov dword [esp], ebp
add ebx, 0xfffffffc
test ebx, ebx
je 0x4e8aa5
test bl, 1
jne 0x4e8ab1
mov esi, ecx
mov ecx, ebx
mov ebp, dword [esp + 8]
cmp ebx, 1
mov edx, 0x27d4eb2f
mov ebx, dword [esp]
jne 0x4e8b0e
jmp 0x4e8bb3
mov ebx, dword [esp]
mov ebp, dword [esp + 8]
jmp 0x4e8bb3
movzx eax, byte [ecx]
mov ebp, 0x165667c5
mov edi, eax
mov edx, 0x27d4eb2f
imul edi, edx
mov esi, ecx
mul ebp
add edi, edx
xor edi, dword [esp]
xor eax, dword [esp + 8]
mov ebp, edi
shld ebp, eax, 0xb
shld eax, edi, 0xb
mov ecx, eax
mov edx, 0x9e3779b1
imul ecx, edx
mov edi, 0x85ebca87
mul edi
add edx, ecx
add esi, 1
imul ebp, edi
add ebp, edx
mov dword [esp], ebp
lea ecx, [ebx - 1]
mov ebp, eax
cmp ebx, 1
mov edx, 0x27d4eb2f
mov ebx, dword [esp]
je 0x4e8bb3
xor edi, edi
mov dword [esp + 4], ecx
nop word cs:[eax + eax]
nop
movzx eax, byte [esi + edi]
mov ecx, eax
imul ecx, edx
mov edx, 0x165667c5
mul edx
add ecx, edx
xor ecx, ebx
xor eax, ebp
mov ebx, ecx
shld ebx, eax, 0xb
shld eax, ecx, 0xb
mov ebp, eax
mov ecx, 0x9e3779b1
imul ebp, ecx
mov ecx, 0x85ebca87
mul ecx
mov ecx, eax
add ebp, edx
mov eax, 0x85ebca87
imul ebx, eax
add ebx, ebp
movzx eax, byte [esi + edi + 1]
mov ebp, eax
mov edx, 0x27d4eb2f
imul ebp, edx
mov edx, 0x165667c5
mul edx
add ebp, edx
xor ebp, ebx
xor eax, ecx
mov ebx, ebp
shld ebx, eax, 0xb
shld eax, ebp, 0xb
mov ecx, eax
mov edx, 0x9e3779b1
imul ecx, edx
mov ebp, 0x85ebca87
mul ebp
add edx, ecx
mov ecx, dword [esp + 4]
imul ebx, ebp
add ebx, edx
mov edx, 0x27d4eb2f
add edi, 2
mov ebp, eax
cmp ecx, edi
jne 0x4e8b20
mov eax, ebx
shr eax, 1
xor eax, ebp
mov ebp, ebx
mov ebx, 0xc2b2ae3d
imul ebx, eax
mov ecx, 0x27d4eb4f
mul ecx
mov edi, eax
mov esi, edx
add esi, ebx
imul ebp, ecx
add esi, ebp
mov eax, esi
shld eax, edi, 3
mov ecx, esi
shr ecx, 0x1d
xor esi, ecx
xor edi, eax
mov ecx, 0x9e3779f9
imul esi, ecx
mov eax, edi
mul ecx
mov ecx, 0x165667b1
imul ecx, edi
add edx, ecx
add edx, esi
xor eax, edx
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret