Function at 0x4e9060
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov esi, dword [esp + 0x3c]
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp edx, 0x20
mov dword [esp], eax
sbb eax, 0
mov eax, 0x165667c5
jb 0x4e92e4
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ebx, dword [esi + 0xc]
mov dword [esp + 4], edx
mov edx, ebx
shld edx, ecx, 1
shld ecx, ebx, 1
mov eax, dword [esp + 0x3c]
mov ebp, dword [eax + 0x10]
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x14]
mov dword [esp + 0xc], eax
mov esi, eax
shld esi, ebp, 7
shld ebp, eax, 7
add ebp, ecx
adc esi, edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + 0x1c]
mov dword [esp + 0x1c], edi
mov edx, edi
mov eax, ecx
mov dword [esp + 0x18], ecx
shld edx, ecx, 0xc
shld eax, edi, 0xc
add eax, ebp
adc edx, esi
mov ecx, dword [esp + 0x3c]
mov ebp, dword [ecx + 0x20]
mov dword [esp + 0x20], ebp
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x24], ecx
mov esi, ecx
shld esi, ebp, 0x12
shld ebp, ecx, 0x12
add ebp, eax
adc esi, edx
mov dword [esp + 8], esi
mov eax, dword [esp + 0x10]
mov ecx, eax
mov edi, 0x27d4eb4f
mul edi
mov esi, 0xc2b2ae3d
imul ecx, esi
add ecx, edx
imul ebx, edi
add ebx, ecx
mov ecx, ebx
shld ecx, eax, 0x1f
shld eax, ebx, 0x1f
mov esi, eax
mov edx, 0x85ebca87
mul edx
mov edi, eax
mov eax, 0x9e3779b1
imul esi, eax
add edx, esi
mov esi, 0x85ebca87
imul ecx, esi
add ecx, edx
xor edi, ebp
mov eax, edi
mul esi
mov ebx, eax
xor ecx, dword [esp + 8]
mov eax, 0x9e3779b1
imul edi, eax
add edx, edi
imul ecx, esi
mov ebp, 0x85ebca87
add ecx, edx
mov eax, 0xc2b2ae63
add ebx, eax
mov dword [esp + 8], ebx
mov eax, 0x85ebca77
adc ecx, eax
mov eax, dword [esp + 0x14]
mov esi, eax
mov ebx, 0x27d4eb4f
mul ebx
mov edi, 0xc2b2ae3d
imul esi, edi
add esi, edx
mov edx, dword [esp + 0xc]
imul edx, ebx
add edx, esi
mov edi, edx
shld edi, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mul ebp
mov ebp, eax
mov eax, 0x9e3779b1
imul esi, eax
add edx, esi
mov esi, 0x85ebca87
imul edi, esi
add edi, edx
xor ebp, dword [esp + 8]
mov eax, ebp
mul esi
mov ebx, eax
mov esi, edx
xor edi, ecx
mov eax, 0x9e3779b1
imul ebp, eax
add esi, ebp
mov ebp, 0x85ebca87
imul edi, ebp
add esi, edi
mov eax, 0xc2b2ae63
add ebx, eax
mov dword [esp + 0xc], ebx
mov eax, 0x85ebca77
adc esi, eax
mov eax, dword [esp + 0x18]
mov ecx, eax
mov ebx, 0x27d4eb4f
mul ebx
mov edi, 0xc2b2ae3d
imul ecx, edi
add ecx, edx
mov edx, dword [esp + 0x1c]
imul edx, ebx
add edx, ecx
mov ecx, edx
shld ecx, eax, 0x1f
shld eax, edx, 0x1f
mov edi, eax
mul ebp
mov ebp, 0x9e3779b1
imul edi, ebp
add edx, edi
mov edi, 0x85ebca87
imul ecx, edi
add ecx, edx
xor ecx, esi
xor eax, dword [esp + 0xc]
imul ecx, edi
mov esi, eax
imul esi, ebp
mul edi
mov ebp, eax
mov ebx, edx
add ebx, esi
add ebx, ecx
mov eax, 0xc2b2ae63
add ebp, eax
mov eax, 0x85ebca77
adc ebx, eax
mov eax, dword [esp + 0x20]
mov ecx, eax
mov edi, 0x27d4eb4f
mul edi
mov esi, 0xc2b2ae3d
imul ecx, esi
add ecx, edx
mov edx, dword [esp + 0x24]
imul edx, edi
add edx, ecx
mov esi, edx
shld esi, eax, 0x1f
shld eax, edx, 0x1f
mov ecx, eax
mov edx, 0x85ebca87
mul edx
mov edi, eax
mov eax, 0x9e3779b1
imul ecx, eax
add edx, ecx
mov ecx, 0x85ebca87
imul esi, ecx
add esi, edx
xor edi, ebp
mov eax, edi
mul ecx
mov ebp, eax
mov ecx, edx
mov edx, dword [esp + 4]
xor esi, ebx
mov eax, 0x9e3779b1
imul edi, eax
add ecx, edi
mov eax, 0x85ebca87
imul esi, eax
add ecx, esi
mov esi, dword [esp + 0x3c]
mov eax, 0xc2b2ae63
add ebp, eax
mov eax, 0x85ebca77
jmp 0x4e92f1
mov ebp, dword [esi + 0x18]
add ebp, eax
mov eax, 0x27d4eb2f
mov ecx, dword [esi + 0x1c]
adc ecx, eax
mov eax, dword [esp]
add ebp, edx
adc ecx, eax
lea edi, [esi + 0x28]
and edx, 0x1f
cmp edx, 8
jb 0x4e9541
lea eax, [edx - 8]
mov dword [esp], eax
test al, 8
je 0x4e938c
cmp dword [esp], 8
jae 0x4e941d
mov edx, dword [esp]
cmp edx, 4
jb 0x4e9550
mov ebx, edi
mov eax, dword [edi]
mov esi, eax
mov edx, 0x85ebca87
mul edx
mov edi, 0x9e3779b1
imul esi, edi
add esi, edx
xor esi, ecx
xor eax, ebp
mov ecx, esi
shld ecx, eax, 0x17
shld eax, esi, 0x17
mov esi, eax
mov edx, 0xc2b2ae3d
imul esi, edx
mov edi, 0x27d4eb4f
mul edi
add edx, esi
mov esi, 0x9e3779f9
imul ecx, edi
add ecx, edx
mov edx, 0x165667b1
add ebx, 4
mov ebp, eax
add ebp, esi
adc ecx, edx
mov edx, dword [esp]
add edx, 0xfffffffc
test edx, edx
jne 0x4e955a
jmp 0x4e9674
mov edi, dword [esi + 0x28]
mov eax, edi
mov edx, 0x27d4eb4f
mul edx
mov ebx, esi
mov esi, 0xc2b2ae3d
imul edi, esi
add edi, edx
mov edx, dword [ebx + 0x2c]
mov esi, 0x27d4eb4f
imul edx, esi
add edx, edi
mov edi, edx
shld edi, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mov ebx, 0x85ebca87
mul ebx
add esi, edx
imul edi, ebx
add edi, esi
xor edi, ecx
xor eax, ebp
mov ecx, edi
shld ecx, eax, 0x1b
shld eax, edi, 0x1b
mov esi, eax
mov ebx, 0x85ebca87
mul ebx
mov edi, 0x9e3779b1
imul esi, edi
add edx, esi
mov edi, dword [esp + 0x3c]
add edi, 0x30
imul ecx, ebx
add ecx, edx
mov ebp, eax
mov eax, 0xc2b2ae63
add ebp, eax
mov eax, 0x85ebca77
adc ecx, eax
mov edx, dword [esp]
cmp dword [esp], 8
jb 0x4e931d
mov esi, edi
nop
mov dword [esp], esi
mov dword [esp + 4], edx
mov edi, dword [esi]
mov eax, edi
mov edx, 0x27d4eb4f
mul edx
mov ebx, 0xc2b2ae3d
imul edi, ebx
add edi, edx
mov edx, dword [esi + 4]
mov esi, 0x27d4eb4f
imul edx, esi
add edx, edi
mov esi, edx
shld esi, eax, 0x1f
shld eax, edx, 0x1f
mov ebx, eax
mov edx, 0x9e3779b1
imul ebx, edx
mov edx, 0x85ebca87
mul edx
mov edi, eax
add ebx, edx
mov eax, 0x85ebca87
imul esi, eax
add esi, ebx
xor esi, ecx
xor edi, ebp
mov ebp, esi
shld ebp, edi, 0x1b
shld edi, esi, 0x1b
mov eax, edi
mov esi, 0x85ebca87
mul esi
mov ecx, eax
mov eax, dword [esp]
mov eax, dword [eax + 8]
mov ebx, 0x9e3779b1
imul edi, ebx
add edi, edx
imul ebp, esi
mov ebx, 0x85ebca87
add ebp, edi
mov edx, 0xc2b2ae63
add ecx, edx
mov edx, 0x85ebca77
adc ebp, edx
mov esi, eax
mov edx, 0xc2b2ae3d
imul esi, edx
mov edi, 0x27d4eb4f
mul edi
add esi, edx
mov edx, dword [esp]
mov edx, dword [edx + 0xc]
imul edx, edi
add edx, esi
mov edi, edx
shld edi, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mul ebx
mov ebx, 0x9e3779b1
imul esi, ebx
mov ebx, 0x9e3779b1
add esi, edx
mov edx, 0x85ebca87
imul edi, edx
add edi, esi
xor edi, ebp
xor eax, ecx
mov ecx, edi
shld ecx, eax, 0x1b
shld eax, edi, 0x1b
mov esi, eax
imul esi, ebx
mov edi, 0x85ebca87
mul edi
add edx, esi
mov esi, dword [esp]
imul ecx, edi
add ecx, edx
mov edx, dword [esp + 4]
add esi, 0x10
mov ebp, eax
mov eax, 0xc2b2ae63
add ebp, eax
mov eax, 0x85ebca77
adc ecx, eax
add edx, 0xfffffff0
cmp edx, 7
ja 0x4e9420
mov edi, esi
mov dword [esp], edx
mov edx, dword [esp]
cmp edx, 4
jae 0x4e9329
mov ebx, edi
test edx, edx
je 0x4e9674
test dl, 1
jne 0x4e9575
mov esi, edx
cmp edx, 1
mov edx, 0x27d4eb2f
mov edi, 0x165667c5
jne 0x4e95d2
jmp 0x4e9674
movzx eax, byte [ebx]
mov esi, eax
mov dword [esp], edx
mov edx, 0x27d4eb2f
imul esi, edx
mov edx, 0x165667c5
mul edx
add esi, edx
xor esi, ecx
xor eax, ebp
mov ecx, esi
shld ecx, eax, 0xb
shld eax, esi, 0xb
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mov edi, 0x85ebca87
mul edi
add edx, esi
add ebx, 1
imul ecx, edi
add ecx, edx
mov edx, dword [esp]
lea esi, [edx - 1]
mov ebp, eax
cmp edx, 1
mov edx, 0x27d4eb2f
mov edi, 0x165667c5
je 0x4e9674
mov eax, ebx
xor ebx, ebx
mov dword [esp + 4], esi
mov dword [esp], eax
nop dword [eax]
mov eax, dword [esp]
movzx eax, byte [eax + ebx]
mov esi, eax
imul esi, edx
mul edi
add esi, edx
xor esi, ecx
xor eax, ebp
mov ebp, esi
shld ebp, eax, 0xb
shld eax, esi, 0xb
mov esi, eax
mov ecx, 0x85ebca87
mov edx, 0x9e3779b1
imul esi, edx
mul ecx
mov edi, eax
add esi, edx
imul ebp, ecx
add ebp, esi
mov eax, dword [esp]
movzx eax, byte [eax + ebx + 1]
mov esi, eax
mov ecx, 0x27d4eb2f
imul esi, ecx
mov ecx, 0x165667c5
mul ecx
add esi, edx
xor esi, ebp
xor eax, edi
mov ecx, esi
shld ecx, eax, 0xb
shld eax, esi, 0xb
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mov edi, 0x85ebca87
mul edi
add edx, esi
mov esi, dword [esp + 4]
imul ecx, edi
mov edi, 0x165667c5
add ecx, edx
mov edx, 0x27d4eb2f
add ebx, 2
mov ebp, eax
cmp esi, ebx
jne 0x4e95e0
mov eax, ecx
shr eax, 1
xor eax, ebp
mov ebp, 0xc2b2ae3d
imul ebp, eax
mov ebx, 0x27d4eb4f
mul ebx
mov edi, eax
mov esi, edx
add esi, ebp
imul ecx, ebx
add esi, ecx
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, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret