Function at 0x40a744
Capabilities:
Check os version
Set current directory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], eax
call fcn.004031d8
call fcn.0040496c
call fcn.00406e8c
call fcn.00407510
call fcn.004079c8
call fcn.00407eb0
call fcn.0040a1b0
xor eax, eax
push ebp
push 0x40ac63
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x40ac27
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x10]
call fcn.00407170
mov eax, dword [ebp - 0x10]
call fcn.004035cc
push eax
call sub.kernel32.dll_SetCurrentDirectoryA
call fcn.0040274c
test eax, eax
jne 0x40a7c3
xor ebx, ebx
mov edx, 0x40c7b4
xor eax, eax
call fcn.004027b0
jmp 0x40a830
call fcn.0040274c
cmp eax, 3
jne 0x40a823
lea edx, [ebp - 0x10]
mov eax, 1
call fcn.004027b0
mov eax, dword [ebp - 0x10]
mov edx, 0x40ac80
call fcn.00403518
je 0x40a7f6
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ac45
mov bl, 1
mov edx, 0x40c7b4
mov eax, 2
call fcn.004027b0
lea edx, [ebp - 0x10]
mov eax, 3
call fcn.004027b0
mov eax, dword [ebp - 0x10]
call fcn.00405320
mov dword [0x40c8c0], eax
jmp 0x40a830
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ac45
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.004027b0
mov edx, dword [ebp - 0x10]
mov eax, 0x40c8cc
call fcn.00403ead
mov byte [0x40c033], 0x20
mov edx, 1
mov eax, 0x40c8cc
call fcn.004044b5
call fcn.00402664
xor edx, edx
push ebp
push 0x40ac16
push dword fs:[edx]
mov dword fs:[edx], esp
lea ecx, [ebp - 0x10]
mov edx, 0x40ac94
mov eax, dword [0x40c7b4]
call fcn.0040543c
mov edx, dword [ebp - 0x10]
mov eax, 0x40c7bc
call fcn.004032e4
mov cl, 0x20
xor edx, edx
mov eax, dword [0x40c7bc]
call fcn.0040771c
lea ecx, [ebp - 0x10]
mov edx, 0x40aca4
mov eax, dword [0x40c7b4]
call fcn.0040543c
mov edx, dword [ebp - 0x10]
mov eax, 0x40c7b8
call fcn.004032e4
push 0x40acac
push 0
call sub.user32.dll_FindWindowA
mov dword [0x40c8c4], eax
cmp dword [0x40c8c4], 0
je 0x40a902
push 0
push 0x40a370
push 0
mov eax, dword [0x40c8c4]
push eax
call sub.user32.dll_GetWindowThreadProcessId
push eax
call sub.user32.dll_EnumThreadWindows
call fcn.00403050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ac45
test bl, bl
jne 0x40aaa7
mov eax, dword [0x40c7b8]
call fcn.00405414
test al, al
jne 0x40a93f
push 0x10
mov ecx, dword [0x40c760]
mov edx, dword [0x40c7b8]
mov al, 0x83
call fcn.0040a1c0
call fcn.00403050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ac45
lea eax, [ebp - 0x10]
call fcn.0040719c
mov eax, dword [ebp - 0x10]
mov edx, 0x40c7b0
call fcn.0040a4cc
test al, al
jne 0x40a986
xor eax, eax
push ebp
push 0x40a97c
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, dword [0x40c7b0]
call fcn.004080b0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40a986
push 0x20
xor ecx, ecx
mov edx, dword [0x40c7b0]
mov eax, dword [0x40c7b4]
call fcn.0040728c
test al, al
jne 0x40a9b7
mov al, 0x55
call fcn.0040a2b8
call fcn.00403050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ac45
push 0
mov eax, dword [0x40c014]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x40accc
push 0x40acd0
push 0
call sub.user32.dll_CreateWindowExA
mov dword [0x40c8c0], eax
push 0x40a660
push 0xfffffffffffffffc
mov eax, dword [0x40c8c0]
push eax
call sub.user32.dll_SetWindowLongA
mov dword [0x40c7ac], eax
xor eax, eax
push ebp
push 0x40aaa0
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x10]
xor eax, eax
call fcn.004027b0
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x24]
call fcn.004070b0
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0xb
mov eax, dword [0x40c8c0]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0
lea edx, [ebp - 0x20]
mov ecx, 1
mov eax, 0x40ace0
call fcn.00405a38
mov edx, dword [ebp - 0x10]
mov eax, dword [0x40c7b0]
call fcn.0040a388
mov dword [0x40c8c8], eax
call fcn.0040a624
test al, al
jne 0x40aa7c
push 0xff
push 0xffffffffffffffff
push 0
push 0x40c8c8
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
dec eax
je 0x40aa5b
mov eax, dword [0x40c8c8]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40abf9
mov eax, dword [0x40c8c0]
push eax
call sub.user32.dll_DestroyWindow
ret
push 0
mov eax, dword [0x40c014]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x40acac
push 0x40acd0
push 0
call sub.user32.dll_CreateWindowExA
mov dword [0x40c8c4], eax
xor edx, edx
push ebp
push 0x40abf2
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, 0x408ad0
call fcn.004029f8
mov dword [0x40b1e8], eax
mov edx, dword [0x40c7b8]
mov eax, dword [0x40b1e8]
call fcn.00409f60
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x40b1e8]
lea edx, [eax + 0xc]
xor ecx, ecx
mov al, 0x7e
call fcn.00407628
mov edx, dword [ebp - 0x10]
mov eax, 0x40c7c0
mov ecx, 0xff
call fcn.00405620
mov eax, dword [0x40b1e8]
cmp byte [eax + 0x14], 0
je 0x40ab68
call fcn.004074e0
test al, al
jne 0x40ab68
push 0x30
push 0x40c7c0
mov eax, dword [0x40c6d8]
push eax
push 0
call sub.user32.dll_MessageBoxA_1
call fcn.00403050
call fcn.00403050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ac45
push 0x124
mov ecx, 0x40c7c0
mov eax, dword [0x40b1e8]
mov edx, dword [eax + 0xc]
mov al, 0x17
call fcn.0040a1c0
cmp eax, 6
je 0x40ab9d
call fcn.00403050
call fcn.00403050
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x40ac45
mov ecx, 0x40a6d8
mov dl, 1
mov eax, dword [0x40b1e8]
call fcn.0040946c
push 0x10040
mov ecx, 0x40c7c0
mov edx, dword [0x40b1e8]
mov edx, dword [edx + 0xc]
and eax, 0x7f
mov al, byte [eax + 0x40b1ec]
call fcn.0040a1c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40abf9
mov eax, dword [0x40b1e8]
call fcn.00402a20
mov eax, dword [0x40c8c4]
push eax
call sub.user32.dll_DestroyWindow
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40ac6a
lea eax, [ebp - 0x24]
call fcn.00403294
lea eax, [ebp - 0x10]
call fcn.00403294
ret