Function at 0x10268770
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
mov dword [esp + 8], eax
sar eax, 0x10
imul eax, dword [esp + 0x1c]
push ebx
push ebp
lea edx, [ecx + eax*4]
push esi
mov dword [esp + 0x18], edx
push edi
lea ebx, [ebx]
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
test eax, eax
jge 0x1026879c
xor eax, eax
mov esi, dword [esp + 0x34]
mov ecx, dword [esi]
mov edi, dword [esp + 0x28]
mov ebx, ecx
sar ebx, 0x10
cmp ebx, edi
jl 0x102687b4
mov ecx, edi
shl ecx, 0x10
cmp ecx, eax
jle 0x10268924
mov ebp, eax
and eax, 0xffff
add eax, 0x1999
mov edx, eax
mov dword [esp + 0x14], edx
mov eax, 0xa000a001
imul edx
add edx, dword [esp + 0x14]
mov ebx, ecx
sar edx, 0xd
mov dword [esp + 0x14], edx
shr dword [esp + 0x14], 0x1f
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x14], eax
and ecx, 0xffff
add ecx, 0x1999
mov eax, 0xa000a001
imul ecx
add edx, ecx
sar ebp, 0x10
sar edx, 0xd
mov esi, ebp
mov eax, edx
sar esi, 1
add esi, dword [esp + 0x1c]
shr eax, 0x1f
mov edi, ebp
sar ebx, 0x10
add eax, edx
and edi, 1
cmp ebp, ebx
mov dword [esp + 0x20], eax
jne 0x10268861
mov dl, byte [esi]
lea ebx, [edi*4]
mov cl, bl
shr dl, cl
mov ecx, ebx
and dl, 0xf
sub dl, byte [esp + 0x14]
add dl, al
mov al, dl
shr al, 4
neg al
or al, dl
mov dl, 0xf
shl dl, cl
and al, 0xf
shl al, cl
not dl
and dl, byte [esi]
or al, dl
mov byte [esi], al
jmp 0x1026891c
mov al, byte [esi]
lea edx, [edi*4]
mov cl, dl
shr al, cl
add ebp, 1
and al, 0xf
sub al, byte [esp + 0x14]
add al, 5
mov cl, al
shr cl, 4
neg cl
or cl, al
and cl, 0xf
movzx eax, cl
mov ecx, edx
shl al, cl
mov cl, 0xf
mov byte [esp + 0x13], cl
mov ecx, edx
mov dl, byte [esp + 0x13]
shl dl, cl
not dl
and dl, byte [esi]
or al, dl
mov byte [esi], al
add esi, edi
xor edi, 1
cmp ebp, ebx
jge 0x102688e7
sub ebx, ebp
mov ebp, ebx
nop
mov al, byte [esi]
lea edx, [edi*4]
mov cl, dl
shr al, cl
mov ecx, edx
and al, 0xf
add al, 5
mov bl, al
shr bl, 4
neg bl
or bl, al
mov al, 0xf
shl al, cl
and bl, 0xf
shl bl, cl
not al
and al, byte [esi]
or bl, al
mov byte [esi], bl
add esi, edi
xor edi, 1
sub ebp, 1
jne 0x102688b0
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x1026891c
mov al, byte [esi]
lea edx, [edi*4]
mov cl, dl
shr al, cl
mov ecx, edx
and al, 0xf
add al, bl
mov bl, al
shr bl, 4
neg bl
or bl, al
mov al, 0xf
shl al, cl
and bl, 0xf
shl bl, cl
not al
and al, byte [esi]
or bl, al
mov byte [esi], bl
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
cmp edi, dword [esp + 0x38]
je 0x102689f9
mov eax, dword [edx]
mov ecx, edi
and ecx, 0xffff
cmp ecx, 0xd554
je 0x10268997
mov ecx, dword [edx + 0x18]
add ecx, eax
mov eax, dword [edx + 0x20]
add dword [edx + 4], eax
mov eax, dword [edx + 4]
test eax, eax
mov dword [edx], ecx
jle 0x10268965
sub eax, dword [edx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx], eax
mov eax, dword [esi]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
add dword [esi + 4], edx
add ecx, eax
mov eax, dword [esi + 4]
test eax, eax
mov dword [esi], ecx
jle 0x10268988
sub eax, dword [esi + 0x10]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [esi], eax
add edi, 0x5555
mov dword [esp + 0x18], edi
jmp 0x10268790
mov ecx, dword [edx + 0x1c]
add ecx, eax
mov eax, dword [edx + 0x24]
add dword [edx + 4], eax
mov eax, dword [edx + 4]
test eax, eax
mov dword [edx], ecx
jle 0x102689b8
sub eax, dword [edx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [edx + 0xc]
add eax, ecx
mov dword [edx], eax
mov eax, dword [esi]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x24]
add dword [esi + 4], edx
add ecx, eax
mov eax, dword [esi + 4]
test eax, eax
mov dword [esi], ecx
jle 0x102689db
sub eax, dword [esi + 0x10]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [esi], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
add edi, 0x5556
lea eax, [ecx + edx*4]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
jmp 0x10268790
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret