Function at 0x1023f5b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
mov ecx, dword [eax]
push esi
push edi
sub ecx, 2
je 0x1023f833
dec ecx
je 0x1023f720
dec ecx
jne 0x1023f902
mov edi, dword [ebp + 0xc]
mov dword [ebp + 8], ecx
lea ebx, [eax + 0x16bc]
mov edi, edi
movzx esi, cl
movzx ecx, byte [esi + eax + 0x1b8]
movzx edx, byte [edi + 0xc]
xor edx, ecx
movzx ecx, byte [edi + 8]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
movzx ecx, byte [edi + 4]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
movzx ecx, byte [edi]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
add esi, eax
mov ecx, dword [eax + edx*4 + 0x2bc]
mov dword [ebx - 0x400], ecx
mov ecx, dword [edi + 0xc]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [esi + 0xb8]
xor edx, ecx
mov ecx, dword [edi + 8]
movzx edx, byte [edx + eax + 0x1b8]
shr ecx, 8
movzx ecx, cl
xor edx, ecx
mov ecx, dword [edi + 4]
movzx edx, byte [edx + eax + 0x1b8]
shr ecx, 8
movzx ecx, cl
xor edx, ecx
mov ecx, dword [edi]
movzx edx, byte [edx + eax + 0xb8]
shr ecx, 8
movzx ecx, cl
xor edx, ecx
lea ebx, [ebx + 4]
mov ecx, dword [eax + edx*4 + 0x6bc]
mov dword [ebx - 4], ecx
movzx ecx, byte [esi + 0xb8]
movzx edx, byte [edi + 0xe]
xor edx, ecx
movzx ecx, byte [edi + 0xa]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
movzx ecx, byte [edi + 6]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
movzx ecx, byte [edi + 2]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
mov ecx, dword [eax + edx*4 + 0xabc]
mov dword [ebx + 0x3fc], ecx
movzx ecx, byte [esi + 0x1b8]
movzx edx, byte [edi + 0xf]
xor edx, ecx
movzx ecx, byte [edi + 0xb]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
movzx ecx, byte [edi + 7]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
movzx ecx, byte [edi + 3]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
mov ecx, dword [eax + edx*4 + 0xebc]
mov dword [ebx + 0x7fc], ecx
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x100
jb 0x1023f5e0
pop edi
pop esi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp + 8], ecx
lea ebx, [eax + 0x16bc]
mov edi, edi
movzx edx, byte [edi + 8]
movzx esi, cl
movzx ecx, byte [esi + eax + 0x1b8]
xor edx, ecx
movzx ecx, byte [edi + 4]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
movzx ecx, byte [edi]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
add esi, eax
mov ecx, dword [eax + edx*4 + 0x2bc]
mov dword [ebx - 0x400], ecx
mov ecx, dword [edi + 8]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [esi + 0x1b8]
xor edx, ecx
mov ecx, dword [edi + 4]
movzx edx, byte [edx + eax + 0x1b8]
shr ecx, 8
movzx ecx, cl
xor edx, ecx
mov ecx, dword [edi]
movzx edx, byte [edx + eax + 0xb8]
shr ecx, 8
movzx ecx, cl
xor edx, ecx
lea ebx, [ebx + 4]
mov ecx, dword [eax + edx*4 + 0x6bc]
mov dword [ebx - 4], ecx
movzx ecx, byte [esi + 0xb8]
movzx edx, byte [edi + 0xa]
xor edx, ecx
movzx ecx, byte [edi + 6]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
movzx ecx, byte [edi + 2]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
mov ecx, dword [eax + edx*4 + 0xabc]
mov dword [ebx + 0x3fc], ecx
movzx ecx, byte [esi + 0xb8]
movzx edx, byte [edi + 0xb]
xor edx, ecx
movzx ecx, byte [edi + 7]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
movzx ecx, byte [edi + 3]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
mov ecx, dword [eax + edx*4 + 0xebc]
mov dword [ebx + 0x7fc], ecx
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x100
jb 0x1023f730
pop edi
pop esi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp + 8], ecx
lea ebx, [eax + 0x16bc]
movzx edx, byte [edi + 4]
movzx esi, cl
movzx ecx, byte [esi + eax + 0xb8]
xor edx, ecx
movzx ecx, byte [edi]
movzx edx, byte [edx + eax + 0xb8]
xor edx, ecx
add esi, eax
mov ecx, dword [eax + edx*4 + 0x2bc]
mov dword [ebx - 0x400], ecx
mov ecx, dword [edi + 4]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [esi + 0x1b8]
xor edx, ecx
mov ecx, dword [edi]
movzx edx, byte [edx + eax + 0xb8]
shr ecx, 8
movzx ecx, cl
xor edx, ecx
lea ebx, [ebx + 4]
mov ecx, dword [eax + edx*4 + 0x6bc]
mov dword [ebx - 4], ecx
movzx ecx, byte [esi + 0xb8]
movzx edx, byte [edi + 6]
xor edx, ecx
movzx ecx, byte [edi + 2]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
mov ecx, dword [eax + edx*4 + 0xabc]
mov dword [ebx + 0x3fc], ecx
movzx ecx, byte [esi + 0x1b8]
movzx edx, byte [edi + 7]
xor edx, ecx
movzx ecx, byte [edi + 3]
movzx edx, byte [edx + eax + 0x1b8]
xor edx, ecx
mov ecx, dword [eax + edx*4 + 0xebc]
mov dword [ebx + 0x7fc], ecx
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x100
jb 0x1023f841
pop edi
pop esi
pop ebx
pop ebp
ret