Function at 0xeb16c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov esi, ecx
mov edi, eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0xeb16da
push eax
call fcn.00f325e4
add esp, 4
mov eax, dword [esi + 4]
add eax, eax
add eax, eax
push ebx
push eax
call fcn.00f32640
mov edx, dword [esi + 4]
add edx, edx
add edx, edx
add esp, 4
xor ecx, ecx
mov dword [esi + 0x10], eax
test edx, edx
jle 0xeb1735
jmp 0xeb1700
mov ebx, ecx
and ebx, 0x80000003
jns 0xeb170f
dec ebx
or ebx, 0xfffffffc
inc ebx
imul ebx, dword [esi + 4]
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov dl, byte [ecx + edi]
sar eax, 2
add ebx, eax
mov eax, dword [esi + 0x10]
mov byte [ebx + eax], dl
mov eax, dword [esi + 4]
add eax, eax
inc ecx
add eax, eax
cmp ecx, eax
jl 0xeb1700
xor edi, edi
xor eax, eax
cmp dword [esi + 4], eax
jle 0xeb175c
mov edi, edi
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
imul ecx, edi
add ecx, eax
add ecx, dword [esi + 0x10]
lea edx, [edx + eax*4]
mov dl, byte [edx + edi]
xor byte [ecx], dl
inc eax
cmp eax, dword [esi + 4]
jl 0xeb1740
inc edi
cmp edi, 4
jl 0xeb1737
cmp dword [esi], 1
mov dword [ebp - 4], 1
jle 0xeb1949
mov eax, dword [esi + 0x10]
movzx ecx, byte [eax]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
mov eax, dword [esi + 4]
add eax, dword [esi + 0x10]
movzx ecx, byte [eax]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x10]
movzx ecx, byte [eax + edx*2]
lea eax, [eax + edx*2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and edx, 0xfffffff0
and ecx, 0xf
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
add eax, dword [esi + 0x10]
movzx ecx, byte [eax]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and edx, 0xfffffff0
and ecx, 0xf
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
call fcn.00eb13b0
call fcn.00eb1460
xor edx, edx
xor ecx, ecx
cmp dword [esi + 4], ecx
jle 0xeb1934
lea esp, [esp]
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0xc]
mov edi, eax
imul eax, dword [ebp - 4]
imul edi, edx
add eax, ecx
add edi, ecx
add edi, dword [esi + 0x10]
lea eax, [ebx + eax*4]
mov al, byte [eax + edx]
xor byte [edi], al
inc ecx
cmp ecx, dword [esi + 4]
jl 0xeb1910
inc edx
cmp edx, 4
jl 0xeb1902
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [esi]
jl 0xeb1772
mov eax, dword [esi + 0x10]
movzx ecx, byte [eax]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
mov eax, dword [esi + 4]
add eax, dword [esi + 0x10]
movzx ecx, byte [eax]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
mov edx, dword [esi + 4]
mov eax, dword [esi + 0x10]
movzx ecx, byte [eax + edx*2]
lea eax, [eax + edx*2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and edx, 0xfffffff0
and ecx, 0xf
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
mov eax, dword [esi + 4]
lea eax, [eax + eax*2]
add eax, dword [esi + 0x10]
movzx ecx, byte [eax]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax], cl
movzx ecx, byte [eax + 1]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 1], cl
movzx ecx, byte [eax + 2]
mov edx, ecx
and ecx, 0xf
and edx, 0xfffffff0
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 2], cl
movzx ecx, byte [eax + 3]
mov edx, ecx
and edx, 0xfffffff0
and ecx, 0xf
movzx ecx, byte [edx + ecx + str.cw]
mov byte [eax + 3], cl
call fcn.00eb13b0
mov edx, dword [esi]
mov dword [ebp - 4], edx
xor edx, edx
lea esp, [esp]
xor ecx, ecx
cmp dword [esi + 4], ecx
jle 0xeb1b0b
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0xc]
mov edi, eax
imul eax, dword [ebp - 4]
imul edi, edx
add eax, ecx
add edi, ecx
add edi, dword [esi + 0x10]
lea eax, [ebx + eax*4]
mov al, byte [eax + edx]
xor byte [edi], al
inc ecx
cmp ecx, dword [esi + 4]
jl 0xeb1ae7
inc edx
cmp edx, 4
jl 0xeb1ae0
mov edx, dword [esi + 4]
add edx, edx
add edx, edx
xor ecx, ecx
pop ebx
test edx, edx
jle 0xeb1b58
nop
mov edi, ecx
and edi, 0x80000003
jns 0xeb1b2f
dec edi
or edi, 0xfffffffc
inc edi
imul edi, dword [esi + 4]
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
add edi, eax
mov eax, dword [esi + 0x10]
mov dl, byte [edi + eax]
mov eax, dword [ebp + 8]
mov byte [ecx + eax], dl
mov edx, dword [esi + 4]
add edx, edx
inc ecx
add edx, edx
cmp ecx, edx
jl 0xeb1b20
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4