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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x102e0478
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x2820
call fcn.102a78c0
mov eax, dword [0x103aa200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2748], edi
mov dword [ebp - 0x2748], edi
call fcn.102a6b48
mov edx, eax
mov dword [ebp - 0x13bc], 0xffffffff
mov dword [ebp - 0x273c], edx
mov ecx, 1
nop
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [ebp + ecx*4 - 0x273c], edx
inc ecx
cmp ecx, 0x270
jb 0x10077210
lea eax, [ebp - 0x2740]
mov dword [ebp - 0x2740], 0x270
push 0x24
lea ecx, [ebp - 0x2744]
mov dword [ebp - 0x2744], eax
call fcn.10097230
add eax, 0x800000dc
cmp eax, 0x80000000
lea ecx, [eax - 0x80000000]
lea edx, [eax - 0x80000000]
cmovae edx, ecx
mov dword [ebp - 0x2750], edx
call fcn.102a6b48
mov edx, eax
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x13b4], edx
mov ecx, 1
nop word [eax + eax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [ebp + ecx*4 - 0x13b4], edx
inc ecx
cmp ecx, 0x270
jb 0x10077290
lea eax, [ebp - 0x13b8]
mov dword [ebp - 0x13b8], 0x270
push 0x100
lea ecx, [ebp - 0x2744]
mov dword [ebp - 0x2744], eax
mov dword [ebp - 0x274c], eax
call fcn.10097230
push 0x100
lea ecx, [ebp - 0x274c]
mov esi, eax
call fcn.10097230
mov edx, eax
lea ecx, [ebp - 0x282c]
call fcn.10051c30
mov dword [ebp - 0x2748], eax
mov edx, esi
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x27cc]
call fcn.10051c30
mov dword [ebp - 0x274c], eax
mov edx, dword [ebp - 0x2750]
lea ecx, [ebp - 0x27b4]
mov byte [ebp - 4], 1
call fcn.10051c30
mov dword [ebp - 0x2750], eax
mov ecx, 0x7f
mov byte [ebp - 4], 2
lea esi, [ebp - 0x17]
mov dword [ebp - 0x2744], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
shl al, 2
lea ecx, [eax + edx]
mov eax, dword [ebp - 0x2744]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x2744], eax
test eax, eax
jne 0x10077347
push ecx
lea eax, [ebp - 0x17]
push eax
push esi
lea ecx, [ebp - 0x2798]
call fcn.1005f350
push 1
push 0x1038c500
lea ecx, [ebp - 0x2798]
mov byte [ebp - 4], 3
call fcn.10050970
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2814], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2804], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push dword [ebp - 0x2750]
lea eax, [ebp - 0x2814]
mov byte [ebp - 4], 4
push eax
push dword [ebp - 0x2748]
lea ecx, [ebp - 0x2780]
call fcn.10091180
push 1
push 0x1038c500
lea ecx, [ebp - 0x2780]
mov byte [ebp - 4], 5
call fcn.10050970
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x27fc], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x27ec], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 6
lea eax, [ebp - 0x27fc]
push dword [ebp - 0x274c]
lea ecx, [ebp - 0x2768]
push eax
push dword [ebp - 0x2748]
call fcn.10091180
push 1
push 0x1038c500
lea ecx, [ebp - 0x2768]
mov byte [ebp - 4], 7
call fcn.10050970
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x27e4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x27d4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push dword [ebp - 0x2748]
lea eax, [ebp - 0x27e4]
mov byte [ebp - 4], 8
push eax
push dword [ebp - 0x2748]
mov ecx, edi
call fcn.10091180
mov ecx, dword [ebp - 0x27d0]
cmp ecx, 0xf
jbe 0x100774dd
mov edx, dword [ebp - 0x27e4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100774d3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x2754]
cmp ecx, 0xf
jbe 0x10077517
mov edx, dword [ebp - 0x2768]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007750d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x27e8]
mov dword [ebp - 0x2758], 0
mov dword [ebp - 0x2754], 0xf
mov byte [ebp - 0x2768], 0
cmp ecx, 0xf
jbe 0x1007756c
mov edx, dword [ebp - 0x27fc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10077562
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x276c]
cmp ecx, 0xf
jbe 0x100775a6
mov edx, dword [ebp - 0x2780]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007759c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x2800]
mov dword [ebp - 0x2770], 0
mov dword [ebp - 0x276c], 0xf
mov byte [ebp - 0x2780], 0
cmp ecx, 0xf
jbe 0x100775fb
mov edx, dword [ebp - 0x2814]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100775f1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x2784]
cmp ecx, 0xf
jbe 0x10077635
mov edx, dword [ebp - 0x2798]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007762b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x27a0]
mov dword [ebp - 0x2788], 0
mov dword [ebp - 0x2784], 0xf
mov byte [ebp - 0x2798], 0
cmp ecx, 0xf
jbe 0x1007768a
mov edx, dword [ebp - 0x27b4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10077680
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x27b8]
mov dword [ebp - 0x27a4], 0
mov dword [ebp - 0x27a0], 0xf
mov byte [ebp - 0x27b4], 0
cmp ecx, 0xf
jbe 0x100776db
mov edx, dword [ebp - 0x27cc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100776d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov ecx, dword [ebp - 0x2818]
mov dword [ebp - 0x27bc], 0
mov dword [ebp - 0x27b8], 0xf
mov byte [ebp - 0x27cc], 0
cmp ecx, 0xf
jbe 0x1007772c
mov edx, dword [ebp - 0x282c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10077722
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007774c
push ecx
push edx
call fcn.102a6f8e
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.102a6f38
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.102b3a2f
int3