Function at 0x1011e110
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xb0
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0xac], eax
cmp dword [ecx + 0x48], 3
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
push ebx
mov ebx, dword [esp + 0xd4]
push ebp
mov ebp, dword [esp + 0xbc]
push esi
mov esi, dword [esp + 0xd4]
push edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], ebx
jne 0x1011e188
push ebx
mov ebx, dword [esp + 0xe0]
push ebx
push esi
mov esi, dword [esp + 0xe0]
push esi
push edx
push eax
push edi
push ebp
call fcn.1011df10
jmp 0x1011e38c
push eax
call fcn.10017050
mov ebx, eax
mov eax, dword [esp + 0xd8]
add eax, ebx
mov dword [esp + 0x1c], eax
add eax, 0x14
add esp, 4
cmp eax, 0x80
ja 0x1011e38c
mov ecx, dword [esp + 0x10]
lea eax, [edi + 1]
cdq
sub eax, edx
mov esi, eax
sar esi, 1
push ebx
sub edi, esi
push ecx
lea edx, [esp + 0x58]
add edi, ebp
push edx
mov dword [esp + 0x2c], edi
call sub.MSVCR80.dll_memcpy
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea edx, [esp + ebx + 0x64]
push edx
call sub.MSVCR80.dll_memcpy
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x5c]
push ecx
push edx
lea eax, [esp + 0x74]
push eax
push esi
push ebp
call fcn.10085510
mov ebx, dword [esp + 0x10c]
add esp, 0x30
test ebx, ebx
jle 0x1011e2a0
mov edi, dword [esp + 0x24]
mov eax, 0x10
sub eax, edi
mov dword [esp + 0x1c], eax
lea eax, [ebx - 1]
shr eax, 4
add eax, 1
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x2c]
push edx
add eax, 0x10
push eax
lea eax, [esp + 0x4c]
push eax
push esi
push ebp
call fcn.10085510
mov ecx, dword [esp + 0x2c]
push ecx
lea edx, [esp + 0x5c]
push edx
push 0x10
mov eax, edx
push eax
push esi
push ebp
call fcn.10085510
mov ecx, dword [esp + 0x4c]
add ecx, edi
add esp, 0x30
cmp ecx, ebx
jle 0x1011e2f6
mov eax, ebx
and eax, reloc.WS2_32.dll_ntohs
jns 0x1011e283
dec eax
or eax, 0xfffffff0
inc eax
test eax, eax
jle 0x1011e296
push eax
lea edx, [esp + 0x2c]
push edx
push edi
call sub.MSVCR80.dll_memcpy
add esp, 0xc
add edi, 0x10
sub dword [esp + 0x10], 1
jne 0x1011e230
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x40]
push ecx
push edi
lea edx, [esp + 0x5c]
push edx
push esi
push eax
call fcn.10085540
add esp, 0x18
test ebx, ebx
jle 0x1011e38c
mov ebp, dword [esp + 0x24]
lea ecx, [ebx - 1]
mov eax, 0xcccccccd
mul ecx
add edi, 0x14
mov dword [esp + 0x18], edi
mov edi, 0x14
sub edi, ebp
shr edx, 4
add edx, 1
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], edx
jmp 0x1011e304
mov eax, 0x10
jmp 0x1011e287
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push edx
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x48]
push edx
push esi
push eax
call fcn.10085540
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x58]
push edx
push 0x14
mov eax, edx
push eax
push esi
push ecx
call fcn.10085540
add edi, ebp
add esp, 0x30
cmp edi, ebx
jle 0x1011e364
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
mov edi, ebx
sub edi, edx
jmp 0x1011e369
mov edi, 0x14
xor eax, eax
test edi, edi
jle 0x1011e37e
nop
mov cl, byte [esp + eax + 0x28]
xor byte [eax + ebp], cl
add eax, 1
cmp eax, edi
jl 0x1011e370
add ebp, 0x14
sub dword [esp + 0x10], 1
jne 0x1011e300
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1018f87e
add esp, 0xb0
ret 0x20