Function at 0x1001cf9a
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005901a
call fcn.10057d24
sub esp, 0x44
push ebx
push esi
push edi
mov eax, edx
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x20], eax
xor esi, esi
mov dword [ebp - 0x24], edi
cmp byte [ebp + 0x14], 0
je 0x1001d0ef
mov dword [ebp - 0x24], 0x437f
cmp dword [ebp - 0x24], 0x4654
jle 0x1001d06c
mov edi, esi
mov dword [ebp - 0x1c], esi
mov ebx, esi
mov dword [ebp - 0x18], esi
mov ecx, ebx
mov dword [ebp + 0x14], edi
mov ebx, edi
mov edi, esi
sar ebx, cl
mov eax, esi
mov dword [ebp - 0x14], 0x16f
mov dword [ebp + 0x14], eax
or eax, ebx
lea ecx, [ebp - 0x50]
cdq
push edx
push eax
call fcn.10002811
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001d00f
mov eax, dword [eax]
push eax
call fcn.100402ca
pop ecx
push esi
push 1
lea ecx, [ebp - 0x50]
call fcn.10001571
mov eax, dword [ebp + 0x14]
add eax, edi
dec dword [ebp - 0x14]
mov dword [ebp + 0x14], eax
jne 0x1001cff8
inc edi
cmp edi, 0x779f
jl 0x1001cfec
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
inc ebx
mov dword [ebp - 0x18], ebx
cmp ebx, 0x17df
jl 0x1001cfe1
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x4ea
jl 0x1001cfdc
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
mov eax, dword [ebp - 0x20]
cmp byte [ebp + 0x20], 0
je 0x1001d0c5
mov edi, dword [ebp + 8]
mov dword [edi], esi
jmp 0x1001d0be
mov ecx, dword [ebp + 0xc]
push 0x61e7
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x84b505d0
push eax
push esi
call fcn.1001ccef
push 1
push 0x284b
push 1
push 0x10bb
push 0x64d5
push esi
mov edx, 0x1d02
mov ecx, 0x4085
call fcn.1001cece
mov eax, dword [ebp - 0x20]
add esp, 0x28
inc dword [edi]
cmp dword [edi], 3
jle 0x1001d079
jmp 0x1001d0ca
mov eax, dword [ebp + 0x1c]
mov dword [eax], esi
cmp dword [ebp - 0x24], 0x4300
jge 0x1001d0de
push str.fowjlmd_lvrgqrexo_ktqwmfkd_smvtztqf_mrzq_frbxcmdh_cnvctmj_oteyd_znaqwypzb_aulgr_oaksr_rbxff_brtzfft_oauuuuxhl
call fcn.100402ca
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x20], 0x2d07
cmp dword [ebp - 0x20], 0x2d91
jle 0x1001d129
mov ebx, esi
mov edi, esi
mov eax, edi
mov ecx, 0x10073b38
xor eax, ebx
cdq
push edx
push eax
call fcn.10004192
inc edi
cmp edi, 0x7916
jl 0x1001d103
inc ebx
cmp ebx, 0x5762
jl 0x1001d101
mov edi, dword [ebp - 0x24]
cmp byte [ebp + 0x18], 0
je 0x1001d1dd
mov dword [ebp + 0x14], 9
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x24], 0x77b568be
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x24], 0xffff
push 3
call fcn.100013fd
push esi
push 0x3601
push 1
push 0x799c
lea eax, [ebp - 0x38]
mov dword [ebp - 0x24], 0x9cea445a
push eax
push esi
lea edx, [ebp - 0x2c]
mov ecx, 0x758e
call fcn.1001cece
mov eax, dword [ebp + 0x14]
add esp, 0x18
mov eax, dword [ebp + 0x14]
inc eax
cmp eax, 0xfffffffa
jl 0x1001d193
cmp dword [ebp - 0x1c], esi
je 0x1001d196
xor esi, esi
inc esi
mov eax, dword [ebp + 0x14]
add eax, 0xe70
mov dword [ebp - 0x24], eax
xor eax, eax
mov edx, dword [ebp - 0x24]
imul edx, dword [ebp + 0x14]
cmp esi, 0xca6c8490
sete al
xor ecx, ecx
add edx, eax
mov eax, dword [ebp + 0x14]
cmp edx, eax
setl cl
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [eax], ecx
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x38]
call fcn.10001439
jmp 0x1001d1f9
mov dword [edi], esi
cmp dword [edi], 2
jge 0x1001d1f9
mov edx, dword [ebp + 0x10]
mov ecx, dword [edi]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0xefc71010
inc dword [edi]
cmp dword [edi], 2
jl 0x1001d1e7
mov dword [ebp - 4], 2
cmp dword [ebp - 0x20], 0x2ada
jge 0x1001d0de
mov edx, str.ulnlq_vcetlnaxe_vdn_wagzkjhri_ulqx_kgin_yjje_uimtjzx_zwovfbsl_yfiou_wogyubj_rqqufipph
mov ecx, 0x10073b38
call fcn.10005a51
jmp 0x1001d0de