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

Disassembly:
mov eax, 0x100636f2
call fcn.100630d8
sub esp, 0xe8
mov byte [ebp - 0x40], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x1000229c
mov dword [ebp - 0x28], 0x4ea6801f
xor edx, edx
mov dword [ebp - 0x68], 3
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp ecx, eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
setg dl
add ecx, edx
xor edx, edx
cmp ecx, eax
setl dl
xor ebx, ebx
cmp edx, 0x121a
jl 0x10001c11
cmp dword [ebp - 0x28], ebx
jne 0x10001c11
mov ecx, ebx
jmp 0x10001c14
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x28]
inc eax
cmp eax, ecx
je 0x10001c58
push 1
push 0x1514
push ebx
push 0x3064
push 0x2c46
push 0x71a4
push 1
push 0x769f
push 0x5c03
push 0x333e
mov edx, 0x55d2
mov ecx, 0x708e
call fcn.1000235e
add esp, 0x28
jmp 0x10001c64
push ecx
push ecx
lea edx, [ebp - 0x28]
call fcn.10003ce0
pop ecx
pop ecx
mov dword [ebp - 0x24], 0x6736
cmp dword [ebp - 0x24], 0x6764
jle 0x10001ce5
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov eax, esi
mov dword [ebp - 0x38], ebx
cdq
mov esi, ebx
idiv edi
mov edi, edx
mov eax, edi
lea ecx, [ebp - 0xcc]
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.10001ab5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10001ca9
mov eax, dword [eax]
push eax
call fcn.1004c653
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xcc]
call fcn.100050bb
inc esi
cmp esi, 0x43cc
jl 0x10001c8a
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x1787
jl 0x10001c7e
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x5500
jl 0x10001c79
sub esp, 0xc
lea eax, [ebp - 0x28]
mov dl, 1
mov ecx, 0x3c40
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.10001aed
add esp, 0x14
cmp dword [ebp - 0x24], 0x63a4
jge 0x10001d13
push str.eqgoittzo_ecfxlhvhy_fbrih_exmiv_iysmk_zvj_mwfiqf_blxdy
call fcn.1004c653
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 0x625
cmp dword [ebp - 0x18], 0x946
jle 0x10001d83
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x24], ebx
lea eax, [edi + esi]
and eax, ecx
lea ecx, [ebp - 0xf0]
cdq
push edx
push eax
call fcn.10001ab5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10001d4d
mov eax, dword [eax]
push eax
call fcn.1004c653
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xf0]
call fcn.100050bb
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x1bbb
jl 0x10001d30
inc edi
cmp edi, 0x72e1
jl 0x10001d2b
inc esi
cmp esi, 0x1ed6
jl 0x10001d29
cmp dword [ebp - 0x18], 0x5fd
jge 0x10001d97
push str.kwkepsj_qywxpc_mxmco_gxyeaqw_uyg_tnag_ovh_hlpus_skybxecfy_wan_xjt_jirhcv
call fcn.1004c653
pop ecx
or dword [ebp - 4], 0xffffffff
xor ecx, ecx
mov eax, dword [0x1035fcc8]
inc ecx
test cl, al
jne 0x10001deb
or eax, ecx
mov edx, 0x1571
or dword [0x1035fcc4], 0xffffffff
mov esi, ecx
mov dword [0x1035fcc8], eax
mov dword [0x1035e944], edx
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, esi
mov dword [esi*4 + 0x1035e944], edx
inc esi
cmp esi, 0x270
jl 0x10001dc2
mov dword [0x1035e940], 0x270
mov dword [ebp - 0x34], 0x1f7e2799
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x34], 0xfffffffe
jmp 0x10001e65
mov dword [ebp - 0x64], 0x196a162c
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x10001e41
push 0x7bb2
push 0x1075
push 0x10d2
push 0x2503
push ecx
push 0x39aa
push 0x7cd8
push 0x1444
mov edx, 0x49da
xor cl, cl
call fcn.10001bb0
add esp, 0x20
push ebx
lea eax, [ebp - 0x34]
mov ecx, 0x24eb
push eax
lea eax, [ebp - 0x64]
push eax
push 0x7726
lea edx, [ebp - 0x58]
call fcn.10002f90
add esp, 0x10
inc dword [ebp - 0x34]
push 1
pop ecx
cmp dword [ebp - 0x34], 0x15
je 0x10001dfe
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 2
push eax
push 0x7c1
push ecx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0xffffffff
call fcn.10003b9e
add esp, 0xc
cmp byte [0x100821b0], 0
jne 0x100020f2
mov dword [ebp - 0x70], 0xa43d
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x78], 0xfffffffa
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x3c], 0xc4475ee4
push 4
call fcn.10004d6b
push 0x6ea6
lea eax, [ebp - 0xa4]
mov dword [ebp - 4], 4
push eax
mov dword [ebp - 0x44], 0xb07d0d1d
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x7c], 0xeab1
push 0x5e46
call fcn.100025ab
add esp, 0xc
lea eax, [ebp - 0x30]
lea edx, [ebp - 0x78]
push 0x4844
push ecx
push 0x2dd4
push 0x3d4f
push eax
lea eax, [ebp - 0x3c]
push eax
push ecx
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x70]
push eax
push 0x22de
lea ecx, [ebp - 0x48]
call fcn.10003dc5
add esp, 0x28
mov dword [ebp - 0x30], ebx
jmp 0x10001f85
lea eax, [ebp - 0x88]
mov dword [ebp - 0x6c], 5
push eax
push 0x4839
lea eax, [ebp - 0x30]
xor cl, cl
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x48]
push eax
push 0x7d16
lea edx, [ebp - 0x44]
call fcn.1000232c
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x7c]
call fcn.100025c6
add esp, 0x14
lea eax, [ebp - 0x44]
lea edx, [ebp - 0x3c]
push eax
push ecx
push ecx
call fcn.100026c0
add esp, 0x14
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jle 0x10001f34
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x88]
call fcn.10004dc8
push 0x418c
push ecx
push 0x9bc
push 0x6f5f
push 0x25f4
mov edx, 0x2021
mov ecx, 0x1035e940
call fcn.10002c1c
add esp, 0x14
mov dword [ebp - 0x1c], 0x369b
mov dword [ebp - 0x18], 0x1d4595a2
lea ecx, [ebp - 0x94]
push 3
call fcn.10004d6b
mov dword [ebp - 4], 5
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x38], 0x406c49a7
push 1
call fcn.10004d6b
mov byte [ebp - 4], 6
mov dword [ebp - 0x20], ebx
jmp 0x1000201a
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x94]
mov dword [eax + ecx*4], 1
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x10002007
mov dword [ebp - 0x20], ebx
jmp 0x10002036
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xb4], 0x1e525036
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x10002025
lea eax, [ebp - 0xa0]
xor cl, cl
push eax
push 0x7ef4
lea edx, [ebp - 0x20]
call fcn.100022d8
pop ecx
pop ecx
cmp dword [ebp - 0x1c], ebx
je 0x100020b5
mov ecx, dword [ebp - 0x18]
xor edx, edx
imul ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setne bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x94]
setle cl
mov dword [eax + 8], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
inc ecx
sub ecx, eax
sub ecx, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], 0x18bd
je 0x100020b3
xor eax, eax
inc eax
xor ebx, ebx
jmp 0x100020b7
xor ebx, ebx
mov eax, ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xa0]
mov dword [eax], ecx
lea ecx, [ebp - 0xa0]
call fcn.10004dc8
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.10004dc8
mov byte [0x100821b0], 1
mov dword [ebp - 0x50], 0xfc4f27d2
mov dword [ebp - 0x74], 0xa4ccfd6
mov dword [ebp - 0x54], 0xfffffffc
mov dword [ebp - 0x38], 0x22401dbd
mov dword [ebp - 0x18], 0x2ed6
cmp dword [ebp - 0x18], 0x2f73
jle 0x10002155
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov edi, esi
mov esi, 0x5e4
mov eax, edi
mov ecx, 0x10081078
cdq
push edx
push eax
call fcn.10004aca
dec edi
dec esi
jne 0x10002133
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x66ee
jl 0x1000212c
mov dword [ebp - 0x5c], 8
mov dword [ebp - 4], 7
cmp dword [ebp - 0x18], 0x2b28
jge 0x1000217b
mov edx, str.lrnsq_hrsrmhzaq_zqdjlfbv_awyhbtxrq_llyzyj_prlr_dsmr_ewxn_rhxhc_fvp_tirjwtgk_uunwic_jfba
mov ecx, 0x10081078
call fcn.10006f4f
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x100021b7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd8], 0x80f885bd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100021a6
lea eax, [ebp - 0x74]
push eax
push ecx
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.100027c2
add esp, 0x10
lea eax, [ebp - 0x5c]
push 0x7824
push 0x5c5c
push 0x26bf
push 0x5977
push eax
push 0x588c
push 0x54d3
push ecx
mov cl, 1
call fcn.10001b39
mov eax, dword [0x1035e940]
add esp, 0x20
cmp eax, 0x270
jne 0x1000224b
mov edx, 0x1035e948
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, 0x1035f308
jl 0x10002210
jmp 0x10002257
cmp eax, 0x4e0
jb 0x1000225c
call fcn.1000541f
mov eax, dword [0x1035e940]
mov edx, dword [eax*4 + 0x1035e944]
inc eax
mov dword [0x1035e940], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x1035fcc4]
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 + 0xc]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
jmp 0x100022a4
push 0
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret