Function at 0x481010
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
xchg esp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 0x10]
mov dword [esp - 0x40], 0x68129143
push edi
lea ecx, [esi + 2]
lea ecx, [ecx]
mov ax, word [esi]
xchg esi, esi
add esi, 2
test ax, ax
jne 0x48102a
mov ebp, ebp
mov edi, dword [ebp + 0xc]
sub esi, ecx
sar esi, 1
xor ecx, ecx
mov dword [esp - 0x40], edi
mov edx, 0x6bf2d57e
sub edx, 0x46840c57
add edx, 0x1f31c8e2
xor edx, 0x3d0fed8b
mov esp, esp
xor edx, 0x2cf23fc7
add edx, 0x1d5c305d
sub edx, 0x72b970a0
mov dword [esp - 0x20], 0x4a853ba9
mov eax, dword [edi + 4]
add eax, esi
mov dword [ebp - 4], eax
inc eax
xchg edx, edx
mul edx
seto cl
neg ecx
or ecx, eax
mov dword [esp - 0x30], edx
push ecx
call fcn.0048b720
mov dword [ebp + 0xc], eax
mov dword [esp - 0x10], 0x24265f99
add esp, 4
mov eax, dword [edi + 4]
xor ebx, ebx
mov edi, edi
test eax, eax
je 0x481111
mov edx, edi
cmp eax, 2
mov dword [esp - 0x44], ebx
jbe 0x4810bd
mov edx, dword [edi]
mov ecx, ebx
xchg esi, esi
mov eax, 0x304f0e11
add eax, 0x2ad70df7
xor eax, 0x2261ab36
xchg esp, esp
sub eax, 0x654946d3
xor eax, 0x577d097
add eax, 0x31da0b2
mov dword [esp - 0x10], 0x4c6c50b6
xor eax, 0x6ad965ee
and ecx, 3
shl ecx, 3
mov ebx, ebx
sar eax, cl
mov ecx, dword [ebp + 0xc]
cbw
xchg esp, esp
xor ax, word [edx + ebx*2]
mov word [ecx + ebx*2], ax
inc ebx
mov eax, dword [edi + 4]
xchg edx, edx
cmp ebx, eax
jb 0x4810b0
mov ebx, dword [ebp + 0xc]
mov ebp, ebp
xor edx, edx
test esi, esi
je 0x481145
mov dword [esp - 0x30], 0xd7c1ea7
mov eax, dword [ebp + 0x10]
mov ecx, dword [edi + 4]
add ecx, edx
mov ax, word [eax + edx*2]
mov dword [esp - 0x38], ebx
inc edx
mov word [ebx + ecx*2], ax
cmp edx, esi
jb 0x481124
mov dword [esp - 0x38], 0x23f1c0b4
mov eax, dword [ebp - 4]
xor ecx, ecx
mov edi, dword [ebp + 8]
mov edx, ebx
mov dword [esp - 0x18], esi
mov word [ebx + eax*2], cx
mov dword [edi], ecx
lea ecx, [edx + 2]
xchg ebp, ebp
mov edi, edi
mov ax, word [edx]
add edx, 2
xchg ecx, ecx
test ax, ax
jne 0x481160
sub edx, ecx
mov esi, edi
mov ebx, ebx
sar edx, 1
mov dword [edi + 4], edx
cmp edx, 2
jbe 0x4811d6
mov dword [esp - 0x3c], ebx
xor ecx, ecx
mov eax, edx
mov edx, 0x40c5e603
mov dword [esp - 0x1c], ebp
xor edx, 0x2832667c
sub edx, 0x2d53b912
add edx, 0x207c9bba
xor edx, 0x53b527de
mov dword [esp - 0x34], 0x2c39cc69
add edx, 0x25fba180
xor edx, 0x3590e67b
mul edx
mov edi, edi
seto cl
neg ecx
or ecx, eax
push ecx
mov ebx, ebx
call fcn.0048b720
mov esi, eax
add esp, 4
mov dword [edi], esi
mov ebp, ebp
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x481236
mov eax, ebx
xchg ebp, ebp
sub eax, esi
mov dword [ebp + 8], eax
mov ebx, eax
mov ecx, edx
mov ebx, ebx
lea esi, [esi + 2]
and ecx, 3
mov eax, 0xdde078b
xor eax, 0x724de39e
xchg ebx, ebx
xor eax, 0x57e257db
add eax, 0x256c23a8
sub eax, 0x1f1af7ec
sub eax, 0x13970c1c
mov edi, edi
add eax, 0x585250d2
shl ecx, 3
inc edx
sar eax, cl
mov edi, edi
cbw
xor ax, word [ebx + esi - 2]
mov word [esi - 2], ax
cmp edx, dword [edi + 4]
mov edx, edx
jb 0x4811e8
mov ebx, dword [ebp + 0xc]
push ebx
call fcn.0048b6f0
mov dword [esp - 0x28], 0x14cf656f
add esp, 4
mov eax, edi
pop edi
mov dword [esp - 0x28], 0x44d4352c
pop esi
pop ebx
mov esp, ebp
mov dword [esp - 0x1c], 0x1bf93ca8
pop ebp
ret