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

Disassembly:
mov eax, 0x10061813
call fcn.1005fa90
sub esp, 0xc4
push ebx
push esi
push edi
push 0
pop ebx
mov dword [ebp - 0x10], 0x1095
cmp dword [ebp - 0x10], 0x1100
push 1
pop esi
jle 0x1003fe1a
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0x88]
or eax, esi
cdq
push edx
push eax
call fcn.10004d43
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003fde9
mov eax, dword [eax]
push eax
call fcn.10047823
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x88]
call fcn.100031ae
inc edi
cmp edi, 0x19c3
jl 0x1003fdcd
inc esi
cmp esi, 0x5f43
jl 0x1003fdcb
push ebx
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
xor esi, esi
inc esi
cmp dword [ebp - 0x10], 0xd58
jge 0x1003fe2e
push str.uyviy_gfujg_qcfkkb_tovrx_odsb_ymocfvsq_wnjopedh_unp_yxncgaxnv_mfmwci
call fcn.10047823
pop ecx
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x18], 0
je 0x1003ff07
mov dword [ebp - 0x1c], 0x3bb3
cmp dword [ebp - 0x1c], 0x3db0
jle 0x1003fecb
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov ecx, edi
mov dword [ebp - 0x10], esi
sar esi, cl
xor edi, edi
mov dword [ebp - 0x10], 0x5b22
mov ecx, edi
mov eax, esi
sar eax, cl
lea ecx, [ebp - 0xb8]
cdq
push edx
push eax
call fcn.10004d43
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003fe84
mov eax, dword [eax]
push eax
call fcn.10047823
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.100031ae
add edi, ebx
dec dword [ebp - 0x10]
jne 0x1003fe66
inc ebx
cmp ebx, 0x7f33
jl 0x1003fe5d
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x18], edi
push 0
pop ebx
cmp edi, 0x4fd4
jl 0x1003fe56
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x3da2
jl 0x1003fe51
cmp dword [ebp - 0x1c], 0x3879
jge 0x1003fedf
push str.eivv_vfaf_dwqkcgby_fip_yhuhdhn_iubklckp
call fcn.10047823
pop ecx
mov edx, dword [ebp + 0xc]
mov dword [edx], ebx
cmp dword [edx], 4
jge 0x10040444
mov esi, dword [ebp + 0x14]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x87fce6bb
inc dword [edx]
cmp dword [edx], 4
jl 0x1003fef0
jmp 0x10040444
mov dword [ebp - 0x10], 0xfe0a8eac
mov dword [ebp - 0x18], ebx
jmp 0x1003ff21
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x38], 5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1003ff13
mov dword [ebp - 0x10], ebx
jmp 0x10040011
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x18], 0xaf14186e
mov dword [ebp - 0x2c], 0x1dba1dd7
mov dword [ebp - 0x20], ebx
jmp 0x10040005
push 4
lea ecx, [ebp - 0x44]
call fcn.100022ea
push ecx
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 0x64]
mov ecx, 0x50c9
push eax
push ebx
push 0x409d
call fcn.10040893
mov eax, dword [ebp - 0x44]
add esp, 0x14
mov dword [eax], ebx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + eax*4 - 0x38]
cmp eax, esi
setle cl
cmp ecx, dword [ebp - 0x34]
je 0x1003ff9d
cmp dword [ebp - 0x34], ebx
jne 0x1003ffa8
mov eax, dword [ebp - 0x20]
mov edx, ebx
cmp dword [ebp + eax*4 - 0x38], ebx
je 0x1003ffaa
mov edx, esi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x38]
cmp edx, eax
mov eax, dword [ebp - 0x44]
setl cl
sub ecx, dword [eax]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0xfffffff6
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x1003ffed
lea eax, [ebp - 0x2c]
mov ecx, 0x4345
push eax
push 0xb83
call fcn.100406cb
dec dword [ebp - 0x18]
pop ecx
pop ecx
jns 0x1003ffd3
mov eax, dword [ebp - 0x44]
inc dword [eax]
cmp dword [eax], esi
jle 0x1003ff7e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.10002347
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jle 0x1003ff4c
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe5
jne 0x1003ff2f
mov byte [ebp - 0x21], bl
mov dword [ebp - 0x10], 0x5fd9
cmp dword [ebp - 0x10], 0x60fb
jle 0x10040089
mov esi, ebx
mov dword [ebp - 0x1c], 0x8f2
xor edi, edi
mov ecx, edi
mov eax, ebx
shl eax, cl
lea ecx, [ebp - 0xa0]
cdq
push edx
push eax
call fcn.10004d43
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10040057
mov eax, dword [eax]
push eax
call fcn.10047823
pop ecx
push 0
push 1
lea ecx, [ebp - 0xa0]
call fcn.100031ae
inc edi
cmp edi, 0x1bd6
jl 0x10040039
add ebx, esi
dec dword [ebp - 0x1c]
jne 0x10040037
inc esi
push 0
pop ebx
cmp esi, 0x13e6
jl 0x10040030
lea eax, [ebp - 0x21]
mov edx, 0x59ed
push 0xe01
push eax
xor cl, cl
call fcn.100407a5
cmp dword [ebp - 0x10], 0x5e30
pop ecx
pop ecx
jge 0x100400b4
push str.vsrrhzy_yjobejipn_olfqeczxl_qfs_rwmh_tmhqndvo_jmxipwyej_rwcnhdgvp_cudqcth_gpcag
call fcn.10047823
pop ecx
or dword [ebp - 4], 0xffffffff
xor esi, esi
mov eax, dword [0x101444d8]
inc esi
mov edi, 0x270
test al, 1
jne 0x10040105
or eax, esi
mov ecx, 0x1571
or dword [0x10145864], 0xffffffff
mov edx, esi
mov dword [0x101444d8], eax
mov dword [0x101444e4], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x101444e4], ecx
inc edx
cmp edx, edi
jl 0x100400e4
mov dword [0x101444e0], edi
push ebx
push 0x1bbb
push 0x5805
push 0x5f22
push ebx
push esi
mov edx, 0x2668
mov ecx, 0x6bbb
call fcn.1003f851
push 0xe40
push 0xff0
push 0x5c1a
push ebx
push 0x7eff
push esi
xor dl, dl
mov ecx, 0x51c1
call fcn.10040912
add esp, 0x30
cmp byte [0x10144310], 0
jne 0x10040276
mov dword [ebp - 0x10], 0x7ad95e17
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x1c], 0xf390197f
mov dword [ebp - 0x1c], 0x43e9
push 3
call fcn.100022ea
mov dword [ebp - 4], 7
mov dword [ebp - 0x14], ebx
jmp 0x10040191
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x48], 0x4e2db58
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10040183
mov dword [ebp - 0x14], ebx
jmp 0x100401a9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 0xe4438bea
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1004019b
mov dword [ebp - 0x14], ebx
jmp 0x100401c2
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x30], 0xc42206dd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100401b4
push ebx
lea eax, [ebp - 0x60]
mov ecx, 0x1a77
push eax
push 0xea8
push 0x4818
push 0x7efa
lea edx, [ebp - 0x14]
call fcn.10041339
add esp, 0x14
push 0x3f6e
push ebx
push 0x219d
push ecx
push ecx
lea ecx, [ebp - 0x60]
call fcn.1003fb83
mov eax, dword [ebp - 0x48]
add esp, 0x14
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
mov dword [ebp - 0x70], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x10]
sub edx, eax
mov eax, dword [ebp - 0x1c]
cmp edx, eax
setl cl
xor eax, eax
cmp ecx, 0x78029323
lea ecx, [ebp - 0x60]
setne al
mov dword [ebp - 0x1c], eax
or dword [ebp - 4], 0xffffffff
call fcn.10002347
push ecx
push 0x23c4
push 0x101444e0
mov edx, 0x4ff
xor cl, cl
call fcn.1003fccb
add esp, 0xc
mov edx, 0x10144310
push 0x7008
push ecx
push 0x7145
xor cl, cl
call fcn.1003f9eb
add esp, 0xc
push esi
lea ecx, [ebp - 0x54]
call fcn.100022ea
mov dword [ebp - 4], 8
mov dword [ebp - 0x28], 0x53d8da8e
mov dword [ebp - 0x10], ebx
jmp 0x100402a2
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0x5d6c05ba
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10040292
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x100402ca
lea eax, [ebp - 0x54]
mov ecx, 0x5d5
push eax
lea eax, [ebp - 0x28]
push ebx
push eax
call fcn.1003f821
add esp, 0xc
dec dword [ebp - 0x28]
jns 0x100402af
push 0x6cb5
lea eax, [ebp - 0x54]
xor cl, cl
push eax
push 0x5948
lea edx, [ebp - 0x28]
call fcn.100408ee
mov dword [ebp - 0x10], 0x92b
add esp, 0xc
cmp dword [ebp - 0x10], 0xafc
jle 0x10040390
mov esi, ebx
mov dword [ebp - 0x1c], esi
jmp 0x10040302
xor ebx, ebx
mov edi, ebx
mov dword [ebp - 0x2c], edi
jmp 0x1004030b
xor ebx, ebx
mov ecx, edi
mov dword [ebp - 0x30], esi
mov edi, esi
shl edi, cl
xor esi, esi
mov ecx, esi
mov eax, ebx
sar eax, cl
lea ecx, [ebp - 0xd0]
xor eax, edi
cdq
push edx
push eax
call fcn.10004d43
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10040336
mov eax, dword [eax]
push eax
call fcn.10047823
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd0]
call fcn.100031ae
inc esi
cmp esi, 0x32cd
jl 0x10040316
inc ebx
cmp ebx, 0x2540
jl 0x10040314
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x7fd3
jl 0x10040309
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x4bed
jl 0x10040300
push 0xed9
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, 0x270
cmp dword [ebp - 0x10], 0x653
jge 0x100403a4
push str.byjzi_qzd_aqf_ytptf_hkrbuzb_pekjghnw_ftrgigo_zmdkyoxa_gptiz_tqhscmcvn_irnzqq_sgapksn
call fcn.10047823
pop ecx
lea ecx, [ebp - 0x54]
call fcn.10002347
mov eax, dword [0x101444e0]
cmp eax, edi
jne 0x100403f5
mov edx, 0x101444e8
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, 0x10144ea8
jl 0x100403ba
jmp 0x10040401
cmp eax, 0x4e0
jb 0x10040406
call fcn.100415dc
mov eax, dword [0x101444e0]
mov edx, dword [eax*4 + 0x101444e4]
inc eax
mov dword [0x101444e0], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x10145864]
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 + 8]
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