Function at 0x4de438
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff4c
push ebx
xor ebx, ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x14], ebx
test dl, dl
je 0x4de465
add esp, 0xfffffff0
call fcn.00404308
mov byte [ebp - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4dea75
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0xdc]
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 6]
mov byte [eax + 0x35c], dl
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x38c], edx
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x4c0], 0
cmp byte [0x7063b0], 0
je 0x4de4d1
push 0
push 0xa0a0a0
mov edx, 0x4deaa4
mov eax, 0xfffffffd
call fcn.004b5744
cmp byte [0x7063b0], 0
je 0x4de4ef
mov ecx, 0x4deab8
mov dl, byte [0x7064b4]
mov eax, 0xfffffffd
call fcn.004b57ec
call fcn.004b89a4
mov edx, dword [ebp - 4]
mov dword [edx + 0x370], eax
mov eax, 0x1f40
call fcn.004c1150
mov edx, dword [ebp - 4]
mov dword [edx + 0x4cc], eax
mov dl, 1
mov eax, dword [0x4b5538]
call fcn.00403f74
mov edx, dword [ebp - 4]
mov dword [edx + 0x368], eax
call fcn.004d6f40
mov edx, dword [ebp - 4]
mov byte [edx + 0x36c], al
push 0
push 0
push 0xffffffffffffffff
push 0
call sub.kernel32.dll_CreateEventA
mov dword [0x7063c4], eax
cmp byte [0x7063b0], 0
je 0x4de566
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x36c]
mov ecx, 0x4deac8
mov eax, 0xfffffffd
call fcn.004b57ec
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [edx + eax*4 + 0x2f8], ecx
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f4]
call fcn.00404dd0
mov eax, dword [ebp - 0xc]
cmp eax, 7
ja case.default.0x4de59e
jmp dword [eax*4 + 0x4de5a5]
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
mov edx, 0x4dead4
call fcn.00404e24
jmp case.default.0x4de59e
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
mov edx, 0x4deae8
call fcn.00404e24
jmp case.default.0x4de59e
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
mov edx, 0x4deafc
call fcn.00404e24
jmp case.default.0x4de59e
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
mov edx, 0x4deb18
call fcn.00404e24
jmp case.default.0x4de59e
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
mov edx, 0x4deb24
call fcn.00404e24
jmp case.default.0x4de59e
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
mov edx, 0x4deb38
call fcn.00404e24
jmp case.default.0x4de59e
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
mov edx, 0x4deb48
call fcn.00404e24
jmp case.default.0x4de59e
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 0x2f0]
call fcn.00404dd0
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 8
jne 0x4de56b
call fcn.004d6fcc
push 0x4deb5c
push 1
mov eax, 0x7063d8
call fcn.00406fe4
mov ecx, eax
mov edx, 0x4deb60
mov eax, 0x705824
call fcn.004d7108
mov byte [0x7063dc], al
cmp byte [0x7063b0], 0
je 0x4de701
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x36c]
mov ecx, 0x4deac8
mov eax, 0xfffffffd
call fcn.004b57ec
call fcn.004b8828
cmp byte [0x7063b0], 0
je 0x4de724
mov ecx, 0x4deb78
mov dl, byte [0x7063cc]
mov eax, 0xfffffffd
call fcn.004b57ec
mov dl, 1
mov eax, dword [0x4c9c58]
call fcn.004d62c8
mov edx, dword [ebp - 4]
mov dword [edx + 0x358], eax
mov dl, 1
mov eax, dword [0x4b5538]
call fcn.00403f74
mov edx, dword [ebp - 4]
mov dword [edx + 0x354], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4bc], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c4], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x4b8], 1
mov dl, 1
mov eax, dword [0x4c409c]
call fcn.004c4100
mov edx, dword [ebp - 4]
mov dword [edx + 0x390], eax
mov dl, 1
mov eax, dword [0x4b5538]
call fcn.00403f74
mov edx, dword [ebp - 4]
mov dword [edx + 0x394], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov dl, 1
call fcn.00421120
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov byte [eax + 0x1d], 0
mov dl, 1
mov eax, dword [0x4b5538]
call fcn.00403f74
mov edx, dword [ebp - 4]
mov dword [edx + 0x398], eax
mov eax, dword [ebp - 4]
add eax, 0x374
push eax
call sub.kernel32.dll_InitializeCriticalSection_1
mov dl, 1
mov eax, dword [0x4c409c]
call fcn.004c4100
mov edx, dword [ebp - 4]
mov dword [edx + 0x364], eax
mov dl, 1
mov eax, dword [0x4c409c]
call fcn.004c4100
mov edx, dword [ebp - 4]
mov dword [edx + 0x360], eax
lea eax, [ebp - 0xa8]
mov edx, 0x94
call fcn.004088a8
mov dword [ebp - 0xa8], 0x94
lea eax, [ebp - 0xa8]
push eax
call sub.kernel32.dll_GetVersionExA
test eax, eax
je 0x4de903
cmp byte [0x7063b0], 0
je 0x4de8d5
cmp byte [ebp - 0x94], 0
je 0x4de85e
lea eax, [ebp - 0x14]
lea edx, [ebp - 0x94]
mov ecx, 0x80
call fcn.00405048
jmp 0x4de866
lea eax, [ebp - 0x14]
call fcn.00404dd0
push 0
push 0xa0a0a0
push 0x4deb8c
mov eax, dword [ebp - 0xa4]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xb0]
call fcn.0040b34c
push dword [ebp - 0xb0]
push 0x4deb9c
mov eax, dword [ebp - 0xa0]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0xb4]
call fcn.0040b34c
push dword [ebp - 0xb4]
push 0x4deb9c
push dword [ebp - 0x14]
lea eax, [ebp - 0xac]
mov edx, 6
call fcn.00405174
mov edx, dword [ebp - 0xac]
mov eax, 0xfffffffd
call fcn.004b5744
cmp dword [ebp - 0xa4], 6
jne 0x4de903
cmp dword [ebp - 0xa0], 0
jne 0x4de8f6
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c4], 1
jmp 0x4de903
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c4], 2
mov al, byte [ebp - 0xd]
mov byte [0x7063b4], al
mov eax, dword [ebp - 4]
mov byte [eax + 0x35d], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x35e], 0
mov eax, dword [ebp - 4]
add eax, 0x35d
push eax
mov eax, dword [ebp - 4]
add eax, 0x35e
push eax
xor ecx, ecx
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004df094
mov eax, dword [ebp - 4]
call fcn.004e1a28
cmp byte [0x7063b0], 0
je 0x4de962
push 0
push 0xa0a0a0
mov edx, 0x4deba8
or eax, 0xffffffff
call fcn.004b5744
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4c4], 0
jne 0x4de97f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x36c], 0
je 0x4de97f
call fcn.004d64c8
mov eax, dword [ebp - 4]
mov dword [0x7064b0], eax
mov dl, byte [0x7064b4]
xor dl, 1
mov eax, dword [ebp - 4]
call fcn.004e084c
cmp byte [0x7064b4], 0
je 0x4de9ae
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4c8], edx
jmp 0x4dea11
mov ecx, 1
xor edx, edx
mov eax, 0x2c6
call fcn.004d9d44
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x440d10]
call fcn.00442274
mov edx, dword [ebp - 4]
mov dword [edx + 0x4c8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c8]
xor edx, edx
call fcn.004423fc
mov eax, dword [ebp - 4]
push eax
push 0x4e00f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c8]
call fcn.0044241c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c8]
mov edx, 0x7d0
call fcn.0044240c
cmp byte [0x7063b0], 0
je 0x4dea1f
call fcn.004bd828
mov eax, 0x4debc0
call fcn.004bdaec
mov edx, dword [ebp - 4]
mov byte [edx + 0x39c], al
cmp byte [0x7063b0], 0
je 0x4dea4f
push 0
push 0xa0a0a0
mov edx, 0x4debd8
or eax, 0xffffffff
call fcn.004b5744
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4dea7c
lea eax, [ebp - 0xb4]
mov edx, 3
call fcn.00404df4
lea eax, [ebp - 0x14]
call fcn.00404dd0
ret