Function at 0x1001cc96
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005b2ba
call fcn.1005a3a0
sub esp, 0x34
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, edx
mov byte [ebp - 0x14], cl
je 0x1001cea5
cmp byte [ebp + 0x20], 0
je 0x1001cde0
movdqa xmm0, xmmword [0x10068500]
lea eax, [ebp - 0x30]
mov dword [ebp + 0x10], 0x9714a025
lea ecx, [ebp - 0x30]
push dword [ebp + 0x10]
xor esi, esi
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x30], esi
push eax
push esi
movdqu xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
call fcn.1001403c
push 0x17d8
lea eax, [ebp + 0x10]
mov dword [ebp - 4], esi
push eax
push 0x3033
mov cl, 1
call fcn.1001bb94
add esp, 0xc
mov dword [ebp + 0x10], esi
cmp dword [ebp + 0x10], 3
jg 0x1001cdd3
mov dword [ebp - 0x20], 0x393e75cb
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x18], 0x788d
cmp dword [ebp - 0x18], 0x790a
jle 0x1001cd74
push esi
push esi
call dword [sym.imp.GDI32.dll_GetRgnBox]
mov edi, esi
mov ebx, esi
mov eax, edi
mov ecx, 0x10074fb8
cdq
idiv ebx
mov eax, edx
cdq
push edx
push eax
call fcn.1000333f
inc ebx
cmp ebx, 0x5836
jl 0x1001cd47
inc edi
cmp edi, 0x7186
jl 0x1001cd45
push esi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov byte [ebp - 4], 1
cmp dword [ebp - 0x18], 0x7741
jge 0x1001cdae
mov edx, str.ojwbcyg_ktutj_gtrjpnl_shzocx
mov ecx, 0x10074fb8
call fcn.1000494d
jmp 0x1001cdae
lea eax, [ebp - 0x30]
mov dword [ebp - 4], esi
push eax
push 1
lea eax, [ebp - 0x20]
push eax
push ecx
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp + 0x10]
call fcn.1001b99a
add esp, 0x14
inc dword [ebp + 0x10]
jmp 0x1001cd13
lea ecx, [ebp - 0x30]
call fcn.100014fe
jmp 0x1001cef7
mov dword [ebp - 0x24], 0x74e6
cmp dword [ebp - 0x24], 0x7765
jle 0x1001ce4a
xor esi, esi
mov ebx, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], 0x5f7f
mov edi, esi
mov dword [ebp + 0x10], 0x64f6
mov esi, dword [ebp - 0x18]
mov eax, edi
mov ecx, 0x10074fb8
xor eax, ebx
cdq
push edx
push eax
call fcn.1000333f
add edi, esi
dec dword [ebp + 0x10]
jne 0x1001ce0d
mov edi, dword [ebp - 0x20]
add esi, edi
dec dword [ebp - 0x1c]
push 0
mov dword [ebp - 0x18], esi
pop esi
jne 0x1001ce01
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x546
jl 0x1001cdf7
inc ebx
cmp ebx, 0x1bdf
jl 0x1001cdf4
mov dword [ebp - 4], 3
cmp dword [ebp - 0x24], 0x745b
jge 0x1001ce69
mov edx, str.fawklsw_ckrnjvvm_tgzk_diyl_idmk_teoc
mov ecx, 0x10074fb8
call fcn.1000494d
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
je 0x1001cef7
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_EndPage]
jmp 0x1001cef7
test cl, cl
je 0x1001cebf
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetBkColor]
jmp 0x1001cef7
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [eax], 0xffffffff
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x24]
mov edx, dword [eax]
xor eax, eax
cmp dword [edx + ecx*4], esi
setge al
cmp eax, 0xffffffff
jge 0x1001cee5
cmp dword [edx], esi
je 0x1001cef2
mov eax, dword [edi]
mov eax, dword [ebp + 0x14]
cmp dword [eax], 2
je 0x1001cef2
xor esi, esi
inc esi
mov eax, dword [ebp + 0x18]
mov dword [eax], esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret