Function at 0x40e7e9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov eax, dword [ebp + 0xc]
mov ebx, 0x9e3779b9
push esi
mov edx, dword [ebp + 8]
mov dword [ebp - 0x10], eax
push edi
mov ecx, eax
mov dword [ebp - 4], edx
xor edi, edi
mov dword [ebp - 8], ecx
mov esi, ebx
cmp eax, 0xc
jb 0x40e909
push 0xc
xor edx, edx
pop ecx
div ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0xc], eax
movzx edx, byte [edx + 7]
mov eax, dword [ebp - 4]
shl edx, 8
push 0xc
movzx ecx, byte [eax + 6]
add edx, ecx
movzx ecx, byte [eax + 5]
movzx eax, byte [eax + 4]
add esi, eax
shl edx, 8
add edx, ecx
shl edx, 8
add esi, edx
mov edx, dword [ebp - 4]
movzx ecx, byte [edx + 0xb]
movzx eax, byte [edx + 0xa]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 8]
add edi, eax
shl ecx, 8
movzx eax, byte [edx + 2]
add edi, ecx
movzx ecx, byte [edx + 3]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov eax, edi
shr eax, 0xd
sub ecx, edi
sub ecx, esi
sub esi, edi
add ebx, ecx
xor ebx, eax
sub esi, ebx
mov eax, ebx
shl eax, 8
xor esi, eax
sub edi, esi
mov eax, esi
shr eax, 0xd
sub edi, ebx
xor edi, eax
sub ebx, edi
mov eax, edi
shr eax, 0xc
sub ebx, esi
xor ebx, eax
sub esi, edi
sub esi, ebx
mov eax, ebx
shl eax, 0x10
xor esi, eax
sub edi, esi
mov eax, esi
shr eax, 5
sub edi, ebx
xor edi, eax
sub ebx, edi
mov eax, edi
shr eax, 3
sub ebx, esi
xor ebx, eax
sub esi, edi
mov eax, ebx
sub esi, ebx
shl eax, 0xa
xor esi, eax
sub edi, esi
mov eax, esi
sub edi, ebx
shr eax, 0xf
xor edi, eax
mov ecx, dword [ebp - 8]
pop eax
add edx, eax
sub ecx, eax
dec dword [ebp - 0xc]
mov dword [ebp - 4], edx
mov dword [ebp - 8], ecx
jne 0x40e822
mov eax, dword [ebp - 0x10]
add edi, eax
lea eax, [ecx - 1]
cmp eax, 0xa
ja 0x40e9a9
cmp eax, 0
je 0x40e9a4
cmp eax, 1
je 0x40e99b
cmp eax, 2
je 0x40e992
cmp eax, 3
je 0x40e989
cmp eax, 4
je 0x40e983
cmp eax, 5
je 0x40e97a
cmp eax, 6
je 0x40e971
cmp eax, 7
je 0x40e968
cmp eax, 8
je 0x40e95f
cmp eax, 9
je 0x40e956
movzx eax, byte [edx + 0xa]
shl eax, 0x18
add edi, eax
movzx eax, byte [edx + 9]
shl eax, 0x10
add edi, eax
movzx eax, byte [edx + 8]
shl eax, 8
add edi, eax
movzx eax, byte [edx + 7]
shl eax, 0x18
add esi, eax
movzx eax, byte [edx + 6]
shl eax, 0x10
add esi, eax
movzx eax, byte [edx + 5]
shl eax, 8
add esi, eax
movzx eax, byte [edx + 4]
add esi, eax
movzx eax, byte [edx + 3]
shl eax, 0x18
add ebx, eax
movzx eax, byte [edx + 2]
shl eax, 0x10
add ebx, eax
movzx eax, byte [edx + 1]
shl eax, 8
add ebx, eax
movzx eax, byte [edx]
add ebx, eax
sub ebx, edi
mov eax, edi
sub ebx, esi
shr eax, 0xd
xor ebx, eax
sub esi, edi
sub esi, ebx
mov eax, ebx
shl eax, 8
xor esi, eax
sub edi, esi
mov eax, esi
sub edi, ebx
shr eax, 0xd
xor edi, eax
sub ebx, edi
mov eax, edi
sub ebx, esi
shr eax, 0xc
xor ebx, eax
sub esi, edi
sub esi, ebx
mov eax, ebx
shl eax, 0x10
xor esi, eax
sub edi, esi
mov eax, esi
sub edi, ebx
shr eax, 5
xor edi, eax
sub ebx, edi
mov eax, edi
sub ebx, esi
shr eax, 3
xor ebx, eax
sub esi, edi
sub esi, ebx
mov ecx, ebx
shl ecx, 0xa
xor esi, ecx
sub edi, esi
shr esi, 0xf
sub edi, ebx
xor edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8