Function at 0x481e4d
Capabilities:
Check os version

Disassembly:
push 0x364
mov eax, 0x50e38c
call fcn.005060cc
and dword [ebp - 0x32c], 0
and dword [ebp - 0x328], 0
call fcn.0044f816
mov dword [ebp - 0x32c], eax
and dword [ebp - 4], 0
mov ebx, 0xd5ac08
push ebx
mov dword [ebp - 0x330], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push ecx
lea ecx, [ebp - 0x32c]
mov byte [ebp - 4], 1
call fcn.004826e0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
and dword [ebp - 0x35c], 0
and dword [ebp - 0x358], 0
and dword [ebp - 0x354], 0
mov byte [ebp - 4], 2
mov eax, dword [0xd58f54]
test eax, eax
je 0x4823ac
add eax, 0x5c
je 0x4823ac
cmp dword [eax + 0x21c], 0
je 0x4823ac
push 8
pop ebx
mov dword [ebp - 0x320], ebx
lea eax, [ebp - 0x320]
push eax
lea ecx, [ebp - 0x32c]
call fcn.0046935c
test eax, eax
jne 0x482392
call fcn.00409736
push eax
lea ecx, [ebp - 0x31c]
call fcn.0040953f
mov byte [ebp - 4], 3
cmp dword [0xd5b274], 0
jne 0x481f68
push 0x90
lea eax, [ebp - 0xa4]
mov dword [0xd5b274], 1
push 0
push eax
mov dword [ebp - 0xa8], 0x94
call fcn.004f1a90
add esp, 0xc
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
imul eax, dword [ebp - 0xa4], 0xa
add eax, dword [ebp - 0xa0]
mov dword [0xd5b270], eax
cmp dword [0xd5b270], 0x3c
jl 0x482024
call fcn.00426031
test eax, eax
je 0x482024
mov edx, ebx
lea ecx, [ebp - 0x34c]
call fcn.00410fda
mov byte [ebp - 4], 4
mov edx, dword [eax]
mov esi, dword [ebp - 0x31c]
lea ecx, [edx - 0x10]
lea edi, [esi - 0x10]
cmp ecx, edi
je 0x481ff4
lea esi, [edi + 0xc]
cmp dword [esi], 0
jl 0x481fdf
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x481fdf
call fcn.004098e7
mov ebx, eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x481fce
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
lea esi, [ebx + 0x10]
mov ebx, dword [ebp - 0x320]
mov dword [ebp - 0x31c], esi
jmp 0x481ff4
push dword [edx - 0xc]
lea ecx, [ebp - 0x31c]
push edx
call fcn.0040942f
mov esi, dword [ebp - 0x31c]
mov byte [ebp - 4], 3
or eax, 0xffffffff
mov edx, dword [ebp - 0x34c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x482016
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0
jne 0x48202a
add esi, 0xfffffff0
jmp 0x482379
mov esi, dword [ebp - 0x31c]
cmp dword [0xd5b274], 0
jne 0x48207c
push 0x90
lea eax, [ebp - 0x13c]
mov dword [0xd5b274], 1
push 0
push eax
mov dword [ebp - 0x140], 0x94
call fcn.004f1a90
add esp, 0xc
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
imul eax, dword [ebp - 0x13c], 0xa
add eax, dword [ebp - 0x138]
mov dword [0xd5b270], eax
cmp dword [0xd5b270], 0x3c
mov eax, 0x1000
mov ecx, 0x400
push ebx
cmovge ecx, eax
call fcn.00411079
mov edi, eax
pop ecx
mov dword [ebp - 0x350], edi
mov byte [ebp - 4], 5
test edi, edi
jne 0x48219d
cmp dword [0xd5b26c], eax
jne 0x48212e
inc eax
mov dword [0xd5b26c], eax
cmp dword [0xd5b274], edi
jne 0x482104
push 0x90
mov dword [0xd5b274], eax
lea eax, [ebp - 0x1d4]
push edi
push eax
mov dword [ebp - 0x1d8], 0x94
call fcn.004f1a90
add esp, 0xc
lea eax, [ebp - 0x1d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
imul eax, dword [ebp - 0x1d4], 0xa
add eax, dword [ebp - 0x1d0]
mov dword [0xd5b270], eax
cmp dword [0xd5b270], 0x3c
jl 0x482125
call fcn.00426031
test eax, eax
jne 0x482125
mov dword [0xd5b268], 1
jmp 0x48201c
xor eax, eax
mov dword [0xd5b268], eax
jmp 0x482133
mov eax, dword [0xd5b268]
test eax, eax
jne 0x48201c
cmp dword [0xd5b274], eax
jne 0x48218b
push 0x90
push eax
lea eax, [ebp - 0xa4]
mov dword [0xd5b274], 1
push eax
mov dword [ebp - 0xa8], 0x94
call fcn.004f1a90
add esp, 0xc
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
imul eax, dword [ebp - 0xa4], 0xa
add eax, dword [ebp - 0xa0]
mov dword [0xd5b270], eax
cmp dword [0xd5b270], 0x3c
jge 0x482262
jmp 0x48201c
and dword [ebp - 0x340], 0
lea ecx, [ebp - 0x340]
and dword [ebp - 0x33c], 0
call fcn.00424d67
xor eax, eax
mov dword [ebp - 0x348], eax
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x368], eax
mov dword [ebp - 0x364], eax
lea eax, [ebp - 0x368]
push eax
lea eax, [ebp - 0x370]
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x348]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessTimes]
mov eax, dword [ebp - 0x338]
or eax, dword [ebp - 0x334]
je 0x482225
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x48201c
mov ecx, dword [ebp - 0x340]
sub ecx, dword [ebp - 0x348]
mov eax, dword [ebp - 0x33c]
sbb eax, dword [ebp - 0x344]
add ecx, 0x1388
push 0
push 0x2710
adc eax, 0
push eax
push ecx
call fcn.00506550
xor edx, edx
mov ecx, 0x3e8
div ecx
cmp eax, 5
jl 0x482219
cmp dword [esi - 0xc], 0
jne 0x482317
mov edx, ebx
lea ecx, [ebp - 0x330]
call fcn.00411153
mov byte [ebp - 4], 6
lea ebx, [esi - 0x10]
mov edx, dword [eax]
lea ecx, [edx - 0x10]
cmp ecx, ebx
je 0x4822dc
lea esi, [ebx + 0xc]
cmp dword [esi], 0
jl 0x4822c7
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x4822c7
call fcn.004098e7
mov dword [ebp - 0x324], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4822bc
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x324]
lea esi, [eax + 0x10]
mov dword [ebp - 0x31c], esi
jmp 0x4822dc
push dword [edx - 0xc]
lea ecx, [ebp - 0x31c]
push edx
call fcn.0040942f
mov esi, dword [ebp - 0x31c]
mov byte [ebp - 4], 5
or eax, 0xffffffff
mov edx, dword [ebp - 0x330]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4822fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0
mov ebx, dword [ebp - 0x320]
jne 0x482317
test edi, edi
je 0x48201c
jmp 0x482219
lea ecx, [ebp - 0x318]
call fcn.00485129
push ecx
add esi, 0xfffffff0
mov byte [ebp - 4], 7
mov ebx, esp
mov ecx, esi
mov dword [ebp - 0x324], ebx
call fcn.004098e7
add eax, 0x10
lea ecx, [ebp - 0x318]
mov dword [ebx], eax
mov ebx, dword [ebp - 0x320]
push edi
push ebx
call fcn.00485614
lea eax, [ebp - 0x318]
push eax
lea ecx, [ebp - 0x35c]
call fcn.004825ee
lea ecx, [ebp - 0x318]
call fcn.0044fbc0
test edi, edi
je 0x482379
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or eax, 0xffffffff
mov byte [ebp - 4], 2
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x482392
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
add ebx, 4
mov dword [ebp - 0x320], ebx
cmp ebx, 0x10000
jbe 0x481ee7
mov ebx, 0xd5ac08
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x35c]
mov ecx, 0xd5abfc
push eax
call fcn.0044ef25
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x35c]
call fcn.0044f379
mov eax, dword [ebp - 0x32c]
lea ecx, [ebp - 0x32c]
push eax
push dword [eax]
lea eax, [ebp - 0x350]
push eax
call fcn.00482852
push ecx
mov ecx, dword [ebp - 0x32c]
xor edx, edx
push 0x14
inc edx
call fcn.0040b8be
pop ecx
pop ecx
call fcn.00506076
ret