Function at 0x1002efc8
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1006585e
call fcn.100641d4
sub esp, 0x4c
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x24], edi
je 0x1002f01f
cmp byte [ebp + 0x20], 0
je 0x1002f004
mov eax, dword [ebp + 0x1c]
movzx eax, word [eax]
push eax
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.1002ac1e
jmp 0x1002f25c
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetClipBox]
jmp 0x1002f25c
mov dword [ebp - 0x1c], 0x22c8
xor esi, esi
cmp dword [ebp - 0x1c], 0x2343
jle 0x1002f085
mov ebx, esi
mov edi, esi
mov dword [ebp - 0x14], esi
mov eax, esi
mov esi, dword [ebp - 0x14]
mov dword [ebp + 0xc], eax
and eax, esi
mov ecx, 0x10080d38
xor eax, edi
or eax, ebx
cdq
push edx
push eax
call fcn.1000b7ed
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
cmp eax, 0x2fcb
jl 0x1002f040
inc esi
push 0
mov dword [ebp - 0x14], esi
cmp esi, 0x1953
pop esi
jl 0x1002f038
inc edi
cmp edi, 0x658c
jl 0x1002f035
inc ebx
cmp ebx, 0x46bc
jl 0x1002f033
mov edi, dword [ebp - 0x24]
mov dword [ebp - 4], esi
cmp dword [ebp - 0x1c], 0x228d
jge 0x1002f0a0
mov edx, str.rthq_cpfy_vzi_vtwlvyf_xac_sypqrstz
mov ecx, 0x10080d38
call fcn.1000da64
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x18], 0
je 0x1002f0f4
mov dword [edi], esi
cmp dword [edi], 2
jge 0x1002f25c
mov edx, dword [ebp - 0x30]
mov ecx, dword [edi]
mov eax, dword [edx]
mov dword [eax + ecx*4], 8
inc dword [edi]
cmp dword [edi], 2
jl 0x1002f0b8
jmp 0x1002f25c
mov dword [ebp + 0xc], 0x14b7
cmp dword [ebp + 0xc], 0x4bc
jge 0x1002f23d
push 0x10083c38
push 0x10083c30
push str._lld__lld_n
call fcn.1004be2b
mov eax, dword [0x10083c30]
add esp, 0xc
inc eax
push eax
call fcn.100302bf
mov eax, dword [0x10083c38]
lea ecx, [ebp - 0x48]
push ecx
inc eax
mov dword [ebp - 0x54], esi
xorps xmm0, xmm0
mov dword [ebp - 0x50], esi
push eax
lea ecx, [ebp - 0x54]
movlpd qword [ebp - 0x48], xmm0
mov dword [ebp - 0x4c], esi
call fcn.100307e4
lea eax, [ebp - 0x54]
mov dword [ebp - 4], 2
push eax
mov eax, dword [0x10083c30]
inc eax
push eax
call fcn.10030344
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x54], 0
je 0x1002f182
push dword [ebp - 0x54]
call fcn.1004c2f9
pop ecx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
mov ecx, dword [0x10083c30]
xorps xmm0, xmm0
mov eax, dword [0x10083c34]
sub ecx, 1
movlpd qword [0x10083c28], xmm0
mov ebx, esi
sbb eax, esi
mov dword [ebp - 0x1c], eax
js 0x1002f218
jg 0x1002f1aa
cmp ecx, esi
jbe 0x1002f218
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
push str._ld__ld_n
call fcn.1004be2b
mov eax, dword [ebp - 0x2c]
add esp, 0xc
imul ecx, dword [ebp - 0x28], 0xc
cdq
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x34], edx
add ecx, dword [0x10083fa8]
call fcn.1002776b
mov eax, dword [ebp - 0x28]
imul ecx, dword [ebp - 0x2c], 0xc
cdq
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x3c], edx
add ecx, dword [0x10083fa8]
call fcn.1002776b
mov edi, dword [0x10083c30]
inc ebx
mov ecx, dword [0x10083c34]
sub edi, 1
mov eax, ebx
sbb ecx, esi
cdq
cmp edx, ecx
jl 0x1002f1aa
jg 0x1002f218
cmp eax, edi
jb 0x1002f1aa
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push 1
call fcn.1002ee1e
push dword [0x10083c2c]
push dword [0x10083c28]
push str._lld_n
call fcn.1004c12c
add esp, 0x1c
mov edx, dword [ebp + 0x14]
mov dword [edx], esi
cmp dword [edx], 2
jge 0x1002f25c
mov esi, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xd017
inc dword [edx]
cmp dword [edx], 2
jl 0x1002f24a
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret