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

Disassembly:
mov eax, 0x100582ea
call fcn.100573b8
sub esp, 0x11c
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], esi
je 0x10025b7c
mov dword [ebp - 0x20], 0x51dc
cmp dword [ebp - 0x20], 0x54aa
jle 0x10025b56
xor esi, esi
mov edi, esi
mov ebx, esi
mov eax, edi
lea ecx, [ebp - 0xb8]
cdq
idiv ebx
mov eax, edx
cdq
push edx
push eax
call fcn.10001a51
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10025b29
mov eax, dword [eax]
push eax
call fcn.1003fd76
pop ecx
push esi
push 1
lea ecx, [ebp - 0xb8]
call fcn.10002015
inc ebx
cmp ebx, 0x2a88
jl 0x10025b0a
inc edi
cmp edi, 0x2344
jl 0x10025b08
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x20], 0x5039
jge 0x10025b6a
push str.zzfowbspy_axkbnc_fuudufbei_hkf_rhsljt_cdasw_ytnz_jmhnc_dwvwhmgqe_vencn_eqcckbdw_wqj_jdajgzk
call fcn.1003fd76
pop ecx
or dword [ebp - 4], 0xffffffff
mov ecx, ebx
push dword [esi]
call fcn.10010f0b
jmp 0x1002652b
mov dword [ebp - 0x2c], 0xfffffff7
xor ebx, ebx
mov dword [ebp - 0x20], 0x69393dda
push 0xfffffffffffffffa
pop ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x28], ebx
jmp 0x10025bb3
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x40], 9
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x10025ba5
cmp dword [ebp - 0x2c], ebx
je 0x10025d51
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x24], 0xfffffff9
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], 0xcb3a3fc4
mov eax, dword [ebp - 0x18]
cmp eax, 1
setge cl
xor edx, edx
cmp ecx, 0x13d8c537
setne dl
cmp dword [ebp - 0x20], 0xfffffffd
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, edx
setge cl
cmp ecx, dword [ebp - 0x2c]
jne 0x10025c16
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], 1
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], ebx
jmp 0x10025d45
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x18], 1
cmp dword [ebp - 0x18], ebx
jl 0x10025d42
mov dword [ebp - 0x14], ebx
jmp 0x10025c65
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], 0x8f87
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10025c57
mov dword [ebp - 0x14], ebx
jmp 0x10025d2f
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x40]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x40]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x40], 8
mov eax, dword [ebp - 0x28]
add eax, 0xa4d2c64
jne 0x10025d00
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x40]
mov edx, dword [ebp - 0x24]
sub edx, eax
add edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
mov eax, dword [ebp + eax*4 - 0x40]
cmp edx, eax
mov eax, dword [ebp - 0x68]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x68]
setg dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x20]
cmp edx, eax
setl cl
xor eax, eax
cmp ecx, esi
setg al
add eax, dword [ebp - 0x68]
neg eax
cmp eax, 0x68be3e2
jl 0x10025d00
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x68], ebx
jg 0x10025d15
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x40], 0xb53abf6a
jmp 0x10025d2c
mov dword [ebp - 0x28], ebx
jmp 0x10025d26
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x40], ebx
jne 0x10025d2c
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 1
jle 0x10025d1a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jle 0x10025c73
dec dword [ebp - 0x18]
jns 0x10025c52
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 1
jle 0x10025c3b
jmp 0x10025d65
push ebx
push 0x5713
push ecx
mov ecx, 0xcae
call fcn.1002673a
add esp, 0xc
mov eax, dword [0x10073d1c]
test al, 1
jne 0x10025db4
or dword [0x100750b4], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x10073d1c], eax
xor edx, edx
mov dword [0x10073d34], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x10073d34], ecx
inc edx
cmp edx, 0x270
jl 0x10025d8b
mov dword [0x10073d30], 0x270
mov dword [ebp - 0x2c], 0x4c98
cmp dword [ebp - 0x2c], 0x4dca
jle 0x10025e41
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, esi
mov dword [ebp - 0x24], edi
mov esi, edi
mov edi, ebx
shl esi, cl
mov eax, esi
lea ecx, [ebp - 0xdc]
and eax, edi
cdq
push edx
push eax
call fcn.10001a51
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10025df5
mov eax, dword [eax]
push eax
call fcn.1003fd76
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xdc]
call fcn.10002015
inc edi
cmp edi, 0x4147
jl 0x10025dd9
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x75b1
jl 0x10025dce
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x2f0d
jl 0x10025dc9
push 0xc77
push 0x5dc
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x20], 0xd21
cmp dword [ebp - 0x20], 0xf47
jle 0x10025eb1
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov esi, ebx
mov eax, edi
mov dword [ebp - 0x14], ebx
cdq
mov edi, ecx
idiv esi
mov ecx, edx
shl edi, cl
mov ecx, ebx
mov eax, edi
sar eax, cl
mov ecx, 0x100720b8
cdq
push edx
push eax
call fcn.10001c38
inc ebx
cmp ebx, 0x104c
jl 0x10025e6b
mov edi, dword [ebp - 0x1c]
inc esi
mov ecx, dword [ebp - 0x24]
push 0
pop ebx
cmp esi, 0x602d
jl 0x10025e5d
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x5eba
jl 0x10025e5b
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x6ffe
jl 0x10025e56
push 2
mov dword [ebp - 0x28], ebx
pop esi
mov dword [ebp - 4], esi
cmp dword [ebp - 0x20], 0xd0e
jge 0x10025ef3
mov edx, str.hhtxnrh_focjj_nbipzwybh_imrbvige_gdm
mov ecx, 0x100720b8
call fcn.100035ef
jmp 0x10025ef3
mov dword [ebp - 0x14], ebx
jmp 0x10025f06
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0xdd33
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10025ef8
mov dword [ebp - 0x28], ebx
jmp 0x10025f34
mov dword [ebp - 0x14], 0x888adae8
mov dword [ebp - 0x14], ebx
jmp 0x10025f2b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0xf369
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10025f1d
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x10025f11
cmp dword [ebp - 0x2c], 0x4b67
jge 0x10025f4d
push str.blocaeq_dvjx_apr_vdee_fjv_tmfywnyi_aipjhcdiu_vixx_jifzbjj_pqmrrgf_nhuqj_cyznz
call fcn.1003fd76
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [0x10073b88], 0
jne 0x10026134
mov dword [ebp - 0x24], 0xb02
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x20], 1
push esi
call fcn.10004d70
push ecx
push ecx
push 0x31ed
sub esp, 0x10
mov dword [ebp - 4], 6
mov dword [ebp - 0x1c], 0x38591b6
lea edx, [ebp - 0xa0]
mov dword [ebp - 0x1c], 1
push 0x5e65
push ebx
push ecx
lea ecx, [ebp - 0x78]
call fcn.10024ca0
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp - 0x24]
add esp, 0x28
mov eax, dword [ebp - 0x24]
cmp eax, 0xfff7
mov eax, dword [ebp - 0x20]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x78]
setne dl
mov dword [eax], edx
test edx, edx
jne 0x10025fdb
cmp dword [ebp - 0x24], ebx
jne 0x10025fdb
mov eax, ebx
jmp 0x10025fde
xor eax, eax
inc eax
mov dword [ebp - 0x1c], eax
mov ecx, 0x5f1
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
push 0xfd4
call fcn.10026c60
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x78]
call fcn.10004df3
push 0x10b7
push 0x30f5
push 1
push 0x10073d30
xor dl, dl
mov ecx, 0x486e
call fcn.100252e7
mov dword [ebp - 0x1c], 0x8ade
add esp, 0x10
mov dword [ebp - 0x1c], 0xe1d925b0
mov dword [ebp - 0x1c], 0xdb34
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x58], 1
mov dword [ebp - 0x18], ebx
jmp 0x10026058
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xe8], 0xc9ed9ba0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10026047
mov dword [ebp - 0x18], ebx
jmp 0x10026070
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x128], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10026063
mov dword [ebp - 0x18], ebx
jmp 0x1002608c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc4], 1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1002607b
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x10026110
mov dword [ebp - 0x1c], 0x3fb9
cmp dword [ebp - 0x1c], 0x41fa
jle 0x100260f1
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
lea ecx, [ebp - 0x100]
push edx
push eax
call fcn.10001a51
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100260ca
mov eax, dword [eax]
push eax
call fcn.1003fd76
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x100]
call fcn.10002015
inc edi
cmp edi, 0x6325
jl 0x100260af
inc esi
cmp esi, 0x7370
jl 0x100260ad
xor cl, cl
call fcn.100269e7
cmp dword [ebp - 0x1c], 0x3eac
jge 0x1002610c
push str.pskehnmkh_banjesqoh_negalt_pvtizz_hrldcwoyf_nangamaw_cuivdcb_fho_ozrlvpr_uncruixpy_wzc_kgbvy
call fcn.1003fd76
pop ecx
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x58]
xor dl, dl
push eax
push 0x77fd
call fcn.10024c5e
push 0x7880
push 0x10073b88
inc dl
call fcn.10024c5e
add esp, 0x10
mov dword [ebp - 0x20], 0x6edc
cmp dword [ebp - 0x20], 0x7163
jle 0x100261a1
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, esi
sar eax, cl
lea ecx, [ebp - 0x118]
and eax, edi
cdq
push edx
push eax
call fcn.10001a51
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002616b
mov eax, dword [eax]
push eax
call fcn.1003fd76
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x118]
call fcn.10002015
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x79d0
jl 0x1002614d
inc esi
cmp esi, 0x799a
jl 0x10026148
inc edi
cmp edi, 0x2b9d
jl 0x10026146
cmp dword [ebp - 0x20], 0x6e8c
jge 0x100261b5
push str.ceqjdkqw_orpysm_ljkkh_jgx_vrqy
call fcn.1003fd76
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x2c], 0x518a
cmp dword [ebp - 0x2c], 0x54c8
jle 0x10026352
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x1c], 0x1e7b
cmp dword [ebp - 0x1c], 0x555
jge 0x100262f3
lea eax, [ebp - 0x38]
push eax
push str._ld_n
call fcn.1003ffd2
pop ecx
pop ecx
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], ebx
push eax
push dword [ebp - 0x38]
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
call fcn.10027018
mov dword [ebp - 4], 0xb
mov edi, ebx
cmp dword [ebp - 0x38], 0
mov esi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], ebx
jle 0x10026249
mov edi, dword [ebp - 0x54]
push edi
push 0x100604ac
call fcn.1003ffd2
add esi, dword [edi]
inc ebx
pop ecx
add edi, 4
pop ecx
cmp ebx, dword [ebp - 0x38]
jl 0x1002622c
mov edi, dword [ebp - 0x14]
xor ebx, ebx
push 0x100632b8
call fcn.1003ffd2
pop ecx
mov dword [ebp - 0x7c], 0xf
mov dword [ebp - 0x80], ebx
mov byte [ebp - 0x90], bl
mov byte [ebp - 4], 0xc
mov eax, dword [0x100721d8]
push 0xa
mov ecx, dword [eax + 4]
add ecx, 0x100721d8
call fcn.10027ada
movzx eax, al
lea edx, [ebp - 0x90]
push eax
mov ecx, 0x100721d8
call fcn.10029074
pop ecx
mov ecx, dword [ebp - 0x38]
dec ecx
js 0x100262c7
mov ebx, dword [ebp - 0x54]
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
cmovae eax, dword [ebp - 0x90]
cmp byte [ecx + eax], 0x31
jne 0x100262bf
mov eax, esi
sub eax, dword [ebx + ecx*4]
cmp edi, eax
jg 0x100262c2
mov edi, eax
jmp 0x100262c2
sub esi, dword [ebx + ecx*4]
dec ecx
jns 0x1002629b
xor ebx, ebx
cmp edi, esi
cmovl edi, esi
push edi
push str._ld_n
call fcn.1003fd76
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x90]
call fcn.10002015
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x54]
call fcn.10004df3
mov edi, 0x10a3
mov esi, ebx
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x14], ebx
mov eax, esi
cdq
idiv ebx
mov eax, edi
mov ecx, edx
sar eax, cl
mov ecx, 0x100720b8
cdq
push edx
push eax
call fcn.10001c38
inc ebx
cmp ebx, 0x2bb
jl 0x10026303
mov eax, dword [ebp - 0x24]
add esi, eax
dec dword [ebp - 0x1c]
push 0
pop ebx
jne 0x100262fd
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x434f
jl 0x100261d3
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x61af
jl 0x100261d0
mov dword [ebp - 0x14], 7
mov dword [ebp - 4], 0xd
cmp dword [ebp - 0x2c], 0x50a0
jge 0x10026396
mov edx, str.hnnfexpry_ufrhtps_ejz_nssldp
mov ecx, 0x100720b8
call fcn.100035ef
jmp 0x10026396
mov dword [ebp - 0x1c], 0x878ed7c3
mov dword [ebp - 0x20], 0x996f
mov dword [ebp - 0x18], ebx
jmp 0x100263b7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x48], 0xfffffff8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x100263a9
mov dword [ebp - 0x18], ebx
jmp 0x100263d3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x9c], 0xa3191b49
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100263c2
mov eax, dword [ebp - 0x44]
dec eax
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0x48]
sub edx, eax
mov eax, dword [ebp - 0x44]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x44]
setge cl
xor ebx, ebx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setne bl
xor ecx, ecx
imul edx, ebx
cmp edx, eax
sete cl
imul ecx, dword [ebp - 0x14]
test ecx, ecx
jne 0x10026420
xor esi, esi
cmp dword [ebp - 0x44], esi
je 0x10026423
xor esi, esi
inc esi
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp eax, esi
mov eax, dword [ebp - 0x14]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, 1
setg dl
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
xor eax, eax
inc edx
imul edx, dword [ebp - 0x14]
cmp edx, 0xca4d
setge al
xor edx, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x98]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
setg dl
xor eax, eax
cmp edx, 0xe6b786ae
setne al
xor ecx, ecx
cmp eax, 0x21dd8e18
mov eax, dword [0x10073d30]
setg cl
mov dword [ebp - 0x1c], ecx
cmp eax, 0x270
jne 0x100264dc
mov edx, 0x10073d38
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, 0x100746f8
jl 0x100264a1
jmp 0x100264e8
cmp eax, 0x4e0
jb 0x100264ed
call fcn.1002708d
mov eax, dword [0x10073d30]
mov edx, dword [eax*4 + 0x10073d34]
inc eax
mov dword [0x10073d30], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x100750b4]
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 + 0x18]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret