Function at 0x1000788c
Capabilities:
Check os version

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
push edi
mov edi, 0x11c
push edi
xor ebp, ebp
push ebp
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
xor ebx, ebx
inc ebx
push ebx
push eax
push ebp
mov dword [esi], edi
mov edi, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push ebp
mov dword [esi + 0x10], eax
call edi
push ebx
push ebx
push edx
push eax
call edi
push edx
push eax
push 3
mov dword [esi + 8], ebp
mov ebp, dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esi + 4], 5
call ebp
cmp eax, ebx
jne 0x1000798a
push ebx
push 0x20
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
and word [esi + 0x114], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0x23
push esi
call ebp
cmp eax, ebx
je 0x10007932
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x10007909
xor eax, eax
jmp 0x10007fc3
push ebx
push 0x40
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
push edx
mov edi, eax
push edi
push 0x63
push esi
mov dword [esp + 0x24], edx
mov word [esi + 0x118], 0x80
call ebp
cmp eax, ebx
jne 0x10007960
mov eax, ebx
jmp 0x10007fc3
push dword [esp + 0x14]
mov word [esi + 0x118], 2
push edi
push 0x63
push esi
call ebp
cmp eax, ebx
mov eax, ebx
je 0x10007fc3
and word [esi + 0x118], 0
jmp 0x10007fc3
push 0x11c
push 0
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
push ebx
push eax
push 0
push 0
mov dword [esi], 0x11c
mov dword [esi + 0x10], eax
call edi
push ebx
push ebx
push edx
push eax
call edi
push edx
push eax
push 3
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esi + 4], 5
mov dword [esi + 8], ebx
call ebp
cmp eax, ebx
jne 0x10007a32
push ebx
push 0x20
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
and word [esi + 0x114], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0x23
push esi
call ebp
cmp eax, ebx
je 0x10007a15
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x100079ee
jmp 0x1000792b
push ebx
push 0x40
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
push edx
mov word [esi + 0x118], 0x200
push eax
jmp 0x1000796e
push 0x11c
push 0
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
push ebx
push eax
push 0
push 0
mov dword [esi], 0x11c
mov dword [esi + 0x10], eax
call edi
push ebx
push ebx
push edx
push eax
call edi
push edx
push eax
push 3
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esi + 4], 5
mov dword [esi + 8], 2
call ebp
cmp eax, ebx
jne 0x10007be7
push ebx
push 0x80
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
push edx
push eax
push 0x83
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov byte [esi + 0x11a], bl
call ebp
cmp eax, ebx
push ebx
push 0x20
push dword [esp + 0x1c]
push dword [esp + 0x1c]
jne 0x10007af3
call edi
and word [esi + 0x114], 0
mov edi, eax
mov dword [esp + 0x14], edx
push dword [esp + 0x14]
push edi
push 0xa3
push esi
call ebp
cmp eax, ebx
je 0x10007959
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x10007ac8
jmp 0x10007959
mov byte [esi + 0x11a], 3
call edi
and word [esi + 0x114], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0xa3
push esi
call ebp
cmp eax, ebx
je 0x10007b36
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x10007b0c
jmp 0x1000792b
push ebx
push 0x40
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
and word [esi + 0x118], 0
push edx
push eax
mov edi, 0xe3
push edi
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
call ebp
cmp eax, ebx
jne 0x10007b76
push 0x59
mov byte [esi + 0x11a], 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
jmp 0x10007959
push dword [esp + 0x14]
mov word [esi + 0x118], 2
push dword [esp + 0x14]
push edi
push esi
call ebp
cmp eax, ebx
je 0x10007959
push dword [esp + 0x14]
mov word [esi + 0x118], 0x80
push dword [esp + 0x14]
push edi
push esi
call ebp
cmp eax, ebx
je 0x10007959
push dword [esp + 0x14]
mov word [esi + 0x118], 0x400
push dword [esp + 0x14]
push edi
push esi
call ebp
cmp eax, ebx
je 0x10007959
mov word [esi + 0x118], 0x800
push dword [esp + 0x14]
push dword [esp + 0x14]
push edi
push esi
call ebp
jmp 0x10007959
push 0x11c
push 0
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
push ebx
push eax
push 0
push 0
mov dword [esi], 0x11c
mov dword [esi + 0x10], eax
call edi
push ebx
push ebx
push edx
push eax
call edi
and dword [esi + 8], 0
push edx
push eax
push 3
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esi + 4], 6
call ebp
cmp eax, ebx
jne 0x10007d6f
push ebx
push 0x20
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
and word [esi + 0x114], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], 0x23
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x24]
push esi
call ebp
cmp eax, ebx
jne 0x10007cb8
push ebx
push 0x80
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
or dword [esp + 0x1c], 0x80
push edx
push eax
push dword [esp + 0x24]
mov dword [esp + 0x1c], eax
push esi
mov dword [esp + 0x24], edx
mov byte [esi + 0x11a], bl
call ebp
cmp eax, ebx
je 0x10007cce
push dword [esp + 0x14]
mov byte [esi + 0x11a], 3
push dword [esp + 0x14]
push dword [esp + 0x24]
push esi
call ebp
cmp eax, ebx
je 0x10007d16
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x10007c58
jmp 0x1000792b
push ebx
push 0x40
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
or dword [esp + 0x1c], 0x40
and word [esi + 0x118], 0
push edx
mov edi, eax
push edi
push dword [esp + 0x24]
mov dword [esp + 0x20], edx
push esi
call ebp
cmp eax, ebx
je 0x10007959
mov word [esi + 0x118], 0x200
push dword [esp + 0x14]
push edi
push dword [esp + 0x24]
jmp 0x10007bdf
push ebx
push 0x40
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
or dword [esp + 0x1c], 0x40
and word [esi + 0x118], 0
push edx
mov edi, eax
push edi
push dword [esp + 0x24]
mov dword [esp + 0x20], edx
push esi
call ebp
cmp eax, ebx
je 0x10007959
push dword [esp + 0x14]
mov word [esi + 0x118], 2
push edi
push dword [esp + 0x24]
push esi
call ebp
cmp eax, ebx
je 0x10007959
mov word [esi + 0x118], 0x80
jmp 0x10007d08
push 0x11c
push 0
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
push ebx
push eax
push 0
push 0
mov dword [esi], 0x11c
mov dword [esi + 0x10], eax
call edi
push ebx
push ebx
push edx
push eax
call edi
push edx
push eax
push 3
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esi + 4], 6
mov dword [esi + 8], ebx
call ebp
cmp eax, ebx
jne 0x10007e0a
push ebx
push 0x20
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
and word [esi + 0x114], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0x23
push esi
call ebp
cmp eax, ebx
je 0x10007e99
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x10007dd3
jmp 0x1000792b
mov byte [esi + 0x11a], 3
jmp 0x10007bd6
push 0x11c
push 0
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
push ebx
push eax
push 0
push 0
mov dword [esi], 0x11c
mov dword [esi + 0x10], eax
call edi
push ebx
push ebx
push edx
push eax
call edi
push edx
push eax
push 3
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esi + 4], 6
mov dword [esi + 8], 2
call ebp
cmp eax, ebx
jne 0x10007ecf
push ebx
push 0x20
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
and word [esi + 0x114], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0x23
push esi
call ebp
cmp eax, ebx
je 0x10007e99
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x10007e72
jmp 0x1000792b
push ebx
push 0x80
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
push edx
push eax
mov edi, 0xa3
push edi
push esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov byte [esi + 0x11a], bl
call ebp
cmp eax, ebx
jne 0x10007dfe
jmp 0x10007959
push 0x11c
push 0
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
push ebx
push eax
push 0
push 0
mov dword [esi], 0x11c
mov dword [esi + 0x10], eax
call edi
push ebx
push ebx
push edx
push eax
call edi
push 3
pop ecx
push edx
push eax
push ecx
push esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esi + 4], 6
mov dword [esi + 8], ecx
call ebp
cmp eax, ebx
jne 0x10007f7e
push ebx
push 0x20
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
and word [esi + 0x114], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
push dword [esp + 0x14]
push dword [esp + 0x14]
push 0x23
push esi
call ebp
cmp eax, ebx
je 0x10007f5c
inc word [esi + 0x114]
cmp word [esi + 0x114], 0xa
jb 0x10007f35
jmp 0x1000792b
push ebx
push 0x80
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call edi
push edx
push eax
mov byte [esi + 0x11a], bl
push 0xa3
jmp 0x10007bdf
push 0x11c
push 0
push esi
call fcn.10031d30
add esp, 0xc
push 2
pop eax
push 3
push eax
push 0
push 6
mov dword [esi], 0x11c
mov dword [esi + 0x10], eax
call edi
push 3
push ebx
push edx
push eax
call edi
push 3
pop ecx
push edx
push eax
push ecx
push esi
mov dword [esi + 4], 6
mov dword [esi + 8], ecx
call ebp
dec eax
neg eax
sbb eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret