Function at 0x10001000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov edx, dword ss:[ebp + 0xc]
push ebx
push esi
mov esi, dword ss:[ebp + 8]
mov eax, edx
mov ecx, 0x9e3779b9
push edi
mov edi, dword ss:[ebp + 0x10]
mov dword ss:[ebp - 4], eax
mov ebx, ecx
cmp edx, 0xc
jb 0x1000113a
mov eax, 0xaaaaaaab
mul edx
shr edx, 3
mov dword ss:[ebp - 8], edx
mov dword ss:[ebp + 0x10], esi
jmp 0x10001043
movzx esi, byte ds:[esi + 7]
mov edx, dword ss:[ebp + 0x10]
shl esi, 8
movzx eax, byte ds:[edx + 6]
add esi, eax
movzx eax, byte ds:[edx + 5]
shl esi, 8
add esi, eax
movzx eax, byte ds:[edx + 4]
add ecx, eax
shl esi, 8
add ecx, esi
mov esi, edx
movzx edx, byte ds:[esi + 0xb]
movzx eax, byte ds:[esi + 0xa]
shl edx, 8
add edx, eax
movzx eax, byte ds:[esi + 9]
shl edx, 8
add edx, eax
movzx eax, byte ds:[esi + 8]
add edi, eax
movzx eax, byte ds:[esi + 2]
shl edx, 8
add edi, edx
movzx edx, byte ds:[esi + 3]
shl edx, 8
add edx, eax
movzx eax, byte ds:[esi + 1]
shl edx, 8
add edx, eax
movzx eax, byte ds:[esi]
shl edx, 8
add edx, eax
sub edx, edi
sub edx, ecx
sub ecx, edi
mov eax, edi
shr eax, 0xd
add ebx, edx
xor ebx, eax
sub ecx, ebx
mov eax, ebx
shl eax, 8
xor ecx, eax
sub edi, ecx
sub edi, ebx
mov eax, ecx
shr eax, 0xd
xor edi, eax
sub ebx, edi
sub ebx, ecx
mov eax, edi
shr eax, 0xc
xor ebx, eax
sub ecx, edi
sub ecx, ebx
mov eax, ebx
shl eax, 0x10
xor ecx, eax
sub edi, ecx
sub edi, ebx
mov eax, ecx
shr eax, 5
xor edi, eax
sub ebx, edi
mov eax, edi
shr eax, 3
sub ebx, ecx
xor ebx, eax
sub ecx, edi
mov eax, ebx
shl eax, 0xa
sub ecx, ebx
xor ecx, eax
sub edi, ecx
mov eax, ecx
sub edi, ebx
shr eax, 0xf
xor edi, eax
add esi, 0xc
mov eax, dword ss:[ebp - 4]
sub eax, 0xc
dec dword ss:[ebp - 8]
mov dword ss:[ebp + 0x10], esi
mov dword ss:[ebp - 4], eax
jne 0x10001043
mov edx, dword ss:[ebp + 0xc]
dec eax
add edi, edx
cmp eax, 0xa
ja 0x100011cc
test eax, eax
je 0x100011c6
dec eax
je 0x100011bc
dec eax
je 0x100011b2
dec eax
je 0x100011a8
dec eax
je 0x100011a1
dec eax
je 0x10001197
dec eax
je 0x1000118d
dec eax
je 0x10001183
dec eax
je 0x10001179
dec eax
je 0x1000116f
movzx eax, byte ds:[esi + 0xa]
shl eax, 0x18
add edi, eax
movzx eax, byte ds:[esi + 9]
shl eax, 0x10
add edi, eax
movzx eax, byte ds:[esi + 8]
shl eax, 8
add edi, eax
movzx eax, byte ds:[esi + 7]
shl eax, 0x18
add ecx, eax
movzx eax, byte ds:[esi + 6]
shl eax, 0x10
add ecx, eax
movzx eax, byte ds:[esi + 5]
shl eax, 8
add ecx, eax
movzx eax, byte ds:[esi + 4]
add ecx, eax
movzx eax, byte ds:[esi + 3]
shl eax, 0x18
add ebx, eax
movzx eax, byte ds:[esi + 2]
shl eax, 0x10
add ebx, eax
movzx eax, byte ds:[esi + 1]
shl eax, 8
add ebx, eax
movzx eax, byte ds:[esi]
add ebx, eax
sub ebx, edi
sub ebx, ecx
sub ecx, edi
mov eax, edi
shr eax, 0xd
xor ebx, eax
sub ecx, ebx
mov eax, ebx
shl eax, 8
xor ecx, eax
sub edi, ecx
sub edi, ebx
mov eax, ecx
shr eax, 0xd
xor edi, eax
sub ebx, edi
sub ebx, ecx
mov eax, edi
shr eax, 0xc
xor ebx, eax
sub ecx, edi
sub ecx, ebx
mov eax, ebx
shl eax, 0x10
xor ecx, eax
sub edi, ecx
sub edi, ebx
mov eax, ecx
shr eax, 5
xor edi, eax
sub ebx, edi
sub ebx, ecx
mov eax, edi
shr eax, 3
xor ebx, eax
sub ecx, edi
sub ecx, ebx
mov edx, ebx
shl edx, 0xa
xor ecx, edx
sub edi, ecx
sub edi, ebx
shr ecx, 0xf
xor edi, ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc