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

Disassembly:
mov eax, 0x100642b7
call fcn.10063a38
sub esp, 0x174
push ebx
push esi
xor ebx, ebx
mov eax, ecx
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], eax
cmp byte [ebp + 0xc], bl
je 0x10006b07
mov dword [ebp - 0x14], 0x798b
cmp dword [ebp - 0x14], 0x7d39
jle 0x10006ad7
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], 0xdb0
mov esi, dword [ebp - 0x20]
mov edi, ebx
mov eax, esi
lea ecx, [ebp - 0x168]
and eax, edi
cdq
push edx
push eax
call fcn.10003a70
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10006a9f
mov eax, dword [eax]
push eax
call fcn.1004bc39
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x168]
call fcn.10003049
inc edi
cmp edi, 0xbe0
jl 0x10006a83
mov esi, dword [ebp - 0x4c]
add dword [ebp - 0x20], esi
dec dword [ebp - 0x38]
jne 0x10006a7e
inc esi
mov dword [ebp - 0x4c], esi
cmp esi, 0xc66
jl 0x10006a74
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0
je 0x10006aea
push ebx
push ebx
push ebx
push 0xc84
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
cmp dword [ebp - 0x14], 0x75bc
jge 0x10007514
push str.xrnnptjma_bmsqir_lxzqk_xjfmzc_kfvdq_ijtx_vdi_johg_dqsfpird_sqyngd
call fcn.1004bc39
pop ecx
jmp 0x10007514
mov edi, dword [ebp + 8]
mov dword [ebp - 0x2c], 0x68ec0ae9
mov dword [ebp - 0x94], 6
mov dword [ebp - 0x7c], 0xfffffffd
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], 0x222c7e12
mov dword [ebp - 0xb4], ebx
push 2
mov dword [ebp - 0xa0], 1
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x2c], 0xffffffe3
pop esi
cmp dword [ebp - 0x2c], 0x16
jne 0x10006cff
mov dword [ebp - 0x9c], 0x6941fc9a
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x4c], 0x6eea5306
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x20], 0xa50887c5
push 3
call fcn.10002861
push 1
lea eax, [ebp - 0x118]
mov dword [ebp - 4], esi
push eax
push 1
push 0x5796
push ebx
push 0xfd4
mov edx, 0x7cf0
lea ecx, [ebp - 0x108]
call fcn.1000627b
add esp, 0x18
lea eax, [ebp - 0x4c]
mov edx, 0x7936
push eax
push ecx
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x80]
push eax
push 0x5542
push ecx
lea eax, [ebp - 0x2c]
push eax
push ebx
lea eax, [ebp - 0x3c]
push eax
push ecx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x9c]
call fcn.1000761f
mov eax, dword [ebp - 0x7c]
add esp, 0x30
mov eax, dword [ebp - 0x24]
mov ecx, 0x2e633725
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
sub ecx, eax
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x3c], 0x848298bb
je 0x10006c1a
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x4c], ebx
je 0x10006c56
push ecx
push ebx
push ecx
push 0x52bf
mov edx, 0x5c6a
mov byte [ebp - 0x2e], bl
lea ecx, [ebp - 0x2e]
call fcn.100069e7
add esp, 0x10
lea eax, [ebp - 0x20]
mov dl, 1
push 0x7509
push eax
push ecx
call fcn.10008a1e
add esp, 0xc
jmp 0x10006ce8
mov dword [ebp - 0x90], 1
mov dword [ebp - 0xa4], 0x1b3d
mov dword [ebp - 0x24], ebx
jmp 0x10006ce3
lea eax, [ebp - 0x90]
mov dword [ebp - 0xbc], 0xa796fb6c
push eax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xcc], 0xb3dad933
push eax
push ecx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x20]
push eax
push 0x35cb
push ecx
lea eax, [ebp - 0xcc]
push eax
push 0x3a27
push ecx
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
push ebx
lea edx, [ebp - 0xbc]
lea ecx, [ebp - 0x108]
call fcn.100066a7
add esp, 0x44
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jle 0x10006c6f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x108]
call fcn.100028c3
inc dword [ebp - 0x2c]
jmp 0x10006b49
push ecx
push 0x730
mov cl, 1
call fcn.1000697e
mov eax, dword [0x10390044]
pop ecx
pop ecx
test al, 1
jne 0x10006d5d
or dword [0x103913d4], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x10390044], eax
xor edx, edx
mov dword [0x10390054], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x10390054], ecx
inc edx
cmp edx, 0x270
jl 0x10006d34
mov dword [0x10390050], 0x270
mov dword [ebp - 0x14], 0x2971c1e
lea ecx, [ebp - 0xfc]
push 1
call fcn.10002861
push 0x377a
push ecx
push 0x6791
push 0x5bfb
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 3
push eax
push ecx
push 0x4f8e
push 1
push 0x595d
push ecx
push 0x71d1
push 0x6452
lea edx, [ebp - 0xfc]
mov ecx, 0x45da
call fcn.1000761f
add esp, 0x30
mov dword [ebp - 0x48], ebx
jmp 0x10006dcd
mov eax, dword [ebp - 0x48]
mov dword [ebp + eax*4 - 0x150], 0x76038591
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 3
jl 0x10006dbc
lea eax, [ebp - 0x30]
mov byte [ebp - 0x30], bl
push eax
push ecx
push ecx
push 0x3d73
xor dl, dl
call fcn.1000666b
add esp, 0x10
cmp dword [ebp - 0x14], ebx
je 0x10006e0d
push 0x621b
push ebx
mov edx, 0x3504
mov byte [ebp - 0x2f], bl
lea ecx, [ebp - 0x2f]
call fcn.10008a7c
pop ecx
pop ecx
jmp 0x10006ef9
xor edx, edx
mov dword [ebp - 0xc0], 0x19f23e52
mov dword [ebp - 0x14], ebx
inc edx
jmp 0x10006e2c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa8], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10006e1f
mov dword [ebp - 0x14], ebx
jmp 0x10006e43
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc8], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x10006e36
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xfc]
mov dword [eax], ecx
mov dword [ebp - 0x14], 0xffffffef
cmp dword [ebp - 0x14], 8
jne 0x10006ef9
jmp 0x10006e6c
xor edx, edx
inc edx
push dword [ebp - 0xc8]
movdqa xmm0, xmmword [0x10073820]
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x58], edx
push eax
push ebx
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0xe4], ebx
movdqu xmmword [ebp - 0x13c], xmm0
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xdc], ebx
call fcn.10002972
push 1
lea eax, [ebp - 0x31]
mov byte [ebp - 4], 4
push 0x6472
mov byte [ebp - 0x31], bl
mov ecx, 0x17a5
push eax
call fcn.100063ac
add esp, 0xc
lea ecx, [ebp - 0xc0]
xor dl, dl
call fcn.1000853d
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 3
call fcn.100028c3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
je 0x10006e69
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xfc]
call fcn.100028c3
cmp byte [0x10083034], 0
jne 0x1000747c
push 4
lea ecx, [ebp - 0xf0]
call fcn.10002861
push 3
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], 5
call fcn.10002861
mov byte [ebp - 4], 6
mov dword [ebp - 0x18], ebx
jmp 0x10006f50
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x144], 0x62fd41e5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x10006f3f
push ebx
lea eax, [ebp - 0x18]
push eax
push 0x70ca
lea ecx, [ebp - 0xf0]
call fcn.100063ac
add esp, 0xc
mov dword [ebp - 0x18], ebx
jmp 0x10006f85
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x114]
mov dword [eax + ecx*4], 0x4b66
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10006f72
xor ecx, ecx
mov dword [ebp - 0x18], ebx
inc ecx
jmp 0x10006f9d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10006f93
push ecx
lea eax, [ebp - 0x114]
xor cl, cl
push eax
call fcn.1000697e
pop ecx
pop ecx
mov dword [ebp - 0x50], ebx
jmp 0x10006fcb
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xf0]
mov dword [eax + ecx*4], 0x11151c3c
inc dword [ebp - 0x50]
cmp dword [ebp - 0x50], 4
jl 0x10006fb8
lea ecx, [ebp - 0x114]
call fcn.100028c3
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xf0]
call fcn.100028c3
push 0x10390050
push 0x2f43
push ecx
xor dl, dl
mov ecx, 0x24aa
call fcn.1000653e
mov dword [ebp - 0x1c], 0x1e9b
add esp, 0xc
cmp dword [ebp - 0x1c], 0x8d0
jge 0x1000717f
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x84]
push eax
push str._ld__ld__ld__ld_n
call fcn.1004be36
mov eax, dword [ebp - 0x74]
xorps xmm0, xmm0
cdq
mov ecx, 0x77359400
mov dword [ebp - 0xb8], eax
add esp, 0x14
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xb0], edx
cdq
movlpd qword [ebp - 0x5c], xmm0
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x98], edx
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x6c], eax
mov eax, ebx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x78], edi
add ecx, edi
push ebx
push esi
adc eax, edx
push eax
push ecx
call fcn.10063a60
push dword [ebp - 0xb0]
mov edi, eax
mov eax, edx
push dword [ebp - 0xb8]
mov dword [ebp - 0x14], eax
push eax
push edi
call fcn.10063a60
mov ecx, edi
sub ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x58], ecx
mov ecx, eax
sbb ecx, edx
cmp ecx, dword [ebp - 0x98]
jl 0x10007148
jg 0x100070cb
mov ecx, dword [ebp - 0x6c]
cmp dword [ebp - 0x58], ecx
jb 0x10007148
mov eax, dword [ebp - 0x70]
cdq
push edx
push eax
push dword [ebp - 0x14]
push edi
call fcn.10063a60
mov ecx, edi
sub ecx, eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x14]
sbb ecx, edx
cdq
cmp ecx, edx
jl 0x10007145
jg 0x100070f8
cmp dword [ebp - 0x58], eax
jb 0x10007145
mov eax, dword [ebp - 0x74]
imul eax, dword [ebp - 0x70]
cdq
push edx
push eax
push dword [ebp - 0x14]
push edi
call fcn.10063a60
mov ecx, edi
sub ecx, eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x14]
sbb ecx, edx
add eax, dword [ebp - 0x8c]
cdq
cmp ecx, edx
jl 0x10007145
jg 0x1000712f
cmp dword [ebp - 0x58], eax
jb 0x10007145
mov eax, dword [ebp - 0x14]
mov ecx, edi
mov edx, dword [ebp - 0x88]
mov edi, dword [ebp - 0x78]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x1c], eax
jmp 0x1000715e
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
add edi, 1
mov edx, eax
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x1c]
adc edx, ebx
mov dword [ebp - 0x88], edx
cmp edx, eax
jl 0x10007080
jg 0x10007170
cmp edi, ecx
jb 0x10007080
push eax
push ecx
push str._ld_n
call fcn.1004bc39
add esp, 0xc
mov dword [ebp - 0x44], 0x9ac7
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x54], 0xffffffff
mov dword [ebp - 0x58], 0x14ba09a1
push 1
call fcn.10002861
push ecx
lea eax, [ebp - 0x124]
mov dword [ebp - 4], 7
push eax
push ecx
lea eax, [ebp - 0x128]
mov dword [ebp - 0xc4], 0x6c14
push 1
push eax
mov ecx, 0x20b0
call fcn.1000678c
mov dword [ebp - 0x28], 0x109a
add esp, 0x14
cmp dword [ebp - 0x28], 0x120e
jle 0x10007253
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov esi, ebx
mov edx, ebx
mov dword [ebp - 0x1c], ebx
lea eax, [esi + edi]
and eax, edx
and eax, ecx
lea ecx, [ebp - 0x180]
cdq
push edx
push eax
call fcn.10003a70
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000720e
mov eax, dword [eax]
push eax
call fcn.1004bc39
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x180]
call fcn.10003049
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
inc edx
mov dword [ebp - 0x1c], edx
cmp edx, 0x18b5
jl 0x100071ef
inc esi
cmp esi, 0x4ecb
jl 0x100071ea
inc edi
cmp edi, 0x3a5b
jl 0x100071e8
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x4941
jl 0x100071e6
cmp dword [ebp - 0x28], 0xd5a
jge 0x10007267
push str.pqviufk_dyppvjy_rnps_gvf
call fcn.1004bc39
pop ecx
mov dword [ebp - 4], 7
cmp dword [ebp - 0x44], ebx
je 0x10007412
push 1
lea ecx, [ebp - 0xd8]
call fcn.10002861
push 1
push 0x4a5c
push ebx
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0xa
push eax
push 1
mov dword [ebp - 0xac], 0x312b9482
lea edx, [ebp - 0xd8]
push 0x6ab5
mov ecx, 0x47cc
call fcn.1000627b
add esp, 0x18
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x44], 0x13
jge 0x10007405
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x40], 0xffffffee
jmp 0x10007327
push ecx
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x54]
push eax
push ecx
push ecx
push ebx
push ecx
push 0x207d
push 0x67c7
call fcn.100069a9
add esp, 0x24
mov dword [ebp - 0x54], ebx
jmp 0x1000731e
mov dword [ebp - 0x14], 0x76881957
mov dword [ebp - 0x14], ebx
jmp 0x10007316
push 1
call fcn.1000876c
inc dword [ebp - 0x14]
pop ecx
cmp dword [ebp - 0x14], ebx
jle 0x1000730b
dec dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xfffffffe
je 0x100072ff
dec dword [ebp - 0x40]
cmp dword [ebp - 0x40], 0xffffffeb
jge 0x100072d8
mov dword [ebp - 0x28], 0x1a30
cmp dword [ebp - 0x28], 0x1c32
jle 0x10007385
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov esi, ebx
mov ecx, esi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x6c], ebx
sar edi, cl
mov ecx, ebx
mov eax, edi
shl eax, cl
mov ecx, 0x10081ef8
cdq
push edx
push eax
call fcn.10003ea0
inc ebx
cmp ebx, 0x32d1
jl 0x1000734e
mov edi, dword [ebp - 0x1c]
inc esi
push 0
pop ebx
cmp esi, 0x23a3
jl 0x10007344
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x56ad
jl 0x10007342
push ebx
lea eax, [ebp - 0x44]
mov edx, 0x79b0
push eax
push 1
lea eax, [ebp - 0x40]
mov ecx, 0x1f5e
push eax
push 0x604
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xd8]
push ebx
push eax
call fcn.1000856a
add esp, 0x20
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x28], 0x170d
jge 0x100073f6
mov edx, str.tkvphn_izx_iszrjhcp_vctgcgqwv_cpufvcj_pgjkr
mov ecx, 0x10081ef8
call fcn.10005908
jmp 0x100073f6
mov dword [ebp - 4], 0xa
inc dword [ebp - 0x44]
jmp 0x100072be
lea ecx, [ebp - 0xd8]
call fcn.100028c3
jmp 0x10007465
mov dword [ebp - 0x68], 0x127420ea
lea edx, [ebp - 0x2d]
mov dword [ebp - 0x68], 0x56a42623
xor eax, eax
inc eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
push ecx
mov dword [ebp - 0x58], eax
push eax
mov byte [ebp - 0x2d], bl
call fcn.1000641b
push 1
push 0x6141
push 1
push 0x43e0
lea eax, [ebp - 0xc4]
mov edx, 0x6d6f
push 1
push eax
mov ecx, 0x46b7
call fcn.1000627b
add esp, 0x20
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x124]
call fcn.100028c3
call fcn.10007525
mov edi, dword [ebp + 8]
mov eax, dword [0x10390050]
cmp eax, 0x270
jne 0x100074c8
mov edx, 0x10390058
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, 0x10390a18
jl 0x1000748d
jmp 0x100074d4
cmp eax, 0x4e0
jb 0x100074d9
call fcn.10008f8d
mov eax, dword [0x10390050]
mov ecx, dword [eax*4 + 0x10390054]
inc eax
mov dword [0x10390050], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x103913d4]
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 [edi], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret