Function at 0x10010ce0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x4f5832c]
push ebx
xor ebx, ebx
mov dword [ebp - 0x10], 2
mov dword [ebp - 8], ebx
cmp dword [eax + 0x24], 0x41424752
mov byte [ebp - 1], 0xff
mov byte [ebp - 2], bl
jne 0x10010d24
test dword [eax + 0x734], 0x1000000
mov byte [ebp - 1], bl
jne 0x10010d3c
mov dword [ebp - 0x10], ebx
mov ebx, 2
mov dword [ebp - 8], ebx
jmp 0x10010d3c
mov eax, dword [0x4f5832c]
test dword [eax + 0x738], 0x20000000
je 0x10010d3c
mov byte [ebp - 2], 0xff
mov byte [ebp - 1], bl
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x10010f08
mov eax, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
nop
mov edx, dword [ebp + 0x20]
dec ecx
mov dword [ebp + 0x1c], ecx
add edx, eax
mov ecx, dword [0x4f5832c]
xor esi, esi
test dword [ecx + 0x738], 0x80000000
mov ecx, edx
je 0x10010dd8
mov ebx, dword [ebp + 0x10]
sub ecx, eax
cmp eax, edx
mov dword [ebp - 0xc], esi
cmova ecx, esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x10010ea3
mov ch, byte [ebp - 1]
lea ecx, [ecx]
mov edx, dword [ebp - 8]
inc dword [ebp - 0xc]
mov cl, byte [edx + edi]
mov edx, dword [ebp - 0x10]
xor cl, ch
mov byte [eax], cl
inc eax
mov cl, byte [edi + 1]
xor cl, ch
mov byte [ebx], cl
inc ebx
mov cl, byte [edx + edi]
mov edx, dword [ebp + 0x18]
xor cl, ch
mov byte [esi], cl
inc esi
mov cl, byte [edi + 3]
add edi, 4
xor cl, ch
mov dword [ebp + 0x10], ebx
mov ebx, dword [ebp - 0x14]
mov byte [edx], cl
inc edx
cmp dword [ebp - 0xc], ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp + 0x18], edx
jb 0x10010d90
mov dword [ebp + 0x14], esi
jmp 0x10010eb1
sub ecx, eax
mov dword [ebp - 0xc], 0
cmp eax, edx
cmova ecx, esi
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x10010ea8
movzx ecx, byte [ebp - 2]
mov dword [ebp - 0x14], ecx
jmp 0x10010e00
movzx ebx, byte [ebx + edi]
movzx edi, byte [edi + 1]
xor ebx, ecx
mov edx, dword [ebp - 0x10]
xor edi, ecx
mov ecx, dword [ebp + 8]
movzx edx, byte [edx + ecx]
xor edx, dword [ebp - 0x14]
mov ecx, dword [ebx*4 + 0x4f56f18]
add ecx, dword [edi*4 + 0x4f5fb20]
lea esi, [edx*4]
shl edx, 0xf
add ecx, dword [esi + 0x4f56b18]
shr ecx, 0x10
mov byte [eax], cl
inc eax
sub edx, dword [ebx*4 + 0x4f57318]
sub edx, dword [edi*4 + 0x4f57b18]
mov ecx, dword [ebp + 0x10]
shr edx, 0x10
shl ebx, 0xf
mov byte [ecx], dl
inc ecx
sub ebx, dword [edi*4 + 0x4f57f18]
sub ebx, dword [esi + 0x4f57718]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov dword [ebp + 0x10], ecx
shr ebx, 0x10
mov byte [esi], bl
inc esi
mov cl, byte [edi + 3]
add edi, 4
xor cl, byte [ebp - 1]
mov ebx, dword [ebp - 8]
mov byte [edx], cl
inc edx
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp + 0x14], esi
cmp ecx, dword [ebp - 0x18]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x18], edx
mov dword [ebp + 8], edi
jb 0x10010e00
jmp 0x10010eae
mov edx, dword [ebp + 0x18]
jmp 0x10010eb1
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
add edi, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x28]
mov dword [ebp + 8], edi
test ecx, ecx
je 0x10010ef8
add ecx, eax
mov dword [ebp - 0x18], ecx
cmp eax, ecx
jae 0x10010ef8
mov edi, ecx
lea esp, [esp]
mov cl, byte [eax - 1]
mov byte [eax], cl
inc eax
mov cl, byte [ebx - 1]
mov byte [ebx], cl
inc ebx
mov cl, byte [esi - 1]
mov byte [esi], cl
inc esi
mov cl, byte [edx - 1]
mov byte [edx], cl
inc edx
cmp eax, edi
jb 0x10010ed0
mov edi, dword [ebp + 8]
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], esi
mov dword [ebp + 0x18], edx
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp - 8]
test ecx, ecx
jne 0x10010d50
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret