Function at 0x10180640
Capabilities:
Check os version

Disassembly:
sub esp, 0x344
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 4]
mov dword [esi + 4], ebx
cmp eax, ebx
je 0x1018068f
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call edi
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x10180678
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [esi + 8]
push eax
call edi
mov dword [esi + 8], ebx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x1018068f
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0xc]
push ecx
call edi
mov dword [esi + 0xc], ebx
cmp dword [0x102b5a40], ebx
jne 0x101806de
mov ecx, 0x44
xor eax, eax
lea edi, [esp + 0x14]
lea edx, [esp + 0x10]
mov ebp, 1
push edx
rep stosd dword es:[edi], eax
mov dword [0x102b5a40], ebp
mov dword [esp + 0x14], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x20], 2
je 0x101806de
pop edi
mov dword [0x102b5a44], ebp
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x344
ret 8
cmp dword [0x102b5a44], ebx
jne 0x1018084f
mov edx, dword [str..PipeOCULAR_]
cmp edx, ebx
je 0x1018084f
mov ecx, 0x8b
xor eax, eax
lea edi, [esp + 0x126]
mov word [esp + 0x124], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x124]
push edx
push eax
call fcn.100e9a63
mov eax, dword [esp + 0x360]
add esp, 8
cmp eax, ebx
je 0x10180744
push 0x104
lea ecx, [esp + 0x128]
push eax
push ecx
call fcn.100eb7d1
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
xor ebp, ebp
lea edx, [esp + 0x124]
push 0x7d0
push edx
inc ebp
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeW]
test eax, eax
jne 0x1018076a
cmp dword [esi + 0x14], 2
je 0x101807bb
push ebx
push 0x40000000
push 3
push ebx
push ebx
lea eax, [esp + 0x138]
push 0xc0000000
push eax
call edi
cmp eax, 0xffffffff
mov dword [esi + 4], eax
jne 0x10180792
cmp ebp, 0xa
jg 0x101807bb
jmp 0x1018074c
cmp dword [esp + 0x35c], 2
jne 0x101807cd
push ebx
lea ecx, [esp + 0x360]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetNamedPipeHandleState]
test eax, eax
jne 0x101807cd
mov edx, dword [esi + 4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 4], ebx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x344
ret 8
mov eax, dword [esp + 0x35c]
mov edi, dword [sym.imp.KERNEL32.dll_CreateEventW]
push ebx
push ebx
push 1
push ebx
mov dword [esi + 0x18], eax
call edi
push ebx
push ebx
push 1
push ebx
mov dword [esi + 8], eax
call edi
mov ecx, dword [esi + 8]
mov dword [esi + 0xc], eax
cmp ecx, ebx
je 0x1018080e
cmp eax, ebx
je 0x1018080e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x344
ret 8
mov eax, dword [esi + 4]
mov dword [esi + 4], ebx
cmp eax, ebx
je 0x1018084f
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call edi
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x10180838
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 8]
push ecx
call edi
mov dword [esi + 8], ebx
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x1018084f
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov edx, dword [esi + 0xc]
push edx
call edi
mov dword [esi + 0xc], ebx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x344
ret 8