Function at 0x10028adb
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005bbdc
call fcn.1005a768
sub esp, 0x54
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x10], esp
cmp byte [ebp + 0x40], 0
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
je 0x10028dff
mov dword [ebp + 0x40], 0x3db5
cmp dword [ebp + 0x40], 0x3f87
jle 0x10028b4b
mov edi, esi
mov ebx, esi
mov dword [ebp - 0x1c], esi
mov eax, ebx
mov ecx, 0x10075b18
cdq
idiv esi
xor edx, edi
mov eax, edx
cdq
push edx
push eax
call fcn.10001b85
inc esi
cmp esi, 0x56fb
jl 0x10028b17
inc ebx
push 0
pop esi
cmp ebx, 0x1a3
jl 0x10028b14
inc edi
cmp edi, 0x60e1
jl 0x10028b12
mov dword [ebp - 4], esi
cmp dword [ebp + 0x40], 0x3d38
jge 0x10028b66
mov edx, str.yokas_abu_lnry_hdzpo_uadcauiwn_xmvknr_bawp_nbvmbutpm_xyqrpnsre_wwvvn_mwliegjms_bebdi_mwonx
mov ecx, 0x10075b18
call fcn.100036dc
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x2c], 0
je 0x10028cf6
mov dword [ebp - 0x1c], 0x63c9
cmp dword [ebp - 0x1c], 0x63fb
jle 0x10028c01
push 0x1e14
push 0xdf2
push 0x1fa7
push 0x66a
push 0x42e
push 0x15ed
push 0xa33
push 0x1356
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_Arc]
mov edi, esi
mov ebx, esi
mov eax, ebx
lea ecx, [ebp - 0x44]
or eax, edi
cdq
push edx
push eax
call fcn.10001a41
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10028bdd
mov eax, dword [eax]
push eax
call fcn.100425d6
pop ecx
push esi
push 1
lea ecx, [ebp - 0x44]
call fcn.10001f96
inc ebx
cmp ebx, 0x23fa
jl 0x10028bc4
inc edi
cmp edi, 0x6c81
jl 0x10028bc2
mov dword [ebp - 0x18], 0x70b0
cmp dword [ebp - 0x18], 0x738d
jle 0x10028c8a
mov edi, esi
mov dword [ebp - 0x14], esi
mov ebx, esi
mov dword [ebp + 0x40], esi
mov ecx, ebx
mov dword [ebp - 0x20], edi
mov ebx, edi
mov dword [ebp - 0x24], esi
sar ebx, cl
mov edi, esi
mov ecx, edi
mov eax, ebx
sar eax, cl
lea ecx, [ebp - 0x5c]
cdq
push edx
push eax
call fcn.10001a41
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10028c44
mov eax, dword [eax]
push eax
call fcn.100425d6
pop ecx
push esi
push 1
lea ecx, [ebp - 0x5c]
call fcn.10001f96
inc edi
cmp edi, 0x6e7b
jl 0x10028c29
mov ebx, dword [ebp + 0x40]
mov edi, dword [ebp - 0x14]
inc ebx
mov dword [ebp + 0x40], ebx
cmp ebx, 0x3dc6
jl 0x10028c1b
inc edi
mov dword [ebp - 0x14], edi
cmp edi, 0x65d8
jl 0x10028c16
push 0x2155
push esi
push esi
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
mov eax, dword [ebp + 0x34]
mov dword [eax], esi
jmp 0x10028cc0
mov dword [ebp + 0x40], esi
cmp dword [ebp + 0x40], esi
jne 0x10028cc5
inc dword [eax]
cmp dword [eax], 0x11
je 0x10028cb6
cmp dword [ebp - 0x18], 0x6f5a
jge 0x10028cd9
push str.sxu_nifl_orx_tibv_csmmq_cidlpwj_fhrs_bgxnptyco_kem_jepj_nko_ibyexvzsx
call fcn.100425d6
pop ecx
cmp dword [ebp - 0x1c], 0x6158
jge 0x10028ecd
push str.fvcucif_zhcmbb_xrkdfddq_rnkicieds_leksfvj_rwdmrjsg_osuax_lrcrbjs_xovyayi_tuyc_bkrcg_uxmw_smeeembcb_mrnapbtr
call fcn.100425d6
pop ecx
jmp 0x10028ecd
mov edi, dword [ebp + 0x38]
mov dword [edi], 0xf
cmp dword [edi], 0xfffffff2
je 0x10028ecd
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov dword [ebp + 0x40], 1
mov dword [ebp - 0x24], 0x46153b72
cmp dword [edx], esi
jne 0x10028d31
mov eax, dword [ebp + 0x40]
mov ecx, esi
sub ecx, eax
mov dword [ebp + 0x40], esi
mov eax, dword [ebp + 0x18]
add ecx, dword [eax]
je 0x10028d38
mov dword [ebp + 0x40], 1
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov eax, dword [eax]
cmp dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x14]
setge cl
mov eax, dword [eax]
add eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [ecx]
mov dword [edx], eax
mov ecx, dword [ebx]
mov eax, dword [edx]
xor edx, edx
cmp eax, ecx
setge dl
xor ecx, ecx
cmp edx, 0x70c1
mov edx, dword [ebp + 0x20]
setge cl
mov eax, dword [edx]
sub ecx, eax
mov eax, dword [ebp + 0x3c]
mov dword [eax], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x3c]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x10028d8c
cmp dword [edx], esi
je 0x10028d8c
xor edx, edx
inc edx
jmp 0x10028d8e
mov edx, esi
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
mov eax, dword [ebp + 0x24]
setne cl
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [edi]
cmp edx, eax
mov eax, 0xfff9
setle cl
cmp eax, ecx
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 0x725d
mov eax, dword [edi]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [edi]
setl cl
xor edx, edx
cmp ecx, 0x77f0a061
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp + 0x24]
setne cl
mov eax, dword [eax]
add eax, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, 0xfffffff6
setl cl
mov dword [ebp - 0x24], ecx
dec dword [edi]
cmp dword [edi], 0xfffffff2
jne 0x10028d0b
jmp 0x10028ecd
cmp byte [ebp + 0xc], 0
je 0x10028eb4
mov dword [ebp + 0x40], 0x69d6
cmp dword [ebp + 0x40], 0x6cce
jle 0x10028e56
push 0x1385
push esi
push 0x158d
push esi
push 0xfa7
push esi
call dword [sym.imp.KERNEL32.dll_CompareStringW]
mov edi, esi
mov ebx, edi
mov esi, 0x6234
mov eax, ebx
mov ecx, 0x10075b18
cdq
push edx
push eax
call fcn.10001b85
dec ebx
dec esi
jne 0x10028e3a
inc edi
cmp edi, 0x20a
jl 0x10028e33
mov dword [ebp - 4], 6
cmp dword [ebp + 0x40], 0x6668
jge 0x10028e93
mov edx, str.mkj_sdkk_nvqjueewj_descuep_lroopchd
mov ecx, 0x10075b18
call fcn.100036dc
jmp 0x10028e93
mov edx, dword [ebp + 0x28]
mov dword [edx], esi
cmp dword [edx], 3
jge 0x10028ecd
mov esi, dword [ebp + 0x30]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x77e06985
inc dword [edx]
cmp dword [edx], 3
jl 0x10028ea0
jmp 0x10028ecd
push esi
push esi
push 0x1868
push 0x1b3
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret