Function at 0x10002522
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005da2f
call fcn.1005d528
sub esp, 0x40
cmp byte [ebp + 0x14], 0
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], ebx
je 0x100025e1
cmp byte [ebp + 0x18], 0
je 0x100025d7
mov byte [ebp + 0x17], 0
cmp byte [ebp + 0x17], 0
je 0x100025b8
mov dword [ebp + 0x14], 0x58f6
cmp dword [ebp + 0x14], 0x5a1e
jle 0x10002592
xor esi, esi
xor edi, edi
mov eax, edi
mov ecx, 0x100792f8
xor eax, esi
cdq
push edx
push eax
call fcn.1000a4ec
inc edi
cmp edi, 0x5946
jl 0x1000256f
inc esi
cmp esi, 0x646
jl 0x1000256d
push 0
push 0
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
and dword [ebp - 4], 0
cmp dword [ebp + 0x14], 0x56db
jge 0x100025b8
mov edx, str.cstrxmjaw_czdiuonud_rmpky_lophbbq_saufl_hie_yzvgsoa_bezdxpsjw_wkroisi_sii_fpdmfgzkr_addugbt_amirz
mov ecx, 0x100792f8
call fcn.1000c8f5
jmp 0x100027d8
mov eax, dword [ebp + 8]
inc dword [eax]
jmp 0x100027d8
xor esi, esi
cmp byte [ebp + 0x34], 0
je 0x100026d2
mov dword [ebp + 0x14], 0x17ce
cmp dword [ebp + 0x14], 0x1b9f
jle 0x10002647
xor edi, edi
inc esi
xor ebx, ebx
mov eax, edi
lea ecx, [ebp - 0x34]
cdq
idiv ebx
mov eax, edx
cdq
push edx
push eax
call fcn.10001a6a
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000261e
mov eax, dword [eax]
push eax
call fcn.10046acc
pop ecx
push 0
push esi
lea ecx, [ebp - 0x34]
call fcn.1000aac7
inc ebx
cmp ebx, 0x1d15
jl 0x10002602
inc edi
cmp edi, 0x681c
jl 0x10002600
mov ebx, dword [ebp - 0x18]
jmp 0x10002648
inc esi
cmp dword [ebp + 0x14], 0x1627
jge 0x1000265c
push str.iaoi_rykfbbyta_gfmxqt_nqcexz_svuahucmu_bxhpcmxbd_dhjtg_gldq_vgggdjox_gtrjjbf_lbtbnrcyp_miiwzialm
call fcn.10046acc
pop ecx
mov edi, dword [ebp + 0x2c]
xor edx, edx
mov eax, dword [edi]
mov ecx, dword [edi]
mov eax, dword [edi]
add ecx, 0xa693
cmp ecx, eax
mov eax, dword [edi]
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [edi]
setge cl
sub ecx, eax
add ecx, 0x6284
je 0x1000268c
cmp dword [edi], 0
jne 0x1000268e
xor esi, esi
mov eax, dword [ebx]
xor ecx, ecx
mov dword [ebx], eax
mov eax, dword [edi]
cmp esi, eax
sete cl
xor eax, eax
cmp ecx, 6
mov ecx, dword [edi]
setne al
xor edx, edx
sub ecx, eax
mov eax, dword [edi]
cmp ecx, eax
mov eax, dword [ebx]
setg dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [edi]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [edi]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [edi], ecx
jmp 0x100027d8
mov dword [ebp - 0x18], 0x4b18
cmp dword [ebp - 0x18], 0x4beb
jle 0x10002739
xor edi, edi
inc esi
xor ebx, ebx
xor eax, eax
mov dword [ebp + 0x14], eax
xor eax, ebx
lea ecx, [ebp - 0x4c]
xor eax, edi
cdq
push edx
push eax
call fcn.10001a6a
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002705
mov eax, dword [eax]
push eax
call fcn.10046acc
pop ecx
push 0
push esi
lea ecx, [ebp - 0x4c]
call fcn.1000aac7
mov eax, dword [ebp + 0x14]
inc eax
mov dword [ebp + 0x14], eax
cmp eax, 0x3add
jl 0x100026ec
inc ebx
cmp ebx, 0x1665
jl 0x100026e7
inc edi
cmp edi, 0x3f35
jl 0x100026e5
jmp 0x1000273a
inc esi
cmp dword [ebp - 0x18], 0x47ae
jge 0x1000274e
push str.pwximza_rxzc_xoflmut_wqbpqnif_nphaojrm_raaf_qdnzj
call fcn.10046acc
pop ecx
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov eax, dword [ebx]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [ebx], 0
je 0x1000277c
mov eax, dword [edi]
xor ecx, ecx
cmp eax, 0x2092
setge cl
mov dword [edx], ecx
mov eax, dword [edx]
mov eax, dword [ebx]
dec eax
je 0x1000277c
mov eax, esi
jmp 0x1000277e
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x24]
cmp eax, dword [ecx]
je 0x1000278a
mov eax, dword [ebx]
mov eax, dword [edi]
sub eax, dword [ecx]
je 0x10002799
cmp dword [edx], 0
je 0x10002799
mov ecx, esi
jmp 0x1000279b
xor ecx, ecx
mov eax, dword [ebp + 0x30]
mov dword [eax], ecx
mov eax, dword [ebp + 0x28]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [ebx]
mov eax, dword [edi]
cmp eax, 0xdedc87a9
mov eax, dword [ebx]
sete cl
add eax, 0x688
add ecx, eax
xor edx, edx
mov eax, dword [edi]
cmp ecx, eax
setne dl
cmp edx, dword [edi]
jl 0x100027d1
mov eax, dword [ebp + 0x30]
cmp dword [eax], 0
jne 0x100027d3
xor esi, esi
mov eax, dword [ebp - 0x1c]
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