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

Disassembly:
mov eax, 0x1005a626
call fcn.10059860
sub esp, 0x4c
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x20], ecx
je 0x1001f5bc
cmp byte [ebp + 8], 0
je 0x1001f5a6
mov dword [ebp - 0x18], 0xe08
xor ebx, ebx
cmp dword [ebp - 0x18], 0xe2b
jle 0x1001f551
mov esi, ebx
mov dword [ebp + 0x10], ebx
mov edi, ebx
mov eax, esi
mov dword [ebp - 0x1c], ebx
cdq
idiv edi
mov esi, edx
mov ecx, ebx
mov eax, esi
shl eax, cl
mov ecx, 0x10075ef8
cdq
push edx
push eax
call fcn.10001a90
inc ebx
cmp ebx, 0x50f9
jl 0x1001f513
mov esi, dword [ebp + 0x10]
inc edi
push 0
pop ebx
cmp edi, 0x580
jl 0x1001f509
inc esi
mov dword [ebp + 0x10], esi
cmp esi, 0x324e
jl 0x1001f507
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
je 0x1001f56c
push 0x1b81
push 1
mov edx, 0x3374
call fcn.1001f38d
pop ecx
pop ecx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x18], 0xdea
jge 0x1001f587
mov edx, str.zbiij_givlboi_gzqggh
mov ecx, 0x10075ef8
call fcn.1000350c
jmp 0x1001f87b
cmp byte [edx], 0
je 0x1001f87b
push ecx
xor cl, cl
call fcn.10020f68
jmp 0x1001f87a
xor esi, esi
mov dword [ebp - 0x18], 0x27f6
xor ebx, ebx
inc esi
cmp dword [ebp - 0x18], 0x2ac9
jle 0x1001f61a
mov edi, ebx
mov ecx, ebx
mov dword [ebp + 0x10], ebx
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x58]
cdq
push edx
push eax
call fcn.10003ca8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001f5f1
mov eax, dword [eax]
push eax
call fcn.100430bc
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x58]
call fcn.10001f32
mov ecx, dword [ebp + 0x10]
inc ecx
mov dword [ebp + 0x10], ecx
cmp ecx, 0x52c1
jl 0x1001f5d8
inc edi
cmp edi, 0x4180
jl 0x1001f5d3
cmp byte [ebp + 0x14], 0
je 0x1001f85e
mov dword [ebp + 0x10], 0x24a8c6a5
mov dword [ebp + 0x10], ebx
jmp 0x1001f648
push ecx
push ebx
push ecx
mov edx, 0x781f
mov ecx, 0x49bc
call fcn.10021aa5
add esp, 0xc
dec dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0xffffffe3
jg 0x1001f630
mov byte [ebp + 0x13], bl
cmp byte [ebp + 0x13], 0
je 0x1001f65e
push ecx
call fcn.1001f88c
pop ecx
mov eax, dword [0x1007c558]
mov edi, 0x270
test al, 1
jne 0x1001f6a8
or eax, esi
mov ecx, 0x1571
or dword [0x1007c554], 0xffffffff
mov edx, esi
mov dword [0x1007c558], eax
mov dword [0x1007b1d4], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1007b1d4], ecx
inc edx
cmp edx, edi
jl 0x1001f687
mov dword [0x1007b1d0], edi
mov dword [ebp + 0x10], 0xb26bdde0
mov dword [ebp + 0x10], 0x318d5816
mov dword [ebp + 0x10], 0x12
jmp 0x1001f6df
mov dword [ebp - 0x1c], 0x23ed15de
push ecx
call fcn.1001f376
pop ecx
lea eax, [ebp - 0x1c]
push eax
sub esp, 0xc
call fcn.1001f3d5
add esp, 0x10
dec dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0xfffffffb
jg 0x1001f6bf
movdqa xmm0, xmmword [0x10068620]
lea eax, [ebp - 0x30]
mov dword [ebp - 0x14], 0x8a61928c
lea ecx, [ebp - 0x30]
mov dword [ebp + 0x10], 0xfffffff7
push dword [ebp + 0x10]
movdqu xmmword [ebp - 0x40], xmm0
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x30], ebx
push eax
push ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
call fcn.10003a4f
mov dword [ebp - 4], 2
mov dword [ebp - 0x18], 0x76270e7a
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x14], ebx
jmp 0x1001f740
mov ecx, 0x5293
call fcn.1001ffbb
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff5
jg 0x1001f733
cmp dword [ebp - 0x14], ebx
jne 0x1001f74e
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp + 0x10]
cmp eax, 0xfffffff9
mov eax, dword [ebp + 0x10]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
push 0x77f8
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp + 0x10]
push ebx
setg cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x10]
setg dl
sub edx, eax
mov eax, dword [ebp - 0x30]
imul ecx, edx
mov edx, 0x4c54
push ebx
mov dword [eax], ecx
mov ecx, 0x677f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x14]
lea eax, [ebp - 0x14]
push eax
push esi
call fcn.1001f4c6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
add esp, 0x14
call fcn.10001c28
push ecx
call fcn.10020302
mov eax, dword [0x1007b1d0]
pop ecx
cmp eax, edi
jne 0x1001f80d
mov edx, 0x1007b1d8
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, 0x1007bb98
jl 0x1001f7d2
jmp 0x1001f819
cmp eax, 0x4e0
jb 0x1001f81e
call fcn.10021d3d
mov eax, dword [0x1007b1d0]
mov ecx, dword [eax*4 + 0x1007b1d4]
inc eax
mov dword [0x1007b1d0], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x1007c554]
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 - 0x20]
mov dword [ecx], eax
jmp 0x1001f87b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4ae9822c
cmp dword [ebp - 0x18], 0x24b7
jge 0x1001f87b
push str.cfon_vjzd_zvy_hvwm_dmkvlmi_fpqrsu_jbkmfomv
call fcn.100430bc
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret