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

Disassembly:
mov eax, 0x1006121b
call fcn.10060138
sub esp, 0x98
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x3c], esi
je 0x1001ebcd
mov dword [ebp - 0x1c], 0x18d3
xor ebx, ebx
cmp dword [ebp - 0x1c], 0x1c54
jle 0x1001eace
mov esi, ebx
mov dword [ebp + 8], ebx
mov edi, ebx
mov eax, esi
mov dword [ebp - 0x14], ebx
cdq
idiv edi
mov esi, edx
mov eax, esi
mov ecx, 0x1007cb98
and eax, ebx
cdq
push edx
push eax
call fcn.10004616
inc ebx
cmp ebx, 0x7034
jl 0x1001ea99
mov esi, dword [ebp + 8]
inc edi
push 0
pop ebx
cmp edi, 0x304b
jl 0x1001ea8f
inc esi
mov dword [ebp + 8], esi
cmp esi, 0x1f09
jl 0x1001ea8d
cmp byte [ebp + 0x10], 0
je 0x1001eb80
mov dword [ebp - 0x14], 0x588a
cmp dword [ebp - 0x14], 0x5b65
jle 0x1001eb34
call dword [sym.imp.KERNEL32.dll_GetACP]
mov esi, ebx
mov dword [ebp + 8], ebx
mov edi, ebx
mov ecx, edi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x28], ebx
sar esi, cl
mov eax, esi
mov ecx, 0x1007cb98
and eax, ebx
cdq
push edx
push eax
call fcn.10004616
inc ebx
cmp ebx, 0x730d
jl 0x1001eaff
mov esi, dword [ebp + 8]
inc edi
push 0
pop ebx
cmp edi, 0x20d0
jl 0x1001eaf5
inc esi
mov dword [ebp + 8], esi
cmp esi, 0x5ba0
jl 0x1001eaf3
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x14], 0x54b6
jge 0x1001eb4f
mov edx, str.hhukjr_vtdfsdoa_zehweymhc_qeqvz_zbvlkcoo_zqmfax_xzpfwrja
mov ecx, 0x1007cb98
call fcn.10006a66
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
mov esi, dword [eax]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx + edx*4]
sub eax, dword [ecx + 4]
mov dword [ecx + esi*4], eax
jmp 0x1001eb8f
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x1001eb8f
push ecx
call fcn.1001fec9
pop ecx
mov dword [ebp - 4], 2
cmp dword [ebp - 0x1c], 0x1722
jge 0x1001ebae
mov edx, str.evbc_qxqvpdmt_ejvroq_kcygbkx
mov ecx, 0x1007cb98
call fcn.10006a66
jmp 0x1001f1b5
cmp byte [ebp + 0x18], 0
je 0x1001eca4
mov dword [ebp - 0x1c], 0x2499
xor ebx, ebx
cmp dword [ebp - 0x1c], 0x2680
jle 0x1001ec2a
mov esi, ebx
mov edi, ebx
mov dword [ebp + 8], ebx
mov ebx, edi
mov edi, 0x4448
mov eax, esi
mov ecx, 0x1007cb98
xor eax, ebx
cdq
push edx
push eax
call fcn.10004616
dec ebx
dec edi
jne 0x1001ebf7
mov edi, dword [ebp + 8]
inc edi
mov dword [ebp + 8], edi
cmp edi, 0x1f51
jl 0x1001ebf0
inc esi
push 0
pop ebx
cmp esi, 0x4eaa
jl 0x1001ebeb
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 4], 4
cmp dword [ebp - 0x1c], 0x2257
jge 0x1001ec6a
mov edx, str.oidvxrom_neqbh_cgbuyqel_fhqer_erzvw_tbcrsvv_sahvdt_vnmr_mwvlouig_coamxxcu_pwolcjsok_vjip_xbq_mjhzbvw
mov ecx, 0x1007cb98
call fcn.10006a66
jmp 0x1001ec6a
mov dword [esi], 0x19
jmp 0x1001ec9a
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x1001ec83
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x1001ec98
push 0xa82
push ebx
call dword [sym.imp.KERNEL32.dll_WinExec]
dec dword [esi]
cmp dword [esi], 4
jg 0x1001ec72
jmp 0x1001f1b5
mov eax, dword [0x1007f15c]
xor ecx, ecx
inc ecx
test cl, al
jne 0x1001ecf4
or eax, ecx
mov edx, 0x1571
or dword [0x1007f144], 0xffffffff
mov esi, ecx
mov dword [0x1007f15c], eax
mov dword [0x1007ddc4], edx
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, esi
mov dword [esi*4 + 0x1007ddc4], edx
inc esi
cmp esi, 0x270
jl 0x1001eccb
mov dword [0x1007ddc0], 0x270
push 0xfffffffffffffff9
pop eax
push 3
mov dword [ebp + 8], ecx
lea ecx, [ebp - 0xa4]
pop esi
mov dword [ebp + 8], eax
mov dword [ebp + 8], eax
push esi
call fcn.10004840
push 6
pop edi
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], edi
push eax
lea eax, [ebp - 0xa4]
mov dword [ebp + 8], 0xa50b5f0
push eax
push ecx
push ecx
xor dl, dl
call fcn.1001f2e5
add esp, 0x10
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
jmp 0x1001ed4b
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x98], 0xd744d028
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jl 0x1001ed3a
inc dword [ebp - 0x94]
lea ecx, [ebp - 0xa4]
or dword [ebp - 4], 0xffffffff
call fcn.1000489d
cmp byte [0x1007dcdd], bl
jne 0x1001eff0
xor eax, eax
lea ecx, [ebp - 0x68]
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], 0x7f6cc9ca
mov dword [ebp - 0x40], 0xfffffffd
mov dword [ebp - 0x38], edi
push eax
call fcn.10004840
mov dword [ebp - 4], 7
mov dword [ebp + 8], ebx
jmp 0x1001edad
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0x6bf5ee87
inc dword [ebp + 8]
cmp dword [ebp + 8], 1
jl 0x1001ed9d
lea eax, [ebp - 0x30]
push eax
push ecx
push ecx
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x40]
call fcn.1001e355
add esp, 0x14
mov dword [ebp - 0x24], 0xffffffe9
jmp 0x1001ee10
mov dword [ebp + 8], 0xfffffff7
mov dword [ebp - 0x30], ebx
cmp dword [ebp - 0x30], ebx
jl 0x1001ee08
push 0x31a1
push ecx
push ecx
push 0x1b2c
lea eax, [ebp - 0x38]
push eax
push ebx
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x30]
call fcn.1001de41
add esp, 0x18
dec dword [ebp - 0x30]
jns 0x1001ede4
cmp dword [ebp + 8], ebx
jne 0x1001ee16
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xc
jne 0x1001edd5
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x68]
call fcn.1000489d
push 0x3dc9
push ebx
push 0x6877
push 0x1007ddc0
mov edx, 0x406b
mov ecx, 0x68b5
call fcn.1001fd8a
mov dword [ebp - 0x18], 0x5c96
add esp, 0x10
mov dword [ebp + 8], 0xab9
cmp dword [ebp + 8], 0xba9
jle 0x1001ee87
mov edi, ebx
mov esi, ebx
mov ebx, 0x50f2
mov eax, esi
mov ecx, 0x1007cb98
cdq
push edx
push eax
call fcn.10004616
add esi, edi
dec ebx
jne 0x1001ee64
inc edi
cmp edi, 0x1214
jl 0x1001ee5d
push 3
pop esi
push 6
pop edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 4], 8
cmp dword [ebp + 8], 0x9b6
jge 0x1001eea9
mov edx, str.divxuhsy_bubkci_tfnlrbb_avqcyut_aiwsso_vptzk_mjfud
mov ecx, 0x1007cb98
call fcn.10006a66
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x18], ebx
je 0x1001efa8
mov dword [ebp - 0x5c], 0xc63c4078
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x50], esi
push 2
call fcn.10004840
push 4
lea ecx, [ebp - 0x80]
mov dword [ebp - 4], 0xa
call fcn.10004840
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 0xb
push eax
push 0x6e5
push 0x5ef8
push 0x4086
push ecx
push 0x520e
lea edx, [ebp - 0x48]
mov ecx, 0x3fe5
call fcn.1001f559
add esp, 0x18
lea eax, [ebp - 0x48]
mov edx, 0x194c
push eax
push ecx
push ecx
lea eax, [ebp - 0x80]
mov ecx, 0x5daf
push eax
push 0x7ff2
push 1
call fcn.1001de41
add esp, 0x18
mov byte [ebp - 0x1d], bl
mov edx, 0x6efe
push 0x6bae
push ecx
lea ecx, [ebp - 0x1d]
call fcn.1001f7c8
pop ecx
lea eax, [ebp - 0x5c]
push eax
push ecx
push ecx
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x8c]
push eax
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x50]
call fcn.1001f39d
add esp, 0x18
lea ecx, [ebp - 0x80]
call fcn.1000489d
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8c]
call fcn.1000489d
jmp 0x1001efc3
lea eax, [ebp - 0x18]
mov edx, 0x61d1
push eax
push 0x79a2
lea eax, [ebp - 0x58]
push eax
push ebx
call fcn.1001e1be
add esp, 0x10
mov dword [ebp - 0x18], ebx
jmp 0x1001efe3
push 0x3748
push ecx
mov byte [ebp - 0x1e], bl
lea ecx, [ebp - 0x1e]
mov edx, 0x645c
call fcn.1001ea2c
dec dword [ebp - 0x18]
pop ecx
pop ecx
cmp dword [ebp - 0x18], 0xfffffff7
jne 0x1001efc8
mov byte [0x1007dcdd], 1
mov dword [ebp - 0x14], 0x844a7543
lea ecx, [ebp - 0x74]
mov dword [ebp + 8], 0xec3203bd
push esi
call fcn.10004840
mov dword [ebp - 4], 0xc
mov dword [ebp - 0x4c], 0x7b5cf1c9
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x34], ebx
xor ebx, ebx
inc ebx
jmp 0x1001f02a
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x28], ebx
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], ebx
jl 0x1001f020
push ecx
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x74]
call fcn.1001e8d1
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [ebp - 0x28], 0x8c66
pop ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setg dl
sub edx, dword [ebp + 8]
mov edi, dword [ebp - 0x74]
neg edx
sbb edx, edx
inc edx
cmp edx, 0xe6f7fbf2
mov edx, dword [edi + 8]
sbb eax, eax
xor ecx, ecx
neg eax
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
cmp eax, 0x8c66
setl cl
xor eax, eax
cmp ecx, edx
push ecx
setne al
sub eax, edx
sub eax, 0xfffffff7
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x4c], eax
je 0x1001f09c
mov dl, bl
call fcn.1001e171
pop ecx
jmp 0x1001f0c3
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], 0x42be197e
call fcn.1001e76d
mov dword [esp], 0x7598
mov dl, bl
push 0x16d
push ecx
push ecx
call fcn.1001f2e5
add esp, 0x10
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp ecx, eax
mov eax, dword [ebp + 8]
setle dl
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x14], ecx
xor ecx, ecx
cmp dword [edi + 8], 9
setge cl
xor eax, eax
cmp ecx, dword [edi + 8]
setg al
cmp eax, dword [ebp - 0x14]
jle 0x1001f0fe
mov eax, dword [ebp - 0x28]
mov dword [ebp + 8], eax
jmp 0x1001f112
mov dword [ebp + 8], 0x4fa72d50
mov dword [ebp + 8], esi
mov dword [ebp + 8], 0x3747c914
dec dword [ebp - 0x1c]
lea ecx, [ebp - 0x74]
call fcn.1000489d
mov eax, dword [0x1007ddc0]
cmp eax, 0x270
jne 0x1001f166
mov edx, 0x1007ddc8
mov ecx, dword [edx - 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, dword [edx - 4]
mov eax, ecx
and al, bl
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, 0x1007e788
jl 0x1001f12b
jmp 0x1001f172
cmp eax, 0x4e0
jb 0x1001f177
call fcn.10020162
mov eax, dword [0x1007ddc0]
mov ecx, dword [eax*4 + 0x1007ddc4]
inc eax
mov dword [0x1007ddc0], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x1007f144]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
mov ecx, dword [ebp - 0x44]
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