Function at 0x10014a20
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.0x10014a74.2
jmp dword [eax*4 + 0x10014cb4]
mov ebp, 0x14
jmp 0x10014a6b
mov ebp, 0x20
jmp 0x10014a6b
mov ebp, 0x30
jmp 0x10014a6b
mov ebp, 0x40
mov eax, dword [ecx + 4]
dec eax
cmp eax, 4
ja case.0x10014a74.2
jmp dword [eax*4 + 0x10014cc4]
mov dword [esp + 0x18], 2
jmp 0x10014aa1
mov dword [esp + 0x18], 3
jmp 0x10014aa1
mov dword [esp + 0x18], 4
jmp 0x10014aa1
mov dword [esp + 0x18], 5
cmp dword [ecx + 8], 1
je 0x10014ab4
pop edi
pop esi
pop ebp
mov eax, 0xfffff43e
pop ebx
add esp, 0x50
ret
cmp dword [ecx + 0x10], 0x8000
jbe 0x10014aca
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 0x10014ae3
pop edi
pop esi
pop ebp
mov eax, 0xfffff43d
pop ebx
add esp, 0x50
ret
push 1
push esi
call fcn.100356a0
mov ebx, eax
push 1
push esi
mov dword [esp + 0x20], ebx
call fcn.100356a0
add esp, 0x10
mov edx, eax
test ebx, ebx
mov dword [esp + 0x14], edx
je 0x10014ca9
test edx, edx
je 0x10014ca9
mov eax, dword [esp + 0x6c]
cmp byte [eax], 0
je 0x10014b25
mov esi, 0xfffff43d
jmp 0x10014bfe
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.10014500
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10014bf6
mov edi, dword [esp + 0x10]
test ebp, ebp
jbe 0x10014b7b
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 0x10014b72
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ebp
push edi
push ebx
push ecx
call fcn.10014500
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10014bf6
test ebx, ebx
jbe 0x10014bb6
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 0x10014ba9
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.1000dc60
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x10014bf6
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 0x10014c5a
mov esi, 0xfffff43d
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x10014c29
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.1003572d
mov edx, dword [esp + 0x18]
add esp, 4
test edx, edx
je 0x10014c50
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.1003572d
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 0x10014c70
cmp eax, ebx
jae 0x10014c70
mov cl, byte [eax + edx + 1]
inc eax
test cl, cl
je 0x10014c63
cmp byte [eax + edx], 1
jne 0x10014bf1
cmp eax, ebx
jae 0x10014bf1
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 0x10014bf6
mov esi, 0xbffff43c
jmp 0x10014bfe