Function at 0x10028ba9
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x2348
call fcn.10062090
mov eax, dword [0x1009a008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
xor eax, eax
push edi
mov esi, 0x800
push esi
push eax
mov dword [ebp - 0x2340], eax
mov dword [ebp - 0x2334], eax
mov dword [ebp - 0x2330], eax
mov dword [ebp - 0x233c], eax
lea eax, [ebp - 0x1194]
push eax
mov dword [ebp - 0x2348], ebx
call fcn.100620c0
push esi
lea eax, [ebx + 0x10]
push eax
lea eax, [ebp - 0x1994]
push eax
call fcn.10062770
add esp, 0x18
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x2334], eax
push eax
mov eax, dword [ebp - 0x2334]
add eax, ebx
push eax
lea eax, [ebp - 0x994]
push eax
call fcn.10062770
add esp, 0xc
inc dword [ebp - 0x2330]
mov eax, 0x200
mov ecx, eax
lea edi, [ebp - 0x1194]
lea esi, [ebp - 0x984]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
je 0x10028e98
mov ecx, eax
lea edi, [ebp - 0x1994]
lea esi, [ebp - 0x984]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x10028c8c
push 0x800
lea eax, [ebp - 0x984]
push eax
lea eax, [ebp - 0x1994]
push eax
call fcn.10062770
add esp, 0xc
and dword [ebp - 0x233c], 0
jmp 0x10028c92
inc dword [ebp - 0x233c]
mov al, byte [ebp - 0x984]
mov byte [ebp - 0x2325], al
cmp al, byte [ebp - 0x982]
jne 0x10028e98
test al, al
je 0x10028e98
cmp dword [ebp - 0x233c], 9
jne 0x10028d44
mov cl, byte [ebp - 0x983]
and dword [ebp - 0x233c], 0
push 0x2b
xor cl, 0x28
add dword [ebp - 0x2340], 0xa
lea eax, [ebp - 0x740]
pop esi
mov dl, byte [eax]
xor dl, byte [ebp - 0x2325]
xor dl, 0x20
mov byte [eax], dl
mov dl, byte [eax + 0x45]
xor dl, cl
xor dl, 0x20
mov byte [eax + 0x45], dl
add eax, 0x18
dec esi
jne 0x10028cdf
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp - 0x2330]
mov ebx, dword [ebp - 0x2348]
neg edi
imul eax, dword [ebp + 0x10]
lea esi, [eax + ebx + 0x10]
mov dword [ebp - 0x2338], 0xa
push 0x7f0
lea eax, [ebp - 0x984]
push eax
push esi
call fcn.10062770
add esp, 0xc
add esi, edi
dec dword [ebp - 0x2338]
jne 0x10028d20
jmp 0x10028e98
xor eax, eax
inc eax
mov dword [ebp - 0x2338], eax
mov dword [ebp - 0x2344], eax
cmp dword [ebp - 0x2338], 0
je 0x10028dcb
mov eax, dword [ebp + 0x10]
add dword [ebp - 0x2334], eax
inc dword [ebp - 0x2330]
push eax
mov eax, dword [ebp - 0x2334]
add eax, ebx
push eax
lea eax, [ebp - 0x2324]
push eax
call fcn.10062770
add esp, 0xc
mov ecx, 0x800
lea edi, [ebp - 0x1194]
lea esi, [ebp - 0x2314]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x10028da0
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x2330], ecx
sbb ecx, ecx
xor edx, edx
neg ecx
test eax, eax
sete dl
and ecx, edx
and dword [ebp - 0x2338], ecx
inc dword [ebp - 0x2344]
cmp dword [ebp - 0x2344], 0x1e
jbe 0x10028d53
mov eax, dword [ebp - 0x2344]
dec eax
cmp dword [ebp - 0x2338], 1
jne 0x10028e86
mov cl, byte [ebp - 0x983]
and dword [ebp - 0x233c], 0
xor cl, 0x28
mov byte [ebp - 0x232c], 0x83
mov byte [ebp - 0x232b], 0x95
cmp byte [ebp - 0x2325], cl
jne 0x10028e13
mov byte [ebp - 0x232b], 0xb5
mov byte [ebp - 0x232c], 0xb5
inc dword [ebp - 0x2340]
cmp byte [ebp - 0x2325], 0x12
je 0x10028e2b
cmp byte [ebp - 0x2325], 0x14
jne 0x10028e98
push 0x2b
lea eax, [ebp - 0x740]
pop esi
mov dl, byte [eax]
xor dl, byte [ebp - 0x232c]
xor dl, byte [ebp - 0x2325]
mov byte [eax], dl
mov dl, byte [eax + 0x45]
xor dl, byte [ebp - 0x232b]
add eax, 0x18
xor dl, cl
dec esi
mov byte [eax + 0x2d], dl
jne 0x10028e34
mov ebx, dword [ebp - 0x2348]
push 0x7f0
lea eax, [ebp - 0x984]
push eax
mov eax, dword [ebp - 0x2330]
add eax, 0xffffffe2
imul eax, dword [ebp + 0x10]
lea eax, [eax + ebx + 0x10]
push eax
call fcn.10062770
add esp, 0xc
jmp 0x10028e98
mov ecx, eax
imul ecx, dword [ebp + 0x10]
sub dword [ebp - 0x2334], ecx
sub dword [ebp - 0x2330], eax
mov eax, dword [ebp - 0x2330]
cmp eax, dword [ebp + 0xc]
jl 0x10028c0f
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x2340]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10062074
leave
ret 0xc