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

Disassembly:
mov eax, 0x1005f0ef
call fcn.1005ea30
sub esp, 0x70
push ebx
push esi
mov byte [ebp - 0x14], dl
xor ebx, ebx
mov dword [ebp - 0x20], 0x32bc
cmp dword [ebp - 0x20], 0x33d4
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], ecx
jle 0x10003008
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MapDialogRect]
mov edi, ebx
mov esi, 0x1007aeb8
mov dword [ebp - 0x24], ebx
mov eax, ebx
mov ecx, esi
xor eax, edi
cdq
push edx
push eax
call fcn.10003751
inc ebx
cmp ebx, 0x5477
jl 0x10002fe3
inc edi
push 0
pop ebx
cmp edi, 0x5bb2
jl 0x10002fe0
jmp 0x1000300d
mov esi, 0x1007aeb8
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x315f
jge 0x10003025
mov edx, str.cyc_devxavdlz_zsekcalj
mov ecx, esi
call fcn.10005cf1
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x14], 0
je 0x1000306f
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0
je 0x10003483
push 1
call fcn.10002584
pop ecx
jmp 0x10003483
mov eax, dword [0x10101284]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x1c], edi
test al, 1
jne 0x100030c4
or dword [0x10101274], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x10101284], eax
xor edx, edx
mov dword [0x100ffef4], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x100ffef4], ecx
inc edx
cmp edx, 0x270
jl 0x1000309b
mov dword [0x100ffef0], 0x270
cmp byte [0x1007bfe4], 0
jne 0x100032db
mov dword [ebp - 0x24], 0x49fe387
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x24], 0x971c1ec2
mov dword [ebp - 0x24], 0x4f84b811
mov dword [ebp - 0x24], 0xaa39ed08
mov dword [ebp - 0x24], 0x509978f3
push 3
mov dword [ebp - 0x24], 0xffffffff
pop edi
mov dword [ebp - 0x24], 0x653d4237
mov dword [ebp - 0x24], 0x5cc25bfc
mov dword [ebp - 0x24], 1
push edi
call fcn.100039f2
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 2
push eax
push ebx
push ebx
mov dword [ebp - 0x2c], 0xb564
lea ecx, [ebp - 0x38]
push 0x6ff3
mov edx, 0x12d8
call fcn.10001b0b
push 0x7f23
push 0x2324
push 0x4fcf
lea eax, [ebp - 0x2c]
mov dl, 1
push eax
push 0x1a3b
push 0x14e0
push 0x4ca4
push 0x54bd
push ebx
mov ecx, 0x74ed
call fcn.10001b82
push 1
push 0x5bff
push 0x94d
push ebx
lea eax, [ebp - 0x15]
mov byte [ebp - 0x15], bl
push eax
push ebx
push 0xf60
push 0x7c2
push 0x313c
push 0x722b
mov edx, 0x707a
mov ecx, 0x691e
call fcn.100027bb
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
add esp, 0x5c
call fcn.10003a4f
push ecx
call fcn.10002c40
pop ecx
push 1
lea ecx, [ebp - 0x64]
call fcn.100039f2
push 0x633
lea eax, [ebp - 0x64]
mov dword [ebp - 4], edi
push ebx
mov dword [ebp - 0x20], 0x9a3df603
lea ecx, [ebp - 0x3c]
push eax
mov edx, 0x2dee
call fcn.10002569
mov dword [ebp - 0x20], 0x43e0
add esp, 0xc
cmp dword [ebp - 0x20], 0x46d6
jle 0x10003235
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov eax, ebx
mov ecx, esi
xor eax, edi
cdq
push edx
push eax
call fcn.10003751
inc ebx
cmp ebx, 0x44b
jl 0x1000320f
inc edi
push 0
pop ebx
cmp edi, 0xe63
jl 0x1000320c
push 3
pop edi
mov byte [ebp - 4], 4
cmp dword [ebp - 0x20], 0x4208
jge 0x1000324e
mov edx, str.ibj_rzgluw_txwdoxy_bxhjyj_xqtrnhkk_qulc_nxiieu_lne
mov ecx, esi
call fcn.10005cf1
mov dword [ebp - 4], edi
mov dword [ebp - 0x20], ebx
jmp 0x100032b5
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x100032ad
push 0x7597
push 1
lea eax, [ebp - 0x16]
mov byte [ebp - 0x16], bl
push ebx
push eax
mov edx, 0x7c8c
mov ecx, 0x6929
call fcn.10001b0b
add esp, 0x10
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jle 0x10003289
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x10003281
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x64]
call fcn.10003a4f
push 1
push 0x1007bfe4
xor dl, dl
mov ecx, 0x7b55
call fcn.10001b52
pop ecx
pop ecx
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x30], 0x2ca96836
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0xfffffff3
jl 0x100033e8
mov dword [ebp - 0x24], 0x270d
cmp dword [ebp - 0x24], 0x2a6d
jle 0x1000335d
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x7c]
xor eax, esi
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000332a
mov eax, dword [eax]
push eax
call fcn.10047ad3
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x7c]
call fcn.10003d9b
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x3c6b
jl 0x1000330f
inc edi
cmp edi, 0x2de0
jl 0x1000330a
inc esi
cmp esi, 0x74c1
jl 0x10003308
push 4
lea ecx, [ebp - 0x4c]
call fcn.100039f2
cmp dword [ebp - 0x24], 0x257a
jge 0x1000337b
push str.pfb_puify_zvkegh_kherfz_trbyrsp_vmiixe
call fcn.10047ad3
pop ecx
sub esp, 0xc
mov dword [ebp - 4], 6
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x4c]
call fcn.10002ec6
add esp, 0xc
cmp dword [ebp - 0x20], ebx
je 0x100033aa
push ecx
push ecx
xor dl, dl
mov ecx, 0x7ae4
call fcn.10001ca9
pop ecx
pop ecx
jmp 0x100033d4
push 0x7f8a
lea eax, [ebp - 0x30]
mov dword [ebp - 0x34], 0xda37bb00
push eax
lea eax, [ebp - 0x4c]
mov ecx, 0x69e9
push eax
push ebx
push 0x7004
lea edx, [ebp - 0x34]
call fcn.1000278b
add esp, 0x14
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.10003a4f
dec dword [ebp - 0x20]
jmp 0x100032ec
mov eax, dword [0x100ffef0]
cmp eax, 0x270
jne 0x10003434
mov edx, 0x100ffef8
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, 0x101008b8
jl 0x100033f9
jmp 0x10003440
cmp eax, 0x4e0
jb 0x10003445
call fcn.1000414d
mov eax, dword [0x100ffef0]
mov ecx, dword [eax*4 + 0x100ffef4]
inc eax
mov dword [0x100ffef0], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x10101274]
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 + 0x10]
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