Function at 0x100c7aa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x1022b584]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x28], edi
mov dword [edi], 1
cmp eax, 1
je 0x100c7ae0
test eax, eax
je 0x100c7ae0
cmp eax, 2
je 0x100c7ae0
or eax, 0xffffffff
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101799ce
mov esp, ebp
pop ebp
ret
mov dword [edi + 4], eax
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100c7b03
cmp eax, 1
je 0x100c7b03
mov eax, 0xfffffffe
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101799ce
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x1c]
mov dword [edi + 8], eax
test edx, edx
je 0x100c7b1f
xor ecx, ecx
nop
mov al, byte [ecx + edx]
mov byte [edi + ecx + 0xc], al
inc ecx
cmp ecx, 0x10
jb 0x100c7b10
jmp 0x100c7b26
xorps xmm0, xmm0
movups xmmword [edi + 0xc], xmm0
mov eax, dword [ebp + 0x18]
push ebx
sub eax, 0
je 0x100c7b6a
sub eax, 1
je 0x100c7b5c
sub eax, 1
je 0x100c7b4e
pop ebx
mov eax, 0xfffffffd
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101799ce
mov esp, ebp
pop ebp
ret
mov ebx, 0x20
mov dword [edi + 0x1c], 0xe
jmp 0x100c7b76
mov ebx, 0x18
mov dword [edi + 0x1c], 0xc
jmp 0x100c7b76
mov ebx, 0x10
mov dword [edi + 0x1c], 0xa
cmp dword [ebp + 0x14], 0
jne 0x100c7b91
pop ebx
mov eax, 0xfffffffc
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101799ce
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x14]
xor eax, eax
push esi
mov ecx, eax
lea edx, [ebp - 0x24]
and ecx, 3
mov esi, eax
add edx, ecx
shr esi, 2
mov cl, byte [eax + edi]
inc eax
mov byte [edx + esi*4], cl
cmp eax, ebx
jb 0x100c7b97
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
push eax
push edi
call fcn.100c7cd0
add esp, 8
cmp dword [edi + 8], 1
jne 0x100c7ca9
mov ebx, 1
cmp dword [edi + 0x1c], ebx
jbe 0x100c7ca9
lea esi, [edi + 0x32]
nop dword [eax]
movzx eax, byte [esi + 1]
lea esi, [esi + 0x10]
movzx ecx, byte [esi - 0x11]
inc ebx
mov edx, dword [eax*4 + 0x1022b0d8]
xor edx, dword [ecx*4 + 0x1022a8d8]
movzx eax, byte [esi - 0x10]
xor edx, dword [eax*4 + 0x1022acd8]
movzx eax, byte [esi - 0x12]
xor edx, dword [eax*4 + 0x1022a4d8]
mov dword [esi - 0x12], edx
movzx eax, byte [esi - 0xb]
movzx ecx, byte [esi - 0xc]
mov edx, dword [eax*4 + 0x1022b0d8]
xor edx, dword [ecx*4 + 0x1022acd8]
movzx eax, byte [esi - 0xd]
xor edx, dword [eax*4 + 0x1022a8d8]
movzx eax, byte [esi - 0xe]
xor edx, dword [eax*4 + 0x1022a4d8]
mov dword [esi - 0xe], edx
movzx eax, byte [esi - 7]
movzx ecx, byte [esi - 8]
mov edx, dword [eax*4 + 0x1022b0d8]
xor edx, dword [ecx*4 + 0x1022acd8]
movzx eax, byte [esi - 9]
xor edx, dword [eax*4 + 0x1022a8d8]
movzx eax, byte [esi - 0xa]
xor edx, dword [eax*4 + 0x1022a4d8]
mov dword [esi - 0xa], edx
movzx eax, byte [esi - 3]
movzx ecx, byte [esi - 4]
mov edx, dword [eax*4 + 0x1022b0d8]
movzx eax, byte [esi - 5]
xor edx, dword [ecx*4 + 0x1022acd8]
xor edx, dword [eax*4 + 0x1022a8d8]
movzx eax, byte [esi - 6]
xor edx, dword [eax*4 + 0x1022a4d8]
mov dword [esi - 6], edx
cmp ebx, dword [edi + 0x1c]
jb 0x100c7be0
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
pop ebx
mov dword [edi], 0
xor ecx, ebp
pop edi
call fcn.101799ce
mov esp, ebp
pop ebp
ret