Function at 0x1002bf6c
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100658d8
call fcn.10064328
sub esp, 0x18
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x14], ecx
push edi
mov ebx, edx
mov dword [ebp - 0x10], esp
inc esi
mov dword [ebp - 0x18], ebx
cmp byte [ebp + 0x10], 0
je 0x1002c0fe
mov dword [ebp - 0x18], 0x63384304
xor ebx, ebx
mov dword [ebp - 0x14], 0xb9dd952e
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x1002bfc1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x20], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002bfb3
mov dword [ebp - 0x14], ebx
jmp 0x1002bfd5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1c], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002bfcb
cmp dword [ebp - 0x18], ebx
jne 0x1002c015
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
imul ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x1002c015
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, 0x2d1
mov eax, dword [ebp - 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], 0x3984
cmp dword [ebp - 0x18], 0x3c1d
jle 0x1002c0c4
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x793
push 0x1d48
push 0x76b
push ebx
push 0x1d2f
push 0xb6c
call edi
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
call esi
push eax
push 0x1a40
push 0x23b8
push 0x21e2
push 0x1593
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x10081bf8
xor eax, esi
cdq
push edx
push eax
call fcn.1000377e
inc edi
cmp edi, 0x7d1d
jl 0x1002c0a1
inc esi
cmp esi, 0x5a94
jl 0x1002c09f
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0x38fa
jge 0x1002c0df
mov edx, str.wfhwso_ysp_owtkzck_tkjhdyspg_lkmzbmb_zuenv_efytmna_lfjjlko_ynsiv_rdix_svvbz_qgff_xlr_paxppj
mov ecx, 0x10081bf8
call fcn.100059cc
jmp 0x1002c1b2
mov eax, dword [ebx]
xor ecx, ecx
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov eax, dword [ebx]
cmp eax, esi
sete cl
xor eax, eax
cmp ecx, edx
setge al
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp + 0x28]
setle cl
xor ebx, ebx
cmp dword [eax], ecx
jl 0x1002c131
mov eax, dword [edi]
cmp dword [eax + 4], ebx
mov eax, esi
jne 0x1002c133
mov eax, ebx
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [ebp + 0x28]
setle dl
xor ecx, ecx
mov eax, dword [eax]
imul edx, eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp edx, eax
mov eax, dword [ebp + 0x18]
setg cl
cmp esi, ecx
mov eax, dword [eax]
mov dword [eax], ecx
sbb ecx, ecx
mov eax, dword [ebp + 0x28]
neg ecx
xor edx, edx
mov eax, dword [eax]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
mov eax, dword [eax]
cmp eax, edx
mov edx, dword [ebp + 0xc]
setne cl
mov eax, dword [edx]
sub ecx, eax
jne 0x1002c18c
mov eax, dword [edi]
cmp dword [eax], ebx
jne 0x1002c18c
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
cmp dword [eax], ebx
je 0x1002c18e
mov ebx, esi
mov eax, dword [edx]
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp + 0x20]
sete cl
mov dword [eax], ecx
mov ecx, dword [eax]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [eax + 8], ecx
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
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