Function at 0x1002aede
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1006589e
call fcn.10064328
sub esp, 0x54
mov byte [ebp - 0x18], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x1002b0c7
mov dword [ebp - 0x2c], 0xc77
xor ebx, ebx
cmp dword [ebp - 0x2c], 0xd97
jle 0x1002b07c
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], 0x13b2
cmp dword [ebp - 0x20], 0x756
jge 0x1002b031
call fcn.1004e158
push eax
push 0x10071500
push str.in.txt
call fcn.1004e307
add esp, 0xc
call fcn.1004e158
add eax, 0x20
push eax
push 0x1007150c
push str.out.txt
call fcn.1004e307
add esp, 0xc
mov dword [ebp - 0x34], 0xf
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0x48], bl
mov edi, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], edi
mov esi, ebx
mov dword [ebp - 0x20], ebx
lea edx, [ebp - 0x48]
mov ecx, 0x10081d18
call fcn.100109d5
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x30], ebx
cmp ecx, 0x10
lea eax, [ebp - 0x48]
cmovae eax, edx
cmp byte [eax + ebx], 0x2e
je 0x1002aff4
cmp ecx, 0x10
lea eax, [ebp - 0x48]
cmovae eax, edx
movsx esi, byte [eax + ebx]
lea edx, [esi - 0x41]
and edx, 0x80000003
jns 0x1002afbf
dec edx
or edx, 0xfffffffc
inc edx
mov ecx, ebx
sub ecx, edx
push ecx
call fcn.1004e32d
mov edi, eax
lea eax, [esi - 0x41]
mov esi, dword [ebp - 0x20]
cdq
and edx, 3
pop ecx
add eax, edx
mov ecx, esi
sar eax, 2
sub ecx, eax
push ecx
call fcn.1004e32d
add eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x48]
add edi, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edi
inc ebx
cmp ebx, 4
jl 0x1002af93
inc esi
mov dword [ebp - 0x20], esi
push 0
pop ebx
cmp esi, 4
jl 0x1002af7d
push edi
mov ecx, 0x10081bf8
call fcn.10030753
push eax
call fcn.10010589
or dword [ebp - 4], 0xffffffff
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x48]
call fcn.10003c82
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x30], ebx
mov ecx, ebx
mov eax, edi
shl eax, cl
mov ecx, 0x10081bf8
xor eax, esi
cdq
push edx
push eax
call fcn.1000377e
inc ebx
cmp ebx, 0x4f8
jl 0x1002b034
inc edi
mov dword [ebp - 0x24], edi
push 0
pop ebx
cmp edi, 0x445f
jl 0x1002af1c
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x3284
jl 0x1002af17
push ebx
call dword [sym.imp.USER32.dll_RegisterClassW]
mov byte [ebp - 0x11], bl
lea edx, [ebp - 0x11]
push ecx
call fcn.1002bb15
mov dword [ebp - 4], 1
cmp dword [ebp - 0x2c], 0xb4a
pop ecx
jge 0x1002b0a8
mov edx, str.epy_ytpevb_nfeykcwmg_nwnjkpew_kwvvd_zwcsuhae_ggbjvij_uzjz_ymrun_milx_nlsrfvscp_nctaner
mov ecx, 0x10081bf8
call fcn.100059cc
jmp 0x1002b170
mov dword [ebp - 0x2c], 0x54aa
cmp dword [ebp - 0x2c], 0x5800
jle 0x1002b11c
xor ebx, ebx
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
sar eax, cl
lea ecx, [ebp - 0x60]
cdq
push edx
push eax
call fcn.10001b14
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002b0f8
mov eax, dword [eax]
push eax
call fcn.1004c11f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x60]
call fcn.10003c82
inc edi
cmp edi, 0xd7b
jl 0x1002b0dd
inc esi
cmp esi, 0x3f0
jl 0x1002b0db
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x1002b15c
push 0x8b0
push 0x1c4c
push 1
push 1
push 0x58d9
push 0x789e
push 0x333b
push 0x27
push 1
push 0x5972
mov edx, 0x537e
mov ecx, 0x56ad
call fcn.10028665
add esp, 0x28
cmp dword [ebp - 0x2c], 0x50ed
jge 0x1002b170
push str.toznodv_qceea_xqg_dywsbt_jgmmbw_shmei_zevfwa_prq_hrpdqspfs_zhaj_ecaqik
call fcn.1004c11f
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret