Function at 0x1002ead9
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100605dd
call fcn.1005f130
sub esp, 0x2c
cmp byte [ebp + 0x1c], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, ecx
mov byte [ebp - 0x14], dl
je 0x1002eb6b
test dl, dl
je 0x1002eb60
mov dword [edi], 0
cmp dword [edi], 0x14
je 0x1002ee2c
xor esi, esi
inc esi
push dword [ebp + 8]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0xc88eb987
push eax
push 0x253b
push ecx
push ecx
push esi
push 0x38b4
push dword [ebp + 0x10]
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x9f23e525
push 0x2e36
push eax
push edi
push ecx
mov dword [ebp - 0x30], 0xfffffffd
lea edx, [ebp - 0x30]
mov ecx, 0x62e4
call fcn.1002debb
add esp, 0x30
inc dword [edi]
cmp dword [edi], 0x14
jne 0x1002eb0d
jmp 0x1002ee2c
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
jmp 0x1002ee2c
cmp byte [ebp + 0x18], 0
je 0x1002eb89
push ecx
push ecx
push 1
lea edx, [ebp + 0x1f]
mov byte [ebp + 0x1f], 0
call fcn.1002dd73
add esp, 0xc
jmp 0x1002ee2c
mov dword [ebp - 0x24], 0x61bc
cmp dword [ebp - 0x24], 0x620b
jle 0x1002ebfd
xor esi, esi
mov dword [ebp - 0x20], esi
xor edi, edi
mov dword [ebp - 0x1c], edi
mov ecx, edi
mov dword [ebp - 0x34], esi
xor ebx, ebx
sar esi, cl
xor edi, edi
lea eax, [edi + ebx]
mov ecx, 0x1007bf18
xor eax, esi
cdq
push edx
push eax
call fcn.1000448f
inc edi
cmp edi, 0xa2f
jl 0x1002ebae
inc ebx
cmp ebx, 0x510b
jl 0x1002ebac
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x7d6
jl 0x1002eba3
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x6af8
jl 0x1002eb9e
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetParent]
and dword [ebp - 4], 0
cmp dword [ebp - 0x24], 0x5ea5
jge 0x1002edf1
mov dword [ebp - 0x34], 0x204b
cmp dword [ebp - 0x34], 0x644
jge 0x1002edc3
lea eax, [ebp - 0x18]
mov ebx, 0x100684d4
push eax
push ebx
call fcn.1004845b
mov eax, dword [ebp - 0x18]
xor edi, edi
inc eax
mov dword [ebp - 0x18], eax
pop ecx
pop ecx
test eax, eax
jle 0x1002ec59
mov esi, 0x1007d210
push esi
push ebx
call fcn.1004845b
mov eax, dword [ebp - 0x18]
inc edi
pop ecx
add esi, 4
pop ecx
cmp edi, eax
jl 0x1002ec45
xor esi, esi
inc esi
mov ecx, esi
cmp eax, esi
jle 0x1002ec79
cmp dword [ecx*4 + 0x1007d210], esi
jle 0x1002ec74
cmp dword [ecx*4 + 0x1007d20c], esi
jg 0x1002ec84
inc ecx
cmp ecx, eax
jl 0x1002ec62
push str.perfect
call fcn.10048a02
pop ecx
push str.ambiguous
call fcn.10048a02
mov dword [ebp - 0x1c], esi
mov dword [esp], 0x1006cc18
call fcn.10048743
mov eax, dword [ebp - 0x18]
mov edx, esi
mov dword [ebp - 0x24], edx
pop ecx
cmp eax, esi
jle 0x1002ece2
mov edi, 0x1007d214
mov ecx, esi
xor ebx, ebx
cmp dword [edi], ebx
jle 0x1002ecd2
push ecx
push 0x1006cc1c
call fcn.10048743
pop ecx
inc ebx
pop ecx
mov ecx, dword [ebp - 0x1c]
cmp ebx, dword [edi]
jl 0x1002ecb7
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
add ecx, dword [edi]
inc edx
add edi, 4
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], edx
cmp edx, eax
jl 0x1002ecb1
push 0x10067999
call fcn.10048a02
mov ebx, esi
mov dword [esp], 0x1006cc18
call fcn.10048743
mov edi, esi
pop ecx
cmp dword [ebp - 0x18], esi
jle 0x1002edb6
and dword [ebp - 0x24], 0
cmp dword [edi*4 + 0x1007d20c], esi
jle 0x1002ed7e
mov eax, dword [edi*4 + 0x1007d210]
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle 0x1002ed4d
lea eax, [ebx - 1]
push eax
push 0x1006cc1c
call fcn.10048743
mov eax, dword [edi*4 + 0x1007d210]
pop ecx
cdq
pop ecx
mov ecx, dword [ebp - 0x24]
sub eax, edx
inc ecx
sar eax, 1
cmp ecx, eax
mov dword [ebp - 0x24], ecx
lea eax, [ebx - 1]
jl 0x1002ed26
mov ecx, dword [edi*4 + 0x1007d210]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
cmp eax, ecx
jmp 0x1002ed77
push ebx
push 0x1006cc1c
call fcn.10048743
mov eax, dword [ebp - 0x24]
pop ecx
inc eax
cmp eax, dword [edi*4 + 0x1007d210]
pop ecx
mov dword [ebp - 0x24], eax
jl 0x1002ed5f
jmp 0x1002eda5
cmp dword [edi*4 + 0x1007d210], 0
jle 0x1002eda5
push ebx
push 0x1006cc1c
call fcn.10048743
mov eax, dword [ebp - 0x24]
inc eax
pop ecx
pop ecx
mov dword [ebp - 0x24], eax
cmp eax, dword [edi*4 + 0x1007d210]
jl 0x1002ed88
add ebx, dword [edi*4 + 0x1007d210]
inc edi
cmp edi, dword [ebp - 0x18]
jl 0x1002ed06
push 0x10067999
call fcn.10048a02
pop ecx
jmp 0x1002edc6
xor esi, esi
inc esi
mov edx, str.uehtcqr_jbzxiursa_fqsizzn_uzpsiwo_cqpjmu_svvggcsyb_weymcp_gyyrcpnvm_aag_vacz_cubfteyvk_pipree_tijn
mov ecx, 0x1007bf18
call fcn.10006900
jmp 0x1002edf4
xor esi, esi
inc esi
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xffffffe9
cmp dword [edx], 0xa
je 0x1002ee2c
mov edi, dword [ebp + 0x20]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x34], 0xfffffffe
xor ecx, ecx
mov eax, dword [ebx]
cmp eax, esi
setne cl
xor eax, eax
cmp ecx, 0x5b61
setge al
mov dword [edi], eax
inc dword [edx]
cmp dword [edx], 0xa
jne 0x1002ee08
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret