Function at 0x100118e0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x21]
mov byte [esp + 0x20], 0
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x74]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ecx]
add eax, 0xfffffffe
cmp eax, 3
ja case.0x10011934.2
jmp dword [eax*4 + 0x10011b74]
mov ebp, 0x14
jmp 0x1001192b
mov ebp, 0x20
jmp 0x1001192b
mov ebp, 0x30
jmp 0x1001192b
mov ebp, 0x40
mov eax, dword [ecx + 4]
dec eax
cmp eax, 4
ja case.0x10011934.2
jmp dword [eax*4 + 0x10011b84]
mov dword [esp + 0x18], 2
jmp 0x10011961
mov dword [esp + 0x18], 3
jmp 0x10011961
mov dword [esp + 0x18], 4
jmp 0x10011961
mov dword [esp + 0x18], 5
cmp dword [ecx + 8], 1
je 0x10011974
pop edi
pop esi
pop ebp
mov eax, 0xfffff43e
pop ebx
add esp, 0x50
ret
cmp dword [ecx + 0x10], 0x8000
jbe 0x1001198a
pop edi
pop esi
pop ebp
mov eax, 0xfffff43d
pop ebx
add esp, 0x50
ret
mov esi, dword [esp + 0x70]
lea eax, [ebp + ebp + 2]
cmp esi, eax
jae 0x100119a3
pop edi
pop esi
pop ebp
mov eax, 0xfffff43d
pop ebx
add esp, 0x50
ret
push 1
push esi
call fcn.10032980
mov ebx, eax
push 1
push esi
mov dword [esp + 0x20], ebx
call fcn.10032980
add esp, 0x10
mov edx, eax
test ebx, ebx
mov dword [esp + 0x14], edx
je 0x10011b69
test edx, edx
je 0x10011b69
mov eax, dword [esp + 0x6c]
cmp byte [eax], 0
je 0x100119e5
mov esi, 0xfffff43d
jmp 0x10011abe
lea ecx, [esi - 1]
lea esi, [eax + 1]
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebx + ebp]
mov ebx, dword [esp + 0x70]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
sub ebx, ebp
dec ebx
push ecx
push ebx
push eax
push ebp
push edx
call fcn.100113e0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10011ab6
mov edi, dword [esp + 0x10]
test ebp, ebp
jbe 0x10011a3b
mov esi, dword [esp + 0x14]
mov eax, edi
sub esi, edi
mov ecx, ebp
mov dl, byte [esi + eax]
xor byte [eax], dl
inc eax
dec ecx
jne 0x10011a32
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ebp
push edi
push ebx
push ecx
call fcn.100113e0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10011ab6
test ebx, ebx
jbe 0x10011a76
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, ebx
lea eax, [edx + ebp]
sub esi, eax
mov cl, byte [esi + eax]
mov dl, byte [eax]
xor dl, cl
mov byte [eax], dl
inc eax
dec edi
jne 0x10011a69
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [eax + 0xc]
push ecx
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.1000dd80
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10011ab6
mov edx, dword [esp + 0x10]
mov ecx, ebp
add edx, ebp
lea edi, [esp + 0x20]
mov esi, edx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x10011b1a
mov esi, 0xfffff43d
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x10011ae9
mov ecx, dword [esp + 0x70]
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov al, byte [ebx]
mov byte [ebx], al
push ebx
call fcn.10032abd
mov edx, dword [esp + 0x18]
add esp, 4
test edx, edx
je 0x10011b10
mov ecx, dword [esp + 0x70]
xor eax, eax
mov ebx, ecx
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, ebx
and ecx, 3
rep stosb byte es:[edi], al
mov cl, byte [edx]
mov byte [edx], cl
push edx
call fcn.10032abd
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
mov cl, byte [edx + ebp]
mov eax, ebp
test cl, cl
jne 0x10011b30
cmp eax, ebx
jae 0x10011b30
mov cl, byte [eax + edx + 1]
inc eax
test cl, cl
je 0x10011b23
cmp byte [eax + edx], 1
jne 0x10011ab1
cmp eax, ebx
jae 0x10011ab1
mov ecx, dword [esp + 0x68]
inc eax
mov edi, dword [esp + 0x64]
sub ebx, eax
mov dword [ecx], ebx
mov ecx, ebx
lea esi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
jmp 0x10011ab6
mov esi, 0xbffff43c
jmp 0x10011abe