Function at 0x102468e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
mov esi, ecx
mov eax, edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x20], esi
push edi
mov ebx, dword [esi + 8]
mov dword [ebp - 8], ebx
test eax, eax
jne 0x102469d2
mov ebx, dword [ebp + 0xc]
lea eax, [ebx - 4]
push edx
push dword [eax]
mov dword [ebp - 0x24], eax
call fcn.10247b80
mov edi, dword [ebx]
mov esi, eax
and esi, 0xffff00ff
mov ecx, edi
and ecx, 0xffff00ff
mov edx, edi
add esi, ecx
and edx, 0xff00
movzx ecx, ax
and edi, 0xff00ff00
add edx, ecx
and eax, 0xff00ffff
xor esi, edx
add edi, eax
and esi, 0xff00ff
add esp, 8
xor esi, edi
mov dword [ebx], esi
mov ebx, 1
cmp dword [ebp - 8], ebx
jle 0x102469bd
nop dword [eax]
mov eax, dword [ebp - 0x24]
push 0
push dword [eax + ebx*4]
call fcn.10247b70
mov esi, dword [ebp + 0xc]
mov edi, eax
mov edx, edi
movzx eax, di
and edx, 0xffff00ff
and edi, 0xff00ffff
add esp, 8
mov esi, dword [esi + ebx*4]
mov ecx, esi
and ecx, 0xffff00ff
add edx, ecx
mov ecx, esi
and ecx, 0xff00
and esi, 0xff00ff00
add ecx, eax
add esi, edi
mov eax, dword [ebp + 0xc]
xor edx, ecx
and edx, 0xff00ff
xor edx, esi
mov dword [eax + ebx*4], edx
inc ebx
cmp ebx, dword [ebp - 8]
jl 0x10246960
jmp 0x102469c0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0xc], 1
lea edi, [eax + ebx*4]
jmp 0x102469d5
mov edi, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
mov eax, 1
mov edx, eax
mov dword [ebp - 4], edi
shl edx, cl
mov dword [ebp - 0x18], edx
dec edx
mov dword [ebp - 0x30], edx
not edx
shl eax, cl
and edx, ebx
dec eax
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0xc]
add eax, ebx
shr eax, cl
sar edx, cl
imul edx, eax
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 0x10]
lea esi, [eax + edx*4]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0xc], eax
jge 0x10246bdc
lea ecx, [ebx*4]
mov dword [ebp - 0x2c], ecx
mov eax, edi
sub eax, ecx
push eax
push dword [edi - 4]
call fcn.10247b60
mov edi, dword [edi]
mov ebx, eax
mov edx, edi
movzx ecx, bx
and edx, 0xff00
mov dword [ebp - 0x10], esi
add edx, ecx
and eax, 0xffff00ff
mov ecx, edi
and ebx, 0xff00ffff
and ecx, 0xffff00ff
and edi, 0xff00ff00
add ecx, eax
add edi, ebx
xor edx, ecx
mov esi, 1
and edx, 0xff00ff
add esp, 8
xor edx, edi
mov edi, dword [ebp - 4]
mov dword [edi], edx
cmp dword [ebp - 0x24], esi
jle 0x10246b24
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov eax, dword [ecx]
add ecx, 4
shr eax, 8
and eax, 0xf
mov dword [ebp - 0x10], ecx
mov ebx, dword [eax*4 + 0x1059fa00]
mov dword [ebp - 0x28], ebx
cmp edx, dword [ebp - 0x18]
jge 0x10246b19
mov eax, esi
sub eax, dword [ebp - 8]
lea ecx, [edi + eax*4]
mov eax, dword [ebp - 0x18]
sub eax, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], eax
push ecx
push dword [edi + esi*4 - 4]
call ebx
mov ebx, eax
add esp, 8
mov eax, dword [edi + esi*4]
mov edi, eax
and edi, 0xff00
movzx ecx, bx
add edi, ecx
mov edx, eax
mov ecx, ebx
and edx, 0xffff00ff
and ecx, 0xffff00ff
and eax, 0xff00ff00
add edx, ecx
and ebx, 0xff00ffff
mov ecx, dword [ebp - 0x1c]
xor edi, edx
add eax, ebx
and edi, 0xff00ff
mov ebx, dword [ebp - 0x28]
xor edi, eax
mov eax, dword [ebp - 4]
add ecx, 4
mov dword [ebp - 0x1c], ecx
mov dword [eax + esi*4], edi
inc esi
sub dword [ebp - 0x20], 1
mov edi, eax
jne 0x10246ab6
mov ecx, dword [ebp - 0x10]
xor edx, edx
cmp esi, dword [ebp - 0x24]
jl 0x10246a86
mov ecx, dword [ebp - 8]
cmp esi, ecx
jge 0x10246bb0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
shr eax, 8
and eax, 0xf
mov edx, dword [eax*4 + 0x1059fa00]
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x28], edx
lea eax, [edi + eax*4]
mov dword [ebp - 0x20], eax
jmp 0x10246b53
mov edi, dword [ebp - 4]
push eax
push dword [edi + esi*4 - 4]
call edx
mov ebx, eax
add esp, 8
mov eax, dword [edi + esi*4]
mov edi, eax
and edi, 0xff00
movzx ecx, bx
add edi, ecx
mov edx, eax
mov ecx, ebx
and edx, 0xffff00ff
and ecx, 0xffff00ff
and eax, 0xff00ff00
add edx, ecx
and ebx, 0xff00ffff
xor edi, edx
add eax, ebx
mov edx, dword [ebp - 0x28]
and edi, 0xff00ff
xor edi, eax
mov eax, dword [ebp - 4]
mov dword [eax + esi*4], edi
inc esi
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x20], eax
cmp esi, dword [ebp - 8]
jl 0x10246b50
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
inc eax
mov ecx, dword [ebp - 0x2c]
add edi, ecx
mov esi, dword [ebp - 0x14]
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], eax
test dword [ebp - 0x30], eax
jne 0x10246bd3
mov edx, dword [ebp - 0x34]
lea esi, [esi + edx*4]
mov dword [ebp - 0x14], esi
cmp eax, dword [ebp + 8]
jl 0x10246a23
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret