Function at 0x100027bb
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005f0c3
call fcn.1005ea30
sub esp, 0x34
cmp byte [ebp + 0x18], 0
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ecx
je 0x10002a06
mov dword [ebp - 0x1c], 0x7361
cmp dword [ebp - 0x1c], 0x74fb
jle 0x1000285e
push 0xb57
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
xor esi, esi
mov edi, esi
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x18], 0x6f19
mov ebx, esi
mov esi, dword [ebp + 0x18]
mov eax, esi
mov ecx, 0x1007aeb8
and eax, ebx
cdq
push edx
push eax
call fcn.10003751
inc ebx
cmp ebx, 0x2c75
jl 0x1000281c
dec esi
dec dword [ebp - 0x18]
push 0
mov dword [ebp + 0x18], esi
pop esi
jne 0x10002817
inc edi
cmp edi, 0x68d5
jl 0x1000280d
push esi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_BeginPaint]
mov ebx, dword [ebp - 0x20]
jmp 0x10002860
xor esi, esi
mov dword [ebp - 4], esi
cmp dword [ebp - 0x1c], 0x7003
jge 0x1000287b
mov edx, str.suuoshy_taukijw_tnhge_ynaafqmty_utb
mov ecx, 0x1007aeb8
call fcn.10005cf1
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x2c], 0
je 0x10002944
mov edi, dword [ebp + 0xc]
cmp dword [edi], 0x5514
jg 0x10002896
mov eax, dword [edi]
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
mov eax, dword [ebp - 0x14]
setne cl
xor edx, edx
mov eax, dword [eax]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
mov eax, dword [eax]
cmp edx, eax
mov eax, 0x2f3c
setle cl
sub eax, ecx
mov ecx, dword [edi]
add ecx, eax
xor eax, eax
cmp ecx, 0x66e9f086
setne al
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x14]
setg cl
xor edx, edx
mov eax, dword [eax]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setl dl
xor ecx, ecx
mov eax, dword [eax]
cmp edx, eax
mov eax, 0xfff9
setl cl
cmp eax, ecx
mov eax, dword [ebp - 0x14]
sbb ecx, ecx
neg ecx
mov eax, dword [eax]
sub ecx, eax
je 0x10002908
cmp dword [edi], esi
je 0x10002908
xor esi, esi
inc esi
mov eax, dword [ebx]
xor ecx, ecx
cmp esi, eax
mov eax, dword [edi]
sete cl
add eax, ecx
mov dword [ebx], eax
jmp 0x10002b82
mov dword [ebp - 0x18], 0x53fe
cmp dword [ebp - 0x18], 0x543f
jle 0x100029b0
mov ebx, esi
mov edi, esi
mov dword [ebp - 0x1c], esi
mov ecx, esi
mov dword [ebp + 0x18], esi
mov eax, edi
mov dword [ebp - 0x24], esi
cdq
idiv ecx
mov edi, edx
mov eax, edi
mov ecx, 0x1007aeb8
and eax, esi
or eax, ebx
cdq
push edx
push eax
call fcn.10003751
inc esi
cmp esi, 0x57ba
jl 0x1000296a
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x1c]
inc ecx
mov dword [ebp + 0x18], ecx
push 0
pop esi
cmp ecx, 0x23ad
jl 0x10002960
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x51a9
jl 0x1000295b
inc ebx
cmp ebx, 0x1a6f
jl 0x10002956
mov dword [ebp - 4], 2
cmp dword [ebp - 0x18], 0x5364
jge 0x100029cf
mov edx, str.hortq_uqfvk_ynsx_ehvkjlcb_oyqh_crhvp_ixtyvioeq_bhki_stbqbtad_cma
mov ecx, 0x1007aeb8
call fcn.10005cf1
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov eax, dword [eax]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cmp dword [eax + 8], 1
mov eax, dword [ebp + 0x28]
setle cl
mov dword [eax], ecx
jmp 0x10002b82
mov dword [ebp - 0x18], 0x8a4
xor esi, esi
cmp dword [ebp - 0x18], 0xae5
jle 0x10002a78
mov edi, esi
mov dword [ebp - 0x1c], esi
mov ebx, esi
mov ecx, esi
mov dword [ebp + 0x18], esi
mov eax, ebx
mov dword [ebp - 0x24], esi
cdq
idiv ecx
lea eax, [edx + edi]
mov dword [ebp - 0x28], eax
mov edi, eax
mov eax, edi
mov ecx, 0x1007aeb8
xor eax, esi
cdq
push edx
push eax
call fcn.10003751
inc esi
cmp esi, 0x66bd
jl 0x10002a34
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x1c]
inc ecx
mov dword [ebp + 0x18], ecx
push 0
pop esi
cmp ecx, 0x2489
jl 0x10002a24
inc ebx
cmp ebx, 0x75b4
jl 0x10002a1f
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x64f4
jl 0x10002a1d
mov dword [ebp - 4], 4
cmp dword [ebp - 0x18], 0x7ab
jge 0x10002a97
mov edx, str.tkdv_sca_qawphat_widmbmm_hdkxsye_fqlkblzgw_xukalyac_vnnsrx_yap_kaosaqlq_utykh
mov ecx, 0x1007aeb8
call fcn.10005cf1
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x20], 0
je 0x10002b6c
mov dword [ebp - 0x24], 0x3354
cmp dword [ebp - 0x24], 0x3496
jle 0x10002b12
mov dword [ebp - 0x18], esi
mov dword [ebp + 0x18], esi
mov dword [ebp - 0x1c], 0x7e3b
mov edi, dword [ebp + 0x18]
mov ebx, esi
mov eax, edi
lea ecx, [ebp - 0x40]
or eax, ebx
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002ae0
mov eax, dword [eax]
push eax
call fcn.10047ad3
pop ecx
push esi
push 1
lea ecx, [ebp - 0x40]
call fcn.10003d9b
inc ebx
cmp ebx, 0x1fb3
jl 0x10002ac7
mov edi, dword [ebp - 0x18]
add dword [ebp + 0x18], edi
dec dword [ebp - 0x1c]
jne 0x10002ac2
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x8bd
jl 0x10002ab8
cmp dword [ebp - 0x24], 0x310c
jge 0x10002b26
push str.kngstnqa_nbdeevya_nphnca_rzlwbqmn_xnqnzdwi_hfrfhtqcx_itljgy_vwghe_qdvrgvoxc_chzrmdvi_pvo_lsarwte
call fcn.10047ad3
pop ecx
mov edx, dword [ebp + 0x24]
mov dword [edx], esi
cmp dword [edx], 2
jge 0x10002b82
mov esi, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [edx]
cmp dword [edx], 2
jl 0x10002b33
jmp 0x10002b82
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
je 0x10002b82
push esi
push esi
push 0x20ee
push esi
call dword [sym.imp.USER32.dll_AppendMenuA]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret