Function at 0x1002676b
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Get disk size

Disassembly:
mov eax, 0x1005925b
call fcn.100580f4
sub esp, 0x90
cmp byte [ebp + 0x24], 0
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x4c], esi
je 0x100269d1
cmp byte [ebp + 0x28], 0
je 0x1002692c
mov dword [ebp - 0x1c], 0x574f
xor ebx, ebx
cmp dword [ebp - 0x1c], 0x5ab7
jle 0x1002680a
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp + 0x24], ebx
add eax, edi
mov dword [ebp - 0x44], ebx
add eax, esi
mov dword [ebp - 0x24], eax
mov esi, eax
mov eax, esi
mov ecx, 0x10071a98
and eax, ebx
cdq
push edx
push eax
call fcn.100046a4
inc ebx
cmp ebx, 0x52ab
jl 0x100267c7
mov eax, dword [ebp + 0x24]
mov esi, dword [ebp - 0x18]
inc eax
mov dword [ebp + 0x24], eax
push 0
pop ebx
cmp eax, 0xcb3
jl 0x100267bb
inc edi
cmp edi, 0x2e71
jl 0x100267b6
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x2450
jl 0x100267b4
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x1c], 0x563c
jge 0x10026825
mov edx, str.pxrphpqlo_tngkip_wumitbexj_dlpx_zwpvsm_umxgcw_qbfbuzy_enmzygazz
mov ecx, 0x10071a98
call fcn.10006c80
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x1c], 0x1d64
cmp dword [ebp - 0x1c], 0x2048
jle 0x10026893
mov esi, ebx
mov edi, ebx
mov eax, ebx
mov dword [ebp + 0x24], ebx
xor eax, edi
lea ecx, [ebp - 0x84]
or eax, esi
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002685e
mov eax, dword [eax]
push eax
call fcn.1003fffd
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x84]
call fcn.10004e55
mov eax, dword [ebp + 0x24]
inc eax
mov dword [ebp + 0x24], eax
cmp eax, 0x404f
jl 0x10026842
inc edi
cmp edi, 0x36e5
jl 0x1002683d
inc esi
cmp esi, 0x5ef6
jl 0x1002683b
cmp dword [ebp - 0x1c], 0x1beb
jge 0x100268a7
push str.grwnss_xbesbh_vmxn_fyommwuyi_vhwdkoz_ojwzwq_wkt_omj_xrmif_zxdpzgwa_rwrgzpevm_rvtglpp_igij_bxoyinf
call fcn.1003fffd
pop ecx
mov edx, dword [ebp + 0x1c]
xor ecx, ecx
mov esi, dword [ebp + 0x18]
mov eax, dword [edx]
mov eax, dword [edx]
test eax, eax
mov eax, dword [edx]
sete cl
imul eax, ecx
test eax, eax
jne 0x100268c5
cmp dword [esi], ebx
je 0x100268c8
xor ebx, ebx
inc ebx
mov eax, dword [edx]
mov edi, 0x5b40194d
sub ebx, eax
xor ecx, ecx
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [eax + 8], 0xc236
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov eax, dword [edx]
cmp eax, edi
mov eax, dword [edx]
setg cl
xor edx, edx
add ecx, eax
mov eax, dword [esi]
cmp ecx, eax
mov eax, dword [ebp + 0x14]
setl dl
mov dword [eax], edx
jmp 0x10026e76
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x1002693b
xor cl, cl
call fcn.1002591c
mov dword [ebp - 0x18], 0x5fb7
cmp dword [ebp - 0x18], 0x623e
jle 0x100269b4
xor ebx, ebx
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], esi
mov dword [ebp + 0x24], 0x7432
mov eax, esi
lea ecx, [ebp - 0x9c]
or eax, edi
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002697a
mov eax, dword [eax]
push eax
call fcn.1003fffd
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x9c]
call fcn.10004e55
dec esi
dec dword [ebp + 0x24]
jne 0x1002695e
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x6823
jl 0x10026954
inc edi
cmp edi, 0x51d4
jl 0x1002694f
push ebx
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
cmp dword [ebp - 0x18], 0x5c51
jge 0x10026e76
push str.ayhxy_xko_omamq_tkdcuitq_dzzvgb_pqeabmr_ezpw_infdtv_wufz_try_czmw_frfcfsmo_wbyye_ylnocrmm
call fcn.1003fffd
pop ecx
jmp 0x10026e76
cmp byte [ebp + 0x20], 0
je 0x100269ff
mov esi, dword [ebp + 0x2c]
xor ebx, ebx
mov dword [esi], ebx
jmp 0x100269f5
mov byte [ebp + 0x27], bl
cmp byte [ebp + 0x27], bl
je 0x100269f3
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
dec dword [esi]
cmp dword [esi], 0xffffffe2
jg 0x100269e0
jmp 0x10026e76
mov dword [ebp + 0x24], 0x7fb0
lea edx, [ebp - 0x48]
mov dword [ebp + 0x24], 0xc1ec2db2
mov eax, 0xcd509978
push 3
pop edi
mov dword [ebp + 0x24], edi
xor cl, cl
mov dword [ebp + 0x24], 0xaa39ed0
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp + 0x24], 0xb64fda7e
mov dword [ebp + 0x24], 4
mov dword [ebp + 0x24], 0xef99
mov dword [ebp + 0x24], 0x5169ff4c
mov dword [ebp - 0x48], 0xab83
call fcn.1002659d
mov eax, dword [0x1062ce98]
test al, 1
jne 0x10026aa7
or dword [0x1062ce94], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x1062ce98], eax
xor edx, edx
mov dword [0x1062bb14], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1062bb14], ecx
inc edx
cmp edx, 0x270
jl 0x10026a7e
mov dword [0x1062bb10], 0x270
xor ebx, ebx
mov dword [ebp + 0x24], ebx
jmp 0x10026abc
mov eax, dword [ebp + 0x24]
mov dword [ebp + eax*4 - 0x5c], 0xfffffffc
inc dword [ebp + 0x24]
cmp dword [ebp + 0x24], edi
jl 0x10026aae
push ebx
push 0xd96
push 1
push 0x8ee
mov edx, 0x4dcb
xor cl, cl
call fcn.10026fc5
mov eax, dword [ebp - 0x5c]
add esp, 0x10
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0x24], 0xdf3d37a5
mov dword [ebp - 0x18], 1
mov dword [ebp + 0x24], 0xfd43ddca
mov dword [ebp + 0x24], ebx
mov dword [ebp + 0x24], ebx
jmp 0x10026b11
mov eax, dword [ebp + 0x24]
mov dword [ebp + eax*4 - 0x2c], 0xffff
inc dword [ebp + 0x24]
cmp dword [ebp + 0x24], 2
jl 0x10026b03
push 0x3c2d
push 0x5dfd
push 0x2244
xor dl, dl
mov cl, 1
call fcn.10025a3b
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x24], 0x72d9ee1c
cmp dword [ebp + 0x24], ebx
jne 0x10026b64
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp + 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x1c]
jle 0x10026b64
mov ecx, ebx
jmp 0x10026b67
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setne dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp + 0x24], ecx
cmp dword [ebp + 0x24], ebx
je 0x10026b86
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp + 0x24], 1
cmp byte [0x1062b9e8], bl
jne 0x10026dde
mov dword [ebp - 0x1c], 0x1632
cmp dword [ebp - 0x1c], 0x19e4
jle 0x10026be9
mov esi, ebx
mov dword [ebp + 0x24], ebx
mov edi, ebx
mov ebx, esi
mov esi, 0x6231
mov eax, ebx
mov ecx, 0x10071a98
cdq
push edx
push eax
call fcn.100046a4
add ebx, edi
dec esi
jne 0x10026bba
mov esi, dword [ebp + 0x24]
inc edi
cmp edi, 0x4a27
jl 0x10026bb3
inc esi
mov dword [ebp + 0x24], esi
push 0
pop ebx
cmp esi, 0x140c
jl 0x10026bb1
mov dword [ebp - 4], 6
cmp dword [ebp - 0x1c], 0x154a
jge 0x10026c08
mov edx, str.efauggj_nibleg_jtojnn_ajy_gflvbh_qutsz_bzccuqe_cpo_vqsube_tkjtkc_rwx_ynv_fbz
mov ecx, 0x10071a98
call fcn.10006c80
or dword [ebp - 4], 0xffffffff
mov dword [ebp + 0x24], 5
lea ecx, [ebp - 0x40]
push 4
call fcn.100048ce
mov dword [ebp - 0x24], 0x68d2
mov dword [ebp - 0x18], ebx
jmp 0x10026c59
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x20], 0x188e17b8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x10026c4b
mov dword [ebp - 0x18], ebx
jmp 0x10026c74
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10026c64
cmp dword [ebp + 0x24], ebx
jne 0x10026c82
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp + 0x24]
test eax, eax
je 0x10026c92
cmp dword [ebp + 0x24], ebx
jne 0x10026c95
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
mov dword [eax + 0xc], ecx
mov dword [ebp + 0x24], ebx
jmp 0x10026d6c
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0x1c], 0xd1b4b1c2
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp + 0x24]
cmp dword [ebp + eax*4 - 0x20], ebx
jne 0x10026d75
mov eax, dword [ebp + 0x24]
cmp dword [ebp + eax*4 - 0x20], 0x3a6d7d04
jl 0x10026cee
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp + eax*4 - 0x20]
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
cmp dword [ebp + eax*4 - 0x20], 0xffffffff
jl 0x10026d14
mov eax, dword [ebp + 0x24]
cmp dword [ebp + eax*4 - 0x20], ebx
je 0x10026d14
xor ebx, ebx
inc ebx
xor eax, eax
test ebx, ebx
setg al
cmp eax, 0xb10079d6
sbb eax, eax
xor ebx, ebx
neg eax
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp + eax*4 - 0x20]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp + eax*4 - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x40]
setl bl
imul ebx, dword [eax + edx*4]
xor edx, edx
mov eax, dword [ebp + 0x24]
mov eax, dword [ebp + eax*4 - 0x20]
cmp ebx, eax
mov eax, dword [ebp - 0x40]
setle dl
xor ecx, ecx
cmp edx, dword [eax + 4]
setne cl
mov dword [ebp - 0x24], ecx
inc dword [ebp + 0x24]
xor ebx, ebx
cmp dword [ebp + 0x24], ebx
jle 0x10026cb8
lea ecx, [ebp - 0x40]
call fcn.10004951
push 0x1062bb10
push ecx
push 1
mov edx, 0x36db
call fcn.1002593c
add esp, 0xc
mov dword [ebp - 0x30], 0x399841b3
lea edx, [ebp - 0x30]
mov dword [ebp - 0x50], 0x749efede
lea ecx, [ebp - 0x50]
push 0x7f8e
push 0x6e74
push 0x7ea7
push 1
push 0x5c69
push ebx
push 0x24c1
call fcn.10027461
add esp, 0x1c
mov edx, 0x1062b9e8
mov ecx, 0x1d7f
push ebx
call fcn.100272a5
mov esi, dword [ebp - 0x4c]
pop ecx
mov eax, dword [0x1062bb10]
cmp eax, 0x270
jne 0x10026e2a
mov edx, 0x1062bb18
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, 0x1062c4d8
jl 0x10026def
jmp 0x10026e36
cmp eax, 0x4e0
jb 0x10026e3b
call fcn.1002786b
mov eax, dword [0x1062bb10]
mov ecx, dword [eax*4 + 0x1062bb14]
inc eax
mov dword [0x1062bb10], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x1062ce94]
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 [esi], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret