Function at 0x100305ce
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 0xc]
cmp eax, 0xc
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, 0x9e3779b9
mov ebx, edi
mov dword [ebp - 4], eax
jb 0x100306d7
push 0xc
pop ecx
xor edx, edx
div ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 8], eax
movzx eax, byte [ecx + 7]
movzx edx, byte [ecx + 6]
shl eax, 8
add eax, edx
movzx edx, byte [ecx + 5]
shl eax, 8
add eax, edx
movzx edx, byte [ecx + 4]
add edx, edi
shl eax, 8
lea edi, [edx + eax]
movzx eax, byte [ecx + 0xb]
movzx edx, byte [ecx + 0xa]
shl eax, 8
add eax, edx
movzx edx, byte [ecx + 9]
shl eax, 8
add eax, edx
movzx edx, byte [ecx + 8]
add edx, esi
shl eax, 8
lea esi, [edx + eax]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
sub edx, edi
sub edx, esi
mov eax, esi
shr eax, 0xd
add edx, ebx
xor edx, eax
sub edi, edx
sub edi, esi
mov eax, edx
shl eax, 8
xor edi, eax
sub esi, edi
sub esi, edx
mov eax, edi
shr eax, 0xd
xor esi, eax
sub edx, edi
sub edx, esi
mov eax, esi
shr eax, 0xc
xor edx, eax
sub edi, edx
sub edi, esi
mov eax, edx
shl eax, 0x10
xor edi, eax
sub esi, edi
sub dword [ebp - 4], 0xc
sub esi, edx
mov eax, edi
shr eax, 5
xor esi, eax
sub edx, edi
mov eax, esi
shr eax, 3
sub edx, esi
xor edx, eax
mov ebx, edx
sub edi, ebx
sub edi, esi
mov eax, ebx
shl eax, 0xa
xor edi, eax
sub esi, edi
mov eax, edi
sub esi, ebx
shr eax, 0xf
xor esi, eax
add ecx, 0xc
dec dword [ebp - 8]
jne 0x100305fc
jmp 0x100306da
mov ecx, dword [ebp + 8]
add esi, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
dec eax
cmp eax, 0xa
ja case.default.0x100306ea
jmp dword [eax*4 + 0x100307ea]
movzx eax, byte [ecx + 0xa]
shl eax, 0x18
add esi, eax
movzx eax, byte [ecx + 9]
shl eax, 0x10
add esi, eax
movzx eax, byte [ecx + 8]
shl eax, 8
add esi, eax
movzx eax, byte [ecx + 7]
movzx edx, byte [ecx + 6]
shl eax, 8
add eax, edx
movzx edx, byte [ecx + 5]
shl eax, 8
add eax, edx
movzx edx, byte [ecx + 4]
shl eax, 8
add edx, edi
lea edi, [edx + eax]
jmp case.0x100306ea.4
movzx eax, byte [ecx + 6]
shl eax, 0x10
add edi, eax
movzx eax, byte [ecx + 5]
shl eax, 8
add edi, eax
movzx eax, byte [ecx + 4]
add edi, eax
movzx eax, byte [ecx + 3]
movzx edx, byte [ecx + 2]
shl eax, 8
add eax, edx
movzx edx, byte [ecx + 1]
movzx ecx, byte [ecx]
shl eax, 8
add eax, edx
shl eax, 8
add ecx, ebx
lea ebx, [ecx + eax]
jmp case.default.0x100306ea
movzx eax, byte [ecx + 2]
shl eax, 0x10
add ebx, eax
movzx eax, byte [ecx + 1]
shl eax, 8
add ebx, eax
movzx eax, byte [ecx]
add ebx, eax
sub ebx, edi
sub ebx, esi
mov eax, esi
shr eax, 0xd
xor ebx, eax
sub edi, ebx
sub edi, esi
mov eax, ebx
shl eax, 8
xor edi, eax
sub esi, edi
sub esi, ebx
mov eax, edi
shr eax, 0xd
xor esi, eax
sub ebx, edi
sub ebx, esi
mov eax, esi
shr eax, 0xc
xor ebx, eax
sub edi, ebx
sub edi, esi
mov eax, ebx
shl eax, 0x10
xor edi, eax
sub esi, edi
mov eax, edi
sub esi, ebx
shr eax, 5
xor esi, eax
sub ebx, edi
mov eax, esi
mov ecx, eax
sub ebx, eax
shr ecx, 3
xor ebx, ecx
sub edi, ebx
sub edi, eax
mov ecx, ebx
shl ecx, 0xa
xor edi, ecx
sub eax, edi
sub eax, ebx
shr edi, 0xf
xor eax, edi
pop edi
pop esi
pop ebx
leave
ret