Function at 0x10028e0e
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10060a95
call fcn.1005f648
sub esp, 0x38
cmp byte [ebp + 0x18], 0
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], edi
je 0x10028fb9
mov dword [ebp - 0x1c], 0x3e4
xor esi, esi
cmp dword [ebp - 0x1c], 0x682
jle 0x10028e9a
mov dword [ebp - 0x18], esi
mov dword [ebp + 0x18], esi
mov dword [ebp - 0x14], 0x14fe
mov ebx, esi
mov edi, esi
mov esi, dword [ebp + 0x18]
mov eax, esi
mov ecx, 0x1007ba38
xor eax, edi
xor eax, ebx
cdq
push edx
push eax
call fcn.10005547
inc edi
cmp edi, 0xc32
jl 0x10028e5b
inc ebx
push 0
pop esi
cmp ebx, 0x7379
jl 0x10028e56
mov edi, dword [ebp - 0x18]
add dword [ebp + 0x18], edi
dec dword [ebp - 0x14]
jne 0x10028e54
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x7cee
jl 0x10028e4a
mov dword [ebp - 4], esi
cmp dword [ebp - 0x1c], 0xa4
jge 0x10028eb5
mov edx, str.yyptkvdti_llamgwwp_mwjyjji_uvx_yfgsbrwpn_rvcrn_ohdd_nbhy_hmzoa
mov ecx, 0x1007ba38
call fcn.100078f4
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x28], 0
je 0x10028f91
mov edi, dword [ebp + 0x14]
mov eax, dword [edi + 4]
cmp dword [edi], eax
je 0x100290eb
sub eax, dword [edi]
cdq
push 0x18
pop ebx
idiv ebx
mov edx, dword [ebp + 0x24]
mov ecx, eax
mov dword [ebp + 0x18], ecx
mov eax, dword [edx + 4]
sub eax, dword [edx]
cdq
idiv ebx
cmp ecx, eax
jne 0x100290eb
test ecx, ecx
jle 0x100290eb
mov ebx, esi
mov edx, dword [edi]
mov ecx, dword [ebp + 0x1c]
add edx, ebx
call fcn.10027f7c
test al, al
je 0x10028f51
mov eax, dword [ebp + 0x24]
sub esp, 0x18
mov ecx, esp
mov eax, dword [eax]
add eax, ebx
push eax
call fcn.100084aa
lea ecx, [ebp - 0x2c]
call fcn.100272a1
add esp, 0x18
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 2
call fcn.10028daa
test eax, eax
je 0x10028f84
cmp eax, 2
je 0x10028f84
cmp eax, 3
je 0x10028f84
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.10005d72
inc esi
add ebx, 0x18
cmp esi, dword [ebp + 0x18]
jl 0x10028efb
jmp 0x100290eb
lea ecx, [ebp - 0x2c]
call fcn.10005d72
jmp 0x100290eb
mov edx, dword [ebp + 0x20]
mov dword [edx], esi
cmp dword [edx], 3
jge 0x100290eb
mov esi, dword [ebp + 0xc]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xe60f951
inc dword [edx]
cmp dword [edx], 3
jl 0x10028fa2
jmp 0x100290eb
mov dword [ebp - 0x18], 0x5f7e
cmp dword [ebp - 0x18], 0x633f
jle 0x1002905d
xor esi, esi
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edi, esi
mov ebx, esi
mov eax, esi
mov dword [ebp + 0x18], esi
mov ecx, esi
mov dword [ebp - 0x1c], esi
sar eax, cl
lea ecx, [ebp - 0x44]
and eax, ebx
and eax, edi
cdq
push edx
push eax
call fcn.10002394
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10028fff
mov eax, dword [eax]
push eax
call fcn.10047752
pop ecx
push esi
push 1
lea ecx, [ebp - 0x44]
call fcn.10005baf
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0x18]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x6416
jl 0x10028fe4
inc eax
mov dword [ebp + 0x18], eax
cmp eax, 0x4be5
jl 0x10028fdf
inc ebx
cmp ebx, 0x7954
jl 0x10028fda
inc edi
cmp edi, 0x4f91
jl 0x10028fd8
push esi
push 0x1206
push esi
push 0x3d6
push 0x1929
call dword [sym.imp.GDI32.dll_ExtCreatePen]
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x20]
cmp dword [ebp - 0x18], 0x5d15
jge 0x10029071
push str.emjge_qejy_fdedhth
call fcn.10047752
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 8], 0
je 0x100290d9
mov esi, dword [ebp + 0x30]
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 2
mov ecx, dword [esi + 4]
sub ecx, dword [esi]
sar ecx, 2
cmp eax, ecx
jbe 0x100290c5
push 0x3f16
push 0x7e18
push ebx
push 1
xor dl, dl
mov ecx, edi
call fcn.10028637
add esp, 0x10
mov edx, 0x7948
push edi
push ecx
mov ecx, dword [ebp + 0x2c]
push 0x6fae
push esi
call fcn.1002824b
add esp, 0x10
jmp 0x100290eb
push ecx
push ecx
push ebx
push edi
mov dword [edi], ecx
push ecx
mov ecx, dword [ebp + 0x2c]
call fcn.10027d02
add esp, 0x14
jmp 0x100290eb
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
mov esi, dword [eax]
mov eax, dword [ebp + 0x34]
mov ecx, dword [eax]
mov eax, dword [ecx + edx*4]
mov dword [ecx + esi*4], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret