Function at 0x100c4ca0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
push ebp
add eax, 0xfffffbef
push esi
push edi
cmp eax, 7
ja case.0x100c4cb5.1044
jmp dword [eax*4 + 0x100c4ed4]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
lea ecx, [esi + 2]
mov eax, ebp
sub esi, ebp
mov edi, 4
movzx edx, byte [esi + eax]
xor byte [eax], dl
movzx edx, byte [ecx - 1]
xor byte [eax + 1], dl
movzx edx, byte [ecx]
xor byte [eax + 2], dl
movzx edx, byte [ecx + 1]
xor byte [eax + 3], dl
add eax, 4
add ecx, 4
sub edi, 1
jne 0x100c4cd0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push esi
push ebp
push 0xa
push eax
call fcn.100b53c0
mov ecx, dword [esi]
mov dword [ebp], ecx
mov edx, dword [esi + 4]
mov dword [ebp + 4], edx
mov eax, dword [esi + 8]
add esp, 0x10
mov dword [ebp + 8], eax
mov ecx, dword [esi + 0xc]
pop edi
pop esi
mov dword [ebp + 0xc], ecx
xor eax, eax
pop ebp
ret
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
lea ecx, [esi + 2]
mov eax, ebp
sub esi, ebp
mov edi, 4
jmp 0x100c4d40
movzx edx, byte [eax + esi]
xor byte [eax], dl
movzx edx, byte [ecx - 1]
xor byte [eax + 1], dl
movzx edx, byte [ecx]
xor byte [eax + 2], dl
movzx edx, byte [ecx + 1]
xor byte [eax + 3], dl
add eax, 4
add ecx, 4
sub edi, 1
jne 0x100c4d40
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push esi
push ebp
push 0xc
push eax
call fcn.100b53c0
mov ecx, dword [esi]
mov dword [ebp], ecx
mov edx, dword [esi + 4]
mov dword [ebp + 4], edx
mov eax, dword [esi + 8]
add esp, 0x10
mov dword [ebp + 8], eax
mov ecx, dword [esi + 0xc]
pop edi
pop esi
mov dword [ebp + 0xc], ecx
xor eax, eax
pop ebp
ret
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
lea ecx, [esi + 2]
mov eax, ebp
sub esi, ebp
mov edi, 4
jmp 0x100c4db0
movzx edx, byte [eax + esi]
xor byte [eax], dl
movzx edx, byte [ecx - 1]
xor byte [eax + 1], dl
movzx edx, byte [ecx]
xor byte [eax + 2], dl
movzx edx, byte [ecx + 1]
xor byte [eax + 3], dl
add eax, 4
add ecx, 4
sub edi, 1
jne 0x100c4db0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push esi
push ebp
push 0xe
push eax
call fcn.100b53c0
mov ecx, dword [esi]
mov dword [ebp], ecx
mov edx, dword [esi + 4]
mov dword [ebp + 4], edx
mov eax, dword [esi + 8]
add esp, 0x10
mov dword [ebp + 8], eax
mov ecx, dword [esi + 0xc]
pop edi
pop esi
mov dword [ebp + 0xc], ecx
xor eax, eax
pop ebp
ret
mov eax, dword [esp + 0x18]
movzx edx, byte [eax]
mov esi, dword [esp + 0x20]
xor byte [esi], dl
movzx ecx, byte [eax + 1]
xor byte [esi + 1], cl
movzx edx, byte [eax + 2]
xor byte [esi + 2], dl
movzx ecx, byte [eax + 3]
xor byte [esi + 3], cl
movzx edx, byte [eax + 4]
xor byte [esi + 4], dl
movzx ecx, byte [eax + 5]
xor byte [esi + 5], cl
movzx edx, byte [eax + 6]
mov edi, dword [esp + 0x14]
xor byte [esi + 6], dl
mov ecx, dword [esp + 0x1c]
mov al, byte [eax + 7]
xor byte [esi + 7], al
push edi
push esi
push ecx
call fcn.100b4a10
mov edx, dword [edi]
add esp, 0xc
mov dword [esi], edx
mov eax, dword [edi + 4]
pop edi
mov dword [esi + 4], eax
pop esi
xor eax, eax
pop ebp
ret
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax]
mov esi, dword [esp + 0x20]
xor byte [esi], cl
movzx edx, byte [eax + 1]
xor byte [esi + 1], dl
movzx ecx, byte [eax + 2]
xor byte [esi + 2], cl
movzx edx, byte [eax + 3]
xor byte [esi + 3], dl
movzx ecx, byte [eax + 4]
xor byte [esi + 4], cl
movzx edx, byte [eax + 5]
xor byte [esi + 5], dl
movzx ecx, byte [eax + 6]
mov edi, dword [esp + 0x14]
xor byte [esi + 6], cl
movzx edx, byte [eax + 7]
mov eax, dword [esp + 0x1c]
xor byte [esi + 7], dl
push edi
push esi
push eax
call fcn.100b4250
mov ecx, dword [edi]
add esp, 0xc
mov dword [esi], ecx
mov edx, dword [edi + 4]
pop edi
mov dword [esi + 4], edx
pop esi
xor eax, eax
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffff445
pop ebp
ret