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

Disassembly:
mov eax, 0x10062923
call fcn.10060f20
sub esp, 0xd0
mov dword [ebp - 0x4c], edx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x1004262b
cmp byte [ebp + 0x1c], 0
je 0x10042592
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x10042be9
push 0x914
push 0x344
push 0x21fe
mov ecx, 0x46f7
call fcn.10042d7a
add esp, 0xc
jmp 0x10042be9
mov dword [ebp - 0x14], 0x2b5b
xor ebx, ebx
cmp dword [ebp - 0x14], 0x2c71
jle 0x100425c9
mov esi, ebx
mov edi, esi
mov ebx, 0x31e2
mov eax, edi
mov ecx, 0x1007cc18
cdq
push edx
push eax
call fcn.10013d0a
dec edi
dec ebx
jne 0x100425ad
inc esi
cmp esi, 0x21e2
jl 0x100425a6
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x14], 0x281a
jge 0x10042602
mov edx, str.sqe_ravrpeal_obvbtn_pmvcm_gbvp_efodhrvkw_cqftvpx_rcbcjgsu_qrbh_oyjpkum_dbuemmy_nktjnjopt_cpxpagl_hiqgpz
mov ecx, 0x1007cc18
call fcn.1001875a
jmp 0x10042602
mov edx, dword [ebp + 0x10]
push 2
pop edi
mov dword [edx], ebx
cmp dword [edx], edi
jge 0x10042be9
mov esi, dword [ebp - 0x4c]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [edx]
cmp dword [edx], edi
jl 0x10042615
jmp 0x10042be9
cmp byte [ebp + 0x14], 0
je 0x1004265d
mov edx, dword [ebp + 0x20]
mov dword [edx], 0
cmp dword [edx], 4
jge 0x10042be9
mov esi, dword [ebp + 0xc]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x8bd85027
inc dword [edx]
cmp dword [edx], 4
jl 0x10042646
jmp 0x10042be9
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x76820624
push eax
push ecx
xor ebx, ebx
mov ecx, 0x600c
push 0x1d34
mov dword [ebp - 0x40], ebx
push ebx
call fcn.10041e14
add esp, 0x10
mov dword [ebp - 0x1c], ebx
xor esi, esi
inc esi
push 2
pop edi
cmp dword [ebp - 0x1c], 3
jl 0x10042730
push esi
lea ecx, [ebp - 0x84]
call fcn.100021e9
mov dword [ebp - 4], edi
mov dword [ebp - 0x30], 0x307b5ca9
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x14], ebx
jmp 0x100426c5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x84]
mov dword [eax + ecx*4], 0x2961
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100426b2
mov dword [ebp - 0x30], ebx
jmp 0x10042714
mov dword [ebp - 0x28], 0x7b80be39
mov dword [ebp - 0x68], 0xffffffff
mov dword [ebp - 0x28], ebx
jmp 0x1004270c
push ecx
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x28]
push eax
push ebx
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 0x84]
lea ecx, [ebp - 0x68]
call fcn.100419bb
add esp, 0x1c
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x100426e2
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jle 0x100426cf
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84]
call fcn.10002246
inc dword [ebp - 0x1c]
jmp 0x1004268a
mov eax, dword [0x1007df40]
test al, 1
jne 0x10042779
or eax, esi
mov ecx, 0x1571
or dword [0x1007f2e4], 0xffffffff
mov edx, esi
mov dword [0x1007df40], eax
mov dword [0x1007df64], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
mov eax, 0x270
add ecx, edx
mov dword [edx*4 + 0x1007df64], ecx
inc edx
cmp edx, eax
jl 0x10042754
mov dword [0x1007df60], eax
push edi
lea ecx, [ebp - 0x78]
call fcn.100021e9
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 3
push eax
push ebx
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0xffffffff
push eax
push 0x5b76
push 0x5c99
push esi
push ebx
mov edx, 0x50fd
mov ecx, 0x37fa
call fcn.100418ed
add esp, 0x1c
mov dword [ebp - 0x18], ebx
jmp 0x100427ca
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x54], 0x4288a137
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100427bc
mov dword [ebp - 0x18], ebx
jmp 0x100427e2
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x60], 0x9cb6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100427d4
mov edx, dword [ebp - 0x78]
mov eax, dword [edx + 4]
mov dword [ebp - 0x50], eax
add eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
je 0x10042806
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x60]
xor ecx, ecx
cmp dword [edx + 4], eax
setge cl
imul edx, ecx, 0xfffffff6
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
sub eax, ecx
cmp eax, edx
je 0x1004286e
push 0x2a45
mov edx, 0x7a22
xor cl, cl
call fcn.100437c0
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x10042866
push 0x4f1c
push ebx
push 0x63c2
push 0x3a5c
push 0x1c37
push esi
mov byte [ebp - 0x1f], bl
lea ecx, [ebp - 0x1f]
push esi
mov edx, 0x779a
call fcn.100418ed
add esp, 0x1c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
jne 0x10042839
jmp 0x100428b3
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], ebx
jl 0x10042891
push ecx
push 0x3404
push ecx
push ebx
push ecx
push 0x3c97
call fcn.10041b4e
add esp, 0x18
dec dword [ebp - 0x14]
jns 0x10042876
push 0x3e6c
lea eax, [ebp - 0x21]
mov byte [ebp - 0x21], bl
push eax
push ebx
push 0x668a
push esi
mov edx, 0x4d8a
xor cl, cl
call fcn.10043880
add esp, 0x14
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x78]
call fcn.10002246
mov dword [ebp - 0x2c], 0xffffffff
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x2c], 0x8ade19d2
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 0xf37d45db
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], ebx
push esi
call fcn.100021e9
push 0x7491
push esi
push 0x4bfd
lea eax, [ebp - 0xc4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 0x90]
mov edx, 0x3eb5
push eax
push ebx
push esi
mov ecx, 0x57d8
call fcn.100418ed
push ebx
push 0x4fe4
push ebx
push 0x26e9
lea edx, [ebp - 0x90]
mov ecx, 0x42f9
call fcn.10041eb8
push ebx
push 0x218c
lea edx, [ebp - 0x1d]
mov byte [ebp - 0x1d], bl
call fcn.10041c4b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
add esp, 0x34
call fcn.10002246
cmp byte [0x1007dd90], 0
jne 0x10042a11
push ecx
push ebx
push 0xbfd
mov edx, 0x76a9
mov ecx, 0x1007df60
call fcn.10041d3b
add esp, 0xc
mov dword [ebp - 0x58], 0x2bea
lea ecx, [ebp - 0xa8]
push edi
call fcn.100021e9
push 0x5219
push ebx
lea edx, [ebp - 0xa8]
mov dword [ebp - 4], 5
lea ecx, [ebp - 0xb0]
call fcn.10042517
add esp, 4
mov byte [ebp - 0x1e], bl
lea eax, [ebp - 0x1e]
xor dl, dl
push eax
push 0x765a
call fcn.10041dad
pop ecx
pop ecx
lea eax, [ebp - 0x58]
push eax
push ecx
push esi
push ecx
lea eax, [ebp - 0xa8]
push eax
call fcn.10041b4e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa8]
add esp, 0x18
call fcn.10002246
push esi
push 0x1007dd90
mov edx, 0x6c57
call fcn.10041c4b
pop ecx
pop ecx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x64], 0xfffffff6
mov dword [ebp - 0x6c], 0xccc89593
mov dword [ebp - 0x2c], 0x45a5
cmp dword [ebp - 0x2c], 0x4695
jle 0x10042ac9
push ebx
push 0xa2e
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
mov edi, ebx
mov dword [ebp - 0x38], ebx
mov ecx, edi
mov dword [ebp - 0x34], 0x6796
mov dword [ebp - 0x14], ecx
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x3c], ebx
add eax, edi
xor eax, ecx
lea ecx, [ebp - 0xdc]
cdq
push edx
push eax
call fcn.10002bac
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10042a76
mov eax, dword [eax]
push eax
call fcn.1004a753
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xdc]
call fcn.10014850
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, 0x1d45
jl 0x10042a5a
inc edi
cmp edi, 0x1de3
jl 0x10042a55
dec ecx
dec dword [ebp - 0x34]
mov dword [ebp - 0x14], ecx
jne 0x10042a53
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x204f
jl 0x10042a47
push ebx
push ebx
push 0x10db
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
lea ecx, [ebp - 0x9c]
call fcn.100021e9
cmp dword [ebp - 0x2c], 0x44bc
jge 0x10042ae9
push str.wuhnyky_xjwthmvfx_euoqoxzg_cid_eilvh_qpwuggyx_gla_ryglezu_zdgnhjii_ropajicg_pmcmnljsk_godrxfz_jdqrica
call fcn.1004a753
pop ecx
push ecx
lea eax, [ebp - 0x9c]
mov dword [ebp - 4], 6
push eax
push ebx
lea ecx, [ebp - 0xac]
call fcn.10041c72
add esp, 0xc
lea eax, [ebp - 0x9c]
lea edx, [ebp - 0x44]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x64]
push eax
push ecx
mov ecx, 0x6bff
call fcn.10042bfa
add esp, 0x10
mov byte [ebp - 0x20], bl
lea eax, [ebp - 0x20]
mov edx, 0x1817
push eax
push ebx
push ecx
push ecx
push 0x4324
call fcn.10041970
add esp, 0x14
lea ecx, [ebp - 0x9c]
call fcn.10002246
mov eax, dword [0x1007df60]
cmp eax, 0x270
jne 0x10042b9a
mov edx, 0x1007df68
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, 0x1007e928
jl 0x10042b5f
jmp 0x10042ba6
cmp eax, 0x4e0
jb 0x10042bab
call fcn.100440f1
mov eax, dword [0x1007df60]
mov edx, dword [eax*4 + 0x1007df64]
inc eax
mov dword [0x1007df60], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x1007f2e4]
xor edx, eax
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 + 0x18]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret