Function at 0x1002a72e
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Suspend thread

Disassembly:
mov eax, 0x1005969e
call fcn.10058864
sub esp, 0xb0
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
je 0x1002a763
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x1002ae05
push 0
call dword [sym.imp.KERNEL32.dll_SuspendThread]
jmp 0x1002ae05
mov dword [ebp - 0x14], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x1c], 0x3bfa32a1
mov dword [ebp - 0x1c], 0x3531
push 3
mov dword [ebp - 0x1c], 0xa13b2885
mov dword [ebp - 0x14], ebx
pop esi
jmp 0x1002a793
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x74], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002a789
mov dword [ebp - 0x14], ebx
jmp 0x1002a7c6
push ebx
push ebx
push 0x697f
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0xb96ca2cb
push 0x25b1
push eax
mov dl, 1
mov ecx, 0x435d
call fcn.1002b57f
add esp, 0x14
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
jg 0x1002a79d
mov ecx, dword [ebp - 0x74]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x70]
setle dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x1c]
add eax, 0xffffde5d
add ecx, eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], 0x47fa
cmp dword [ebp - 0x1c], 0x4839
jle 0x1002a83c
mov edi, ebx
mov esi, ebx
mov eax, esi
mov ecx, 0x10072098
and eax, edi
cdq
push edx
push eax
call fcn.10013ec4
inc esi
cmp esi, 0x5b24
jl 0x1002a816
inc edi
cmp edi, 0x1b67
jl 0x1002a814
push 3
pop esi
push 0x587e
lea eax, [ebp - 0x2d]
mov byte [ebp - 0x2d], bl
push eax
push 0x5c4
push ecx
mov edx, 0x3df2
mov ecx, 0x700d
call fcn.10029b60
add esp, 0x10
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x1c], 0x44ca
jge 0x1002a87b
mov edx, str.snopobuyq_bmq_xaexpku_jmqfifsqz_dlx_fwhp_ibyqa_vmmnh_oge_kggtncak_fkwblvgsd_tgfrbr
mov ecx, 0x10072098
call fcn.1001684d
or dword [ebp - 4], 0xffffffff
mov eax, dword [0x100e9998]
test al, 1
jne 0x1002a8ce
or dword [0x100ead24], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x100e9998], eax
xor edx, edx
mov dword [0x100e99a4], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x100e99a4], ecx
inc edx
cmp edx, 0x270
jl 0x1002a8a5
mov dword [0x100e99a0], 0x270
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1002a905
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x80], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002a8fb
push ecx
xor dl, dl
call fcn.100299e6
pop ecx
mov dword [ebp - 0x18], ebx
jmp 0x1002a936
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1002a92e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x80], 0xa9ef72d4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x1002a920
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x1002a918
mov dword [ebp - 0x68], 0xf665683c
mov dword [ebp - 0x64], 0x8b166c19
mov dword [ebp - 0x60], 0x1f6f49c2
mov dword [ebp - 0x58], 0x8551b32e
mov dword [ebp - 0x1c], 0x7e44
cmp dword [ebp - 0x1c], 0x7f96
jle 0x1002a9b5
mov edi, ebx
mov esi, ebx
mov eax, edi
lea ecx, [ebp - 0xa4]
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.10001ade
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002a98b
mov eax, dword [eax]
push eax
call fcn.1004041f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xa4]
call fcn.10014649
inc esi
cmp esi, 0x3f3e
jl 0x1002a96c
inc edi
cmp edi, 0x623
jl 0x1002a96a
push 3
pop esi
mov dword [ebp - 0x40], 0xfffffffc
cmp dword [ebp - 0x1c], 0x7c8a
jge 0x1002a9d0
push str.ulfqnnhsf_iooioyvtn_gpgxe_mxkyf_qwvwnmls_kuwcp_rmdsx_myfwtueq_tgbqfdsr_ccdms_cfklahfe_feaistvd_efp
call fcn.1004041f
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x24], 0x20410224
mov dword [ebp - 0x24], 0xae89405d
mov dword [ebp - 0x18], ebx
jmp 0x1002a9ff
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x8c], 6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x1002a9ee
mov dword [ebp - 0x18], ebx
jmp 0x1002aa13
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x38], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1002aa09
lea eax, [ebp - 0x40]
push eax
push ecx
lea eax, [ebp - 0x60]
push eax
push ecx
lea eax, [ebp - 0x58]
push eax
push ecx
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.1002a111
add esp, 0x20
inc dword [ebp - 0x38]
mov dword [ebp - 0x34], 0x2f2d
cmp dword [ebp - 0x34], 0x2f58
jle 0x1002aa98
mov edi, ebx
mov esi, ebx
mov eax, edi
lea ecx, [ebp - 0xbc]
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.10001ade
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002aa6e
mov eax, dword [eax]
push eax
call fcn.1004041f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xbc]
call fcn.10014649
inc esi
cmp esi, 0x6952
jl 0x1002aa4f
inc edi
cmp edi, 0x1d9d
jl 0x1002aa4d
push 3
pop esi
cmp byte [0x100e9811], 0
jne 0x1002ac6f
call fcn.10029b10
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x3c], 0x28cb
mov dword [ebp - 0x28], 0x552f
cmp dword [ebp - 0x28], 0x56e0
jle 0x1002ab1d
mov edx, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
lea eax, [edi + esi]
shl eax, cl
mov ecx, 0x10072098
or eax, edx
cdq
push edx
push eax
call fcn.10013ec4
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x7d6a
jl 0x1002aad6
inc edi
cmp edi, 0xe43
jl 0x1002aad1
inc esi
cmp esi, 0x7b3c
jl 0x1002aacf
inc edx
mov dword [ebp - 0x14], edx
cmp edx, 0x63a3
jl 0x1002aacd
push 3
pop esi
mov dword [ebp - 0x1c], 4
mov dword [ebp - 4], 4
cmp dword [ebp - 0x28], 0x548a
jge 0x1002ab43
mov edx, str.coo_cijaltj_nbtes
mov ecx, 0x10072098
call fcn.1001684d
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x28], 0xa47b6c41
mov dword [ebp - 0x14], ebx
jmp 0x1002ab86
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x20], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1002ab78
mov dword [ebp - 0x20], 0xfffffff2
jmp 0x1002ac48
mov dword [ebp - 0x14], 0x9f7fd1e8
mov dword [ebp - 0x24], 0x4145c174
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x2c], 5
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x14]
jne 0x1002abce
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setg dl
xor ebx, ebx
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setge bl
xor edx, edx
cmp ebx, eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
xor ebx, ebx
cmp ecx, dword [ebp - 0x14]
je 0x1002ac0f
cmp dword [ebp - 0x3c], ebx
jne 0x1002ac0f
mov ecx, ebx
jmp 0x1002ac12
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x14]
add eax, ecx
cmp eax, 6
je 0x1002ac1f
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xc
jge 0x1002ab98
call fcn.10029cd8
push ecx
push ecx
push 1
push 0x1109
push ecx
push 0x100e9811
push ecx
call fcn.10029b3d
add esp, 0x1c
cmp dword [ebp - 0x34], 0x2df6
jge 0x1002ac83
push str.ohkdt_qecgti_gcrp_dmjhubawe_uwyu_ghawbhun_tont_ocsild_frfuywsg_fnce_neefvatm_ayqnpcpzt_aisctrlyj
call fcn.1004041f
pop ecx
mov dword [ebp - 0x14], 0x4a0d
xor ecx, ecx
mov dword [ebp - 0x34], 0xeb4c8f0d
inc ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], 0x14a9c79e
mov dword [ebp - 0x18], ebx
jmp 0x1002acb4
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x54], 0x4dcc80fc
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x1002aca6
mov dword [ebp - 0x18], ebx
jmp 0x1002acc8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x48], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1002acbe
cmp dword [ebp - 0x14], ebx
jne 0x1002acd6
dec dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x44], ebx
je 0x1002ace3
cmp dword [ebp - 0x4c], ebx
jne 0x1002ace5
mov ecx, ebx
mov eax, dword [ebp - 0x50]
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setg dl
sub edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
add edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x2c]
neg edx
sbb edx, edx
inc edx
jne 0x1002ad11
cmp dword [ebp - 0x4c], ebx
je 0x1002ad11
inc edx
jmp 0x1002ad13
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
imul eax, ecx, 0x8009
xor ecx, ecx
cmp eax, 5
setle cl
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 1
jg 0x1002ad6a
mov ecx, 0x6d9e96b
mov dword [ebp - 0x24], 0x2e7eb665
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], ecx
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x1c]
cmp eax, ecx
je 0x1002ad5c
xor eax, eax
inc eax
jmp 0x1002ad5e
mov eax, ebx
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jle 0x1002ad3f
mov eax, dword [0x100e99a0]
cmp eax, 0x270
jne 0x1002adb6
mov edx, 0x100e99a8
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, 0x100ea368
jl 0x1002ad7b
jmp 0x1002adc2
cmp eax, 0x4e0
jb 0x1002adc7
call fcn.1002b663
mov eax, dword [0x100e99a0]
mov edx, dword [eax*4 + 0x100e99a4]
inc eax
mov dword [0x100e99a0], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x100ead24]
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 + 0x10]
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