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

Disassembly:
mov eax, 0x1005f7a4
call fcn.1005f130
sub esp, 0x144
push ebx
push esi
xor ebx, ebx
push edi
mov edi, ecx
cmp byte [ebp + 0x10], bl
je 0x10003bc3
mov esi, ebx
cmp dword [edi], ebx
jbe 0x10003b48
mov ebx, edx
call fcn.10001c34
push 0x34
pop ecx
xor edx, edx
div ecx
push 0x1a
mov eax, edx
pop ecx
cmp eax, ecx
jge 0x10003b2d
movsx edx, byte [ebx]
jmp 0x10003b36
cdq
idiv ecx
mov eax, dword [ebp + 0x1c]
movsx eax, byte [eax]
mov ecx, dword [ebp + 0xc]
add edx, eax
push edx
call fcn.100046c5
inc esi
cmp esi, dword [edi]
jb 0x10003b13
xor ebx, ebx
mov dword [ebp - 0x10], 0x866
cmp dword [ebp - 0x10], 0xb13
jle 0x10003ba6
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov edi, esi
mov esi, 0x6231
mov eax, edi
lea ecx, [ebp - 0xf0]
cdq
push edx
push eax
call fcn.10001a75
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10003b7e
mov eax, dword [eax]
push eax
call fcn.10048743
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xf0]
call fcn.10004a80
dec edi
dec esi
jne 0x10003b64
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x47cb
jl 0x10003b5d
cmp dword [ebp - 0x10], 0x4b8
jge 0x100043ee
push str.ekroer_otngnl_zbixo_glv_tvq_boqztaxtu_qallb_xuqswgfu
call fcn.10048743
pop ecx
jmp 0x100043ee
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0x7289
cmp dword [ebp - 0x18], 0x74ca
jle 0x10003c43
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov dword [ebp - 0x10], ebx
mov eax, esi
mov esi, ebx
cdq
idiv edi
mov edi, edx
mov ecx, esi
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x138]
cdq
push edx
push eax
call fcn.10001a75
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10003c07
mov eax, dword [eax]
push eax
call fcn.10048743
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x138]
call fcn.10004a80
inc esi
cmp esi, 0x62d7
jl 0x10003be9
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x10], edi
cmp edi, 0xf0f
jl 0x10003be0
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x2b8f
jl 0x10003bdb
mov dword [ebp - 0x38], 0xffffffff
cmp dword [ebp - 0x18], 0x6f77
jge 0x10003c5e
push str.kmqmvse_lgsrsvbfa_oztrbjpg_nzdswfldj_pfyeorzsc_kqfp
call fcn.10048743
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0x65925ef2
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x38], 0xd9ae65c3
mov dword [ebp - 0x10], 0xfffffffa
push 2
call fcn.10004730
push 4
pop esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x70], 0x5d
mov dword [ebp - 0x20], ebx
jmp 0x10003cb3
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xc0], 0x4d1878ab
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x10003ca2
push 0x2c1
lea eax, [ebp - 0x20]
mov edx, 0x5b09
push eax
push 0x341a
push 0x4d60
push 1
push ebx
push ebx
lea eax, [ebp - 0xd0]
mov ecx, 0x165
push eax
push 0x6d09
call fcn.10002534
add esp, 0x24
mov dword [ebp - 0x20], ebx
jmp 0x10003d04
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0xb8], 0x74cb070f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x10003cf3
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 1
setge cl
xor edx, edx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc0]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xb8]
inc dword [ebp - 0xb8]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x38]
dec dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, 0x10b
jge 0x10003d64
cmp dword [ebp - 0x1c], ebx
je 0x10003d64
xor eax, eax
inc eax
jmp 0x10003d66
mov eax, ebx
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0xd0]
or dword [ebp - 4], 0xffffffff
call fcn.1000478d
mov eax, dword [0x100e0758]
mov edi, 0x270
test al, 1
jne 0x10003dc4
or dword [0x100e0754], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x100e0758], eax
xor edx, edx
mov dword [0x100df3d4], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x100df3d4], ecx
inc edx
cmp edx, edi
jl 0x10003da3
mov dword [0x100df3d0], edi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x10], 0x3b42
cmp dword [ebp - 0x10], 0x3c4d
jle 0x10003e50
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0x108]
or eax, esi
cdq
push edx
push eax
call fcn.10001a75
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10003df7
mov eax, dword [eax]
push eax
call fcn.10048743
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x108]
call fcn.10004a80
inc edi
cmp edi, 0x16d3
jl 0x10003ddb
inc esi
cmp esi, 0x3711
jl 0x10003dd9
push 0x2362
push 0x1d8e
push 0x24b
push 0x1351
push 0x154d
push 0x169
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RoundRect]
push 3
pop esi
push esi
lea ecx, [ebp - 0x84]
call fcn.10004730
cmp dword [ebp - 0x10], 0x3a14
jge 0x10003e73
push str.tqg_ees_mrvbdnb_nkhesncb
call fcn.10048743
pop ecx
mov dword [ebp - 4], 5
lea eax, [ebp - 0xc4]
mov dword [ebp - 0x6c], 0x9475
lea edx, [ebp - 0x84]
push ebx
mov dword [ebp - 0x50], 0xfffffffa
push ecx
mov dword [ebp - 0x54], 0xffffffff
mov ecx, 0x122b
mov dword [ebp - 0x74], 0x588c5561
mov dword [ebp - 0x70], 0x1cf04157
push eax
call fcn.10001fa2
add esp, 0xc
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], ebx
jge 0x10003ee2
lea eax, [ebp - 0x84]
mov dword [ebp - 0x4c], 0xfda0e60f
push eax
lea eax, [ebp - 0x4c]
push eax
push ecx
push ecx
call fcn.1000269d
add esp, 0x10
inc dword [ebp - 0x34]
js 0x10003ec1
lea eax, [ebp - 0x74]
push eax
sub esp, 0xc
lea eax, [ebp - 0x50]
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x6c]
push eax
push 1
push 0x1967
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.100021d1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84]
add esp, 0x24
call fcn.1000478d
push ecx
push 0x32d4
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], esi
push eax
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], 0xfffffffc
push eax
push 1
push 0x8f6
push 0x7066
push 0x7cdf
mov edx, 0x2154
mov ecx, 0x72aa
call fcn.10001aad
add esp, 0x20
cmp byte [0x1007d040], 0
jne 0x100042ca
push 8
mov dword [ebp - 0x18], 0x6cde
xor ecx, ecx
pop edi
mov dword [ebp - 0x14], edi
inc ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], ebx
jmp 0x10003f8d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x8c], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10003f7c
mov dword [ebp - 0x1c], ebx
jmp 0x10003fa6
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x64], 0xe77da19a
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x10003f98
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x18]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, 0x73800056
setl dl
sub eax, edx
add eax, dword [ebp - 0x18]
je 0x10003fd6
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x8c], ecx
cmp ecx, dword [ebp - 0x10]
je 0x10004007
cmp dword [ebp - 0x8c], ebx
jne 0x10004007
mov ecx, ebx
jmp 0x1000400a
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
push 1
setne dl
xor ecx, ecx
cmp edx, eax
mov edx, 0x750b
push 0x3eab
setle cl
xor eax, eax
test ecx, ecx
mov ecx, 0x2fa3
push 0x69ed
sets al
sub eax, dword [ebp - 0x18]
push 0x659c
push 0x3302
neg eax
push 0x3f2
push 1
sbb eax, eax
inc eax
push 0x100df3d0
mov dword [ebp - 0x64], eax
push ebx
call fcn.10001fe1
add esp, 0x24
lea ecx, [ebp - 0xa4]
push 4
call fcn.10004730
push ecx
lea eax, [ebp - 0xa4]
mov dword [ebp - 4], edi
mov dword [ebp - 0x24], ebx
lea edx, [ebp - 0xa8]
push eax
xor cl, cl
call fcn.10001c60
pop ecx
mov dword [ebp - 0x24], esi
pop ecx
cmp dword [ebp - 0x24], ebx
jl 0x1000429f
mov dword [ebp - 0x10], 0x1b4c
cmp dword [ebp - 0x10], 0x1c06
jle 0x100040f8
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0x120]
xor eax, esi
cdq
push edx
push eax
call fcn.10001a75
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100040cb
mov eax, dword [eax]
push eax
call fcn.10048743
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x120]
call fcn.10004a80
inc edi
cmp edi, 0x5754
jl 0x100040af
inc esi
cmp esi, 0xb49
jl 0x100040ad
push 3
pop esi
push 8
pop edi
mov dword [ebp - 0x2c], 7
cmp dword [ebp - 0x10], 0x1abb
jge 0x10004113
push str.yoacoroez_kwgngrp_pnyuoax_nkcdjf_nwvngbjwe_mxxqyvn_yluuaq_hfxukd
call fcn.10048743
pop ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0x58], 0xfffffffd
mov dword [ebp - 0x2c], ebx
jmp 0x1000428d
xor ecx, ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x10], ebx
inc ecx
jmp 0x10004141
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xd8], 0x85755261
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10004130
push 0x3fd0
push 0x1279
push 0x2f6
push 0x4b84
push ecx
push ecx
push ebx
push 0x5478
push 0x1fde
mov edx, 0x62c0
mov ecx, 0x2d3f
call fcn.10002534
add esp, 0x24
mov dword [ebp - 0x30], ebx
jmp 0x10004281
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x48], 7
mov dword [ebp - 0x3c], esi
cmp dword [ebp - 0x3c], ebx
jl 0x1000427e
mov dword [ebp - 0x10], 0xc7516a20
mov dword [ebp - 0x10], ebx
jmp 0x10004259
mov dword [ebp - 0x44], 0xa7084bc
mov dword [ebp - 0x14], 0x6d14
cmp dword [ebp - 0x14], 0x6fac
jle 0x1000420a
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0x150]
or eax, esi
cdq
push edx
push eax
call fcn.10001a75
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100041dd
mov eax, dword [eax]
push eax
call fcn.10048743
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x150]
call fcn.10004a80
inc edi
cmp edi, 0x1493
jl 0x100041c1
inc esi
cmp esi, 0x1a67
jl 0x100041bf
push 3
pop esi
push 8
pop edi
lea eax, [ebp - 0x30]
xor dl, dl
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x48]
push eax
push 0x4003
push 0xaa9
push ebx
push 1
lea ecx, [ebp - 0x3c]
call fcn.10003897
add esp, 0x28
cmp dword [ebp - 0x14], 0x6c72
jge 0x10004253
push str.ibp_xksn_cubex_dfz_xqtac_efswfyfow_uupkvbd_zwht_kqvvthlia_shkkpqt_zfkv_mgp_soixnc_kewjbdq
call fcn.10048743
pop ecx
mov dword [ebp - 4], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jle 0x100041a6
push ebx
push 0x2213
lea eax, [ebp - 0x58]
push eax
push ecx
call fcn.10001f58
add esp, 0x10
dec dword [ebp - 0x3c]
jns 0x10004197
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], esi
jle 0x10004181
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], esi
jle 0x10004125
dec dword [ebp - 0x24]
jns 0x1000409b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa4]
call fcn.1000478d
push ebx
push ecx
push ecx
push 0x1007d040
push 0x7785
push ecx
push ecx
mov ecx, 0x7c38
call fcn.10003a94
add esp, 0x1c
mov dword [ebp - 0x60], 0xffffffff
lea ecx, [ebp - 0x98]
push 1
call fcn.10004730
push ebx
lea eax, [ebp - 0x98]
mov dword [ebp - 4], 0xd
push eax
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x68], 0xf204795e
push eax
push 0x592a
push 0x4b72
push ecx
push ecx
mov edx, 0x46a6
call fcn.10003635
add esp, 0x1c
lea eax, [ebp - 0x98]
lea edx, [ebp - 0x68]
push eax
push ecx
lea eax, [ebp - 0x60]
push eax
push ebx
call fcn.10001e39
add esp, 0xc
mov byte [ebp - 0x25], bl
lea eax, [ebp - 0x25]
push 0x1a89
push ecx
push eax
push 0x5c1e
mov cl, 1
call fcn.10001f79
add esp, 0x14
lea ecx, [ebp - 0x98]
call fcn.1000478d
mov eax, dword [0x100df3d0]
cmp eax, 0x270
jne 0x1000439f
mov edx, 0x100df3d8
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, 0x100dfd98
jl 0x10004364
jmp 0x100043ab
cmp eax, 0x4e0
jb 0x100043b0
call fcn.10004de7
mov eax, dword [0x100df3d0]
mov edx, dword [eax*4 + 0x100df3d4]
inc eax
mov dword [0x100df3d0], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x100e0754]
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 + 0x14]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret