Function at 0x4574c4
Capabilities:
Check os version
Create directory
Delete registry key
Get disk information
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2b
push 0
push 0
dec ecx
jne 0x4574cc
push ecx
xor eax, eax
push ebp
push 0x458c29
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x4690b4
mov edx, 0x458c3c
call fcn.004045b8
cmp byte [0x4690f8], 0x66
jne 0x45755d
mov eax, 0x4690b4
mov edx, 0x458c9c
call fcn.004045b8
mov eax, dword [0x4672a4]
push eax
push 0x400
lea eax, [ebp - 8]
push eax
mov ecx, dword [0x469234]
mov edx, dword [0x469260]
mov eax, 0x80000002
call fcn.00409200
mov edx, dword [ebp - 8]
mov eax, 0x469088
call fcn.004045b8
cmp byte [0x4690f5], 0
jne 0x45755d
push 0x2710
call sub.kernel32.dll_Sleep
mov eax, dword [0x469088]
call fcn.0040907c
mov byte [0x4690f7], al
mov eax, 0x4690b4
mov edx, 0x458cbc
call fcn.004045b8
mov ecx, dword [0x469234]
mov edx, dword [0x469260]
mov eax, 0x80000002
call fcn.00409654
lea eax, [ebp - 0xc]
call fcn.00408efc
mov edx, dword [ebp - 0xc]
mov eax, 0x469078
call fcn.004045b8
lea eax, [ebp - 0x10]
call fcn.00408f68
mov edx, dword [ebp - 0x10]
mov eax, 0x46907c
call fcn.004045b8
mov eax, 0x4690b4
mov edx, 0x458cec
call fcn.004045b8
mov eax, 0x469080
mov ecx, 0x458d54
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, 0x4690b4
mov edx, 0x458d64
call fcn.004045b8
mov eax, dword [0x469088]
call fcn.00404824
test eax, eax
jne 0x457603
mov eax, 0x469088
mov ecx, dword [0x469224]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, 0x466f0c
mov ecx, dword [0x466f0c]
add byte [ebx + 0x46907c15], cl
add al, ch
push edi
sar dl, cl
invalid
mov eax, 0x4690b4
mov edx, 0x458e34
call fcn.004045b8
mov eax, 0x469070
mov ecx, dword [0x46921c]
mov edx, dword [0x466f0c]
call fcn.00404870
mov eax, 0x4690b4
mov edx, 0x458efc
call fcn.004045b8
mov eax, 0x469074
mov ecx, dword [0x469220]
mov edx, dword [0x466f0c]
call fcn.00404870
xor eax, eax
mov dword [0x4690fc], eax
call fcn.0045a2d4
cmp byte [0x4690f5], 0
je 0x457942
mov eax, dword [0x4692e0]
call fcn.004082dc
push 0xbb8
call sub.kernel32.dll_Sleep
call fcn.00409108
lea eax, [ebp - 0x14]
mov ecx, dword [0x46929c]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x14]
call fcn.00408180
lea eax, [ebp - 0x18]
mov ecx, dword [0x4692a0]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x18]
call fcn.00408180
mov eax, dword [0x469070]
call fcn.00408180
mov eax, 0x4690b4
mov edx, 0x458f74
call fcn.004045b8
mov ecx, dword [0x469224]
mov edx, dword [0x469284]
mov eax, 0x80000002
call fcn.00409654
mov ecx, dword [0x469224]
mov edx, dword [0x46928c]
mov eax, 0x80000002
call fcn.00409654
mov ecx, dword [0x469224]
mov edx, dword [0x469288]
mov eax, 0x80000001
call fcn.00409654
mov ecx, dword [0x469228]
mov edx, dword [0x469284]
mov eax, 0x80000001
call fcn.00409654
mov ecx, dword [0x46922c]
mov edx, dword [0x469288]
mov eax, 0x80000002
call fcn.00409654
lea eax, [ebp - 0x1c]
mov ecx, dword [0x469238]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x1c]
call fcn.00408180
lea eax, [ebp - 0x20]
mov ecx, dword [0x46923c]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x20]
call fcn.00408180
mov eax, 0x4690b4
mov edx, 0x458fe4
call fcn.004045b8
lea eax, [ebp - 0x24]
mov ecx, dword [0x469240]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x24]
call fcn.00408180
lea eax, [ebp - 0x28]
mov ecx, dword [0x469244]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x28]
call fcn.00408180
lea eax, [ebp - 0x2c]
mov ecx, dword [0x469248]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x2c]
call fcn.00408180
lea eax, [ebp - 0x30]
mov ecx, dword [0x46924c]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x30]
call fcn.00408180
lea eax, [ebp - 0x34]
mov ecx, dword [0x469250]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x34]
call fcn.00408180
mov eax, dword [0x469294]
call fcn.00404a24
push eax
push 0x80000002
call sub.advapi32.dll_RegDeleteKeyA
mov eax, dword [0x469260]
call fcn.00404a24
push eax
push 0x80000002
call sub.advapi32.dll_RegDeleteKeyA
mov eax, 0x459050
call fcn.00460e3c
mov eax, 0x4690b4
mov edx, 0x45905c
call fcn.004045b8
mov eax, 0x4590b0
call fcn.00460e3c
mov eax, 0x4690b4
mov edx, 0x458cbc
call fcn.004045b8
mov eax, 0x4590bc
call fcn.00460e3c
mov eax, 0x4690b4
mov edx, 0x4590c8
call fcn.004045b8
mov eax, dword [0x469074]
call fcn.00408180
mov eax, 0x4690b4
mov edx, 0x4591a4
call fcn.004045b8
push 0x200040
push 0x45924c
push 0x459258
lea edx, [ebp - 0x3c]
mov eax, 0x9c
call fcn.0040799c
push dword [ebp - 0x3c]
push 0x459264
lea eax, [ebp - 0x38]
mov edx, 3
call fcn.004048e4
mov eax, dword [ebp - 0x38]
call fcn.00404a24
push eax
push 0
call sub.user32.dll_MessageBoxA_1
push 1
push 0
push 0
lea eax, [ebp - 0x40]
mov ecx, dword [0x4692e0]
mov edx, dword [0x46907c]
call fcn.00404870
mov eax, dword [ebp - 0x40]
call fcn.00404a24
push eax
push 0x45927c
push 0
mov eax, dword [0x467320]
mov eax, dword [eax]
call eax
call fcn.004081dc
jmp 0x458c0b
push 0
mov eax, dword [0x466f0c]
call fcn.00404a24
push eax
call sub.kernel32.dll_CreateDirectoryA
call sub.kernel32.dll_GetVersion_1
and eax, 0xffff
and eax, 0xff
cmp ax, 5
setb byte [0x4690f4]
cmp byte [0x4690f4], 0
je 0x45797c
call fcn.00408708
mov eax, dword [0x4672a4]
push eax
mov ecx, dword [0x469270]
mov edx, dword [0x469260]
mov eax, 0x80000002
call fcn.00409148
push eax
call fcn.00407c64
pop edx
sub eax, edx
cmp eax, 0x1e
jl 0x458c0b
mov eax, 0x4690b4
mov edx, 0x45930c
call fcn.004045b8
lea edx, [ebp - 0x44]
mov eax, dword [0x469088]
call fcn.00407c9c
mov edx, dword [ebp - 0x44]
mov eax, 0x46908c
call fcn.004045b8
call fcn.00402aa8
push 1