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

Disassembly:
mov eax, 0x1005ee18
call fcn.1005e208
sub esp, 0x108
mov byte [ebp - 0x40], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x1000cb8c
cmp byte [ebp + 8], 0
je 0x1000c307
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_EndDoc]
jmp 0x1000cce9
mov eax, dword [ebp + 0xc]
or esi, 0xffffffff
mov dword [ebp - 0x1c], esi
xor ebx, ebx
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x20], 0xef9a8551
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x18], ebx
jmp 0x1000c332
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x4c], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1000c328
mov dword [ebp - 0x18], ebx
jmp 0x1000c34b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6c], 0x6595ad33
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1000c33d
dec dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
jmp 0x1000c3ba
cmp dword [ebp - 0x1c], ebx
jne 0x1000c378
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x4c], ebx
jne 0x1000c378
mov eax, ebx
jmp 0x1000c37b
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x4c]
cmp dword [ebp - 0x48], esi
jne 0x1000c3a0
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x4c], ebx
je 0x1000c3a0
cmp dword [ebp - 0x4c], ebx
je 0x1000c3a0
xor edx, edx
inc edx
jmp 0x1000c3a2
mov edx, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
neg edx
cmp edx, eax
setl cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x6c], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jle 0x1000c359
mov eax, dword [0x1069bab8]
test al, 1
jne 0x1000c40e
or eax, 1
mov dword [0x1069bab4], esi
mov ecx, 0x1571
mov dword [0x1069bab8], eax
xor edx, edx
mov dword [0x1069a734], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1069a734], ecx
inc edx
cmp edx, 0x270
jl 0x1000c3e5
mov dword [0x1069a730], 0x270
mov dword [ebp - 0x24], 0x7919
cmp dword [ebp - 0x24], 0x7b8a
jle 0x1000c4cc
push ebx
push 0x1623
push 0x18a
push 0x5fd
push 0x252c
push 0x24c9
push 0xe14
push 0x1ac4
push 0x83b
push 0x168c
push 0x248d
push 0x500
push 0x10c9
push 0x384
call dword [sym.imp.GDI32.dll_CreateFontA]
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], 0xbad
mov eax, edi
lea ecx, [ebp - 0xe4]
cdq
push edx
push eax
call fcn.10001a99
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000c495
mov eax, dword [eax]
push eax
call fcn.100460fd
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xe4]
call fcn.10006e56
add edi, esi
dec dword [ebp - 0x20]
jne 0x1000c47b
mov edi, dword [ebp - 0x14]
inc esi
cmp esi, 0x4cc7
jl 0x1000c471
inc edi
mov dword [ebp - 0x14], edi
cmp edi, 0xad9
jl 0x1000c46f
or esi, 0xffffffff
cmp dword [ebp - 0x24], 0x7589
jge 0x1000c4e0
push str.nffbquo_faxoot_xgftqboxx_tnni_xugkvh_plm_fuknq_emrxie_ksqhuqh_iovkpcgge_qsqxtnoz_qztqtwmc_wwnswzcz
call fcn.100460fd
pop ecx
mov dword [ebp - 4], esi
mov dword [ebp - 0x18], 0xce125d16
mov dword [ebp - 0x14], ebx
jmp 0x1000c4f9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x78], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1000c4ef
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1000c5a8
mov edi, 0x2250db85
push 1
lea ecx, [ebp - 0xa8]
call fcn.100065f0
xor edx, edx
mov dword [ebp - 0x14], ebx
inc edx
jmp 0x1000c534
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa8]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x1000c525
mov eax, dword [ebp - 0xa8]
mov dword [eax], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1000c550
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1000c546
mov dword [ebp - 0x64], ebx
cmp dword [ebp - 0x64], ebx
jg 0x1000c58a
mov dword [ebp - 0x20], 0x1c03809d
mov byte [ebp - 0x25], bl
cmp byte [ebp - 0x25], bl
je 0x1000c575
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov eax, dword [ebp - 0x64]
mov dword [ebp + eax*4 - 0x78], edi
mov dword [ebp - 0x20], edi
inc dword [ebp - 0x64]
cmp dword [ebp - 0x64], ebx
jle 0x1000c55e
xor edx, edx
inc edx
mov eax, dword [ebp - 0xa8]
dec dword [eax]
jns 0x1000c541
lea ecx, [ebp - 0xa8]
call fcn.10006673
dec dword [ebp - 0x18]
jns 0x1000c510
mov dword [ebp - 0x18], 0xffffffe9
cmp dword [ebp - 0x18], 0xfffffff0
jle 0x1000c690
mov dword [ebp - 0x34], 0xfffffffc
lea edx, [ebp - 0x39]
mov byte [ebp - 0x39], bl
push ebx
call fcn.1000c260
mov dword [ebp - 0x1c], 0x6586
cmp dword [ebp - 0x1c], 0x65fd
pop ecx
jle 0x1000c66c
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov ecx, edi
mov edi, ebx
and ecx, esi
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x74], ecx
mov eax, edi
or eax, esi
or eax, ecx
lea ecx, [ebp - 0xfc]
cdq
push edx
push eax
call fcn.10001a99
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000c618
mov eax, dword [eax]
push eax
call fcn.100460fd
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xfc]
call fcn.10006e56
mov ecx, dword [ebp - 0x74]
inc edi
cmp edi, 0x7cfc
jl 0x1000c5fa
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x7b39
jl 0x1000c5ee
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x787b
jl 0x1000c5e9
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x52ae
jl 0x1000c5e4
or esi, 0xffffffff
cmp dword [ebp - 0x34], ebx
jne 0x1000c690
cmp dword [ebp - 0x1c], 0x6412
jge 0x1000c685
push str.qfjdxzkxp_ckjokr_hmszu_gipchck_vzb_bettgwwoj_hrksne_xxjlzluz_xqpd_ojyatni
call fcn.100460fd
pop ecx
mov dword [ebp - 4], esi
inc dword [ebp - 0x18]
jmp 0x1000c5af
mov dword [ebp - 0x34], 0x9b642c70
call fcn.1000dc63
push 1
mov edx, 0x1860
call fcn.1000c260
pop ecx
cmp byte [0x1007e840], bl
jne 0x1000cada
push 2
pop edi
mov dword [ebp - 0x34], 0x4e2db58e
lea ecx, [ebp - 0xc4]
push edi
call fcn.100065f0
mov dword [ebp - 4], 4
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x34], esi
lea eax, [ebp - 0xc4]
mov dword [ebp - 0x34], 0x4515
mov edx, 0x3207
push eax
mov dword [ebp - 0x8c], 6
mov dword [ebp - 0x34], 0x20796559
mov dword [ebp - 0x70], 0xa26cdee9
push 0x30cc
call fcn.1000dd25
add esp, 0xc
mov dword [ebp - 0x30], ebx
jmp 0x1000c727
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0xcc], 0xfffffff9
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x1000c716
lea eax, [ebp - 0x8c]
push eax
call fcn.1000ce8d
pop ecx
lea eax, [ebp - 0x70]
mov edx, 0x6f62
push eax
push 0x595d
push ecx
push 0x5502
push ebx
push 0x7334
push ecx
mov ecx, 0x5c3b
call fcn.1000db6c
add esp, 0x1c
mov dword [ebp - 4], esi
lea ecx, [ebp - 0xc4]
call fcn.10006673
push 0x1545
push 0x312d
push ebx
push 0x79d5
push 0x217a
push 0x1069a730
push 0x2a7d
push 1
push 0x1d63
mov edx, 0x51e2
xor cl, cl
call fcn.1000dbd9
mov dword [ebp - 0x1c], 0xd4e06482
add esp, 0x24
mov dword [ebp - 0x18], 0x2db6
cmp dword [ebp - 0x18], 0x2fc0
jle 0x1000c82b
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov eax, edi
cdq
idiv ecx
lea eax, [esi + ebx]
mov ecx, 0x1007d6f8
xor eax, edx
cdq
push edx
push eax
call fcn.100062e1
mov ecx, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x2846
jl 0x1000c7ca
inc edi
push 0
pop ebx
cmp edi, 0x30d8
jl 0x1000c7c2
inc esi
cmp esi, 0x7bed
jl 0x1000c7c0
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x1117
jl 0x1000c7be
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
push 2
or esi, 0xffffffff
pop edi
mov dword [ebp - 0x24], 0xf8a6ebbf
mov dword [ebp - 4], 5
cmp dword [ebp - 0x18], 0x2b7d
jge 0x1000c87b
mov edx, str.imim_zafxvjn_uvptfmbm_xrjcsmhr_lqj_zrp_qvdmtmj_tbm
mov ecx, 0x1007d6f8
call fcn.1000aa27
jmp 0x1000c87b
mov dword [ebp - 4], esi
mov dword [ebp - 0x14], ebx
jmp 0x1000c891
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x58], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1000c883
mov dword [ebp - 0x1c], ebx
jmp 0x1000c9a9
mov dword [ebp - 0x14], 0xb5d1cb6a
mov dword [ebp - 0x18], ebx
jmp 0x1000c8bc
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x88], 4
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1000c8ab
mov dword [ebp - 0x18], ebx
jmp 0x1000c8d5
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2c], 0xf37d45db
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1000c8c7
mov dword [ebp - 0x2c], 3
cmp dword [ebp - 0x2c], ebx
jl 0x1000c9a0
mov dword [ebp - 0x38], 0xfff8
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x88]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x88]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x88]
mov ecx, dword [ebp - 0x1c]
imul eax, eax, 0xd5
add ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x88]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x88]
imul ecx, eax
mov eax, dword [ebp - 0x1c]
add eax, ecx
je 0x1000c951
cmp dword [ebp - 0x54], ebx
je 0x1000c951
xor eax, eax
inc eax
jmp 0x1000c953
mov eax, ebx
cmp eax, dword [ebp - 0x84]
jle 0x1000c964
cmp dword [ebp - 0x2c], ebx
jne 0x1000c964
mov edx, ebx
jmp 0x1000c967
xor edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setle cl
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
dec dword [ebp - 0x2c]
jns 0x1000c8eb
cmp dword [ebp - 0x2c], ebx
jne 0x1000c9a0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x84]
jne 0x1000c9a0
mov eax, ebx
jmp 0x1000c9a3
xor eax, eax
inc eax
mov dword [ebp - 0x2c], eax
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffe7
jne 0x1000c89f
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0x1c], ebx
jl 0x1000caca
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x34], 0xe91e
mov dword [ebp - 0x24], ebx
jmp 0x1000cab8
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x20], 0xfbf73ecb
mov dword [ebp - 0x14], ebx
jmp 0x1000caac
mov dword [ebp - 0x9c], 0xe519c81b
xor edx, edx
mov dword [ebp - 0x98], 0xe519c81b
mov dword [ebp - 0x94], 0xe519c81b
mov dword [ebp - 0x90], 0xe519c81b
mov dword [ebp - 0x38], 0xfffffffd
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setne dl
cmp edx, dword [ebp - 0x54]
jle 0x1000ca2b
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x58]
test eax, eax
mov eax, dword [ebp - 0x14]
setne cl
xor edx, edx
imul ecx, ecx, 7
cmp ecx, eax
setle dl
sub edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
neg edx
sbb edx, edx
inc edx
cmp edx, 1
sbb ecx, ecx
neg ecx
mov dword [ebp + eax*4 - 0x58], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x9c]
neg eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x18]
add eax, dword [ebp - 0x58]
cmp eax, 0xfffffff9
setl cl
cmp ecx, dword [ebp - 0x9c]
jge 0x1000ca9a
cmp dword [ebp - 0x38], ebx
je 0x1000caa4
cmp dword [ebp - 0x34], ebx
je 0x1000caa4
xor eax, eax
inc eax
jmp 0x1000caa6
mov eax, ebx
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x1000c9e7
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jle 0x1000c9d1
dec dword [ebp - 0x1c]
jns 0x1000c9bf
push ebx
push ecx
push ecx
mov ecx, 0x1007e840
call fcn.1000ce16
add esp, 0xc
push 0x7468
push 1
xor dl, dl
mov cl, 1
call fcn.1000c2c7
mov eax, dword [0x1069a730]
pop ecx
pop ecx
cmp eax, 0x270
jne 0x1000cb38
mov edx, 0x1069a738
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, 0x1069b0f8
jl 0x1000cafd
jmp 0x1000cb44
cmp eax, 0x4e0
jb 0x1000cb49
call fcn.1000e708
mov eax, dword [0x1069a730]
mov ecx, dword [eax*4 + 0x1069a734]
inc eax
mov dword [0x1069a730], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x1069bab4]
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 + 0xc]
mov dword [ecx], eax
jmp 0x1000cce9
test cl, cl
je 0x1000ccd4
mov dword [ebp - 0x14], 0x69f4
or esi, 0xffffffff
mov dword [ebp - 0xb8], esi
xor ebx, ebx
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xac], esi
mov dword [ebp - 0x20], 0xb6cd
mov dword [ebp - 0x24], 0x3842
mov dword [ebp - 0x24], 0xb000e2e4
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x14], 1
jle 0x1000cbfe
inc dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
cmp eax, 0xe6728d5a
setge cl
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
add eax, 9
mov dword [ebp - 0xb4], eax
jne 0x1000cbfe
mov ecx, ebx
jmp 0x1000cc01
xor ecx, ecx
inc ecx
imul eax, dword [ebp - 0x14], 0x8a13
xor dl, dl
push 0x2929
push 1
add eax, ecx
xor cl, cl
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
call fcn.1000c2c7
mov dword [ebp - 0x24], 0x45de
cmp dword [ebp - 0x24], 0x486a
pop ecx
pop ecx
jle 0x1000ccbe
push ebx
push 0x1ca4
push 0x5a
push ebx
call dword [sym.imp.GDI32.dll_GetPaletteEntries]
mov dword [ebp - 0x30], ebx
mov edx, ebx
mov dword [ebp - 0x20], 0x2a9b
mov dword [ebp - 0x14], edx
mov edi, ebx
mov esi, ebx
mov ecx, esi
mov eax, edi
shl eax, cl
lea ecx, [ebp - 0x114]
xor eax, edx
cdq
push edx
push eax
call fcn.10001a99
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000cc7b
mov eax, dword [eax]
push eax
call fcn.100460fd
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x114]
call fcn.10006e56
mov edx, dword [ebp - 0x14]
inc esi
cmp esi, 0x710f
jl 0x1000cc5b
inc edi
cmp edi, 0x6824
jl 0x1000cc59
mov esi, dword [ebp - 0x30]
add edx, esi
dec dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
jne 0x1000cc57
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x4fa7
jl 0x1000cc4b
cmp dword [ebp - 0x24], 0x44a5
jge 0x1000cce9
push str.cnbx_tyqtlxkr_zkrtmlir_bbhre_pumbsvnpi_lbjj
call fcn.100460fd
pop ecx
jmp 0x1000cce9
mov byte [ebp - 0x25], 0
cmp byte [ebp - 0x25], 0
je 0x1000cce9
push 0x2356
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret