Function at 0x1002a004
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005819f
call fcn.10056ec8
sub esp, 0xb0
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, ecx
je 0x1002a045
push 0
push 0x249b
push 0x24f5
push 0x1a81
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetScrollRange]
jmp 0x1002a565
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x70]
xor esi, esi
mov dword [ebp - 0x1c], 0xd3c891c5
inc esi
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x18], esi
push 4
mov dword [ebp - 0x34], eax
call fcn.10011bd7
xor ebx, ebx
mov dword [ebp - 0x30], 5
mov dword [ebp - 0x20], ebx
jmp 0x1002a085
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x44], 3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x1002a077
mov dword [ebp - 0x20], ebx
jmp 0x1002a09f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x1002a08f
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x1c]
add eax, 0xffffe255
mov dword [ebp - 0x44], eax
cmp eax, dword [ebp - 0x1c]
jle 0x1002a0c0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x44]
xor edx, edx
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setg dl
cmp edx, dword [ebp - 0x1c]
jge 0x1002a0d9
mov ecx, ebx
cmp dword [ebp - 0x1c], ebx
je 0x1002a0db
mov ecx, esi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
imul ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x70]
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], 0xd7d04549
call fcn.10011c39
mov eax, dword [edi]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x18], ebx
jmp 0x1002a127
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x4c], 0xfffffff8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1002a119
mov dword [ebp - 0x18], 0x5f43
cmp dword [ebp - 0x18], 0x60fc
jle 0x1002a167
mov edi, ebx
mov esi, ebx
mov eax, esi
mov ecx, 0x10072d38
xor eax, edi
cdq
push edx
push eax
call fcn.10011982
inc esi
cmp esi, 0x56e0
jl 0x1002a141
inc edi
cmp edi, 0x4b46
jl 0x1002a13f
xor esi, esi
inc esi
mov byte [ebp - 0x22], bl
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0x5def
jge 0x1002a185
mov edx, str.thdnr_llfdc_muklmuav_gxxc_foqxbhy_yzpug_rsalvicnw_onp_vwa_sucd_xriiagp_rkb_zwrbya
mov ecx, 0x10072d38
call fcn.10016228
or dword [ebp - 4], 0xffffffff
push ecx
push ecx
lea ecx, [ebp - 0x22]
call fcn.1002b9d7
pop ecx
pop ecx
mov dword [ebp - 0x4c], 0x11
cmp dword [ebp - 0x4c], 4
jl 0x1002a28a
mov dword [ebp - 0x18], 0xaa9ac70c
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 0x1a
jl 0x1002a282
mov dword [ebp - 0x1c], 0x5c86
cmp dword [ebp - 0x1c], 0x5cbb
jle 0x1002a219
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0xa0]
cdq
push edx
push eax
call fcn.10001ba3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002a1ed
mov eax, dword [eax]
push eax
call fcn.100410e1
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xa0]
call fcn.100122d9
mov ecx, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x4021
jl 0x1002a1d1
inc edi
cmp edi, 0x9e4
jl 0x1002a1cc
mov byte [ebp - 0x21], bl
cmp dword [ebp - 0x1c], 0x59c7
jge 0x1002a230
push str.soxlmv_hwktggal_kjisn_dlepyv_ubq_cdl_cce
call fcn.100410e1
pop ecx
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x21]
push eax
push ecx
push 0x5c4e
push esi
mov edx, 0x2ec1
call fcn.10029a8a
add esp, 0x10
inc dword [ebp - 0x18]
jmp 0x1002a1b0
dec dword [ebp - 0x4c]
jmp 0x1002a19c
mov edi, ebx
mov dword [ebp - 0x30], ebx
cmp edi, 4
jae 0x1002a537
mov dword [ebp - 0x34], 0x3bff
cmp dword [ebp - 0x34], 0x3c40
jle 0x1002a331
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
cdq
idiv ecx
lea ecx, [ebp - 0x88]
and edx, dword [ebp - 0x18]
xor edx, dword [ebp - 0x20]
mov eax, edx
cdq
push edx
push eax
call fcn.10001ba3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002a2de
mov eax, dword [eax]
push eax
call fcn.100410e1
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x88]
call fcn.100122d9
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x23e4
jl 0x1002a2b9
inc edi
cmp edi, 0x6531
jl 0x1002a2b4
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x733
jl 0x1002a2b2
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x42c0
jl 0x1002a2af
push 0x6ec
call dword [sym.imp.USER32.dll_GetQueueStatus]
mov dword [ebp - 0x2c], 0x4722
cmp dword [ebp - 0x2c], 0x498a
jle 0x1002a3af
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov dword [ebp - 0x3c], ebx
mov eax, edi
mov dword [ebp - 0x1c], 0xec4
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
or eax, edi
lea ecx, [ebp - 0xb8]
cdq
push edx
push eax
call fcn.10001ba3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002a372
mov eax, dword [eax]
push eax
call fcn.100410e1
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xb8]
call fcn.100122d9
mov eax, dword [ebp - 0x20]
dec eax
dec dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
jne 0x1002a358
mov edi, dword [ebp - 0x3c]
inc edi
mov dword [ebp - 0x3c], edi
cmp edi, 0x34c9
jl 0x1002a349
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x78a
jl 0x1002a344
cmp dword [ebp - 0x2c], 0x44ba
jge 0x1002a3c3
push str.mjycvot_mvfquz_uecimsbjr
call fcn.100410e1
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x18], ebx
push esi
call fcn.10011bd7
mov dword [ebp - 4], 6
mov dword [ebp - 0x40], 0x82ecc90c
mov dword [ebp - 0x28], ebx
jmp 0x1002a3f4
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x64], 4
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x1002a3e6
lea eax, [ebp - 0x58]
xor cl, cl
push eax
lea edx, [ebp - 0x28]
call fcn.1002bd40
pop ecx
mov dword [ebp - 0x18], ebx
jmp 0x1002a4c9
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x2c], 0x98072f25
mov dword [ebp - 0x1c], ebx
jmp 0x1002a4bc
mov dword [ebp - 0x20], 0xfffffff7
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x64]
cmp dword [ebp - 0x1c], eax
jle 0x1002a461
mov eax, dword [ebp - 0x58]
cmp dword [eax], ebx
mov eax, ebx
je 0x1002a463
mov eax, esi
mov ecx, dword [ebp - 0x20]
imul ecx, eax
mov eax, dword [ebp - 0x58]
sub ecx, dword [eax]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
sub ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x1c]
cmp ecx, 0x339b8842
jne 0x1002a48e
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
test eax, eax
mov eax, dword [ebp - 0x58]
setle cl
xor edx, edx
cmp ecx, dword [eax]
setle dl
xor eax, eax
cmp edx, 0xcb2d
setge al
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jle 0x1002a427
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x1002a411
push 0x51c4
lea eax, [ebp - 0x40]
xor dl, dl
push eax
push esi
push ebx
push 0x14cb
push 0x7d6d
push 0xef6
lea ecx, [ebp - 0x58]
call fcn.1002d723
add esp, 0x1c
lea ecx, [ebp - 0x58]
call fcn.10011c39
cmp dword [ebp - 0x34], 0x3bc7
jge 0x1002a516
push str.alepyvcf_dpvagxqr_qrtvhdmoz_oau_dkrdvs_wtlkbhefu_ejwjla_omiidyh
call fcn.100410e1
pop ecx
mov edi, dword [ebp - 0x30]
mov dl, 0xc8
or dword [ebp - 4], 0xffffffff
mov cl, byte [ebp + edi - 0x38]
call fcn.10031fc9
lea ecx, [ebp - 0x38]
mov byte [edi + ecx], al
inc edi
mov dword [ebp - 0x30], edi
jmp 0x1002a28f
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], 0x1d
jmp 0x1002a557
cmp dword [ebp - 0x18], ebx
jne 0x1002a55d
mov edx, 0xbaa
xor cl, cl
call fcn.1002befc
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x13
jne 0x1002a543
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x38]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret