Function at 0x10032553
Capabilities:
Encrypt data using speck
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x1006560e
call fcn.10064060
sub esp, 0x128
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
je 0x10032f13
mov eax, dword [ebp + 0x18]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x2c], ecx
xor ebx, ebx
mov dword [ebp - 0x48], 0xfffffffc
or esi, 0xffffffff
mov dword [ebp - 0x44], 0x2a3062a4
mov dword [ebp - 0x80], 7
mov dword [ebp - 0x68], 0xfffffffa
mov dword [ebp - 0x2c], 0x10
cmp dword [ebp - 0x2c], ecx
je 0x1003263b
push 2
lea ecx, [ebp - 0xcc]
call fcn.10007996
lea eax, [ebp - 0xdc]
mov dword [ebp - 4], ebx
push ebx
mov dword [ebp - 0xa4], 5
lea ecx, [ebp - 0xcc]
push eax
mov edx, 0x6beb
call fcn.100331e8
lea eax, [ebp - 0x44]
push eax
push 0x7bf2
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xa4]
push eax
push 0x52d9
push ebx
lea edx, [ebp - 0xcc]
lea ecx, [ebp - 0x48]
call fcn.10033bfb
add esp, 0x18
lea eax, [ebp - 0xcc]
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x48]
push eax
call fcn.10032f95
add esp, 0xc
mov dword [ebp - 4], esi
lea ecx, [ebp - 0xcc]
call fcn.100079d2
dec dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
jmp 0x100325a7
push ebx
lea eax, [ebp - 0x80]
push eax
push ecx
push ecx
lea eax, [ebp - 0x48]
mov ecx, 0x612a
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x68]
push 0x541c
push eax
lea edx, [ebp - 0x2c]
call fcn.100323b2
mov eax, dword [0x10084870]
add esp, 0x20
test al, 1
jne 0x10032685
push ecx
or eax, 1
mov dword [0x10084854], esi
push 0x1571
mov dword [0x10084870], eax
call fcn.10035ed2
push 4
mov dword [ebp - 0x18], 0xfffffffe
mov dword [ebp - 0x14], ebx
pop edi
jmp 0x100326a1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xf4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10032694
mov dword [ebp - 0x18], 0xfffffffa
jmp 0x10032732
push 2
lea ecx, [ebp - 0xc0]
call fcn.10007996
xor eax, eax
xor dl, dl
inc eax
mov ecx, 0x38e5
push eax
push 0x1599
push 0x2c8b
push 0x4455
push 0x53f
push 0x7b58
push 0x53ff
push 0x1750
mov dword [ebp - 4], eax
lea eax, [ebp - 0xe0]
push 0x2825
push eax
lea eax, [ebp - 0xc0]
push eax
push ebx
call fcn.100333f0
add esp, 0x24
mov byte [ebp - 0x2f], bl
lea eax, [ebp - 0x2f]
push eax
call fcn.10033f0c
mov eax, dword [ebp - 0xc0]
lea ecx, [ebp - 0xc0]
add esp, 0x10
mov dword [ebp - 4], esi
call fcn.100079d2
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffffff6
je 0x100326b2
mov dword [ebp - 0x18], ebx
jmp 0x10032766
mov dword [ebp - 0x14], 0xa0d72276
mov dword [ebp - 0x14], ebx
jmp 0x1003275e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xf4], 0x7d0f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1003274d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x10032741
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x40]
push ecx
push eax
mov dword [ebp - 0x74], ebx
lea eax, [ebp - 0xb4]
mov dword [ebp - 0x28], ebx
lea edx, [ebp - 0x7c]
mov dword [ebp - 0x28], esi
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x40], 0xf0a2
push 0x3320
push eax
mov dword [ebp - 0x6c], 0xe9bf
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 0x28], ebx
lea eax, [ebp - 0x94]
mov dword [ebp - 0x28], 0x6dd2cc9
mov dword [ebp - 0x28], 0xf703c576
mov dword [ebp - 0x28], esi
push 0x1b14
push eax
mov dword [ebp - 0x28], 0xa6d0811
lea eax, [ebp - 0x74]
mov dword [ebp - 0xac], 0xe7b1b0ca
push eax
mov dword [ebp - 0xb4], 1
lea eax, [ebp - 0x64]
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x7c], 0x6a6c
push eax
mov dword [ebp - 0x94], 5
lea eax, [ebp - 0xac]
mov dword [ebp - 0x84], 0xfffffffb
inc dword [ebp - 0x40]
push eax
call fcn.100351f7
add esp, 0x28
cmp byte [0x100833af], 0
jne 0x10032a04
lea eax, [ebp - 0x58]
mov dword [ebp - 0x88], edi
push eax
push ecx
lea eax, [ebp - 0x60]
mov dword [ebp - 0x90], 0x73948b08
push eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0x60], 0x22a5
push eax
lea eax, [ebp - 0xb0]
mov dword [ebp - 0xb0], 8
push eax
mov dword [ebp - 0x58], esi
lea edx, [ebp - 0x90]
push ecx
call fcn.100333b2
push 1
push 0x3f98
push ebx
push ebx
push 0x23f5
push 0x1d77
lea eax, [ebp - 0x60]
mov edx, 0x129a
push eax
push 0x5788
lea ecx, [ebp - 0x58]
call fcn.100323b2
add esp, 0x38
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ecx
push eax
call fcn.10035ed2
push 2
mov dword [ebp - 0x20], 0x5baf43b
mov dword [ebp - 0x14], ebx
pop ecx
jmp 0x100328c4
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x104], 0x5d7249aa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100328b3
cmp dword [ebp - 0x20], ebx
je 0x10032948
mov dword [ebp - 0x38], 0x9c4c8d3c
mov dword [ebp - 0xa8], 0x4bf8f0aa
mov dword [ebp - 0x14], ebx
jmp 0x100328f5
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xfc], 0xfffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100328e4
push 0x1fb5
push ebx
push ecx
push ecx
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0xa8]
lea ecx, [ebp - 0x20]
call fcn.1003403f
add esp, 0x14
mov dword [ebp - 0x38], ebx
jmp 0x10032940
push ecx
call fcn.1003428c
mov dword [esp], 0x3890
lea edx, [ebp - 0x2d]
mov byte [ebp - 0x2d], bl
xor cl, cl
push 0x6ccf
call fcn.10032f68
inc dword [ebp - 0x38]
pop ecx
pop ecx
cmp dword [ebp - 0x38], 1
jle 0x1003291c
jmp 0x100329a0
sub esp, 0x10
lea ecx, [ebp - 0x20]
call fcn.10035b8a
add esp, 0x10
mov dword [ebp - 0x20], 1
cmp dword [ebp - 0x20], ebx
jl 0x100329a0
mov byte [ebp - 0x2e], bl
cmp byte [ebp - 0x2e], 0
je 0x1003299b
push 1
push 0x181f
push ebx
push 1
push 0x619d
push 0x4e71
push 0x5401
push 0x67d4
mov edx, 0x28f8
mov ecx, 0x4966
call fcn.100323b2
add esp, 0x20
dec dword [ebp - 0x20]
jns 0x10032962
mov dword [ebp - 0x20], 0xfffffff8
jmp 0x100329f7
mov dword [ebp - 0x14], 0xfffffffb
mov dword [ebp - 0x14], ebx
jmp 0x100329ee
push 1
push 0x7006
push 1
push 1
push 0x3928
push 0x159e
push 0x3c1
push 0x2723
mov edx, 0x404
mov ecx, 0x78b3
call fcn.100323b2
add esp, 0x20
call fcn.10033bc5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1b
je 0x100329b5
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff9
je 0x100329a9
mov byte [0x100833af], 1
mov dword [ebp - 0x5c], 0x220c
cmp dword [ebp - 0x5c], 0x25b9
jle 0x10032a3e
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, 0x10082178
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.100073fb
inc edi
cmp edi, 0x1959
jl 0x10032a18
inc esi
cmp esi, 0x18ff
jl 0x10032a16
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x54]
push 3
call fcn.10007996
mov dword [ebp - 4], 2
mov dword [ebp - 0x18], 0x5a9f
cmp dword [ebp - 0x18], 0x5b0d
jle 0x10032ad3
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x24], 0x5a37
mov edi, ebx
lea eax, [esi + edi]
cdq
lea ecx, [ebp - 0x11c]
push edx
push eax
call fcn.10001aad
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10032a8e
mov eax, dword [eax]
push eax
call fcn.1004da5d
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x11c]
call fcn.10007f12
inc edi
cmp edi, 0x7233
jl 0x10032a73
dec esi
dec dword [ebp - 0x24]
jne 0x10032a71
mov esi, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x3796
jl 0x10032a67
push 0x153f
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
cmp dword [ebp - 0x18], 0x585a
jge 0x10032ae7
push str.oiiampu_ajubw_cakrwsefd_nqwfgcal
call fcn.1004da5d
pop ecx
push ebx
push 0x40de
push 0x6a93
lea edx, [ebp - 0x54]
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x34]
call fcn.10032faf
add esp, 0xc
mov dword [ebp - 0x34], ebx
jmp 0x10032b1d
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0xa0], 0x984bbc18
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 3
jl 0x10032b0c
mov dword [ebp - 0x1c], 0xffffffef
cmp dword [ebp - 0x1c], 0xffffffe7
jge 0x10032c69
mov dword [ebp - 0x8c], 0xb5cabfc3
mov dword [ebp - 0x18], 0x6765
cmp dword [ebp - 0x18], 0x687e
jle 0x10032bb5
push ebx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x24], 0x405c
mov edi, ebx
mov eax, esi
lea ecx, [ebp - 0x134]
xor eax, edi
cdq
push edx
push eax
call fcn.10001aad
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10032b82
mov eax, dword [eax]
push eax
call fcn.1004da5d
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x134]
call fcn.10007f12
inc edi
cmp edi, 0x6cf1
jl 0x10032b66
dec esi
dec dword [ebp - 0x24]
jne 0x10032b64
mov esi, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x2067
jl 0x10032b5a
push 2
lea ecx, [ebp - 0xd8]
call fcn.10007996
cmp dword [ebp - 0x18], 0x674a
jge 0x10032bd6
push str.stplaj_btj_punks_gnlwpjtsl_sco_wqlhtpz_uszrutc_gxl_igf_biqonz_qmwyj_zolg_cgzyhphak_gaomapylb
call fcn.1004da5d
pop ecx
push 1
push 0x3e3d
push 0x1aee
lea eax, [ebp - 0xd8]
mov dword [ebp - 4], 5
push eax
push 0x67be
push 0x4490
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x78], 0x6721f7d
push eax
push 0x63f2
push 0x5ba7
push 0x3adf
push 0x763d
push ebx
mov dl, 1
mov ecx, 0x1ad5
call fcn.100333f0
lea eax, [ebp - 0x78]
mov edx, 0x6921
push eax
lea eax, [ebp - 0x8c]
mov ecx, 0x586
push eax
push ebx
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10033d27
add esp, 0x44
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xd8]
call fcn.100079d2
dec dword [ebp - 0x1c]
jmp 0x10032b2a
mov dword [ebp - 0x1c], 2
cmp dword [ebp - 0x1c], ebx
jl 0x10032e30
mov dword [ebp - 0x18], 0x9e177c42
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10032e1d
mov dword [ebp - 0x14], 0x602708cd
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
cmp dword [eax + ecx*4], ebx
je 0x10032d0f
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x1067
mov eax, dword [ebp - 0x1c]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setge dl
sub edx, eax
mov eax, dword [ebp - 0x54]
imul edx, dword [eax + esi*4]
cmp edx, dword [ebp - 0x24]
jge 0x10032ce3
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
cmp dword [eax + ecx*4], ebx
je 0x10032ce3
xor eax, eax
inc eax
jmp 0x10032ce5
mov eax, ebx
add eax, 0x4120
je 0x10032cf2
mov eax, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub ecx, 0xffffab85
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
je 0x10032d0f
xor eax, eax
inc eax
jmp 0x10032d11
mov eax, ebx
xor edx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xfff6
setl cl
cmp eax, ecx
mov eax, dword [ebp - 0x14]
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
sete cl
cmp ecx, 0x309f33d4
jge 0x10032d5c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
cmp dword [eax + ecx*4], ebx
jne 0x10032e27
jmp 0x10032e1a
mov dword [ebp - 0x3c], 0x6f2d
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x10032d8f
mov edx, dword [ebp - 0x18]
xor ebx, ebx
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x54]
cmp ecx, dword [eax + edx*4]
setle bl
neg ebx
jne 0x10032d8f
and dword [ebp - 0x14], 0
jmp 0x10032d96
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x9c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x54]
imul esi, dword [eax + ecx*4]
cmp dword [ebp - 0x14], 0xfffffff6
mov eax, dword [ebp - 0x3c]
sete dl
xor ecx, ecx
cmp edx, eax
setg cl
xor eax, eax
cmp esi, ecx
mov esi, dword [ebp - 0x54]
setg al
xor ecx, ecx
cmp eax, dword [esi + edi*4]
setne cl
xor eax, eax
cmp ecx, 0xdef57315
setne al
xor ecx, ecx
cmp eax, dword [esi + 8]
mov eax, dword [ebp - 0x9c]
setl cl
xor edx, edx
cmp ecx, dword [esi + ebx*4]
setge dl
xor ebx, ebx
cmp eax, edx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
setge bl
xor ecx, ecx
sub ebx, eax
mov eax, dword [ebp - 0x54]
cmp ebx, dword [eax + edx*4]
setle cl
xor ebx, ebx
mov dword [ebp - 0x9c], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x10032c8b
dec dword [ebp - 0x1c]
jns 0x10032c79
lea ecx, [ebp - 0x54]
call fcn.100079d2
mov dword [ebp - 4], 8
cmp dword [ebp - 0x5c], 0x2119
jge 0x10032e57
mov edx, str.nwsut_iscumqqn_zqan_ukaw_zhr_osdnwy_ekllwp_zfeoepa_xrkf_qycsakv_gimnqr
mov ecx, 0x10082178
call fcn.1000bae6
mov ebx, dword [ebp + 0x18]
mov eax, dword [0x100834d0]
cmp eax, 0x270
jne 0x10032ec5
mov edx, 0x100834d8
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, 0x10083e98
jl 0x10032e6b
jmp 0x10032ed1
cmp eax, 0x4e0
jb 0x10032ed6
call fcn.10035f0d
mov eax, dword [0x100834d0]
mov ecx, dword [eax*4 + 0x100834d4]
inc eax
mov dword [0x100834d0], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x10084854]
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 dword [ebx], eax
jmp 0x10032f2f
mov eax, dword [ebp + 0x14]
cmp byte [eax], 0
je 0x10032f2f
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]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret