Function at 0x1002f9cd
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x1005b8e9
call fcn.1005a1d8
sub esp, 0x54
push ebx
push esi
mov byte [ebp - 0x14], cl
xor esi, esi
mov dword [ebp - 0x1c], 0x3169
cmp dword [ebp - 0x1c], 0x34c1
push edi
mov dword [ebp - 0x10], esp
jle 0x1002fa32
mov edi, esi
mov dword [ebp - 0x20], esi
mov ebx, esi
mov esi, edi
mov edi, 0x302d
mov eax, esi
mov ecx, 0x10075958
cdq
push edx
push eax
call fcn.1000daa1
add esi, ebx
dec edi
jne 0x1002fa03
mov edi, dword [ebp - 0x20]
inc ebx
cmp ebx, 0x1d75
jl 0x1002f9fc
inc edi
mov dword [ebp - 0x20], edi
push 0
pop esi
cmp edi, 0x6f99
jl 0x1002f9fa
cmp byte [ebp - 0x14], 0
je 0x1002fa90
push 0xc97
push esi
push esi
push 0x1ba4
push esi
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
mov dword [ebp - 4], 6
cmp dword [ebp - 0x1c], 0x2eab
jge 0x1002fa7f
mov edx, str.veqr_lrlclkxt_dzby
jmp 0x1002fe78
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
sub esp, 0xc
mov dword [ebp - 0x18], 0xe0a8eac8
mov dword [ebp - 0x1c], 3
call fcn.1002efed
xor edi, edi
mov dword [ebp - 0x18], 0xffffffef
add esp, 0xc
inc edi
cmp dword [ebp - 0x18], 0xfffffff5
jle 0x1002fb2b
mov dword [ebp - 0x1c], 0x7d20
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x20], 0x6e5b14f4
mov dword [ebp - 0x1c], esi
jmp 0x1002fae1
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x24], 0xe57f
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1002fad3
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], 0xe864896
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
dec eax
neg eax
push 0xfffffffffffffffd
sbb eax, eax
inc eax
pop ecx
cmp ecx, eax
sbb edx, edx
xor ecx, ecx
inc edx
add edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
cmp edx, eax
setg cl
mov dword [ebp - 0x20], ecx
inc dword [ebp - 0x18]
jmp 0x1002fab3
mov eax, dword [0x1007d60c]
test al, 1
jne 0x1002fb78
or eax, edi
mov ecx, 0x1571
or dword [0x1007e9a4], 0xffffffff
mov edx, edi
mov dword [0x1007d60c], eax
mov dword [0x1007d624], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1007d624], ecx
inc edx
cmp edx, 0x270
jl 0x1002fb4f
mov dword [0x1007d620], 0x270
mov dword [ebp - 0x30], 0xfffffffc
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x30], 0xf34fda0e
mov dword [ebp - 0x30], 0xfe77dd68
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x18], 0x8ef6b8f3
mov dword [ebp - 0x30], 0xaf14c90d
mov dword [ebp - 0x30], 0xf30836b1
mov dword [ebp - 0x30], 0x2f49
cmp dword [ebp - 0x30], 0x30fd
jle 0x1002fc39
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x28], 0x727c
mov ecx, esi
mov dword [ebp - 0x1c], 0x6d37
mov dword [ebp - 0x20], ecx
mov ebx, esi
mov eax, ecx
mov ecx, ebx
shl eax, cl
lea ecx, [ebp - 0x60]
cdq
push edx
push eax
call fcn.100026cb
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002fbf6
mov eax, dword [eax]
push eax
call fcn.10041403
pop ecx
push esi
push edi
lea ecx, [ebp - 0x60]
call fcn.1000e4ee
mov ecx, dword [ebp - 0x20]
inc ebx
cmp ebx, 0x70f
jl 0x1002fbdb
mov eax, dword [ebp - 0x18]
add ecx, eax
dec dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
jne 0x1002fbd9
mov ebx, dword [ebp - 0x2c]
add eax, ebx
dec dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
jne 0x1002fbcd
inc ebx
mov dword [ebp - 0x2c], ebx
cmp ebx, 0x2fef
jl 0x1002fbc3
cmp dword [ebp - 0x30], 0x2d0c
jge 0x1002fc4d
push str.xjfmyjoj_oeckphdgx_utwhtzokx_uwcb_okcjfkf_sspgg_vya_uhqdcus_ltul_hryf_taejxuqt
call fcn.10041403
pop ecx
or dword [ebp - 4], 0xffffffff
push 2
mov dword [ebp - 0x1c], esi
pop ebx
jmp 0x1002fc67
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x38], 0xd947597a
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x1002fc59
dec dword [ebp - 0x34]
mov dword [ebp - 0x18], esi
jmp 0x1002fc7e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x38], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1002fc74
mov dword [ebp - 0x30], 0x3e21
cmp dword [ebp - 0x30], 0x3e70
jle 0x1002fcd1
mov edi, esi
mov ebx, esi
mov dword [ebp - 0x2c], esi
mov eax, ebx
mov ecx, 0x10075958
cdq
idiv esi
and edx, edi
mov eax, edx
cdq
push edx
push eax
call fcn.1000daa1
inc esi
cmp esi, 0x4d25
jl 0x1002fc9a
inc ebx
push 0
pop esi
cmp ebx, 0x31c3
jl 0x1002fc97
inc edi
cmp edi, 0x1b59
jl 0x1002fc95
push 2
pop ebx
sub esp, 0x14
call fcn.10030aa2
add esp, 0x14
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x30], 0x3b4d
jge 0x1002fcf7
mov edx, str.zqwhtbcra_pfvq_erhtd_fixtk_rcpch_revl_vvao_zfux_zmyncmiyw_doqsaiv_xaqmt_sqr
mov ecx, 0x10075958
call fcn.1001082c
or dword [ebp - 4], 0xffffffff
mov eax, 0x8c176b0f
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
call fcn.1002ef2a
sub esp, 0xc
call fcn.1002eebf
mov dword [ebp - 0x28], 0x45a5
add esp, 0xc
cmp dword [ebp - 0x28], 0x47dd
jle 0x1002fd9f
mov edi, esi
mov dword [ebp - 0x2c], esi
mov ebx, esi
mov ecx, esi
mov dword [ebp - 0x30], esi
mov eax, ebx
mov dword [ebp - 0x24], edi
cdq
idiv ecx
mov dword [ebp - 0x20], esi
mov ecx, edx
sar edi, cl
mov ecx, esi
mov eax, edi
sar eax, cl
mov ecx, 0x10075958
cdq
push edx
push eax
call fcn.1000daa1
inc esi
cmp esi, 0x1cd8
jl 0x1002fd47
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x30], ecx
push 0
pop esi
cmp ecx, 0x4dd
jl 0x1002fd38
inc ebx
cmp ebx, 0x7a0d
jl 0x1002fd33
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x7503
jl 0x1002fd31
push 0xe48
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov eax, dword [0x1007d620]
cmp eax, 0x270
jne 0x1002fe10
mov edx, 0x1007d628
mov ecx, dword [edx - 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, dword [edx - 4]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x630]
xor eax, ecx
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x1007dfe8
jl 0x1002fdb0
jmp 0x1002fe1c
cmp eax, 0x4e0
jb 0x1002fe21
call fcn.10031208
mov eax, dword [0x1007d620]
mov edx, dword [eax*4 + 0x1007d624]
inc eax
mov dword [0x1007d620], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x1007e9a4]
xor edx, eax
mov dword [ebp - 4], 4
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, dword [ebp + 8]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
cmp dword [ebp - 0x28], 0x425b
mov dword [eax], ecx
jge 0x1002fa7f
mov edx, str.vkarleo_zhtlao_ewtiml_emyzwoo_ldsyd_iku_camojtdy_lsz_ogfei_oaeprse_pysputd_cmk_cidfzwty_iqfl
mov ecx, 0x10075958
call fcn.1001082c
jmp 0x1002fa7f