Function at 0x1007f7d0
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 0x102eba99
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1470
call fcn.102b2680
mov eax, dword [0x103b7200]
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 - 0x1410], edi
mov edx, edi
lea ecx, [ebp - 0x147c]
call fcn.10051ff0
push 0xe
push 0x10398cdc
push 0
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.10051470
mov dword [ebp - 0x1418], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x1428], xmm0
mov dword [ebp - 0x1414], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1428], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1418], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea ecx, [ebp - 0x1428]
mov byte [ebp - 4], 1
call fcn.100ae880
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x1414]
cmp ecx, 0xf
jbe 0x1007f8d4
mov edx, dword [ebp - 0x1428]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007f8ca
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008012d
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1468]
mov dword [ebp - 0x1418], 0
mov dword [ebp - 0x1414], 0xf
mov byte [ebp - 0x1428], 0
cmp ecx, 0xf
jbe 0x1007f930
mov edx, dword [ebp - 0x147c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007f926
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008012d
push ecx
push edx
call fcn.102b1d4e
add esp, 8
cmp edi, 4
jge 0x1008010f
lea eax, [edi + edi*2]
shl eax, 3
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x140c], eax
lea eax, [eax + 0x103c6420]
push eax
call fcn.100503c0
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 2
mov esi, dword [edi*4 + 0x103c5ae8]
lea ecx, [ebp - 0x7c]
push eax
mov dword [ebp - 0x142c], esi
call fcn.100503c0
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], 1
mov byte [ebp - 4], 3
mov eax, dword [0x103c6200]
lea edi, [eax + edi*8]
lea eax, [ebp - 0x7c]
mov ecx, edi
push eax
lea eax, [ebp - 0x141c]
push eax
call fcn.1009e300
mov esi, dword [ebp - 0x1414]
cmp byte [esi + 0xd], 0
jne 0x1007f9b9
lea eax, [esi + 0x10]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.100a1c70
test al, al
je 0x1007f9bb
mov esi, dword [edi]
lea ecx, [ebp - 0x1444]
mov edx, dword [ebp - 0x142c]
cmp esi, dword [edi]
jne 0x1007fd40
call fcn.10051ff0
mov esi, eax
mov byte [ebp - 4], 4
mov ecx, 0x7fffffff
mov edx, dword [ebp - 0x1c]
sub ecx, edx
cmp ecx, 0xa
jb 0x10080132
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
push edx
cmova eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x1464]
push eax
push 0xa
push 0x10398cf8
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x1410]
call fcn.10051650
push 8
push 0x10398cec
lea ecx, [ebp - 0x1464]
mov byte [ebp - 4], 5
call fcn.10050c30
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x147c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x146c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push esi
lea eax, [ebp - 0x147c]
mov byte [ebp - 4], 6
push eax
push dword [ebp - 0x1410]
lea ecx, [ebp - 0x1428]
call fcn.1009b0a0
lea ecx, [ebp - 0x1428]
mov byte [ebp - 4], 7
call fcn.100ae880
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x1414]
cmp ecx, 0xf
jbe 0x1007fabe
mov edx, dword [ebp - 0x1428]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007fab4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080137
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x1468]
mov dword [ebp - 0x1418], 0
mov dword [ebp - 0x1414], 0xf
mov byte [ebp - 0x1428], 0
cmp ecx, 0xf
jbe 0x1007fb17
mov edx, dword [ebp - 0x147c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007fb0d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080137
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x1450]
cmp ecx, 0xf
jbe 0x1007fb55
mov edx, dword [ebp - 0x1464]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007fb4b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080137
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1430]
mov dword [ebp - 0x1454], 0
mov dword [ebp - 0x1450], 0xf
mov byte [ebp - 0x1464], 0
cmp ecx, 0xf
jbe 0x1007fbae
mov edx, dword [ebp - 0x1444]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007fba4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080137
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov esi, dword [edi]
mov ecx, edi
push dword [esi + 4]
push edi
call fcn.10098790
mov dword [esi + 4], esi
lea ecx, [ebp - 0x44]
mov dword [esi], esi
mov dword [esi + 8], esi
mov dword [edi + 4], 0
call fcn.1007e5d0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x140c]
lea ecx, [eax + 0x103c6348]
lea eax, [ebp - 0x44]
cmp ecx, eax
je 0x1007fbfa
cmp dword [ebp - 0x30], 0xf
push dword [ebp - 0x34]
cmova eax, dword [ebp - 0x44]
push eax
call fcn.1005dca0
call fcn.102b1908
mov dword [ebp - 0x84], 0xffffffff
mov edx, 1
mov dword [ebp - 0x1404], eax
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [ebp + edx*4 - 0x1404], eax
inc edx
cmp edx, 0x270
jb 0x1007fc14
lea eax, [ebp - 0x1408]
mov dword [ebp - 0x1408], 0x270
push 0x9c41
lea ecx, [ebp - 0x140c]
mov dword [ebp - 0x140c], eax
call fcn.100a1100
add eax, 0x80004e20
cmp eax, 0x80000000
lea ecx, [eax - 0x80000000]
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x1410]
cmovae esi, ecx
lea ecx, [ebp - 0x144c]
mov dword [eax*4 + 0x103c5b2c], esi
lea eax, [ebp - 0x44]
push eax
call fcn.100503c0
mov dword [ebp - 0x1434], esi
mov dword [ebp - 0x1430], 1
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 9
push eax
mov ecx, edi
call fcn.10090900
mov esi, eax
lea eax, [ebp - 0x144c]
push eax
mov ecx, esi
call fcn.1005c860
mov ecx, dword [ebp - 0x1434]
mov dword [esi + 0x18], ecx
mov ecx, dword [ebp - 0x1430]
mov dword [esi + 0x1c], ecx
mov ecx, dword [ebp - 0x1438]
cmp ecx, 0xf
jbe 0x1007fd09
mov edx, dword [ebp - 0x144c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007fcff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008013c
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov ecx, dword [ebp - 0x30]
cmp ecx, 0xf
jbe 0x10080099
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008008f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008013c
jmp 0x1008008f
call fcn.10051ff0
mov esi, eax
mov byte [ebp - 4], 0xa
mov ecx, 0x7fffffff
mov edx, dword [ebp - 0x1c]
sub ecx, edx
cmp ecx, 0xa
jb 0x10080141
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
push edx
cmova eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x1428]
push eax
push 0xa
push 0x10398d04
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x1410]
call fcn.10051650
push 8
push 0x10398cec
lea ecx, [ebp - 0x1428]
mov byte [ebp - 4], 0xb
call fcn.10050c30
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x147c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x146c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push esi
lea eax, [ebp - 0x147c]
mov byte [ebp - 4], 0xc
push eax
push dword [ebp - 0x1410]
lea ecx, [ebp - 0x1464]
call fcn.1009b0a0
lea ecx, [ebp - 0x1464]
mov byte [ebp - 4], 0xd
call fcn.100ae880
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x1450]
cmp ecx, 0xf
jbe 0x1007fe2f
mov edx, dword [ebp - 0x1464]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007fe25
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080146
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x1468]
mov dword [ebp - 0x1454], 0
mov dword [ebp - 0x1450], 0xf
mov byte [ebp - 0x1464], 0
cmp ecx, 0xf
jbe 0x1007fe88
mov edx, dword [ebp - 0x147c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007fe7e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080146
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x1414]
cmp ecx, 0xf
jbe 0x1007fec6
mov edx, dword [ebp - 0x1428]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007febc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080146
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x1430]
mov dword [ebp - 0x1418], 0
mov dword [ebp - 0x1414], 0xf
mov byte [ebp - 0x1428], 0
cmp ecx, 0xf
jbe 0x1007ff1f
mov edx, dword [ebp - 0x1444]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007ff15
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080146
push ecx
push edx
call fcn.102b1d4e
add esp, 8
lea ecx, [ebp - 0x5c]
call fcn.1007e5d0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x140c]
lea ecx, [eax + 0x103c6348]
lea eax, [ebp - 0x5c]
cmp ecx, eax
je 0x1007ff4f
cmp dword [ebp - 0x48], 0xf
push dword [ebp - 0x4c]
cmova eax, dword [ebp - 0x5c]
push eax
call fcn.1005dca0
call fcn.102b1908
mov dword [ebp - 0x84], 0xffffffff
mov edx, 1
mov dword [ebp - 0x1404], eax
nop dword [eax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [ebp + edx*4 - 0x1404], eax
inc edx
cmp edx, 0x270
jb 0x1007ff70
lea eax, [ebp - 0x1408]
mov dword [ebp - 0x1408], 0x270
push 0x9c41
lea ecx, [ebp - 0x140c]
mov dword [ebp - 0x140c], eax
call fcn.100a1100
add eax, 0x80004e20
cmp eax, 0x80000000
lea ecx, [eax - 0x80000000]
lea esi, [eax - 0x80000000]
mov eax, dword [ebp - 0x1410]
cmovae esi, ecx
lea ecx, [ebp - 0x144c]
mov dword [eax*4 + 0x103c5b2c], esi
lea eax, [ebp - 0x5c]
push eax
call fcn.100503c0
mov dword [ebp - 0x1434], esi
mov dword [ebp - 0x1430], 1
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 0xf
push eax
mov ecx, edi
call fcn.10090900
mov esi, eax
lea eax, [ebp - 0x144c]
push eax
mov ecx, esi
call fcn.1005c860
mov ecx, dword [ebp - 0x1434]
mov dword [esi + 0x18], ecx
mov ecx, dword [ebp - 0x1430]
mov dword [esi + 0x1c], ecx
mov ecx, dword [ebp - 0x1438]
cmp ecx, 0xf
jbe 0x10080065
mov edx, dword [ebp - 0x144c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008005b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008014b
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov ecx, dword [ebp - 0x48]
cmp ecx, 0xf
jbe 0x10080099
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1008008f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008014b
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov ecx, dword [ebp - 0x68]
cmp ecx, 0xf
jbe 0x100800cd
mov edx, dword [ebp - 0x7c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100800c3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080150
push ecx
push edx
call fcn.102b1d4e
add esp, 8
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
cmp ecx, 0xf
jbe 0x1008010f
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10080105
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10080150
push ecx
push edx
call fcn.102b1d4e
add esp, 8
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.102b1cf8
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.102be7ef
call fcn.1004ce60
call fcn.102be7ef
call fcn.102be7ef
call fcn.1004ce60
call fcn.102be7ef
call fcn.102be7ef
call fcn.102be7ef
int3