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

Disassembly:
mov eax, 0x1005b1c9
call fcn.1005abe8
sub esp, 0xc4
mov byte [ebp - 0x48], cl
push ebx
push esi
mov esi, edx
push edi
mov dword [ebp - 0x10], esp
test cl, cl
je 0x100022c4
xor edx, edx
mov dword [esi], 0
inc edx
cmp dword [esi], edx
jge 0x10002be6
mov edi, dword [ebp + 0x10]
mov ecx, dword [esi]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0xdba76aab
inc dword [esi]
cmp dword [esi], edx
jl 0x100022ae
jmp 0x10002be6
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x1c], 0x5df4
cmp dword [ebp - 0x1c], 0x5f7c
mov dword [ebp - 0x44], eax
jle 0x10002337
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x18], ebx
add eax, edi
mov dword [ebp - 0x1c], ebx
xor eax, esi
mov dword [ebp - 0x38], eax
mov esi, eax
mov eax, esi
mov ecx, 0x10076fd8
or eax, ebx
cdq
push edx
push eax
call fcn.100045e5
inc ebx
cmp ebx, 0x743
jl 0x100022f4
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x18], eax
push 0
pop ebx
cmp eax, 0x6490
jl 0x100022e8
inc edi
cmp edi, 0x6cb7
jl 0x100022e3
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x1765
jl 0x100022e1
mov dword [ebp - 0x1c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x30], 0xffffffff
inc ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x30], 0xdcc80fc3
mov dword [ebp - 0x60], 0x9cb
mov dword [ebp - 0x14], ebx
jmp 0x1000236c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], 0x67fa5c62
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1000235e
push ecx
push ebx
push ecx
lea edx, [ebp - 0x60]
mov dword [ebp - 0x1c], 0x477862fd
call fcn.10002238
mov ecx, dword [0x106536ac]
add esp, 0xc
test cl, 1
jne 0x100023d9
xor eax, eax
inc eax
or ecx, eax
mov edx, eax
or dword [0x106536a4], 0xffffffff
mov dword [0x106536ac], ecx
mov ecx, 0x1571
mov dword [0x10652324], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x10652324], ecx
inc edx
cmp edx, 0x270
jl 0x100023b0
mov dword [0x10652320], 0x270
xor esi, esi
lea eax, [ebp - 0x54]
inc esi
xor dl, dl
push 0x36db
mov dword [ebp - 0x54], esi
mov ecx, 0x6ee3
push eax
call fcn.10003ff5
mov dword [ebp - 0x24], 0x1836ccb0
pop ecx
mov dword [ebp - 0x1c], 0x27439cb6
pop ecx
mov dword [ebp - 0x14], ebx
jmp 0x1000241a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa0], 0xfffffffb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10002409
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x24]
cmp ecx, eax
setg dl
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x24]
add eax, edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 2
jg 0x10002609
mov dword [ebp - 0x2c], 0x3bb6
cmp dword [ebp - 0x2c], 0x3f5f
jle 0x100024af
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeSListHead]
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], ebx
mov ecx, edi
mov edi, dword [ebp - 0x1c]
mov ebx, eax
sar ebx, cl
mov eax, ebx
mov ecx, 0x10076fd8
xor eax, edi
cdq
push edx
push eax
call fcn.100045e5
inc edi
cmp edi, 0x648f
jl 0x10002475
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x14], edi
push 0
pop ebx
cmp edi, 0x10d8
jl 0x10002469
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x20bc
jl 0x10002464
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x2c], 0x37ec
jge 0x100024ca
mov edx, str.dpqojkrm_zge_zczokmqkx_fomdceaek_oyaikyg_ryrnaz_huqgy_iik_finz_qghazefek_wgb_svbxzf
mov ecx, 0x10076fd8
call fcn.10006ac3
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x1c], 0x354d
cmp dword [ebp - 0x1c], 0x3864
jle 0x1000256c
mov edi, ebx
mov dword [ebp - 0x38], ebx
mov ecx, edi
mov dword [ebp - 0x14], 0x2a29
mov dword [ebp - 0x18], ecx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov edx, ecx
mov edi, ebx
mov ecx, eax
sar edx, cl
mov dword [ebp - 0x30], edx
mov eax, edx
lea ecx, [ebp - 0xd0]
xor eax, edi
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000251f
mov eax, dword [eax]
push eax
call fcn.10042b33
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xd0]
call fcn.10004c13
mov edx, dword [ebp - 0x30]
inc edi
cmp edi, 0x2b41
jl 0x10002503
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x5e0c
jl 0x100024f8
dec ecx
dec dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
jne 0x100024f3
mov edi, dword [ebp - 0x38]
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x6dc1
jl 0x100024e7
push 0x2a31
push ebx
push 0x7a00
push 0x1eb9
push 0x52b4
push esi
push 0x134f
push 0x470c
push 0x5ad6
push 0x553
push 0x3bfd
push ebx
push 0x20d8
mov edx, 0x29e
mov ecx, 0x59fe
call fcn.100031a3
add esp, 0x34
cmp dword [ebp - 0x1c], 0x32a7
jge 0x100025c7
push str.cudar_jffzs_anl_gdku_oxlr_oyrui_dpqvxoc_zcizyqh_nndbcjn_twaenspq_aor_rptmx
call fcn.10042b33
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xa0], 0xfffffff9
inc dword [ebp - 0x24]
jmp 0x1000243e
cmp byte [0x10078110], 0
jne 0x100028a4
push dword [ebp - 0x64]
movdqa xmm0, xmmword [0x10069be0]
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x34], ebx
push eax
push ebx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x7c], ebx
movdqu xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
call fcn.10007031
mov dword [ebp - 4], 4
cmp dword [ebp - 0x34], ebx
je 0x100026c1
push 0x4161
lea eax, [ebp - 0x34]
mov dword [ebp - 0x80], 0x34f09465
push eax
push 0x50ec
push 0x6bc1
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x68], 0xde4bf748
push eax
push 0x7c5e
push 0x650f
push 0x736d
push ebx
push 0x3f11
lea eax, [ebp - 0x80]
mov dword [ebp - 0x6c], 5
push eax
push 0x2014
lea eax, [ebp - 0x68]
xor dl, dl
push eax
push esi
lea eax, [ebp - 0x7c]
mov ecx, 0x5957
push eax
push 0x20a3
call fcn.1000398c
add esp, 0x40
jmp 0x100026e5
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x100026d6
push ebx
push 0x151c
call dword [sym.imp.USER32.dll_GetSystemMenu]
push ebx
push 0x4e77
push ecx
call fcn.10001a8d
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7c]
call fcn.10004909
push esi
push 0x10652320
push ecx
call fcn.10001a8d
mov dword [ebp - 0x14], 0x7e2799ac
add esp, 0xc
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x70], 5
mov dword [ebp - 0x14], ebx
jmp 0x10002732
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb8], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10002721
mov dword [ebp - 0x14], 2
jmp 0x100027d6
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 0x18], ebx
jmp 0x1000275e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x5c], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10002750
mov eax, dword [ebp - 0x58]
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x14], ecx
jle 0x10002776
mov eax, ebx
cmp dword [ebp - 0x24], ebx
je 0x10002778
mov eax, ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
je 0x10002787
mov edx, ecx
cmp dword [ebp - 0x24], ebx
jne 0x10002789
mov edx, ebx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x58], eax
add eax, 0xf38c
imul eax, edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], ebx
jl 0x100027d3
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
jl 0x100027c7
push ecx
push 0x7b1
mov edx, 0x4ebb
lea ecx, [ebp - 0x70]
call fcn.10003d5a
dec dword [ebp - 0x18]
pop ecx
pop ecx
jns 0x100027aa
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x5c]
dec dword [ebp - 0x24]
jns 0x100027a2
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffb
jl 0x10002744
mov dword [ebp - 0x2c], 0x3f4
cmp dword [ebp - 0x2c], 0x5dc
jle 0x10002856
mov edi, ebx
mov dword [ebp - 0x38], ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
mov dword [ebp - 0x30], ebx
mov ecx, esi
mov edi, ebx
shl eax, cl
mov dword [ebp - 0x18], eax
mov esi, ebx
mov ebx, dword [ebp - 0x18]
mov eax, edi
mov ecx, 0x10076fd8
cdq
idiv esi
or edx, ebx
mov eax, edx
cdq
push edx
push eax
call fcn.100045e5
inc esi
cmp esi, 0x897
jl 0x1000280d
inc edi
push 0
pop ebx
cmp edi, 0x34a4
jl 0x10002808
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x7b7f
jl 0x100027fa
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x3c18
jl 0x100027f5
push 0x63f6
push 0x3cc6
push 0x10078110
push ebx
push 0x5ea7
push 0x785f
push 0x262a
mov dl, 1
xor cl, cl
call fcn.1000401c
add esp, 0x1c
mov dword [ebp - 4], 5
cmp dword [ebp - 0x2c], 0x3bc
jge 0x100028a0
mov edx, str.rkmifhq_ykw_ecnyylg_mszhkyoz_totarv_uai_sqfeadbzk_piiqdsh_mgqpuqw_dub
mov ecx, 0x10076fd8
call fcn.10006ac3
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x14], ebx
dec dword [ebp - 0x14]
mov dword [ebp - 0x14], 0xfffffff0
cmp dword [ebp - 0x14], 0x1e
jg 0x10002a0d
push 4
lea ecx, [ebp - 0x8c]
call fcn.10004886
mov dword [ebp - 4], 7
mov dword [ebp - 0x1c], 0x5b64
cmp dword [ebp - 0x1c], 0x5f41
jle 0x10002908
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x10076fd8
cdq
push edx
push eax
call fcn.100045e5
inc edi
cmp edi, 0x36bc
jl 0x100028e3
inc esi
cmp esi, 0x6492
jl 0x100028e1
mov dword [ebp - 0x18], 0x99d94b4b
mov byte [ebp - 4], 8
cmp dword [ebp - 0x1c], 0x593b
jge 0x1000296e
mov edx, str.kytp_moefjmies_ppkntg_yvjjmene_hmevul
mov ecx, 0x10076fd8
call fcn.10006ac3
jmp 0x1000296e
push ebx
push 0x5581
push 0x2190
push 0x4e22
xor eax, eax
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x8c]
inc eax
push ecx
push eax
lea eax, [ebp - 0x3c]
mov edx, 0x1eca
push eax
push ebx
mov ecx, 0x2479
call fcn.10003d86
add esp, 0x20
mov dword [ebp - 0x3c], ebx
jmp 0x100029bd
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x94], 0xffffffff
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 2
jl 0x100029ac
mov eax, dword [ebp - 0x8c]
mov dword [eax + 4], ebx
cmp dword [ebp - 0x94], ebx
jne 0x100029dd
inc dword [eax + 4]
cmp dword [eax + 4], 8
jl 0x100029cc
mov dword [ebp - 0x18], ebx
jmp 0x100029f0
push ecx
push ecx
xor cl, cl
call fcn.10001aef
inc dword [ebp - 0x18]
pop ecx
pop ecx
cmp dword [ebp - 0x18], 9
jg 0x100029e2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8c]
call fcn.10004909
inc dword [ebp - 0x14]
jmp 0x100028b1
mov eax, dword [0x10652320]
cmp eax, 0x270
jne 0x10002a59
mov edx, 0x10652328
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, 0x10652ce8
jl 0x10002a1e
jmp 0x10002a65
cmp eax, 0x4e0
jb 0x10002a6a
call fcn.10004f78
mov eax, dword [0x10652320]
mov edx, dword [eax*4 + 0x10652324]
inc eax
mov dword [0x10652320], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x106536a4]
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 - 0x44]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov dword [ebp - 0x30], 0x777f
mov dword [ebp - 0x44], 0x16f3
cmp dword [ebp - 0x44], 0x96f
jge 0x10002b86
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], ebx
push eax
push 0x10063d00
call fcn.1004284b
mov eax, dword [ebp - 0x40]
mov dl, bl
mov dword [ebp - 0x50], ebx
mov dh, bl
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x25], bl
mov byte [ebp - 0x1d], dl
pop ecx
pop ecx
mov cl, bl
mov dword [ebp - 0x34], ecx
test eax, eax
je 0x10002b59
xor ebx, ebx
inc ebx
dec eax
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
push eax
push str._d__d_n
call fcn.1004284b
mov eax, dword [ebp - 0x50]
add esp, 0xc
and eax, 0x80000001
jns 0x10002b1d
dec eax
or eax, 0xfffffffe
inc eax
mov eax, dword [ebp - 0x4c]
setne cl
and eax, 0x80000001
jns 0x10002b2f
dec eax
or eax, 0xfffffffe
inc eax
mov dh, byte [ebp - 0x25]
setne al
mov dl, byte [ebp - 0x1d]
xor dh, cl
xor dl, al
mov byte [ebp - 0x25], dh
xor al, cl
mov byte [ebp - 0x1d], dl
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x40]
movzx ecx, cl
cmovne ecx, ebx
mov dword [ebp - 0x34], ecx
test eax, eax
jne 0x10002af5
xor ebx, ebx
dec eax
mov dword [ebp - 0x40], eax
test dh, dh
jne 0x10002b6c
test dl, dl
jne 0x10002b7b
push 0x10063d0c
jmp 0x10002b80
test dl, dl
je 0x10002b7b
test cl, cl
je 0x10002b7b
push 0x10063d10
jmp 0x10002b80
push 0x10063d14
call fcn.10042d56
pop ecx
cmp dword [ebp - 0x30], 0x78b7
jle 0x10002be6
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], ecx
mov eax, ebx
cdq
idiv ecx
mov eax, edi
mov ecx, 0x10076fd8
sub eax, edx
and eax, esi
cdq
push edx
push eax
call fcn.100045e5
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 0x18f8
jl 0x10002b9e
inc ebx
push 0
mov dword [ebp - 0x1c], ebx
cmp ebx, 0x7d94
pop ebx
jl 0x10002b96
inc edi
cmp edi, 0x3d88
jl 0x10002b93
inc esi
cmp esi, 0x5a08
jl 0x10002b91
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret