Function at 0x11c0e30
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov ebp, dword [esp + 0x40]
movzx eax, word [ebp]
mov dword [esp], 0x595af517
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 3
ja 0x11c0eaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx]
mov esi, ecx
xor esi, 0xe5f98ef
and ecx, 0xe5f98ef
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov edx, ecx
not edx
and edx, 0xab
and ecx, 0x54
sub ecx, edx
mov edx, dword [esp + 4]
mov byte [esp + edx], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 4
jb 0x11c0e60
xor ecx, ecx
cmp dword [esp], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x11cbf14]
mov edx, dword [ebp + 0x3c]
mov esi, dword [ebp + edx]
mov dword [esp + 8], 0xc9ca707c
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 6
ja 0x11c0f31
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 8]
mov ebx, ecx
xor ebx, 0x9933bf33
and ecx, 0x1933bf33
lea ecx, [ebx + ecx*2]
lea ebx, [ecx + edi]
and ecx, edi
add ecx, ecx
sub ebx, ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 4]
inc cl
mov edi, dword [esp]
mov byte [esp + edi + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 7
jb 0x11c0ef0
xor ecx, ecx
cmp esi, dword [esp + 8]
setne cl
jmp dword [ecx*4 + 0x11cbf1c]
mov edi, dword [ebp + edx + 0x78]
mov esi, dword [ebp + edx + 0x7c]
test esi, esi
sete cl
test edi, edi
sete dl
or dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x11cbf24]
mov dword [esp + 0x14], esi
mov eax, dword [ebp + edi + 0x20]
add eax, ebp
mov dword [esp + 0x24], eax
mov eax, dword [ebp + edi + 0x24]
add eax, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + edi + 0x1c]
add eax, ebp
mov dword [esp + 0x18], eax
xor ebx, ebx
xor eax, eax
cmp ebx, dword [ebp + edi + 0x18]
setb al
mov dword [esp + 0x20], 1
mov dword [esp + 0x10], edi
jmp dword [eax*4 + 0x11cbf2c]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ebx
mov edx, dword [eax + ebx*4]
add edx, ebp
mov ebx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
cmp byte [edx + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x11c0fc0
mov dword [esp + 8], 0x969a9401
lea eax, [esp + 0xc]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x11c102e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 8]
add eax, 0xfc0d3e5b
xor eax, esi
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x39
mov esi, dword [esp]
mov byte [esp + esi + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x11c1000
test ebx, ebx
je 0x11c1050
mov edi, dword [esp + 8]
lea eax, [ebx - 1]
cmp eax, 3
jae 0x11c1060
mov esi, 0xb14a5e2
jmp 0x11c109f
mov eax, 0xb14a5e2
jmp 0x11c10c0
mov eax, ecx
and eax, 0xfffffffc
mov esi, 0xb14a5e2
nop
nop
nop
nop
nop
nop
movsx ebp, byte [edx]
xor ebp, esi
imul ebp, edi
movsx esi, byte [edx + 1]
xor esi, ebp
imul esi, edi
movsx ebp, byte [edx + 2]
xor ebp, esi
imul ebp, edi
movsx esi, byte [edx + 3]
add edx, 4
xor esi, ebp
imul esi, edi
add eax, 0xfffffffc
jne 0x11c1070
mov ebp, dword [esp + 0x40]
mov eax, esi
test bl, 3
je 0x11c10c0
and ecx, 3
xor ebx, ebx
nop
nop
nop
nop
nop
movsx eax, byte [edx + ebx]
xor eax, esi
imul eax, edi
inc ebx
mov esi, eax
cmp ecx, ebx
jne 0x11c10b0
mov ecx, dword [0x11cbf40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [esp + 0x20]
jmp dword [ecx*4 + 0x11cbf6c]
mov ecx, dword [0x11cbf7c]
nop
jmp ecx