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

Disassembly:
mov eax, 0x1005966a
call fcn.10058c78
sub esp, 0x28
mov byte [ebp - 0x18], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x1000e380
mov dword [ebp - 0x24], 0x77a
cmp dword [ebp - 0x24], 0x7a9
jle 0x1000e31b
xor esi, esi
mov edi, esi
mov ebx, 0x450e
mov eax, edi
mov ecx, 0x10074f78
cdq
push edx
push eax
call fcn.10009792
dec edi
dec ebx
jne 0x1000e2ff
inc esi
cmp esi, 0x72e4
jl 0x1000e2f8
mov byte [ebp - 0x11], 0
and dword [ebp - 4], 0
cmp dword [ebp - 0x24], 0x4f4
jge 0x1000e33b
mov edx, str.tpukdlmr_awtke_urcu_vzh_mlgobt_gmpj
mov ecx, 0x10074f78
call fcn.1000cd04
or dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x11], 0
je 0x1000e64c
push 0
push 0x6dda
mov edx, 0x25cf
mov ecx, 0x2ac6
call fcn.1000e69f
pop ecx
pop ecx
jmp 0x1000e64c
xor ebx, ebx
mov dword [ebp - 0x24], 0xa6847dfa
push ebx
push 0x1c37
push 0x5404
push ebx
push 0x51d
push 0x638b
push 1
mov byte [ebp - 0x12], bl
lea edx, [ebp - 0x12]
push 0x113c
mov ecx, 0x798
call fcn.10010caa
add esp, 0x14
mov byte [ebp - 0x13], bl
lea ecx, [ebp - 0x13]
call fcn.1000fdaa
mov eax, dword [0x101530c4]
add esp, 0xc
mov esi, 0x270
test al, 1
jne 0x1000e413
or dword [0x101530b4], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x101530c4], eax
xor edx, edx
mov dword [0x10151d34], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x10151d34], ecx
inc edx
cmp edx, esi
jl 0x1000e3f2
mov dword [0x10151d30], esi
mov dword [ebp - 0x24], 0x5f76
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x1000e430
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x20], 0x38a1f949
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x1000e422
mov dword [ebp - 0x1c], ebx
jmp 0x1000e445
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x34], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x1000e43b
mov byte [ebp - 0x14], bl
lea edx, [ebp - 0x14]
call fcn.1000ee13
mov eax, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x28]
setl dl
xor ecx, ecx
cmp edx, 5
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x1c], ebx
je 0x1000e4af
cmp dword [ebp - 0x20], ebx
je 0x1000e4af
xor ecx, ecx
inc ecx
jmp 0x1000e4b1
mov ecx, ebx
mov eax, dword [ebp - 0x20]
sub ecx, eax
inc ecx
jne 0x1000e4bc
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
xor edx, edx
test eax, eax
mov eax, dword [ebp - 0x30]
sets dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setle cl
xor edx, edx
imul ecx, ecx, 0xfff8
add ecx, eax
mov eax, dword [ebp - 0x20]
cmp eax, ecx
setle dl
mov dword [ebp - 0x30], edx
cmp byte [0x10151cbc], bl
jne 0x1000e5b4
push 0x73a3
push ebx
push 0x6b31
mov dword [ebp - 0x1c], 1
xor dl, dl
mov dword [ebp - 0x24], 0x23d4a1cf
mov cl, 1
push 0xd5c
mov dword [ebp - 0x24], 0x736d0c11
mov dword [ebp - 0x24], ebx
push 0x3877
call fcn.1000fd17
mov eax, dword [ebp - 0x1c]
add esp, 0x14
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x24], ebx
je 0x1000e559
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x1c]
xor edx, edx
imul ecx, ebx, 0x8ed7
push 1
push 0x10151d30
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setle dl
cmp edx, 0xc9d94031
sbb ecx, ecx
xor ebx, ebx
neg ecx
cmp eax, ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
setge bl
xor edx, edx
cmp ecx, eax
push ecx
setg dl
mov ecx, 0x5afa
sub edx, ebx
mov dword [ebp - 0x24], edx
mov dl, al
push 0x518b
push 0
call fcn.1000ddd9
add esp, 0x14
mov byte [0x10151cbc], 1
mov eax, dword [0x10151d30]
cmp eax, esi
jne 0x1000e5fd
mov edx, 0x10151d38
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, 0x101526f8
jl 0x1000e5c2
jmp 0x1000e609
cmp eax, 0x4e0
jb 0x1000e60e
call fcn.100113fd
mov eax, dword [0x10151d30]
mov edx, dword [eax*4 + 0x10151d34]
inc eax
mov dword [0x10151d30], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x101530b4]
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 + 8]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret