Function at 0x100065e4
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10060e85
push eax
mov dword fs:[0], esp
sub esp, 0x80
cmp byte [ebp + 0x1c], 0
push ebx
push esi
push edi
je 0x10006966
mov eax, dword [0x102f902c]
xor ebx, ebx
inc ebx
mov edi, 0x270
test bl, al
jne 0x1000665f
or eax, ebx
mov ecx, 0x1571
or dword [0x102f9014], 0xffffffff
mov edx, ebx
mov dword [0x102f902c], eax
mov dword [0x102f7c94], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x102f7c94], ecx
inc edx
cmp edx, edi
jl 0x1000663e
mov dword [0x102f7c90], edi
push ecx
push ecx
xor cl, cl
call fcn.1000634e
pop ecx
pop ecx
push ebx
lea ecx, [esp + 0x4c]
call fcn.100034db
xor ebx, ebx
lea eax, [esp + 0x70]
mov dword [esp + 0x94], ebx
lea ecx, [esp + 0x3c]
push dword [esp + 0x30]
xorps xmm0, xmm0
mov dword [esp + 0x40], ebx
push eax
lea eax, [esp + 0x68]
mov dword [esp + 0x48], ebx
push eax
push ebx
movdqu xmmword [esp + 0x70], xmm0
mov dword [esp + 0x54], ebx
call fcn.10005cfc
lea eax, [esp + 0x48]
mov byte [esp + 0x94], 1
push eax
push ecx
mov dword [esp + 0x18], 0x59785734
push ecx
mov dword [esp + 0x1c], 0x55f1bb13
lea ecx, [esp + 0x40]
mov dword [esp + 0x1c], 0xfffffff7
call fcn.10005f4a
pop ecx
mov cl, 1
call fcn.1000634e
mov eax, dword [esp + 0x44]
pop ecx
pop ecx
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov edx, dword [eax]
sub ecx, edx
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
mov ecx, 0xb14151c8
setl al
sub eax, 0xfffe
cmp eax, 0xfffffffa
sbb eax, eax
neg eax
sub eax, 0xfdbd0176
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, 0xe0b2
jle 0x10006732
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
cmp dword [eax], ebx
setg cl
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x3c]
call fcn.1000355e
or dword [esp + 0x94], 0xffffffff
lea ecx, [esp + 0x48]
call fcn.1000355e
cmp byte [0x1007cf7c], 0
jne 0x100067e9
push ecx
call fcn.10005f27
pop ecx
push 2
pop esi
push esi
lea ecx, [esp + 0x58]
call fcn.100034db
push ecx
push 0x4589
lea eax, [esp + 0x5c]
mov dword [esp + 0x9c], esi
push eax
push ecx
push ecx
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0x4c]
xor dl, dl
mov dword [esp + 0x24], 0xd37a5b7d
call fcn.10005f7a
mov eax, dword [esp + 0x68]
add esp, 0x14
mov edx, 0x1e98
mov ecx, 0x4b7
mov dword [eax], ebx
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.10005fb4
or dword [esp + 0x9c], 0xffffffff
pop ecx
pop ecx
lea ecx, [esp + 0x54]
call fcn.1000355e
mov byte [0x1007cf7c], 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 0xfffffffc
mov dword [esp + 0x10], 0x41d8
cmp dword [esp + 0x10], 0x44ef
jle 0x10006852
mov esi, ebx
mov edi, ebx
mov eax, esi
lea ecx, [esp + 0x70]
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.10001a94
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10006828
mov eax, dword [eax]
push eax
call fcn.1004840f
pop ecx
push ebx
push 1
lea ecx, [esp + 0x78]
call fcn.10003868
inc edi
cmp edi, 0x77ac
jl 0x1000680b
inc esi
cmp esi, 0x2281
jl 0x10006809
mov edi, 0x270
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x10], 0x401d
jge 0x1000686b
push str.xxhoxqoi_xveeunyu_kbrhdp_mqaru_rvpo_arbjxqzt_zhgyi_kqyldn_ferumog_zetzq_upl_bnd_dsavpse_bzmo
call fcn.1004840f
pop ecx
or dword [esp + 0x94], 0xffffffff
lea eax, [esp + 0x18]
push ecx
push eax
push ecx
push ecx
lea eax, [esp + 0x2c]
mov dword [esp + 0x40], 0xfffffffb
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0xb8e9646b
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x30], ebx
push eax
lea eax, [esp + 0x44]
mov dword [esp + 0x38], 1
push eax
lea eax, [esp + 0x4c]
push eax
lea edx, [esp + 0x54]
call fcn.1000603d
add esp, 0x20
mov byte [esp + 0x13], bl
lea eax, [esp + 0x13]
push eax
call fcn.10007876
mov eax, dword [0x102f7c90]
pop ecx
pop ecx
cmp eax, edi
jne 0x10006915
mov edx, 0x102f7c98
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, ecx
xor eax, dword [edx + 0x630]
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x102f8658
jl 0x100068da
jmp 0x10006921
cmp eax, 0x4e0
jb 0x10006926
call fcn.10008dbe
mov eax, dword [0x102f7c90]
mov edx, dword [eax*4 + 0x102f7c94]
inc eax
mov dword [0x102f7c90], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x102f9014]
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
jmp 0x10006989
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
cmp dword [edx], 4
jge 0x10006989
mov esi, dword [ebp + 0xc]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xb0e446df
inc dword [edx]
cmp dword [edx], 4
jl 0x10006977
mov ecx, dword [esp + 0x8c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret