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

Disassembly:
mov eax, 0x10055364
call fcn.10053f54
sub esp, 0x60
cmp byte [ebp + 0x1c], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
je 0x10034da9
lea eax, [ebp - 0x11]
mov byte [ebp - 0x11], 0
push eax
xor eax, eax
mov edx, 0x690c
inc eax
mov ecx, 0x764
push eax
push eax
push 0x1c27
push 0x5162
push eax
call fcn.10034973
add esp, 0x18
jmp 0x100351e0
mov dword [ebp - 0x1c], 0x34d8
xor ebx, ebx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x18], ebx
jmp 0x10034dcc
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x54], 0xab76d609
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10034dbe
push 2
mov dword [ebp - 0x18], ebx
pop ecx
jmp 0x10034de8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2c], 0xdbc56e70
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10034dda
mov dword [ebp - 0x18], ebx
jmp 0x10034e00
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x34], 0x36378284
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10034df2
mov eax, dword [ebp - 0x2c]
xor esi, esi
inc dword [ebp - 0x2c]
inc esi
cmp eax, esi
mov edi, esi
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x1c]
cmovge edi, ebx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x54]
add eax, ecx
imul edx, eax
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
cmp eax, edx
setle cl
xor eax, eax
cmp edi, ecx
setne al
xor ecx, ecx
imul eax, eax, 0x97a8
test eax, eax
mov eax, dword [0x1006fe54]
sets cl
mov dword [ebp - 0x54], ecx
test al, 1
jne 0x10034ea0
or eax, esi
mov ecx, 0x1571
or dword [0x1006fe34], 0xffffffff
mov edx, esi
mov dword [0x1006fe54], eax
mov dword [0x1006eab4], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1006eab4], ecx
inc edx
cmp edx, 0x270
jl 0x10034e77
mov dword [0x1006eab0], 0x270
mov dword [ebp - 0x20], 0x367
cmp dword [ebp - 0x20], 0x49a
jle 0x10034f4f
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
push 0x240c
push 0x1743
push 0x26e1
push ebx
push 0x969
push 0xbff
call edi
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
call esi
push eax
push 0x1d2a
push 0x601
push 0xd7c
push 0x25a9
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_MaskBlt]
xor esi, esi
mov edi, ebx
inc esi
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
cdq
idiv ecx
lea ecx, [ebp - 0x6c]
mov eax, edx
cdq
push edx
push eax
call fcn.10001311
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10034f26
mov eax, dword [eax]
push eax
call fcn.1003bcd0
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x6c]
call fcn.10001623
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x13b3
jl 0x10034f0a
inc edi
cmp edi, 0x5ff2
jl 0x10034f05
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x20], 0x2a3
jge 0x10034f66
push str.satrhkyx_ayuuikzk_wsmnfjz_tqpwvfr_caopkyq_itgr_wqr_mhyjqcod_eurz_yisdbbnv_wpjtg
call fcn.1003bcd0
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, 0x996a5308
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x20], 0x320525c7
mov dword [ebp - 0x1c], 0xfffffffe
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0xc2c6
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jne 0x10034fa1
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
cmp eax, esi
setge cl
cmp dword [ebp - 0x18], ecx
jne 0x10035078
mov dword [ebp - 0x1c], 0x4ca6
cmp dword [ebp - 0x1c], 0x4fe6
jle 0x10035018
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov ecx, edi
mov ebx, esi
mov esi, dword [ebp - 0x18]
sar ebx, cl
mov eax, ebx
mov ecx, 0x1006d158
and eax, esi
cdq
push edx
push eax
call fcn.100021b6
inc esi
cmp esi, 0x6f1b
jl 0x10034fe3
mov esi, dword [ebp - 0x20]
inc edi
push 0
pop ebx
cmp edi, 0x4d3b
jl 0x10034fd7
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x4851
jl 0x10034fd5
mov byte [ebp - 0x12], bl
mov dword [ebp - 4], 2
cmp dword [ebp - 0x1c], 0x49fe
jge 0x1003503a
mov edx, str.zyskrdal_bto_iiuizvyud_pqwrlq_ujyvuy_eybxdbtww_tmvbtvzi
mov ecx, 0x1006d158
call fcn.100037d8
or dword [ebp - 4], 0xffffffff
push ecx
push ecx
push ebx
lea edx, [ebp - 0x12]
mov ecx, 0x5ba8
call fcn.100338d4
add esp, 0xc
jmp 0x100350de
mov dword [ebp - 0x1c], 0xfff9
mov dword [ebp - 0x20], 0x5f402be2
cmp dword [ebp - 0x3c], ebx
jge 0x10035092
mov edi, esi
cmp dword [ebp - 0x18], ebx
jne 0x10035094
mov edi, ebx
mov ecx, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setne dl
xor eax, eax
cmp edx, edi
setg al
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
je 0x100350ba
cmp dword [ebp - 0x1c], ebx
jne 0x100350ba
mov esi, ebx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
sub edx, esi
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setle cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], ebx
jl 0x10035120
push ecx
mov dword [ebp - 0x20], 0xffffffff
mov edx, 0x7f6d
push ebx
mov ecx, 0x67af
call fcn.1003454d
mov dword [ebp - 0x20], 0x1ec6
mov eax, dword [ebp - 0x24]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
mov eax, dword [ebp - 0x20]
add eax, ecx
mov dword [ebp - 0x20], eax
dec dword [ebp - 0x1c]
jns 0x100350ea
push 0x6098
push 0x1006e8fd
push ebx
push ecx
push ecx
push 0x21d9
push ecx
mov edx, 0x1006eab0
mov ecx, 0x6094
call fcn.10034c6e
mov eax, dword [0x1006eab0]
add esp, 0x1c
cmp eax, 0x270
jne 0x10035191
mov edx, 0x1006eab8
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, 0x1006f478
jl 0x10035156
jmp 0x1003519d
cmp eax, 0x4e0
jb 0x100351a2
call fcn.10035ec7
mov eax, dword [0x1006eab0]
mov edx, dword [eax*4 + 0x1006eab4]
inc eax
mov dword [0x1006eab0], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x1006fe34]
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 + 0xc]
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