Function at 0x1002d3ef
Capabilities:
Encode data using xor
Get system information on windows

Disassembly:
mov eax, 0x1005baaa
call fcn.1005a9e0
sub esp, 0xd0
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x10], esp
cmp byte [ebp + 0x20], 0
mov ebx, edx
je 0x1002d495
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov dword [ecx], eax
cmp dword [ecx], 0xffffffff
jne 0x1002d42d
mov eax, dword [edi]
cmp dword [eax + 8], esi
jne 0x1002d42d
mov ecx, esi
jmp 0x1002d430
xor ecx, ecx
inc ecx
mov edx, dword [edi]
xor eax, eax
cmp ecx, dword [edx]
setge al
imul eax, eax, 0xfffffffa
test eax, eax
jne 0x1002d449
cmp dword [edx + 8], esi
jne 0x1002d449
mov eax, esi
jmp 0x1002d44c
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
imul eax, eax, 0x101e
test eax, eax
jne 0x1002d45d
mov eax, dword [ecx]
mov eax, dword [edi]
xor ecx, ecx
mov edx, dword [eax]
cmp edx, dword [eax + 4]
setne cl
cmp ecx, 0xd1883800
jae 0x1002d475
test edx, edx
je 0x1002d478
xor esi, esi
inc esi
xor ecx, ecx
cmp esi, 0xfffffffc
sete cl
xor eax, eax
sub ecx, 4
cmp ecx, 0xcfda
setne al
mov dword [ebx], eax
jmp 0x1002dd73
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x6c]
mov edi, dword [ebp + 0x1c]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 8]
push 4
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x34], eax
pop eax
mov dword [ebp - 0x30], 0xbacd7953
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], 0xfffffff7
mov dword [ebp - 0x40], esi
push eax
call fcn.10001b45
lea eax, [ebp - 0x6c]
mov dword [ebp - 4], esi
push eax
push ecx
lea eax, [ebp - 0xbc]
xor dl, dl
push 0x6ddf
push eax
mov ecx, 0x3e64
call fcn.1002ce75
mov esi, dword [ebp - 0x30]
add esp, 0x10
mov eax, dword [ebp - 0x30]
neg esi
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sbb esi, esi
mov dword [ebp - 0x2c], eax
neg esi
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
sub edx, eax
mov eax, dword [ebp - 0x30]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setge cl
xor edx, edx
cmp esi, ecx
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setne bl
xor ecx, ecx
cmp eax, ebx
mov eax, dword [ebp - 0x30]
setl cl
xor edx, edx
cmp ecx, 0x1d91e66c
setge dl
imul eax, edx
test eax, eax
je 0x1002d569
push 0x72be
push ecx
lea eax, [ebp - 0x40]
mov dl, 1
push eax
push 0xd83
lea ecx, [ebp - 0x2c]
call fcn.1002ce75
add esp, 0x10
xor ebx, ebx
jmp 0x1002d612
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
jmp 0x1002d5e1
lea eax, [ebp - 0x2c]
xor dl, dl
push eax
push ecx
push ecx
lea eax, [ebp - 0x6c]
push eax
call fcn.1002bbc3
add esp, 0x10
mov dword [ebp - 0x1c], ebx
jmp 0x1002d5d8
mov dword [ebp - 0x40], 3
cmp dword [ebp - 0x40], ebx
jl 0x1002d5d5
lea eax, [ebp - 0x6c]
push eax
push 0x7d73
lea eax, [ebp - 0x30]
push eax
push ecx
push ebx
lea edx, [ebp - 0x40]
mov ecx, 0x421a
call fcn.100310e9
add esp, 0x14
mov edx, 0xe38
mov ecx, 0x64ba
push 0x26b0
push 1
push 1
push ebx
call fcn.1002ba79
add esp, 0x10
dec dword [ebp - 0x40]
jns 0x1002d595
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jle 0x1002d589
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jle 0x1002d570
push 0x538e
push 1
push 0x23e
push ebx
push 0x57cb
push 0x2413
push 0x7c8f
mov edx, 0x4804
xor cl, cl
call fcn.100308b5
add esp, 0x1c
cmp dword [ebp - 0x6c], 0
je 0x1002d62a
push dword [ebp - 0x6c]
call fcn.10044367
pop ecx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
xor eax, eax
mov dword [ebp - 0xa0], 7
mov dword [ebp - 0xa4], ebx
mov word [ebp - 0xb4], ax
xor ecx, ecx
inc ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x5c], 0x1e559696
mov dword [ebp - 0x18], ebx
jmp 0x1002d666
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x88], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x1002d655
push 0x24d2
push ecx
push 0x3bae
push 0x3196
push ebx
push 0x5be5
push 0x96a
push ebx
push 0x5177
lea edx, [ebp - 0x5c]
mov ecx, 0x3cd2
call fcn.1002bdb2
mov eax, dword [ebp - 0x88]
add esp, 0x24
mov dword [ebp - 0x5c], eax
cmp dword [ebp + 0x14], edi
ja 0x1002d6c6
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0xb4]
cmp eax, ecx
je 0x1002dd65
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
jmp 0x1002dd60
push 2
mov dword [ebp - 0x28], 1
pop ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], 0x2e0f6194
mov dword [ebp - 0x18], ebx
jmp 0x1002d6ed
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1002d6df
mov dword [ebp - 0x28], ebx
jmp 0x1002d810
mov dword [ebp - 0x20], 0x32bb11ac
mov dword [ebp - 0x38], 0xfe511bd7
mov dword [ebp - 0x38], 0xfffffff9
mov dword [ebp - 0x20], ebx
jmp 0x1002d804
mov eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xf495
jge 0x1002d7b8
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x58]
cmp eax, 0x65bc8114
mov eax, dword [ebp - 0x28]
setge cl
cmp ecx, 0xfff7
mov eax, dword [ebp + eax*4 - 0x58]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x58]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x58]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + eax*4 - 0x58]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
setle dl
sub ecx, 0x7180
add ecx, edx
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp + eax*4 - 0x58]
jle 0x1002d7aa
cmp dword [ebp - 0x1c], ebx
je 0x1002d7aa
xor eax, eax
inc eax
jmp 0x1002d7ac
mov eax, ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jne 0x1002d7b8
mov ecx, ebx
jmp 0x1002d7bb
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x58]
imul eax, ecx
test eax, eax
jne 0x1002d7d0
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x58]
mov eax, dword [ebp - 0x28]
mov dl, 1
mov eax, dword [ebp + eax*4 - 0x58]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x38], 1
push eax
mov byte [ebp - 0x3c], bl
push ecx
call fcn.1002ba45
inc dword [ebp - 0x20]
pop ecx
pop ecx
push 2
pop ecx
cmp dword [ebp - 0x20], ecx
jle 0x1002d718
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jle 0x1002d6fb
push ecx
push ecx
lea ecx, [ebp - 0x28]
call fcn.1002dfa1
push 0x50e3
push 0x28ee
push 0x9ae
lea eax, [ebp - 0x44]
xor dl, dl
push eax
lea eax, [ebp - 0x60]
mov cl, 1
push eax
lea eax, [ebp - 0xb4]
push eax
push 0x261
push ebx
call fcn.1002fc12
xor eax, eax
lea ecx, [ebp - 0x78]
inc eax
add esp, 0x28
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x98], 0xffffffff
mov dword [ebp - 0x90], 0x1fc80ae7
mov dword [ebp - 0x9c], 0x92079655
push eax
call fcn.10001b45
push ecx
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 2
push eax
push ecx
lea eax, [ebp - 0x78]
push eax
call fcn.100305ae
mov dword [ebp - 0x20], 0xc50
add esp, 0x10
cmp dword [ebp - 0x20], 0xd21
jle 0x1002d90e
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
lea eax, [esi + edi]
sar eax, cl
mov ecx, 0x10076818
xor eax, ebx
cdq
push edx
push eax
call fcn.10001a30
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x4a78
jl 0x1002d8c1
inc esi
push 0
pop ebx
cmp esi, 0x24bf
jl 0x1002d8b9
inc edi
cmp edi, 0x56aa
jl 0x1002d8b7
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x2fa3
jl 0x1002d8b5
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x20], 0x869
jge 0x1002d94e
mov edx, str.lwzrooxpb_oazvgp_pxen_mntvi_xvjlgp_iyxjdzz_qxfvmzqcz_riczub_wapgfpyrg_tuffnkqk_pujohxzdg
mov ecx, 0x10076818
call fcn.1000349f
jmp 0x1002d94e
push 0x30f5
push 0x53d5
push 0x916
push 0x55ff
push 0x425
push 1
push 0xc1c
push 0x302f
push 0x1a21
push 0xb88
push 1
push ebx
mov edx, 0x9c0
mov dword [ebp - 4], 2
mov ecx, 0x3955
call fcn.1002c35b
lea eax, [ebp - 0x94]
mov edx, 0x59b9
push eax
push ebx
push 0x77bb
lea eax, [ebp - 0x78]
push eax
push 1
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x98]
push 1
push eax
lea ecx, [ebp - 0x9c]
call fcn.1002bdb2
add esp, 0x54
mov byte [ebp - 4], 1
cmp dword [ebp - 0x78], 0
je 0x1002d9ef
push dword [ebp - 0x78]
call fcn.10044367
pop ecx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov esi, dword [ebp - 0x44]
cmp esi, dword [ebp - 0x60]
jae 0x1002dd4d
push 3
pop ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x34], 0x6e6a3735
mov dword [ebp - 0x34], 0x88047d20
mov dword [ebp - 0x1c], 0x7b051af7
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x34], 4
cmp dword [ebp - 0x24], ebx
je 0x1002da2c
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
je 0x1002daa2
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x84]
push 2
call fcn.10001b45
push ebx
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 5
push eax
push ecx
lea edx, [ebp - 0x84]
call fcn.1002ce05
pop ecx
pop ecx
push 0x7a64
push ebx
mov edx, 0x3fe2
call fcn.1002ff9d
add esp, 0xc
dec dword [ebp - 0x20]
mov byte [ebp - 4], 1
cmp dword [ebp - 0x84], 0
je 0x1002dd0b
push dword [ebp - 0x84]
call fcn.10044367
pop ecx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
jmp 0x1002dd0b
mov dword [ebp - 0x38], 0xffff
mov dword [ebp - 0x18], ebx
jmp 0x1002dabc
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x4c], 0x9fe57f6c
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1002daae
mov dword [ebp - 0x24], ebx
jmp 0x1002dc0f
push 0x710f
push 0x7d5a
push 0x7b02
push ebx
push 0x7b04
push 1
mov dword [ebp - 0x18], 0x469209a4
lea ecx, [ebp - 0x3b]
mov byte [ebp - 0x3b], bl
xor dl, dl
push 0x3225
call fcn.1002f6b8
add esp, 0x1c
mov dword [ebp - 0x20], ebx
jmp 0x1002dc02
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x4c]
setne cl
sub ecx, eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x4c]
sub ecx, eax
add ecx, 0x9469
jne 0x1002db2f
cmp dword [ebp - 0x1c], ebx
jne 0x1002db2f
mov ecx, ebx
jmp 0x1002db32
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 0x18]
sub ecx, eax
mov eax, dword [ebp - 0x24]
add edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x1002db5b
cmp dword [ebp - 0x4c], ebx
jne 0x1002db5b
mov eax, ebx
jmp 0x1002db5e
xor eax, eax
inc eax
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x1c]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x4c]
setg dl
add edx, 7
imul edx, eax
mov eax, dword [ebp - 0x18]
sub edx, eax
mov dword [ebp - 0x1c], edx
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setl dl
sub edx, 0xfc5a
jne 0x1002dba3
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x4c], ebx
jne 0x1002dba3
mov eax, ebx
jmp 0x1002dba6
xor eax, eax
inc eax
mov ecx, dword [ebp - 0x20]
xor edx, edx
imul ecx, eax
mov eax, dword [ebp - 0x34]
add ecx, 0x5eac
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
setg cl
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x4c]
cmp ecx, eax
mov eax, dword [ebp - 0x24]
setge dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x4c]
test eax, eax
mov eax, dword [ebp - 0x20]
sete cl
mov eax, dword [ebp + eax*4 - 0x4c]
sub eax, ecx
xor ecx, ecx
cmp eax, edx
setge cl
cmp ecx, 0xeeb303a6
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 1
jle 0x1002db05
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jle 0x1002daca
mov dword [ebp - 0x38], 0x2389
cmp dword [ebp - 0x38], 0x2758
jle 0x1002dcc0
mov dword [ebp - 0x24], ebx
mov eax, ebx
mov dword [ebp - 0x20], 0x1f9e
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, edi
mov dword [ebp - 0x34], eax
mov edi, eax
mov esi, ebx
sar edi, cl
mov ecx, esi
mov eax, edi
shl eax, cl
lea ecx, [ebp - 0xd8]
cdq
push edx
push eax
call fcn.10003aad
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1002dc6a
mov eax, dword [eax]
push eax
call fcn.100445e8
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xd8]
call fcn.10001e5d
inc esi
cmp esi, 0x5fb1
jl 0x1002dc4c
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x5e5d
jl 0x1002dc41
mov esi, dword [ebp - 0x24]
add eax, esi
dec dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
jne 0x1002dc3c
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x21a
jl 0x1002dc30
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov dword [ebp - 0x1c], 5
jmp 0x1002dcea
push ecx
push 0x47ff
push ecx
lea eax, [ebp - 0x39]
mov byte [ebp - 0x39], bl
push eax
push ecx
mov edx, 0x6caa
xor cl, cl
call fcn.1002cd89
add esp, 0x14
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff3
jl 0x1002dcc9
cmp dword [ebp - 0x38], 0x2341
jge 0x1002dd04
push str.znw_fzfp_yfrblcqxd_mosnmraeh_ernadbcn_swimzji_ovspnfsc_nvfsnnwlh_lalyfvpd_osbd_hppuyhd_thej_jfhm_nngx
call fcn.100445e8
pop ecx
mov dword [ebp - 4], 1
push 0x71a
push 1
push 1
push 1
mov edx, 0x4ef5
mov byte [ebp - 0x3a], bl
lea ecx, [ebp - 0x3a]
call fcn.1002ba79
mov esi, dword [ebp - 0x44]
add esp, 0x10
mov ecx, esi
add esi, 2
mov dword [ebp - 0x44], esi
call fcn.1002b8e2
movzx eax, ax
lea ecx, [ebp - 0xb4]
push eax
call fcn.1002acd4
jmp 0x1002d9f2
mov edi, dword [ebp + 8]
lea eax, [ebp - 0xb4]
cmp edi, eax
je 0x1002dd65
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
call fcn.10018952
push ebx
push 1
lea ecx, [ebp - 0xb4]
call fcn.10018a82
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret